All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/h2o/t/qif.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fp
    - v
    - nbytes
    argTypes:
    - FILE*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: write_int
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - fputc
    linkageType: ''
    returnType: void
    signature: void write_int(FILE *fp, uint64_t v, size_t nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/h2o/t/qif.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - nbytes
    argTypes:
    - FILE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: read_int
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - fgetc
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_int(FILE *fp, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/t/qif.c:60,1
    - Dst: assert
      Src: /src/h2o/t/qif.c:61,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/t/qif.c:62,1
    - Dst: assert
      Src: /src/h2o/t/qif.c:63,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/qif.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - h2o_iovec_t
    assertStmts:
    - condition: (end - src == v)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/h2o/t/qif.c
    - condition: (v == H2O_HTTP3_FRAME_TYPE_HEADERS)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/h2o/t/qif.c
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: get_headers_payload
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - assert
    - ptls_decode_quicint
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t get_headers_payload(h2o_iovec_t frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_encoder
      Src: /src/h2o/t/qif.c:70,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/qif.c:89,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/t/qif.c:132,1
    - Dst: h2o_qpack_encoder_handle_input
      Src: /src/h2o/t/qif.c:134,1
    - Dst: assert
      Src: /src/h2o/t/qif.c:135,1
    - Dst: assert
      Src: /src/h2o/t/qif.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - inp
    - outp
    - header_table_size
    - max_blocked
    - simulate_ack
    - is_resp
    argTypes:
    - FILE*
    - FILE*
    - uint32_t
    - uint16_t
    - int
    - int
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/h2o/t/qif.c
    - condition: (inp == p)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/h2o/t/qif.c
    constantsTouched: []
    func_position:
      end: 137
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 137
    functionName: encode_qif
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - h2o_qpack_create_encoder
    - h2o_mem_init_pool
    - h2o_qpack_encoder_handle_input
    - assert
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: int
    signature: int encode_qif(FILE *inp, FILE *outp, uint32_t header_table_size, uint16_t
      max_blocked, int simulate_ack, int is_resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: CLEAR
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: EMIT
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_parse_request
      Src: /src/h2o/t/qif.c:236,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:241,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:250,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:254,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:258,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:260,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:262,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:265,1
    - Dst: fputc
      Src: /src/h2o/t/qif.c:267,1
    - Dst: h2o_qpack_parse_response
      Src: /src/h2o/t/qif.c:277,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:281,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:286,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:288,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:291,1
    - Dst: fputc
      Src: /src/h2o/t/qif.c:293,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 9
    argNames:
    - dec
    - pool
    - outp
    - stream_id
    - buf
    - chunk_size
    - num_blocked
    - blocked_ref
    - is_resp
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_mem_pool_t*
    - FILE*
    - uint64_t
    - uint8_t*
    - size_t
    - uint64_t
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 297
    functionName: decode_header_block
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - fputc
    - h2o_qpack_parse_request
    - fprintf
    - h2o_qpack_parse_response
    linkageType: ''
    returnType: int
    signature: "int decode_header_block(h2o_qpack_decoder_t *dec, h2o_mem_pool_t *pool,
      FILE *outp, uint64_t stream_id, const uint8_t *buf,\n                               size_t
      chunk_size, uint64_t num_blocked, uint64_t *blocked_ref, int is_resp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_header_block
      Src: /src/h2o/t/qif.c:313,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:316,1
    - Dst: free
      Src: /src/h2o/t/qif.c:320,1
    - Dst: memmove
      Src: /src/h2o/t/qif.c:323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - dec
    - pool
    - outp
    - blocked
    - insert_count
    - is_resp
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_mem_pool_t*
    - FILE*
    - blocked_headers_t*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 327
    functionName: retry_blocked
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - fprintf
    - free
    - memmove
    - decode_header_block
    linkageType: ''
    returnType: int
    signature: "int retry_blocked(h2o_qpack_decoder_t *dec, h2o_mem_pool_t *pool,
      FILE *outp, blocked_headers_t *blocked,\n                         uint64_t insert_count,
      int is_resp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/qif.c:331,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/qif.c:338,1
    - Dst: read_int
      Src: /src/h2o/t/qif.c:340,1
    - Dst: read_int
      Src: /src/h2o/t/qif.c:341,1
    - Dst: assert
      Src: /src/h2o/t/qif.c:342,1
    - Dst: fread
      Src: /src/h2o/t/qif.c:344,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:345,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/t/qif.c:350,1
    - Dst: memcpy
      Src: /src/h2o/t/qif.c:351,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/qif.c:356,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:357,1
    - Dst: retry_blocked
      Src: /src/h2o/t/qif.c:360,1
    - Dst: memmove
      Src: /src/h2o/t/qif.c:364,1
    - Dst: decode_header_block
      Src: /src/h2o/t/qif.c:368,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/t/qif.c:370,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/qif.c:373,1
    - Dst: memcpy
      Src: /src/h2o/t/qif.c:374,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/qif.c:381,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 6
    argNames:
    - inp
    - outp
    - header_table_size
    - max_blocked
    - simulate_ack
    - is_resp
    argTypes:
    - FILE*
    - FILE*
    - uint32_t
    - uint16_t
    - int
    - int
    assertStmts:
    - condition: (chunk_size != UINT64_MAX)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/h2o/t/qif.c
    constantsTouched: []
    func_position:
      end: 390
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 390
    functionName: decode_qif
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - retry_blocked
    - read_int
    - h2o_mem_init_pool
    - fread
    - memcpy
    - h2o_mem_alloc
    - memmove
    - fprintf
    - decode_header_block
    - h2o_vector_reserve
    - h2o_qpack_create_decoder
    - assert
    - h2o_qpack_decoder_handle_input
    linkageType: ''
    returnType: int
    signature: int decode_qif(FILE *inp, FILE *outp, uint32_t header_table_size, uint16_t
      max_blocked, int simulate_ack, int is_resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/t/qif.c:394,1
    - Dst: exit
      Src: /src/h2o/t/qif.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: usage
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/h2o/t/qif.c:412,1
    - Dst: sscanf
      Src: /src/h2o/t/qif.c:418,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:419,1
    - Dst: exit
      Src: /src/h2o/t/qif.c:420,1
    - Dst: sscanf
      Src: /src/h2o/t/qif.c:430,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:431,1
    - Dst: exit
      Src: /src/h2o/t/qif.c:432,1
    - Dst: usage
      Src: /src/h2o/t/qif.c:436,1
    - Dst: freopen
      Src: /src/h2o/t/qif.c:443,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:444,1
    - Dst: strerror
      Src: /src/h2o/t/qif.c:444,1
    - Dst: exit
      Src: /src/h2o/t/qif.c:445,1
    - Dst: freopen
      Src: /src/h2o/t/qif.c:451,1
    - Dst: fprintf
      Src: /src/h2o/t/qif.c:452,1
    - Dst: strerror
      Src: /src/h2o/t/qif.c:452,1
    - Dst: exit
      Src: /src/h2o/t/qif.c:453,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 460
    functionName: main
    functionSourceFile: /src/h2o/t/qif.c
    functionUses: 0
    functionsReached:
    - getopt
    - exit
    - freopen
    - sscanf
    - fprintf
    - usage
    - strerror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: die
    functionSourceFile: /src/h2o/t/injectaddr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: die(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/h2o/t/injectaddr.c:66,1
    - Dst: strlen
      Src: /src/h2o/t/injectaddr.c:66,1
    - Dst: abort
      Src: /src/h2o/t/injectaddr.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: dief
    functionSourceFile: /src/h2o/t/injectaddr.c
    functionUses: 0
    functionsReached:
    - abort
    - strlen
    - write
    linkageType: ''
    returnType: void
    signature: void dief(const char *msg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/t/injectaddr.c:76,1
    - Dst: strcasecmp
      Src: /src/h2o/t/injectaddr.c:77,1
    - Dst: dlsym
      Src: /src/h2o/t/injectaddr.c:78,1
    - Dst: die
      Src: /src/h2o/t/injectaddr.c:80,1
    - Dst: orig
      Src: /src/h2o/t/injectaddr.c:81,1
    - Dst: sscanf
      Src: /src/h2o/t/injectaddr.c:88,1
    - Dst: die
      Src: /src/h2o/t/injectaddr.c:89,1
    - Dst: usleep
      Src: /src/h2o/t/injectaddr.c:112,1
    - Dst: malloc
      Src: /src/h2o/t/injectaddr.c:113,1
    - Dst: malloc
      Src: /src/h2o/t/injectaddr.c:120,1
    - Dst: memset
      Src: /src/h2o/t/injectaddr.c:121,1
    - Dst: inet_pton
      Src: /src/h2o/t/injectaddr.c:123,1
    - Dst: die
      Src: /src/h2o/t/injectaddr.c:124,1
    - Dst: htons
      Src: /src/h2o/t/injectaddr.c:125,1
    - Dst: malloc
      Src: /src/h2o/t/injectaddr.c:129,1
    - Dst: memset
      Src: /src/h2o/t/injectaddr.c:130,1
    - Dst: inet_pton
      Src: /src/h2o/t/injectaddr.c:132,1
    - Dst: die
      Src: /src/h2o/t/injectaddr.c:133,1
    - Dst: htons
      Src: /src/h2o/t/injectaddr.c:134,1
    - Dst: die
      Src: /src/h2o/t/injectaddr.c:146,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 4
    argNames:
    - host
    - serv
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 152
    functionName: getaddrinfo
    functionSourceFile: /src/h2o/t/injectaddr.c
    functionUses: 0
    functionsReached:
    - malloc
    - orig
    - htons
    - inet_pton
    - strcasecmp
    - sscanf
    - die
    - usleep
    - memset
    - strlen
    - dlsym
    linkageType: ''
    returnType: int
    signature: int getaddrinfo(const char *host, const char *serv, const struct addrinfo
      *hints, struct addrinfo **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: freeaddrinfo
    functionSourceFile: /src/h2o/t/injectaddr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void freeaddrinfo(struct addrinfo *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - header_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: header_len_high
    functionSourceFile: /src/h2o/t/quic-ndec-initial-gen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t header_len_high(size_t header_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - header_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: header_len_low
    functionSourceFile: /src/h2o/t/quic-ndec-initial-gen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t header_len_low(size_t header_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/t/quic-ndec-initial-gen.c:38,1
    - Dst: header_len_high
      Src: /src/h2o/t/quic-ndec-initial-gen.c:61,1
    - Dst: header_len_low
      Src: /src/h2o/t/quic-ndec-initial-gen.c:62,1
    - Dst: assert
      Src: /src/h2o/t/quic-ndec-initial-gen.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - header
    - dcid
    - scid_mode
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - enum scid_mode
    assertStmts:
    - condition: (i + DCID_LEN <= HEADER_LEN_MAX)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
    - condition: (i <= HEADER_LEN_MAX)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: fill_header
    functionSourceFile: /src/h2o/t/quic-ndec-initial-gen.c
    functionUses: 0
    functionsReached:
    - header_len_high
    - header_len_low
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t fill_header(uint8_t header[HEADER_LEN_MAX], const uint8_t dcid[DCID_LEN],
      enum scid_mode scid_mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/t/quic-ndec-initial-gen.c:73,1
    - Dst: fprintf
      Src: /src/h2o/t/quic-ndec-initial-gen.c:75,1
    - Dst: fill_header
      Src: /src/h2o/t/quic-ndec-initial-gen.c:78,1
    - Dst: fwrite
      Src: /src/h2o/t/quic-ndec-initial-gen.c:79,1
    - Dst: fputc
      Src: /src/h2o/t/quic-ndec-initial-gen.c:81,1
    - Dst: fclose
      Src: /src/h2o/t/quic-ndec-initial-gen.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - dcid
    - scid_mode
    argTypes:
    - char*
    - uint8_t[]
    - enum scid_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: output
    functionSourceFile: /src/h2o/t/quic-ndec-initial-gen.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fopen
    - fill_header
    - fprintf
    - fclose
    - fputc
    linkageType: ''
    returnType: int
    signature: int output(const char *filename, const uint8_t dcid[DCID_LEN], enum
      scid_mode scid_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/h2o/t/quic-ndec-initial-gen.c:99,1
    - Dst: output
      Src: /src/h2o/t/quic-ndec-initial-gen.c:103,1
    - Dst: output
      Src: /src/h2o/t/quic-ndec-initial-gen.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/h2o/t/quic-ndec-initial-gen.c
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00prop/prop.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t_
    argTypes:
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: timer_cb
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void timer_cb(h2o_timerwheel_entry_t *t_)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00prop/prop.c:36,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:37,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:38,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00prop/prop.c:43,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00prop/prop.c:46,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:47,1
    - Dst: theft_random_choice
      Src: /src/h2o/t/00prop/prop.c:53,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:54,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:59,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:62,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:68,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:74,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00prop/prop.c:76,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - theft
    - input_
    argTypes:
    - struct theft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: prop_wake_time_should_be_before_expiry
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - h2o_timerwheel_destroy
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    - theft_random_choice
    linkageType: ''
    returnType: enum theft_trial_res
    signature: enum theft_trial_res prop_wake_time_should_be_before_expiry(struct
      theft *theft, void *input_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00prop/prop.c:85,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:86,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00prop/prop.c:89,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00prop/prop.c:91,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:92,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:98,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00prop/prop.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - theft
    - input_
    argTypes:
    - struct theft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: prop_inserted_timer_should_run_at_expiry
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - h2o_timerwheel_destroy
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: enum theft_trial_res
    signature: enum theft_trial_res prop_inserted_timer_should_run_at_expiry(struct
      theft *theft, void *input_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00prop/prop.c:109,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:110,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00prop/prop.c:113,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00prop/prop.c:115,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:116,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:122,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00prop/prop.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - theft
    - input_
    argTypes:
    - struct theft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: prop_inserted_timer_should_not_run_before_expiry
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - h2o_timerwheel_destroy
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: enum theft_trial_res
    signature: enum theft_trial_res prop_inserted_timer_should_not_run_before_expiry(struct
      theft *theft, void *input_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00prop/prop.c:134,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:135,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00prop/prop.c:139,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00prop/prop.c:141,1
    - Dst: theft_random_choice
      Src: /src/h2o/t/00prop/prop.c:144,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:145,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:150,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00prop/prop.c:154,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00prop/prop.c:160,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00prop/prop.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - theft
    - input_
    argTypes:
    - struct theft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 164
    functionName: prop_inserted_timer_should_not_run_before_reaching_expiry
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - h2o_timerwheel_destroy
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    - theft_random_choice
    linkageType: ''
    returnType: enum theft_trial_res
    signature: enum theft_trial_res prop_inserted_timer_should_not_run_before_reaching_expiry(struct
      theft *theft, void *input_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/t/00prop/prop.c:169,1
    - Dst: theft_random_choice
      Src: /src/h2o/t/00prop/prop.c:170,1
    - Dst: theft_random_choice
      Src: /src/h2o/t/00prop/prop.c:171,1
    - Dst: theft_random_choice
      Src: /src/h2o/t/00prop/prop.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - t
    - penv
    - output
    argTypes:
    - struct theft*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: alloc_cb
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - malloc
    - theft_random_choice
    linkageType: ''
    returnType: enum theft_alloc_res
    signature: enum theft_alloc_res alloc_cb(struct theft *t, void *penv, void **output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/t/00prop/prop.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - instance
    - env
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: free_cb
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_cb(void *instance, void *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/t/00prop/prop.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - instance
    - env
    argTypes:
    - FILE*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: print_cb
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_cb(FILE *f, const void *instance, void *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name_
    - ','
    - fn_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: TEST
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(name_, fn_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wake_time_before_expiry
      Src: /src/h2o/t/00prop/prop.c:223,1
    - Dst: timers_should_run
      Src: /src/h2o/t/00prop/prop.c:224,1
    - Dst: timers_should_not_run
      Src: /src/h2o/t/00prop/prop.c:225,1
    - Dst: timers_should_not_run_before_expiry
      Src: /src/h2o/t/00prop/prop.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/h2o/t/00prop/prop.c
    functionUses: 0
    functionsReached:
    - timers_should_run
    - timers_should_not_run_before_expiry
    - timers_should_not_run
    - wake_time_before_expiry
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00unit/test.c:30,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/t/00unit/test.c:35,1
    - Dst: h2o_fatal
      Src: /src/h2o/t/00unit/test.c:37,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/t/00unit/test.c:41,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/t/00unit/test.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - req
    - inbufs
    - inbufcnt
    - send_state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: loopback_on_send
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_buffer_reserve
    - h2o_proceed_response
    - h2o_send_state_is_in_progress
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: "void loopback_on_send(h2o_ostream_t *self, h2o_req_t *req, h2o_sendvec_t
      *inbufs, size_t inbufcnt,\n                             h2o_send_state_t send_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/t/00unit/test.c:51,1
    - Dst: htons
      Src: /src/h2o/t/00unit/test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: get_sockname
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - htons
    - htonl
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname(h2o_conn_t *conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/t/00unit/test.c:60,1
    - Dst: htons
      Src: /src/h2o/t/00unit/test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: get_peername
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - htons
    - htonl
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername(h2o_conn_t *conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_connection
      Src: /src/h2o/t/00unit/test.c:68,1
    - Dst: memset
      Src: /src/h2o/t/00unit/test.c:70,1
    - Dst: h2o_init_request
      Src: /src/h2o/t/00unit/test.c:74,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/t/00unit/test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - hosts
    argTypes:
    - h2o_context_t*
    - h2o_hostconf_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: h2o_loopback_create
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - h2o_create_connection
    - memset
    - h2o_init_request
    linkageType: ''
    returnType: h2o_loopback_conn_t
    signature: h2o_loopback_conn_t *h2o_loopback_create(h2o_context_t *ctx, h2o_hostconf_t
      **hosts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/test.c:84,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/t/00unit/test.c:85,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/t/00unit/test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_loopback_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: h2o_loopback_destroy
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - h2o_dispose_request
    - h2o_destroy_connection
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_loopback_destroy(h2o_loopback_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_process_request
      Src: /src/h2o/t/00unit/test.c:96,1
    - Dst: uv_run
      Src: /src/h2o/t/00unit/test.c:100,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/t/00unit/test.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_loopback_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: h2o_loopback_run_loop
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - h2o_evloop_run
    - h2o_process_request
    - uv_run
    linkageType: ''
    returnType: void
    signature: void h2o_loopback_run_loop(h2o_loopback_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/h2o/t/00unit/test.c:114,1
    - Dst: SHA1_Update
      Src: /src/h2o/t/00unit/test.c:115,1
    - Dst: SHA1_Final
      Src: /src/h2o/t/00unit/test.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: sha1sum
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - SHA1_Init
    - SHA1_Final
    linkageType: ''
    returnType: char
    signature: char *sha1sum(const void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/test.c:135,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/test.c:136,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/test.c:136,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/test.c:136,1
    - Dst: h2o_context_init
      Src: /src/h2o/t/00unit/test.c:137,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/test.c:139,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/test.c:140,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/test.c:140,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/test.c:141,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/test.c:141,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/test.c:142,1
    - Dst: ok
      Src: /src/h2o/t/00unit/test.c:144,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/test.c:146,1
    - Dst: h2o_context_dispose
      Src: /src/h2o/t/00unit/test.c:148,1
    - Dst: h2o_config_dispose
      Src: /src/h2o/t/00unit/test.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 150
    functionName: test_loopback
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose
    - h2o_loopback_create
    - h2o_config_register_host
    - H2O_STRLIT
    - h2o_context_dispose
    - h2o_loopback_destroy
    - h2o_context_init
    - ok
    - h2o_config_init
    - h2o_loopback_run_loop
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_loopback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_openssl
      Src: /src/h2o/t/00unit/test.c:154,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:157,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:158,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:159,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:160,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:161,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:162,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:163,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:164,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:165,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:166,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:167,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:168,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:169,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:170,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:171,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:172,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:173,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:174,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:175,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:176,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:177,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:178,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:179,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:180,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:181,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:182,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:183,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:184,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:185,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/test.c:190,1
    - Dst: uv_loop_init
      Src: /src/h2o/t/00unit/test.c:191,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/t/00unit/test.c:193,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:196,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:197,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:198,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:199,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:200,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:201,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:202,1
    - Dst: uv_loop_close
      Src: /src/h2o/t/00unit/test.c:205,1
    - Dst: free
      Src: /src/h2o/t/00unit/test.c:206,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/test.c:213,1
    - Dst: done_testing
      Src: /src/h2o/t/00unit/test.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 217
    functionName: main
    functionSourceFile: /src/h2o/t/00unit/test.c
    functionUses: 0
    functionsReached:
    - free
    - uv_loop_close
    - init_openssl
    - uv_loop_init
    - h2o_mem_alloc
    - h2o_evloop_create
    - subtest
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/t/00unit/src/ssl.c:32,1
    - Dst: ptls_encrypt_ticket_t*::cb
      Src: /src/h2o/t/00unit/src/ssl.c:33,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:33,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/src/ssl.c:33,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:34,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/t/00unit/src/ssl.c:37,1
    - Dst: ptls_encrypt_ticket_t*::cb
      Src: /src/h2o/t/00unit/src/ssl.c:38,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:38,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/src/ssl.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:42,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:42,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/src/ssl.c:42,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/t/00unit/src/ssl.c:43,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/t/00unit/src/ssl.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - encryptor
    - decryptor
    argTypes:
    - ptls_encrypt_ticket_t*
    - ptls_encrypt_ticket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: encrypt_and_decrypt_ticket_once
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_encrypt_ticket_t*::cb
    - memcmp
    - ptls_buffer_dispose
    - ok
    - strlen
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int encrypt_and_decrypt_ticket_once(ptls_encrypt_ticket_t *encryptor,
      ptls_encrypt_ticket_t *decryptor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_encrypt_ticket_ptls
      Src: /src/h2o/t/00unit/src/ssl.c:55,1
    - Dst: create_encrypt_ticket_ptls
      Src: /src/h2o/t/00unit/src/ssl.c:56,1
    - Dst: create_encrypt_ticket_ptls
      Src: /src/h2o/t/00unit/src/ssl.c:57,1
    - Dst: create_encrypt_ticket_ptls
      Src: /src/h2o/t/00unit/src/ssl.c:58,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:61,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:61,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:62,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:62,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:63,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:64,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:67,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:69,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:69,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:70,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:70,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:71,1
    - Dst: encrypt_and_decrypt_ticket_once
      Src: /src/h2o/t/00unit/src/ssl.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: test_encrypt_ticket_ptls
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - encrypt_and_decrypt_ticket_once
    - create_encrypt_ticket_ptls
    - ok
    linkageType: ''
    returnType: void
    signature: void test_encrypt_ticket_ptls(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_tickets_file
      Src: /src/h2o/t/00unit/src/ssl.c:78,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:79,1
    - Dst: pthread_rwlock_rdlock
      Src: /src/h2o/t/00unit/src/ssl.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:90,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:90,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:90,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:91,1
    - Dst: EVP_aes_256_cbc
      Src: /src/h2o/t/00unit/src/ssl.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:92,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:92,1
    - Dst: session_ticket_get_cipher_key
      Src: /src/h2o/t/00unit/src/ssl.c:92,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:95,1
    - Dst: EVP_sha256
      Src: /src/h2o/t/00unit/src/ssl.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:96,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:96,1
    - Dst: session_ticket_get_hmac_key
      Src: /src/h2o/t/00unit/src/ssl.c:96,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:100,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:101,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:105,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:105,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:105,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:106,1
    - Dst: EVP_aes_128_cbc
      Src: /src/h2o/t/00unit/src/ssl.c:106,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:107,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:107,1
    - Dst: session_ticket_get_cipher_key
      Src: /src/h2o/t/00unit/src/ssl.c:107,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:108,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:109,1
    - Dst: EVP_sha1
      Src: /src/h2o/t/00unit/src/ssl.c:109,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:110,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/src/ssl.c:110,1
    - Dst: session_ticket_get_hmac_key
      Src: /src/h2o/t/00unit/src/ssl.c:110,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:111,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:114,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:115,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:118,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:119,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:120,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:121,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:122,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:123,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:124,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:125,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:126,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:127,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:128,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:130,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/t/00unit/src/ssl.c:131,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:132,1
    - Dst: pthread_rwlock_unlock
      Src: /src/h2o/t/00unit/src/ssl.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 137
    functionName: test_load_tickets_file
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - session_ticket_get_hmac_key
    - EVP_aes_128_cbc
    - H2O_STRLIT
    - EVP_sha1
    - find_ticket_for_encryption
    - memcmp
    - pthread_rwlock_unlock
    - pthread_rwlock_rdlock
    - session_ticket_get_cipher_key
    - EVP_aes_256_cbc
    - ok
    - EVP_sha256
    - load_tickets_file
    linkageType: ''
    returnType: void
    signature: void test_load_tickets_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/t/00unit/src/ssl.c:147,1
    - Dst: new_ticket
      Src: /src/h2o/t/00unit/src/ssl.c:148,1
    - Dst: EVP_aes_256_cbc
      Src: /src/h2o/t/00unit/src/ssl.c:148,1
    - Dst: EVP_sha256
      Src: /src/h2o/t/00unit/src/ssl.c:148,1
    - Dst: new_ticket
      Src: /src/h2o/t/00unit/src/ssl.c:149,1
    - Dst: EVP_aes_256_cbc
      Src: /src/h2o/t/00unit/src/ssl.c:149,1
    - Dst: EVP_sha256
      Src: /src/h2o/t/00unit/src/ssl.c:149,1
    - Dst: serialize_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:151,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:152,1
    - Dst: parse_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:154,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:155,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:157,1
    - Dst: OK_MEMCMP
      Src: /src/h2o/t/00unit/src/ssl.c:162,1
    - Dst: OK_VALUE
      Src: /src/h2o/t/00unit/src/ssl.c:163,1
    - Dst: OK_MEMCMPF
      Src: /src/h2o/t/00unit/src/ssl.c:164,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/t/00unit/src/ssl.c:164,1
    - Dst: OK_VALUE
      Src: /src/h2o/t/00unit/src/ssl.c:165,1
    - Dst: OK_MEMCMPF
      Src: /src/h2o/t/00unit/src/ssl.c:166,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/t/00unit/src/ssl.c:166,1
    - Dst: OK_VALUE
      Src: /src/h2o/t/00unit/src/ssl.c:167,1
    - Dst: OK_VALUE
      Src: /src/h2o/t/00unit/src/ssl.c:168,1
    - Dst: free_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:174,1
    - Dst: free_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:175,1
    - Dst: free
      Src: /src/h2o/t/00unit/src/ssl.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 177
    functionName: test_serialize_tickets
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - new_ticket
    - OK_VALUE
    - EVP_CIPHER_key_length
    - serialize_tickets
    - EVP_MD_block_size
    - free_tickets
    - parse_tickets
    - free
    - OK_MEMCMP
    - OK_MEMCMPF
    - EVP_aes_256_cbc
    - EVP_sha256
    - ok
    - h2o_vector_reserve
    linkageType: ''
    returnType: void
    signature: void test_serialize_tickets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: OK_VALUE
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_VALUE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: OK_MEMCMP
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_MEMCMP(n, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: OK_MEMCMPF
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_MEMCMPF(f, s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/t/00unit/src/ssl.c:190,1
    - Dst: printf
      Src: /src/h2o/t/00unit/src/ssl.c:191,1
    - Dst: sscanf
      Src: /src/h2o/t/00unit/src/ssl.c:194,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/src/ssl.c:195,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:196,1
    - Dst: yrmcds_connect
      Src: /src/h2o/t/00unit/src/ssl.c:200,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:201,1
    - Dst: yrmcds_remove
      Src: /src/h2o/t/00unit/src/ssl.c:205,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:205,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:206,1
    - Dst: yrmcds_recv
      Src: /src/h2o/t/00unit/src/ssl.c:209,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:210,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:215,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:215,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:215,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:216,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:217,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:217,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:217,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:218,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:219,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:220,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:223,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:223,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:223,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:224,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:225,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:226,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:229,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:229,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:229,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:230,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:231,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:231,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:231,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:232,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:233,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:234,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:235,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:238,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:238,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:238,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:239,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/t/00unit/src/ssl.c:240,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/src/ssl.c:240,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/src/ssl.c:240,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:241,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:242,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:243,1
    - Dst: ok
      Src: /src/h2o/t/00unit/src/ssl.c:244,1
    - Dst: yrmcds_close
      Src: /src/h2o/t/00unit/src/ssl.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 248
    functionName: test_memcached_ticket_update
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - yrmcds_connect
    - H2O_STRLIT
    - yrmcds_close
    - yrmcds_recv
    - ticket_memcached_update_tickets
    - h2o_iovec_init
    - sscanf
    - getenv
    - printf
    - ok
    - fprintf
    - yrmcds_remove
    linkageType: ''
    returnType: void
    signature: void test_memcached_ticket_update(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/t/00unit/src/ssl.c:252,1
    - Dst: do_internal_update
      Src: /src/h2o/t/00unit/src/ssl.c:253,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/src/ssl.c:254,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/src/ssl.c:257,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/src/ssl.c:258,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/src/ssl.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (conf.ticket.update_thread != NULL)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/h2o/t/00unit/src/ssl.c
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: test_src__ssl_c
    functionSourceFile: /src/h2o/t/00unit/src/ssl.c
    functionUses: 0
    functionsReached:
    - do_internal_update
    - assert
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_src__ssl_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:30,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/issues/293.c:32,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/issues/293.c:33,1
    - Dst: h2o_file_register
      Src: /src/h2o/t/00unit/issues/293.c:34,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/issues/293.c:36,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/issues/293.c:37,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/issues/293.c:38,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/issues/293.c:39,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/issues/293.c:40,1
    - Dst: h2o_headers_register
      Src: /src/h2o/t/00unit/issues/293.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - globalconf
    - host
    - port
    argTypes:
    - h2o_globalconf_t*
    - h2o_iovec_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: register_authority
    functionSourceFile: /src/h2o/t/00unit/issues/293.c
    functionUses: 0
    functionsReached:
    - h2o_config_register_host
    - H2O_STRLIT
    - h2o_headers_register
    - h2o_mem_alloc
    - sprintf
    - h2o_file_register
    - strlen
    - h2o_config_register_path
    linkageType: ''
    returnType: void
    signature: void register_authority(h2o_globalconf_t *globalconf, h2o_iovec_t host,
      uint16_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/issues/293.c:48,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:50,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:50,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:52,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/issues/293.c:52,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:53,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:53,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/issues/293.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/issues/293.c:55,1
    - Dst: h2o_find_header_by_str
      Src: /src/h2o/t/00unit/issues/293.c:57,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:57,1
    - Dst: ok
      Src: /src/h2o/t/00unit/issues/293.c:58,1
    - Dst: ok
      Src: /src/h2o/t/00unit/issues/293.c:61,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/issues/293.c:61,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/issues/293.c:62,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/issues/293.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - scheme
    - host
    - expected
    argTypes:
    - h2o_url_scheme_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: check
    functionSourceFile: /src/h2o/t/00unit/issues/293.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - H2O_STRLIT
    - h2o_loopback_destroy
    - h2o_find_header_by_str
    - ok
    - h2o_memis
    - h2o_loopback_run_loop
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void check(const h2o_url_scheme_t *scheme, const char *host, const
      char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/issues/293.c:72,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:75,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:75,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:75,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:76,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:76,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:76,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:77,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:77,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:77,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:78,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:78,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:78,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:79,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:79,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:79,1
    - Dst: register_authority
      Src: /src/h2o/t/00unit/issues/293.c:80,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/293.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/293.c:80,1
    - Dst: h2o_context_init
      Src: /src/h2o/t/00unit/issues/293.c:82,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:85,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:86,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:87,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:88,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:91,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:92,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:93,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:94,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:95,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:96,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:97,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:98,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:101,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:102,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:103,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:104,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:105,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:106,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:107,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:108,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:111,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:112,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:113,1
    - Dst: check
      Src: /src/h2o/t/00unit/issues/293.c:114,1
    - Dst: h2o_context_dispose
      Src: /src/h2o/t/00unit/issues/293.c:116,1
    - Dst: h2o_config_dispose
      Src: /src/h2o/t/00unit/issues/293.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 118
    functionName: test_issues293
    functionSourceFile: /src/h2o/t/00unit/issues/293.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose
    - H2O_STRLIT
    - check
    - h2o_context_dispose
    - register_authority
    - h2o_context_init
    - h2o_config_init
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_issues293()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:29,1
    - Dst: h2o_init_request
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:33,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:36,1
    - Dst: h2o_concat
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:38,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:38,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:40,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:41,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:41,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:41,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:43,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:43,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: test_percent_encode_zero_byte
    functionSourceFile: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_concat
    - h2o_build_destination
    - h2o_init_request
    - ok
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_percent_encode_zero_byte(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:33,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:34,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:34,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:35,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:37,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:38,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:39,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:39,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:42,1
    - Dst: htonl
      Src: /src/h2o/t/00unit/lib/core/util.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:43,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/core/util.c:43,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:45,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:46,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:47,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:49,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:50,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:50,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:51,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:53,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:54,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:55,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:57,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:58,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:58,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:59,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:59,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:60,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/core/util.c:62,1
    - Dst: parse_proxy_line
      Src: /src/h2o/t/00unit/lib/core/util.c:63,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:64,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:66,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:67,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/core/util.c:67,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:68,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/core/util.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 69
    functionName: test_parse_proxy_line
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - memcmp
    - htons
    - parse_proxy_line
    - htonl
    - ok
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_parse_proxy_line(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:80,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:80,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:80,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - path
    - path_len
    - is_critical
    argTypes:
    - void*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: check_path
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - strlen
    - ok
    linkageType: ''
    returnType: void
    signature: void check_path(void *ctx, const char *path, size_t path_len, int is_critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:91,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:91,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:92,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/core/util.c:93,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:111,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:112,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:113,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:114,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:115,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:118,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:119,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:120,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:121,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:124,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:125,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:126,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:129,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:130,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:131,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:134,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:136,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:138,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:140,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:142,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:145,1
    - Dst: DO_CHECK
      Src: /src/h2o/t/00unit/lib/core/util.c:146,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/core/util.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 153
    functionName: test_extract_push_path_from_link_header
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - DO_CHECK
    linkageType: ''
    returnType: void
    signature: void test_extract_push_path_from_link_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _base_scheme
    - ','
    - _base_authority
    - ','
    - _input
    - ','
    - _filtered_expected
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: DO_CHECK
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CHECK(_base_scheme, _base_authority, _input, _filtered_expected,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:157,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:157,1
    - Dst: h2o_init_request
      Src: /src/h2o/t/00unit/lib/core/util.c:163,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/core/util.c:165,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/util.c:166,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:166,1
    - Dst: h2o_concat
      Src: /src/h2o/t/00unit/lib/core/util.c:168,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/util.c:168,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:168,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:172,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:172,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:173,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:173,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:173,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:174,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:174,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:175,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:175,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:177,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:177,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:178,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:178,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:178,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:179,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:179,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:180,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:180,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:180,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:186,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:186,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:187,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:187,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:187,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/util.c:191,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:191,1
    - Dst: h2o_concat
      Src: /src/h2o/t/00unit/lib/core/util.c:193,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/util.c:193,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:193,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:196,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:196,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:197,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:197,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:197,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:198,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:198,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:199,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:199,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/util.c:199,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/core/util.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 203
    functionName: test_build_destination
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - note
    - h2o_concat
    - h2o_build_destination
    - h2o_init_request
    - ok
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_build_destination(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_init_request
      Src: /src/h2o/t/00unit/lib/core/util.c:243,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:248,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/util.c:250,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:250,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/core/util.c:254,1
    - Dst: h2o_build_destination
      Src: /src/h2o/t/00unit/lib/core/util.c:255,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:255,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/core/util.c:256,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:257,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:257,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:258,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/util.c:258,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/core/util.c:258,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/util.c:259,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/core/util.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 264
    functionName: test_build_destination_escaping
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - note
    - h2o_url_normalize_path
    - h2o_build_destination
    - h2o_init_request
    - ok
    - h2o_memis
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_build_destination_escaping(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/util.c:268,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/util.c:269,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/util.c:270,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/util.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: test_lib__core__util_c
    functionSourceFile: /src/h2o/t/00unit/lib/core/util.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__core__util_c()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/lib/core/config.c:28,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/lib/core/config.c:29,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/config.c:29,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/config.c:29,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/core/config.c:31,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/core/config.c:32,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/core/config.c:33,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/core/config.c:34,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/core/config.c:35,1
    - Dst: CHECK
      Src: /src/h2o/t/00unit/lib/core/config.c:42,1
    - Dst: CHECK
      Src: /src/h2o/t/00unit/lib/core/config.c:43,1
    - Dst: CHECK
      Src: /src/h2o/t/00unit/lib/core/config.c:44,1
    - Dst: CHECK
      Src: /src/h2o/t/00unit/lib/core/config.c:45,1
    - Dst: CHECK
      Src: /src/h2o/t/00unit/lib/core/config.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: test_register_path
    functionSourceFile: /src/h2o/t/00unit/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_config_register_host
    - H2O_STRLIT
    - CHECK
    - h2o_config_init
    - h2o_config_register_path
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_register_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - literal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: CHECK
    functionSourceFile: /src/h2o/t/00unit/lib/core/config.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(index, literal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/config.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: test_lib__core_config_c
    functionSourceFile: /src/h2o/t/00unit/lib/core/config.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__core_config_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/core/headers.c:30,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/t/00unit/lib/core/headers.c:32,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:32,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:33,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:34,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:35,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/headers.c:35,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:35,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/t/00unit/lib/core/headers.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:39,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/headers.c:39,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:39,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/t/00unit/lib/core/headers.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/headers.c:45,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/headers.c:45,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/headers.c:45,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/core/headers.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: test_set_header_token
    functionSourceFile: /src/h2o/t/00unit/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_set_header_token
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void test_set_header_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/headers.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: test_lib__core__headers_c
    functionSourceFile: /src/h2o/t/00unit/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__core__headers_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/core/proxy.c:30,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/core/proxy.c:32,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:32,1
    - Dst: rewrite_location
      Src: /src/h2o/t/00unit/lib/core/proxy.c:34,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:34,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/proxy.c:35,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:35,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/proxy.c:35,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:35,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/proxy.c:36,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/core/proxy.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:36,1
    - Dst: rewrite_location
      Src: /src/h2o/t/00unit/lib/core/proxy.c:37,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:37,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/proxy.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:38,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/core/proxy.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/core/proxy.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/proxy.c:39,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/core/proxy.c:40,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/core/proxy.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: test_rewrite_location
    functionSourceFile: /src/h2o/t/00unit/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - rewrite_location
    - h2o_url_parse
    - ok
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_rewrite_location(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/core/proxy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: test_lib__core__proxy_c
    functionSourceFile: /src/h2o/t/00unit/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__core__proxy_c()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: test_lib__http3_frames
    functionSourceFile: /src/h2o/t/00unit/lib/http3/frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_lib__http3_frames(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:32,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:33,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:34,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:35,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _src
    - len
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (v == H2O_HTTP3_FRAME_TYPE_HEADERS)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/t/00unit/lib/http3/qpack.c
    - condition: (end - src == v)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/t/00unit/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: get_payload
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - assert
    - ptls_decode_quicint
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t get_payload(const char *_src, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:42,1
    - Dst: h2o_qpack_create_encoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:43,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:52,1
    - Dst: alloca
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:55,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:56,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:61,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:61,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:61,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:62,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:62,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:62,1
    - Dst: h2o_qpack_flatten_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:65,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:65,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:65,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:66,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:66,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:66,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:66,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:67,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:69,1
    - Dst: get_payload
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:70,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:75,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:77,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:78,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:79,1
    - Dst: h2o_qpack_parse_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:94,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:96,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:97,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:97,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:98,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:99,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:99,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:99,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:100,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:100,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:100,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:101,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:102,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:102,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:102,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:103,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:103,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:103,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:104,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:104,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:104,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:105,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:105,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:105,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:109,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:111,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:114,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:115,1
    - Dst: h2o_qpack_destroy_encoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - use_enc_stream
    argTypes:
    - int
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/t/00unit/lib/http3/qpack.c
    - condition: (enc_stream->size != 0)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/t/00unit/lib/http3/qpack.c
    - condition: (p == enc_stream->entries + enc_stream->size)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/t/00unit/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 117
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 117
    functionName: do_test_simple
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_mem_clear_pool
    - h2o_qpack_create_encoder
    - H2O_STRLIT
    - h2o_mem_init_pool
    - get_payload
    - h2o_qpack_parse_request
    - h2o_qpack_destroy_decoder
    - h2o_qpack_destroy_encoder
    - alloca
    - ok
    - h2o_memis
    - memset
    - h2o_qpack_create_decoder
    - h2o_qpack_flatten_request
    - assert
    - h2o_qpack_decoder_handle_input
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void do_test_simple(int use_enc_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_simple
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:121,1
    - Dst: do_test_simple
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: test_simple
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - do_test_simple
    linkageType: ''
    returnType: void
    signature: void test_simple(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:142,1
    - Dst: h2o_qpack_parse_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:146,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:151,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:155,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:157,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:157,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:158,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:159,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:159,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:160,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:160,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:161,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:162,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:165,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:165,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:165,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:166,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:166,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:168,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:168,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:173,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:173,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 13
    argNames:
    - dec
    - stream_id
    - input
    - expected_ret
    - expected_err_desc
    - expected_method
    - expected_scheme
    - expected_authority
    - expected_path
    - expected_content_length
    - expected_headers
    - expected_num_headers
    - expected_header_ack
    argTypes:
    - h2o_qpack_decoder_t*
    - int64_t
    - h2o_iovec_t
    - int
    - char*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - size_t
    - h2o_header_t*
    - size_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 176
    functionName: do_test_decode_request
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    - h2o_qpack_parse_request
    linkageType: ''
    returnType: void
    signature: "void do_test_decode_request(h2o_qpack_decoder_t *dec, int64_t stream_id,
      h2o_iovec_t input, int expected_ret,\n                                   const
      char *expected_err_desc, h2o_iovec_t expected_method,\n                                   const
      h2o_url_scheme_t *expected_scheme, h2o_iovec_t expected_authority,\n                                   h2o_iovec_t
      expected_path, size_t expected_content_length, const h2o_header_t *expected_headers,\n
      \                                  size_t expected_num_headers, h2o_iovec_t
      expected_header_ack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:180,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:190,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:191,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:193,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:193,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:194,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:194,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:195,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:195,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:195,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:195,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:196,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: test_decode_literal_invalid_name
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - do_test_decode_request
    - h2o_qpack_destroy_decoder
    - h2o_qpack_create_decoder
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_decode_literal_invalid_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:203,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:213,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:213,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:214,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:214,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:215,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:215,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:215,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:215,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:216,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:226,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:226,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:227,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:227,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:228,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:228,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:228,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:228,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:229,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:239,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:239,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:240,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:240,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:241,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:241,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:241,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:241,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:242,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 246
    functionName: test_decode_literal_invalid_value
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - do_test_decode_request
    - h2o_qpack_destroy_decoder
    - h2o_qpack_create_decoder
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_decode_literal_invalid_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:250,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:263,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:264,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:265,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:266,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:269,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:279,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:281,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:281,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:282,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:282,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:283,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:283,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:283,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:283,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:284,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:287,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:297,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:298,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:300,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:300,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:301,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:301,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:302,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:302,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:302,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:302,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:303,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:306,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:316,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:318,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:318,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:318,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:318,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:319,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:319,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:319,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:319,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:320,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:323,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:333,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:334,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:336,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:336,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:337,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:337,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:338,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:338,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:338,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:338,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:339,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:342,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:353,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:353,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:354,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:354,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:355,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:355,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:358,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:369,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:369,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:370,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:370,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:371,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:371,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:374,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:384,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:386,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:386,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:386,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:386,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:387,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:387,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:387,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:387,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:388,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:391,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:401,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:402,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:404,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:404,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:405,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:405,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:406,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:406,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:406,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:406,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:407,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:410,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:420,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:422,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:422,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:423,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:423,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:424,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:424,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:424,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:424,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:425,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:428,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:438,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:439,1
    - Dst: do_test_decode_request
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:441,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:441,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:442,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:442,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:443,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:443,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:443,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:443,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:444,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 448
    functionName: test_decode_referred
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - note
    - do_test_decode_request
    - h2o_qpack_destroy_decoder
    - ok
    - h2o_qpack_create_decoder
    - h2o_qpack_decoder_handle_input
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_decode_referred(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:455,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:457,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:458,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dec
    - input
    - len
    argTypes:
    - h2o_qpack_decoder_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 460
    functionName: feed_encoder_stream
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - ok
    - h2o_qpack_decoder_handle_input
    linkageType: ''
    returnType: void
    signature: void feed_encoder_stream(h2o_qpack_decoder_t *dec, const uint8_t *input,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:473,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:475,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:475,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:479,1
    - Dst: decode_header
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:479,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:480,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:481,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:481,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:481,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:482,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:482,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:483,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:483,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:485,1
    - Dst: send_header_ack
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:487,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:488,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:488,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - dec
    - stream_id
    - input
    - expected_headers
    - expected_num_headers
    - expected_header_ack
    argTypes:
    - h2o_qpack_decoder_t*
    - int64_t
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 491
    functionName: do_test_decode_field_section
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - decode_header
    - h2o_iovec_is_token
    - send_header_ack
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    - parse_decode_context
    linkageType: ''
    returnType: void
    signature: "void do_test_decode_field_section(h2o_qpack_decoder_t *dec, int64_t
      stream_id, h2o_iovec_t input,\n                                         const
      h2o_header_t *expected_headers, size_t expected_num_headers,\n                                         h2o_iovec_t
      expected_header_ack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:495,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:497,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:504,1
    - Dst: do_test_decode_field_section
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:506,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:506,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:506,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:507,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:510,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:524,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:525,1
    - Dst: feed_encoder_stream
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:528,1
    - Dst: do_test_decode_field_section
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:529,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:529,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:529,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:530,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:534,1
    - Dst: feed_encoder_stream
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:542,1
    - Dst: h2o_qpack_decoder_send_state_sync
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:543,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:544,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:544,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:547,1
    - Dst: feed_encoder_stream
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:552,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:553,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:554,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:554,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:554,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:555,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:555,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:555,1
    - Dst: h2o_qpack_decoder_send_stream_cancel
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:556,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:557,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:557,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:560,1
    - Dst: feed_encoder_stream
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:565,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:566,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:567,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:568,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:568,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:568,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:569,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:569,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:569,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:570,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:570,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:570,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:571,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:571,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:571,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 575
    functionName: test_rfc9204_appendix_b
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - h2o_qpack_decoder_send_state_sync
    - H2O_STRLIT
    - note
    - h2o_qpack_destroy_decoder
    - feed_encoder_stream
    - ok
    - h2o_memis
    - h2o_qpack_create_decoder
    - do_test_decode_field_section
    - h2o_qpack_decoder_send_stream_cancel
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_rfc9204_appendix_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:582,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:584,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dec
    - input
    - expected_err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: do_test_decoder_stream_error
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - ok
    - h2o_qpack_decoder_handle_input
    linkageType: ''
    returnType: void
    signature: void do_test_decoder_stream_error(h2o_qpack_decoder_t *dec, h2o_iovec_t
      input, const char *expected_err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:593,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dec
    - input
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 594
    functionName: do_test_decode_context_error
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - parse_decode_context
    - ok
    linkageType: ''
    returnType: void
    signature: void do_test_decode_context_error(h2o_qpack_decoder_t *dec, h2o_iovec_t
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:604,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:606,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:606,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:607,1
    - Dst: decode_header
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:607,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:608,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dec
    - input
    - expected_err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 611
    functionName: do_test_decode_header_error
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - decode_header
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - ok
    - parse_decode_context
    linkageType: ''
    returnType: void
    signature: void do_test_decode_header_error(h2o_qpack_decoder_t *dec, h2o_iovec_t
      input, const char *expected_err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:615,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:617,1
    - Dst: do_test_decoder_stream_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:620,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:620,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:621,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:625,1
    - Dst: do_test_decoder_stream_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:628,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:628,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:629,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:633,1
    - Dst: do_test_decoder_stream_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:636,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:636,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:637,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:641,1
    - Dst: do_test_decoder_stream_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:644,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:644,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:645,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:649,1
    - Dst: do_test_decoder_stream_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:658,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:658,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:659,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:662,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:664,1
    - Dst: do_test_decode_context_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:667,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:667,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:668,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:672,1
    - Dst: do_test_decode_context_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:675,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:675,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:676,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:679,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:681,1
    - Dst: do_test_decode_header_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:689,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:689,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:690,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:694,1
    - Dst: do_test_decode_header_error
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:701,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:701,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 704
    functionName: test_decode_errors
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - note
    - do_test_decode_header_error
    - h2o_qpack_destroy_decoder
    - do_test_decode_context_error
    - do_test_decoder_stream_error
    - h2o_qpack_create_decoder
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_decode_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:708,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:710,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:719,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:720,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:721,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:722,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:723,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:724,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:727,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:729,1
    - Dst: feed_encoder_stream
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:735,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:736,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:737,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:738,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:739,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:742,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:744,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:752,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:752,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:753,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:754,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:755,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:756,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:759,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:761,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:767,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:767,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:768,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:768,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:769,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:770,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:773,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:775,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:781,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:781,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:782,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:782,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:785,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:785,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:786,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:786,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:787,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:788,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:791,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:793,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:799,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:799,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:800,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:800,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:803,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:803,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:804,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:804,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:805,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:808,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:810,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:823,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:823,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:824,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:824,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:826,1
    - Dst: parse_decode_context
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:826,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:827,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:827,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:832,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:832,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:833,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:834,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:835,1
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 838
    functionName: test_decode_edge_cases
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - note
    - check_decode_context_blocked
    - h2o_qpack_destroy_decoder
    - feed_encoder_stream
    - ok
    - h2o_qpack_create_decoder
    - parse_decode_context
    - h2o_qpack_decoder_handle_input
    linkageType: ''
    returnType: void
    signature: void test_decode_edge_cases(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:842,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:843,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:844,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:845,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:846,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:847,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/qpack.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 849
    functionName: test_lib__http3_qpack
    functionSourceFile: /src/h2o/t/00unit/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http3_qpack(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sched
    - _x
    - _y
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: compare_node
    functionSourceFile: /src/h2o/t/00unit/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_node(struct st_h2o_http3_req_scheduler_t *sched, const
      struct st_h2o_http3_req_scheduler_node_t *_x,\n                        const
      struct st_h2o_http3_req_scheduler_node_t *_y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/http3/server.c:47,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/http3/server.c:49,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/http3/server.c:49,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00unit/lib/http3/server.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sched
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    assertStmts:
    - condition: (!h2o_linklist_is_empty(anchor))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/t/00unit/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: get_top_node
    functionSourceFile: /src/h2o/t/00unit/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: struct sched_node_t
    signature: struct sched_node_t *get_top_node(struct st_h2o_http3_req_scheduler_t
      *sched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:56,1
    - Dst: req_scheduler_setup_for_next
      Src: /src/h2o/t/00unit/lib/http3/server.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sched
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: run_once
    functionSourceFile: /src/h2o/t/00unit/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_top_node
    - req_scheduler_setup_for_next
    linkageType: ''
    returnType: void
    signature: void run_once(struct st_h2o_http3_req_scheduler_t *sched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: req_scheduler_init
      Src: /src/h2o/t/00unit/lib/http3/server.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:66,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:72,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:73,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:74,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:75,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:76,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:76,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:77,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:77,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:78,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:78,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:82,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:82,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:86,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:87,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:88,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:88,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:93,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:94,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:95,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:96,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:96,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:97,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:98,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:98,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:99,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:99,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:102,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:103,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:103,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:104,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:105,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:105,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:107,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:108,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:108,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:112,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:113,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:115,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:115,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:116,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:117,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:117,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:118,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:120,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:120,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http3/server.c:124,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:125,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:125,1
    - Dst: run_once
      Src: /src/h2o/t/00unit/lib/http3/server.c:126,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:127,1
    - Dst: get_top_node
      Src: /src/h2o/t/00unit/lib/http3/server.c:127,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:130,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:131,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/t/00unit/lib/http3/server.c:132,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http3/server.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 134
    functionName: test_scheduler
    functionSourceFile: /src/h2o/t/00unit/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - run_once
    - req_scheduler_init
    - req_scheduler_activate
    - ok
    - req_scheduler_deactivate
    - get_top_node
    linkageType: ''
    returnType: void
    signature: void test_scheduler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http3/server.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: test_lib__http3_server
    functionSourceFile: /src/h2o/t/00unit/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http3_server(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/common/multithread.c:49,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - receiver
    argTypes:
    - h2o_multithread_receiver_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: send_empty_message
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_multithread_send_message
    linkageType: ''
    returnType: void
    signature: void send_empty_message(h2o_multithread_receiver_t *receiver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00unit/lib/common/multithread.c:56,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/t/00unit/lib/common/multithread.c:57,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/multithread.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: pop_empty_message
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - free
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void pop_empty_message(h2o_linklist_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/common/multithread.c:63,1
    - Dst: pop_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:64,1
    - Dst: send_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:66,1
    - Dst: send_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - receiver
    - list
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: on_ping
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - send_empty_message
    - h2o_linklist_is_empty
    - pop_empty_message
    linkageType: ''
    returnType: void
    signature: void on_ping(h2o_multithread_receiver_t *receiver, h2o_linklist_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/common/multithread.c:76,1
    - Dst: pop_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:77,1
    - Dst: send_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - receiver
    - list
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: on_pong
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - send_empty_message
    - h2o_linklist_is_empty
    - pop_empty_message
    linkageType: ''
    returnType: void
    signature: void on_pong(h2o_multithread_receiver_t *receiver, h2o_linklist_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/common/multithread.c:84,1
    - Dst: pop_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - receiver
    - list
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: on_shutdown
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - pop_empty_message
    linkageType: ''
    returnType: void
    signature: void on_shutdown(h2o_multithread_receiver_t *receiver, h2o_linklist_t
      *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/common/multithread.c:92,1
    - Dst: uv_loop_init
      Src: /src/h2o/t/00unit/lib/common/multithread.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: create_loop
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - uv_loop_init
    linkageType: ''
    returnType: h2o_loop_t
    signature: h2o_loop_t *create_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_run
      Src: /src/h2o/t/00unit/lib/common/multithread.c:99,1
    - Dst: uv_loop_close
      Src: /src/h2o/t/00unit/lib/common/multithread.c:100,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/multithread.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: destroy_loop
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - free
    - uv_loop_close
    - uv_run
    linkageType: ''
    returnType: void
    signature: void destroy_loop(h2o_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - loop
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: destroy_loop
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: destroy_loop(loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_run
      Src: /src/h2o/t/00unit/lib/common/multithread.c:112,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/t/00unit/lib/common/multithread.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: worker_main
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_evloop_run
    - uv_run
    linkageType: ''
    returnType: void
    signature: void *worker_main(void *_unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_loop
      Src: /src/h2o/t/00unit/lib/common/multithread.c:125,1
    - Dst: h2o_multithread_create_queue
      Src: /src/h2o/t/00unit/lib/common/multithread.c:126,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:127,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:128,1
    - Dst: create_loop
      Src: /src/h2o/t/00unit/lib/common/multithread.c:129,1
    - Dst: h2o_multithread_create_queue
      Src: /src/h2o/t/00unit/lib/common/multithread.c:130,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:131,1
    - Dst: pthread_create
      Src: /src/h2o/t/00unit/lib/common/multithread.c:133,1
    - Dst: send_empty_message
      Src: /src/h2o/t/00unit/lib/common/multithread.c:136,1
    - Dst: uv_run
      Src: /src/h2o/t/00unit/lib/common/multithread.c:140,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/t/00unit/lib/common/multithread.c:142,1
    - Dst: pthread_join
      Src: /src/h2o/t/00unit/lib/common/multithread.c:146,1
    - Dst: h2o_multithread_unregister_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:148,1
    - Dst: h2o_multithread_destroy_queue
      Src: /src/h2o/t/00unit/lib/common/multithread.c:149,1
    - Dst: destroy_loop
      Src: /src/h2o/t/00unit/lib/common/multithread.c:150,1
    - Dst: h2o_multithread_unregister_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:151,1
    - Dst: h2o_multithread_unregister_receiver
      Src: /src/h2o/t/00unit/lib/common/multithread.c:152,1
    - Dst: h2o_multithread_destroy_queue
      Src: /src/h2o/t/00unit/lib/common/multithread.c:153,1
    - Dst: destroy_loop
      Src: /src/h2o/t/00unit/lib/common/multithread.c:154,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/multithread.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 157
    functionName: test_lib__common__multithread_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - uv_run
    - pthread_join
    - h2o_multithread_destroy_queue
    - destroy_loop
    - create_loop
    - h2o_evloop_run
    - h2o_multithread_create_queue
    - h2o_multithread_unregister_receiver
    - ok
    - h2o_multithread_register_receiver
    - send_empty_message
    linkageType: ''
    returnType: void
    signature: void test_lib__common__multithread_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:29,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:37,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:39,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:40,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:40,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:43,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:46,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:46,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:48,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:49,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:49,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:50,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:51,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:55,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:58,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:58,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:59,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:60,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:61,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:61,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:61,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:62,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:66,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:68,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:71,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:71,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:72,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:73,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:74,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:74,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:74,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:76,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:77,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:80,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:82,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:83,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:83,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:88,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:91,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:91,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:92,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:94,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:94,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:94,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:96,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:99,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:102,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:102,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:103,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:104,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:105,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:105,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:105,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:106,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:107,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:108,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:110,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:113,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:113,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:114,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:115,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:116,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:116,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:116,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:118,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:119,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:121,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:124,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:124,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:125,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:126,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:127,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:127,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:127,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:128,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:130,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:133,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:133,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:134,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:135,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:136,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:136,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:136,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:137,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:138,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:139,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:142,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:142,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:143,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:144,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:145,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:145,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:145,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:146,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:147,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:148,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:149,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:151,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:153,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:156,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:156,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:157,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:158,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:159,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:159,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:159,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:160,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:161,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:162,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:163,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:164,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:165,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:167,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:170,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:170,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:171,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:172,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:173,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:173,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:173,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:174,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:175,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:176,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:177,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:178,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:179,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:180,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:181,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:182,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:183,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:185,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:188,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:188,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:189,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:190,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:191,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:191,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:191,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:192,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:193,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:194,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:195,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:196,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:197,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:198,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:199,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:200,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:201,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:203,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:206,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:206,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:207,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:208,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:209,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:209,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:209,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:210,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:211,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:212,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:213,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:214,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:215,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:216,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:218,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:221,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:221,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:222,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:223,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:224,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:224,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:224,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:225,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:226,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:227,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:228,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:229,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:230,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:231,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:232,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:233,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:234,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:236,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:239,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:239,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:240,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:241,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:242,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:242,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:242,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:243,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:244,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:245,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:246,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:247,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:248,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:249,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:250,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:251,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:252,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:254,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:257,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:257,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:258,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:259,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:260,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:260,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:260,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:261,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:262,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:263,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:264,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:265,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:266,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:267,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:269,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:272,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:272,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:273,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:274,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:275,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:275,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:275,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:276,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:277,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:278,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:279,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:280,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:281,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:282,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:284,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:287,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:287,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:288,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:289,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:290,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:290,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:290,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:291,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:292,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:293,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:294,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:295,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:296,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:297,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:298,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:299,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:301,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:304,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:304,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:305,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:306,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:307,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:307,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:307,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:308,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:309,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:311,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:311,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:312,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:313,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:314,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:314,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:314,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:315,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:316,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:317,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:318,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:319,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:320,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:322,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:325,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:325,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:326,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:327,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:328,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:328,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:328,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:329,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:330,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:331,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:332,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:333,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:334,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:336,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:339,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:339,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:340,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:341,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:342,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:342,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:342,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:343,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:344,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:345,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:346,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:347,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:348,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:350,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:353,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:353,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:354,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:355,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:356,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:356,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:356,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:357,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:358,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:359,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:360,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:361,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:362,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:364,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:367,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:367,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:368,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:369,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:370,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:370,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:370,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:371,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:372,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:373,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:374,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:376,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:379,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:379,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:380,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:381,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:382,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:382,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:382,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:383,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:384,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:385,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:388,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:388,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:389,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:390,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:391,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:391,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:391,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:392,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:393,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:394,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:397,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:397,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:398,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:399,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:400,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:400,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:400,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:401,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:402,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:403,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:406,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:406,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:407,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:408,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:409,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:409,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:409,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:410,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:411,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:412,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:415,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:415,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:416,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:417,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:418,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:418,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:418,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:419,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:422,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:422,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:423,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:424,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:425,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:425,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:425,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:426,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:427,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:428,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:429,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:431,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:434,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:434,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:435,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:436,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:437,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:437,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:437,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:438,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:439,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:440,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:441,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:443,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:446,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:446,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:447,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:448,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:449,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:449,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:449,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:450,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:451,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:452,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:453,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:455,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:458,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:458,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/t/00unit/lib/common/url.c:459,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:460,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:461,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:461,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:461,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:462,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:463,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:464,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:465,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:467,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 401
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 471
    functionName: test_normalize_path
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - memcmp
    - h2o_url_normalize_path
    - ok
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_normalize_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:479,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:479,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:480,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:481,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:482,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:482,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:482,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:483,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:485,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:485,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:486,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:487,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:487,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:488,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:488,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:488,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:489,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:491,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:491,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:492,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:493,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:493,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:494,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:494,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:494,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:495,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:497,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:497,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:498,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:499,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:499,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:500,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:500,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:500,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:501,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:503,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:503,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:504,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:505,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:505,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:506,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:506,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:506,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:507,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:509,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:509,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:510,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:511,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:511,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:512,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:512,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:512,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:513,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:515,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:515,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:516,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:517,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/url.c:517,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:518,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:518,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:518,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:519,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:521,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:521,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:522,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:523,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:525,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:525,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:526,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:527,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/url.c:529,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:529,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/t/00unit/lib/common/url.c:530,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 532
    functionName: test_hostport
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - strcmp
    - ok
    - h2o_memis
    - h2o_url_parse_hostport
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_hostport(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:540,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:542,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:543,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:544,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:545,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:545,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:545,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:546,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:546,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:546,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:547,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:548,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:548,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:549,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:549,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:549,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:551,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:552,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:553,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:554,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:554,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:554,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:555,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:555,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:555,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:556,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:557,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:557,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:558,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:558,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:558,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:560,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:561,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:562,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:563,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:563,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:563,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:564,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:564,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:564,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:565,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:566,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:566,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:567,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:567,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:567,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:569,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:570,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:571,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:572,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:572,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:572,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:573,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:573,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:573,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:574,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:575,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:575,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:576,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:576,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:576,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:578,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:579,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:580,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:581,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:581,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:581,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:582,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:582,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:582,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:583,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:584,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:584,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:585,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:585,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:585,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:587,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:588,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:590,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:591,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:593,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:594,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:596,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:597,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:598,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:599,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:599,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:599,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:600,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:600,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:600,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:601,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:602,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:602,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:603,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:603,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:603,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:605,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:606,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:607,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:608,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:608,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:608,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:609,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:609,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:609,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:610,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:611,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:611,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:612,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:612,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:612,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:614,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:615,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:616,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:617,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:617,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:617,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:618,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:618,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:618,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:619,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:620,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:620,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:621,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:621,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:621,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:623,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:624,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:625,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:625,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:625,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 628
    functionName: test_parse
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_url_get_port
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    - h2o_url_parse
    linkageType: ''
    returnType: void
    signature: void test_parse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:636,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:638,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:639,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:640,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:641,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:642,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:643,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:644,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:645,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:645,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:645,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:647,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:648,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:649,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:650,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:651,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:652,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:653,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:654,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:654,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:654,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:656,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:657,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:658,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:659,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:660,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:661,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:662,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:663,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:663,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:663,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:665,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:666,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:667,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:668,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:669,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:669,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:669,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:670,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:670,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:670,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:671,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:672,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:672,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:672,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:674,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:675,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:676,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:677,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:678,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:678,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:678,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:679,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:679,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:679,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:680,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:681,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:681,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:681,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/url.c:683,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:684,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:685,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:686,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:687,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:687,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:687,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:688,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:688,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:688,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:689,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:690,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:690,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:690,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 693
    functionName: test_parse_relative
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    - memset
    - h2o_url_parse_relative
    linkageType: ''
    returnType: void
    signature: void test_parse_relative(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:702,1
    - Dst: h2o_url_parse
      Src: /src/h2o/t/00unit/lib/common/url.c:704,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:705,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:707,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:708,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:709,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:710,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:710,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:710,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:711,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:712,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:712,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:712,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:713,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:713,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:713,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:714,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:715,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:715,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:716,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:716,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:716,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:718,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:719,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:720,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:721,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:721,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:721,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:722,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:723,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:723,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:723,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:724,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:724,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:724,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:725,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:726,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:726,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:727,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:727,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:727,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:729,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:730,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:731,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:732,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:732,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:732,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:733,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:734,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:734,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:734,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:735,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:735,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:735,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:736,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:737,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:737,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:738,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:738,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:738,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:740,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:741,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:742,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:743,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:743,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:743,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:744,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:745,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:745,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:745,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:746,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:746,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:746,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:747,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:748,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:748,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:749,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:749,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:749,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:751,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:752,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:753,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:754,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:754,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:754,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:755,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:756,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:756,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:756,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:757,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:757,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:757,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:758,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:759,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:759,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:760,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:760,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:760,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:762,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:763,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:764,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:765,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:765,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:765,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:766,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:767,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:767,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:767,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:768,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:768,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:768,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:769,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:770,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:770,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:771,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:771,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:771,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:773,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:774,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:775,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:776,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:776,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:776,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:777,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:778,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:778,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:778,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:779,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:779,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:779,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:780,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:781,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:781,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:782,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:782,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:782,1
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/t/00unit/lib/common/url.c:784,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:785,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/t/00unit/lib/common/url.c:786,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:787,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:787,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:787,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:788,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:789,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:789,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:789,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:790,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:790,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:790,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:791,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:792,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/t/00unit/lib/common/url.c:792,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:793,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:793,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:793,1
    - Dst: h2o_url_stringify
      Src: /src/h2o/t/00unit/lib/common/url.c:795,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/url.c:796,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/url.c:796,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/url.c:796,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/url.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 799
    functionName: test_resolve
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_url_get_port
    - h2o_url_stringify
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - ok
    - h2o_memis
    - h2o_url_resolve
    - h2o_url_parse_relative
    - h2o_url_parse
    linkageType: ''
    returnType: void
    signature: void test_resolve(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/url.c:803,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/url.c:804,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/url.c:805,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/url.c:806,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/url.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 808
    functionName: test_lib__common__url_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/url.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__url_c(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: select_protocol
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:30,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:40,1
    - Dst: select_protocol
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:57,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:60,1
    - Dst: select_protocol
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:77,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:80,1
    - Dst: select_protocol
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:88,1
    - Dst: select_protocol
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:94,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 96
    functionName: test_should_use_h2
    functionSourceFile: /src/h2o/t/00unit/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - select_protocol
    - ok
    linkageType: ''
    returnType: void
    signature: void test_should_use_h2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/httpclient.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: test_lib__common__httpclient_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__httpclient_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:28,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:28,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:28,1
    - Dst: on_alpn_select
      Src: /src/h2o/t/00unit/lib/common/socket.c:33,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:33,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:34,1
    - Dst: on_alpn_select
      Src: /src/h2o/t/00unit/lib/common/socket.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:38,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/socket.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:38,1
    - Dst: on_alpn_select
      Src: /src/h2o/t/00unit/lib/common/socket.c:40,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:42,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/socket.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:42,1
    - Dst: on_alpn_select
      Src: /src/h2o/t/00unit/lib/common/socket.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:46,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/socket.c:46,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/socket.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: test_on_alpn_select
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - ok
    - H2O_STRLIT
    - on_alpn_select
    linkageType: ''
    returnType: void
    signature: void test_on_alpn_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/t/00unit/lib/common/socket.c:54,1
    - Dst: h2o_sliding_counter_stop
      Src: /src/h2o/t/00unit/lib/common/socket.c:55,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:56,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/t/00unit/lib/common/socket.c:59,1
    - Dst: h2o_sliding_counter_stop
      Src: /src/h2o/t/00unit/lib/common/socket.c:60,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:62,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/t/00unit/lib/common/socket.c:64,1
    - Dst: h2o_sliding_counter_stop
      Src: /src/h2o/t/00unit/lib/common/socket.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:66,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/t/00unit/lib/common/socket.c:69,1
    - Dst: h2o_sliding_counter_stop
      Src: /src/h2o/t/00unit/lib/common/socket.c:70,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: test_sliding_counter
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_sliding_counter_start
    - h2o_sliding_counter_stop
    - ok
    linkageType: ''
    returnType: void
    signature: void test_sliding_counter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sock
    - notsent_lowat
    argTypes:
    - h2o_socket_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: test_adjust_notsent_lowat
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_adjust_notsent_lowat(h2o_socket_t *sock, unsigned notsent_lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/socket.c:103,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/socket.c:104,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:107,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:109,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:110,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:111,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:112,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/socket.c:115,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:119,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:120,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:121,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:122,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:123,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:127,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:131,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:132,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:133,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:137,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:139,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:140,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:141,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:142,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:143,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:147,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:149,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:151,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:152,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:153,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/t/00unit/lib/common/socket.c:157,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:159,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:160,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:161,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:162,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 164
    functionName: test_prepare_for_latency_optimization
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - memset
    - prepare_for_latency_optimized_write
    - ok
    linkageType: ''
    returnType: void
    signature: void test_prepare_for_latency_optimization(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:171,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/t/00unit/lib/common/socket.c:171,1
    - Dst: zerocopy_buffers_push
      Src: /src/h2o/t/00unit/lib/common/socket.c:173,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:175,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/t/00unit/lib/common/socket.c:175,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:176,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:176,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:178,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/t/00unit/lib/common/socket.c:178,1
    - Dst: zerocopy_buffers_push
      Src: /src/h2o/t/00unit/lib/common/socket.c:183,1
    - Dst: zerocopy_buffers_push
      Src: /src/h2o/t/00unit/lib/common/socket.c:184,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:185,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:185,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:190,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:190,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:191,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:191,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:192,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:193,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:193,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:194,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/t/00unit/lib/common/socket.c:197,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:198,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:198,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/socket.c:202,1
    - Dst: zerocopy_buffers_dispose
      Src: /src/h2o/t/00unit/lib/common/socket.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 205
    functionName: test_zerocopy_buffers
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - zerocopy_buffers_dispose
    - zerocopy_buffers_push
    - zerocopy_buffers_is_empty
    - ok
    - zerocopy_buffers_release
    linkageType: ''
    returnType: void
    signature: void test_zerocopy_buffers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zerocopy_buffers_push
      Src: /src/h2o/t/00unit/lib/common/socket.c:217,1
    - Dst: RAND
      Src: /src/h2o/t/00unit/lib/common/socket.c:218,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/t/00unit/lib/common/socket.c:222,1
    - Dst: RAND
      Src: /src/h2o/t/00unit/lib/common/socket.c:223,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/t/00unit/lib/common/socket.c:225,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/common/socket.c:227,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/common/socket.c:233,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/common/socket.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!freed[p - 100000])
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/h2o/t/00unit/lib/common/socket.c
    - condition: (freed[i])
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/h2o/t/00unit/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 237
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 237
    functionName: test_zerocopy_buffers_random
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - RAND
    - zerocopy_buffers_is_empty
    - zerocopy_buffers_push
    - zerocopy_buffers_release
    - assert
    linkageType: ''
    returnType: void
    signature: void test_zerocopy_buffers_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: RAND
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAND()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/socket.c:241,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/socket.c:242,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/socket.c:243,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/socket.c:244,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/socket.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: test_lib__common__socket_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__socket_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:27,1
    - Dst: h2o_strstr
      Src: /src/h2o/t/00unit/lib/common/string.c:27,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:28,1
    - Dst: h2o_strstr
      Src: /src/h2o/t/00unit/lib/common/string.c:28,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:29,1
    - Dst: h2o_strstr
      Src: /src/h2o/t/00unit/lib/common/string.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: test_strstr
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_strstr
    - ok
    linkageType: ''
    returnType: void
    signature: void test_strstr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:37,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:37,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:37,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:39,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:39,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:39,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:40,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:41,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:41,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:41,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:43,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:43,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:45,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:45,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:45,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/t/00unit/lib/common/string.c:46,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:47,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:47,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: test_stripws
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_str_stripws
    - H2O_STRLIT
    - ok
    linkageType: ''
    returnType: void
    signature: void test_stripws(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:54,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:55,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:55,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:55,1
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:56,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:56,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:57,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:57,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:57,1
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:58,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:58,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:59,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:59,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:59,1
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:60,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:60,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:61,1
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:62,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:62,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:63,1
    - Dst: h2o_get_filext
      Src: /src/h2o/t/00unit/lib/common/string.c:64,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: test_get_filext
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - ok
    - h2o_get_filext
    - H2O_STRLIT
    linkageType: ''
    returnType: void
    signature: void test_get_filext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:80,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:82,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:82,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:82,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:84,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:84,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:84,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:86,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:86,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:86,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:88,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:90,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:90,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:92,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:92,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:92,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:94,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:94,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:94,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:96,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:98,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:98,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:99,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:100,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:102,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:102,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:103,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:104,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:105,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:106,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:107,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:108,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:108,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:108,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:109,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: test_next_token
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - ok
    - h2o_memis
    - h2o_next_token
    - NEXT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_next_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: NEXT
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:127,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:127,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:128,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:129,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:129,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:131,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:132,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:133,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:133,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:133,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:134,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:134,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:134,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:135,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:136,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:136,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:136,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:137,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:138,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:139,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:140,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:142,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:142,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:143,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:144,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:144,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:144,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:145,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:146,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:147,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:148,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:148,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:148,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:149,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:149,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:149,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:151,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:151,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:151,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:152,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:153,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:153,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 156
    functionName: test_next_token2
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - ok
    - h2o_memis
    - h2o_next_token
    - NEXT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_next_token2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: NEXT
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:170,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:170,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:171,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:172,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:172,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:172,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:173,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:174,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:175,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:176,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:176,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:176,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:177,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:177,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:177,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:178,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:179,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:179,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:179,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:180,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:181,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:182,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:183,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:183,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:183,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:184,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:185,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:186,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:187,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:187,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:187,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:188,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:189,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:190,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:191,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:191,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:191,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:192,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:193,1
    - Dst: NEXT
      Src: /src/h2o/t/00unit/lib/common/string.c:194,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:195,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:195,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:195,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:196,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:197,1
    - Dst: h2o_next_token
      Src: /src/h2o/t/00unit/lib/common/string.c:198,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 202
    functionName: test_next_token3
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - ok
    - h2o_memis
    - h2o_next_token
    - NEXT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_next_token3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: NEXT
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:209,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:211,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/t/00unit/lib/common/string.c:212,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:213,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:213,1
    - Dst: h2o_decode_base64url
      Src: /src/h2o/t/00unit/lib/common/string.c:214,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/common/string.c:214,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:215,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:216,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:216,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: test_decode_base64
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - strcmp
    - h2o_decode_base64url
    - h2o_base64_encode
    - ok
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_decode_base64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:224,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:232,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:233,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:234,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: test_htmlescape
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - TEST
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    linkageType: ''
    returnType: void
    signature: void test_htmlescape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(src, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:244,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:252,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:253,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:254,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:255,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:256,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:257,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: test_uri_escape
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - TEST
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    linkageType: ''
    returnType: void
    signature: void test_uri_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - src
    - ','
    - preserve
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(src, preserve, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:267,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:277,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:278,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:278,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:278,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:279,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:281,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:282,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:282,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:282,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:283,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:285,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:286,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:287,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:289,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:290,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:291,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:293,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:294,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: test_uri_unescape
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - h2o_mem_init_pool
    - ok
    - TEST
    linkageType: ''
    returnType: void
    signature: void test_uri_unescape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(src, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:307,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:307,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:308,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:309,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:309,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:311,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:311,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:312,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:313,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:313,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:315,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:315,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:316,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:317,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:317,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:319,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:319,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:320,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:321,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:321,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:323,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:323,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:324,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:325,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:325,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:327,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:327,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:328,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:329,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:329,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:331,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:331,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:332,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:333,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:333,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:335,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:336,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:337,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:338,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:338,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:340,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:341,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:342,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:343,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:343,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:345,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:345,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:346,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:347,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/string.c:347,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:350,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:350,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:351,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:353,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:353,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:354,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/t/00unit/lib/common/string.c:356,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:356,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 358
    functionName: test_at_position
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - strcmp
    - H2O_STRLIT
    - h2o_str_at_position
    - ok
    linkageType: ''
    returnType: void
    signature: void test_at_position(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:363,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:366,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:367,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:367,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:367,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:367,1
    - Dst: h2o_join_list
      Src: /src/h2o/t/00unit/lib/common/string.c:370,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/string.c:370,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:370,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/string.c:371,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/string.c:371,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/string.c:371,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: test_join_list
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - h2o_join_list
    - ok
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_join_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:379,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:394,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/common/string.c:395,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/common/string.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 398
    functionName: test_split
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - TEST
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    linkageType: ''
    returnType: void
    signature: void test_split(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - needle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(str, needle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:402,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:403,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:404,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:405,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:406,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:407,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:408,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:409,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:410,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:411,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:412,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:413,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/string.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 415
    functionName: test_lib__common__string_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/string.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__string_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: DUMP_WHEEL
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_WHEEL(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: DUMP_WHEEL
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_WHEEL(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: my_callback
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void my_callback(h2o_timerwheel_entry_t *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: lcg_rand
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lcg_rand()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: timer_wheel
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:56,1
    - Dst: timer_slot
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:57,1
    - Dst: calc_expire_for_slot
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:58,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:60,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:61,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 75
    functionName: test_slot_calc
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - timer_wheel
    - fprintf
    - ok
    - calc_expire_for_slot
    - timer_slot
    linkageType: ''
    returnType: void
    signature: void test_slot_calc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:81,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:88,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:89,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:93,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:93,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:94,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: test_add_fixed_timers
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - DUMP_WHEEL
    - h2o_timerwheel_destroy
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_add_fixed_timers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:102,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:109,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:110,1
    - Dst: h2o_timerwheel_unlink
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:115,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:119,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:119,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:120,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:121,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:121,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:122,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: test_del_timers
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_unlink
    - h2o_timerwheel_init_entry
    - DUMP_WHEEL
    - h2o_timerwheel_destroy
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_del_timers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:130,1
    - Dst: lcg_rand
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:136,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:137,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:138,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:143,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:143,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:144,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:145,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: test_add_rand_timers
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - DUMP_WHEEL
    - h2o_timerwheel_destroy
    - lcg_rand
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_add_rand_timers()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:152,1
    - Dst: calloc
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:158,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:163,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:164,1
    - Dst: DUMP_WHEEL
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:170,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:171,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:173,1
    - Dst: h2o_timerwheel_dump
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:174,1
    - Dst: abort
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:175,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 181
    functionName: test_invalid_timer
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - calloc
    - h2o_timerwheel_dump
    - h2o_timerwheel_link_abs
    - abort
    - DUMP_WHEEL
    - h2o_timerwheel_destroy
    - fprintf
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_invalid_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:192,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:193,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:196,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:197,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: test_exhaustive_on_expire
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - note
    - ok
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void test_exhaustive_on_expire(h2o_timerwheel_entry_t *timer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:205,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:212,1
    - Dst: mmap
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:216,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:219,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:226,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:226,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:227,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:228,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:229,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:232,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:241,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:243,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:247,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:248,1
    - Dst: munmap
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:250,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!h2o_linklist_is_empty(&test_exhaustive_data.unused))
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/h2o/t/00unit/lib/common/timerwheel.c
    constantsTouched: []
    func_position:
      end: 252
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 252
    functionName: test_exhaustive
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - note
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timerwheel_link_abs
    - munmap
    - h2o_timerwheel_destroy
    - h2o_linklist_init_anchor
    - ok
    - h2o_linklist_unlink
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    - mmap
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void test_exhaustive(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:268,1
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:274,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:276,1
    - Dst: OK
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:278,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:278,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:279,1
    - Dst: OK
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:280,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:284,1
    - Dst: OK
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:285,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:287,1
    - Dst: OK
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:290,1
    - Dst: OK
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:292,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:292,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:293,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 300
    functionName: test_get_wake_at
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - OK
    - h2o_timerwheel_destroy
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_get_wake_at(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: OK
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK(cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:305,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:311,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:312,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:315,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:316,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:319,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:320,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 326
    functionName: test_overflow
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - note
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:331,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:336,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:337,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:339,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:340,1
    - Dst: h2o_timerwheel_init_entry
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:342,1
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:343,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:345,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:346,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:348,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:349,1
    - Dst: h2o_timerwheel_run
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:351,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: test_multiple_cascade_in_sparse_wheels
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_link_abs
    - h2o_timerwheel_init_entry
    - h2o_timerwheel_destroy
    - ok
    - h2o_timerwheel_run
    - h2o_timerwheel_create
    linkageType: ''
    returnType: void
    signature: void test_multiple_cascade_in_sparse_wheels(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:358,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:359,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:360,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:361,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:362,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:363,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:364,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:365,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/timerwheel.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: test_lib__common__timerwheel_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__timerwheel_c()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_uuid_rfc4122
      Src: /src/h2o/t/00unit/lib/common/rand.c:30,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/rand.c:31,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/common/rand.c:31,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/rand.c:32,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/rand.c:32,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/rand.c:34,1
    - Dst: format_uuid_rfc4122
      Src: /src/h2o/t/00unit/lib/common/rand.c:35,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/rand.c:36,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/common/rand.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/rand.c:37,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/rand.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: test_format_uuid_rfc4122
    functionSourceFile: /src/h2o/t/00unit/lib/common/rand.c
    functionUses: 0
    functionsReached:
    - format_uuid_rfc4122
    - strcmp
    - ok
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_format_uuid_rfc4122(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/rand.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: test_lib__common__rand_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/rand.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__rand_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:30,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:31,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:31,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:31,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:32,1
    - Dst: ntohl
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:32,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:34,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:35,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:35,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:36,1
    - Dst: ntohl
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:36,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:39,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:39,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:39,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:40,1
    - Dst: ntohl
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:42,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:43,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:44,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:45,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:45,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:46,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:46,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: test_aton
    functionSourceFile: /src/h2o/t/00unit/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - h2o_hostinfo_aton
    - H2O_STRLIT
    - ntohl
    - ok
    - memset
    linkageType: ''
    returnType: void
    signature: void test_aton(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/hostinfo.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: test_lib__common__hostinfo_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__hostinfo_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsetenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:31,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:32,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:33,1
    - Dst: setenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:35,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:38,1
    - Dst: setenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:40,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:44,1
    - Dst: setenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:46,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:48,1
    - Dst: setenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:51,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: test_server_starter
    functionSourceFile: /src/h2o/t/00unit/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - h2o_server_starter_get_fds
    - setenv
    - unsetenv
    - ok
    linkageType: ''
    returnType: void
    signature: void test_server_starter(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_read_command
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:64,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:67,1
    - Dst: WIFEXITED
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:68,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:69,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:69,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:69,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:70,1
    - Dst: setenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:74,1
    - Dst: h2o_read_command
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:75,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:76,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:78,1
    - Dst: WIFEXITED
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:78,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:79,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:79,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:80,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:80,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:81,1
    - Dst: unsetenv
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:83,1
    - Dst: h2o_read_command
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:87,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:88,1
    - Dst: WIFEXITED
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:88,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 89
    functionName: test_read_command_basic
    functionSourceFile: /src/h2o/t/00unit/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - h2o_read_command
    - h2o_buffer_dispose
    - setenv
    - unsetenv
    - ok
    - WIFEXITED
    - WEXITSTATUS
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_read_command_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_read_command
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:97,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:97,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:98,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:99,1
    - Dst: WIFEXITED
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:99,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:100,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:100,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:101,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:101,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:101,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: test_read_command_stdin
    functionSourceFile: /src/h2o/t/00unit/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_memis
    - h2o_read_command
    - h2o_buffer_dispose
    - ok
    - WIFEXITED
    - WEXITSTATUS
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_read_command_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:107,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: test_read_command
    functionSourceFile: /src/h2o/t/00unit/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_read_command(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:113,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/serverutil.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: test_lib__common__serverutil_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__serverutil_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:32,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:32,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:33,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:34,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:38,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:39,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:40,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:45,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:47,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:51,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:51,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:53,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:58,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:58,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:59,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:60,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/t/00unit/lib/common/absprio.c:64,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/absprio.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_parser
    functionSourceFile: /src/h2o/t/00unit/lib/common/absprio.c
    functionUses: 0
    functionsReached:
    - h2o_absprio_parse_priority
    - H2O_STRLIT
    - ok
    linkageType: ''
    returnType: void
    signature: void test_parser(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:71,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:71,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:72,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:72,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:73,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:73,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:74,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:74,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:75,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:76,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:76,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:77,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:77,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/absprio.c:78,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/t/00unit/lib/common/absprio.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: test_urgency_to_weight
    functionSourceFile: /src/h2o/t/00unit/lib/common/absprio.c
    functionUses: 0
    functionsReached:
    - ok
    - h2o_absprio_urgency_to_chromium_weight
    linkageType: ''
    returnType: void
    signature: void test_urgency_to_weight(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/absprio.c:83,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/absprio.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: test_lib__common__absprio_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/absprio.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__absprio_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_time2str_rfc1123
      Src: /src/h2o/t/00unit/lib/common/time.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:39,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/common/time.c:39,1
    - Dst: h2o_time_parse_rfc1123
      Src: /src/h2o/t/00unit/lib/common/time.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/time.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: test_lib__common__time_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/time.c
    functionUses: 0
    functionsReached:
    - strcmp
    - h2o_time_parse_rfc1123
    - h2o_time2str_rfc1123
    - ok
    linkageType: ''
    returnType: void
    signature: void test_lib__common__time_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: on_destroy
    functionSourceFile: /src/h2o/t/00unit/lib/common/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_destroy(h2o_iovec_t vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_create
      Src: /src/h2o/t/00unit/lib/common/cache.c:34,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:36,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:41,1
    - Dst: h2o_cache_set
      Src: /src/h2o/t/00unit/lib/common/cache.c:44,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/cache.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:44,1
    - Dst: h2o_cache_delete
      Src: /src/h2o/t/00unit/lib/common/cache.c:47,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:48,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:49,1
    - Dst: h2o_cache_set
      Src: /src/h2o/t/00unit/lib/common/cache.c:52,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/cache.c:52,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:52,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:55,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:56,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/cache.c:56,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:56,1
    - Dst: h2o_cache_release
      Src: /src/h2o/t/00unit/lib/common/cache.c:57,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:64,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:68,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/cache.c:68,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:68,1
    - Dst: h2o_cache_release
      Src: /src/h2o/t/00unit/lib/common/cache.c:69,1
    - Dst: h2o_cache_set
      Src: /src/h2o/t/00unit/lib/common/cache.c:72,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/common/cache.c:72,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:72,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/t/00unit/lib/common/cache.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:76,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/common/cache.c:76,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/common/cache.c:76,1
    - Dst: h2o_cache_release
      Src: /src/h2o/t/00unit/lib/common/cache.c:77,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:79,1
    - Dst: h2o_cache_destroy
      Src: /src/h2o/t/00unit/lib/common/cache.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/cache.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: test_lib__common__cache_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/cache.c
    functionUses: 0
    functionsReached:
    - h2o_cache_delete
    - h2o_cache_set
    - H2O_STRLIT
    - h2o_iovec_init
    - h2o_cache_fetch
    - ok
    - h2o_cache_release
    - h2o_memis
    - h2o_cache_destroy
    - h2o_cache_create
    linkageType: ''
    returnType: void
    signature: void test_lib__common__cache_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:9,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 19
    functionName: gen_targets
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_vector_reserve
    linkageType: ''
    returnType: h2o_socketpool_target_vector_t
    signature: h2o_socketpool_target_vector_t gen_targets(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:26,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - targets
    argTypes:
    - h2o_socketpool_target_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: free_targets
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_targets(h2o_socketpool_target_vector_t *targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:34,1
    - Dst: h2o_balancer_create_lc
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:40,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:45,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:49,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: test_when_backend_down
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - gen_targets
    - destroy
    - ok
    - selector
    - h2o_balancer_create_lc
    - free_targets
    linkageType: ''
    returnType: void
    signature: void test_when_backend_down(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - targets
    - selected
    argTypes:
    - h2o_socketpool_target_vector_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: check_if_acceptable
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_if_acceptable(h2o_socketpool_target_vector_t *targets, size_t
      selected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:75,1
    - Dst: h2o_balancer_create_lc
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:81,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:86,1
    - Dst: check_if_acceptable
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:89,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:96,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:99,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 101
    functionName: test_least_conn
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - gen_targets
    - destroy
    - ok
    - selector
    - h2o_balancer_create_lc
    - free_targets
    - check_if_acceptable
    linkageType: ''
    returnType: void
    signature: void test_least_conn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:105,1
    - Dst: h2o_balancer_create_lc
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:111,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:119,1
    - Dst: check_if_acceptable
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:122,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:124,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:129,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:132,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: test_least_conn_weighted
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - gen_targets
    - destroy
    - ok
    - selector
    - h2o_balancer_create_lc
    - free_targets
    - check_if_acceptable
    linkageType: ''
    returnType: void
    signature: void test_least_conn_weighted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:138,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:139,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/least_conn.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: test_lib__common__balancer__least_conn_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__balancer__least_conn_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:9,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 19
    functionName: gen_targets
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 3
    functionsReached:
    - h2o_mem_alloc
    - h2o_vector_reserve
    linkageType: ''
    returnType: h2o_socketpool_target_vector_t
    signature: h2o_socketpool_target_vector_t gen_targets(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:26,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - targets
    argTypes:
    - h2o_socketpool_target_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: free_targets
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_targets(h2o_socketpool_target_vector_t *targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:34,1
    - Dst: h2o_balancer_create_rr
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:40,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:45,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:49,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: test_when_backend_down
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached:
    - h2o_balancer_create_rr
    - gen_targets
    - destroy
    - ok
    - selector
    - free_targets
    linkageType: ''
    returnType: void
    signature: void test_when_backend_down(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - targets
    argTypes:
    - h2o_socketpool_target_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: check_weight_distribution
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_weight_distribution(h2o_socketpool_target_vector_t *targets)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:70,1
    - Dst: h2o_balancer_create_rr
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:78,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:92,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:98,1
    - Dst: check_weight_distribution
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:98,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:101,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 103
    functionName: test_round_robin
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached:
    - h2o_balancer_create_rr
    - gen_targets
    - check_weight_distribution
    - destroy
    - ok
    - selector
    - free_targets
    linkageType: ''
    returnType: void
    signature: void test_round_robin(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gen_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:107,1
    - Dst: h2o_balancer_create_rr
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:117,1
    - Dst: selector
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:124,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:126,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:131,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:137,1
    - Dst: check_weight_distribution
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:137,1
    - Dst: destroy
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:140,1
    - Dst: free_targets
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 142
    functionName: test_round_robin_weighted
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached:
    - h2o_balancer_create_rr
    - gen_targets
    - check_weight_distribution
    - destroy
    - ok
    - selector
    - free_targets
    linkageType: ''
    returnType: void
    signature: void test_round_robin_weighted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:146,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:147,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: test_lib__common__balancer__roundrobin_c
    functionSourceFile: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__common__balancer__roundrobin_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:36,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:39,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:40,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:47,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:47,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:48,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:49,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:49,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:50,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:51,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:51,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:51,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:53,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:55,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:57,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:58,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:60,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:65,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:65,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:66,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:67,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:67,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:69,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:69,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:69,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:70,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:71,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:72,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:72,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:72,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:73,1
    - Dst: h2o_lcstris
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:73,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:73,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:75,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:77,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:78,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:80,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:85,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:85,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:87,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:87,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:88,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:89,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:89,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:89,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:90,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:92,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:92,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:92,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:93,1
    - Dst: h2o_lcstris
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:93,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:93,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:95,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 3
    argNames:
    - first_req
    - second_req
    - third_req
    argTypes:
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 97
    functionName: test_request
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_hpack_dispose_header_table
    - H2O_STRLIT
    - h2o_mem_init_pool
    - memcmp
    - h2o_hpack_parse_request
    - h2o_lcstris
    - ok
    - h2o_memis
    - memset
    linkageType: ''
    returnType: void
    signature: void test_request(h2o_iovec_t first_req, h2o_iovec_t second_req, h2o_iovec_t
      third_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:105,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:106,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:110,1
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:110,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:111,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:111,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - header_table
    - res
    - expected
    - expected_len
    argTypes:
    - h2o_hpack_header_table_t*
    - h2o_res_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: check_flatten
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_flatten_response
    - h2o_buffer_init
    - h2o_http2_decode_frame
    - h2o_buffer_dispose
    - ok
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void check_flatten(h2o_hpack_header_table_t *header_table, h2o_res_t
      *res, const char *expected, size_t expected_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:121,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:123,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:134,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:135,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:136,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:137,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:138,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:139,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:140,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:141,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:142,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:143,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:145,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:146,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:147,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:148,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:149,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:150,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:154,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:163,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:164,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:165,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:166,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:167,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:168,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:169,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:170,1
    - Dst: TEST
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:171,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:177,1
    - Dst: h2o_hpack_decode_huffman
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:181,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:182,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:183,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:183,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:184,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:185,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:187,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:189,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:196,1
    - Dst: decode_string
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:199,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:200,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:202,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:204,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:210,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:212,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:213,1
    - Dst: h2o_hpack_decode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:216,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:217,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:218,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:219,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:219,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:220,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:221,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:221,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:222,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:224,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:226,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:232,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:234,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:234,1
    - Dst: h2o_hpack_decode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:237,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:238,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:239,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:240,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:241,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:241,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:242,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:244,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:246,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:252,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:254,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:254,1
    - Dst: h2o_hpack_decode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:257,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:258,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:259,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:260,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:260,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:261,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:262,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:262,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:263,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:265,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:267,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:273,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:275,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:275,1
    - Dst: h2o_hpack_decode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:278,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:279,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:280,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:281,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:282,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:282,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:283,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:285,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:287,1
    - Dst: test_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:288,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:288,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:288,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:289,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:289,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:290,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:290,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:293,1
    - Dst: test_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:294,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:294,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:294,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:295,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:295,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:296,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:296,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:299,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:301,1
    - Dst: h2o_hpack_encode_huffman
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:303,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:303,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:304,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:305,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:305,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:308,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:313,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:316,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:319,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:319,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:320,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:320,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:321,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:321,1
    - Dst: check_flatten
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:322,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:323,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:327,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:330,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:330,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:331,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:331,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:332,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:332,1
    - Dst: check_flatten
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:333,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:333,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:335,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:335,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:336,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:336,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 341
    functionName: test_hpack
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - note
    - h2o_mem_init_pool
    - memcmp
    - h2o_hpack_encode_huffman
    - decode_string
    - strcmp
    - check_flatten
    - h2o_hpack_decode_huffman
    - h2o_add_header
    - ok
    - h2o_hpack_decode_header
    - TEST
    - test_request
    - memset
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_hpack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - input
    - ','
    - output
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(input, output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encoded
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: TEST
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(encoded, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:348,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:352,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:354,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:357,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:358,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:358,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:359,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:360,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:360,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:361,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:361,1
    - Dst: va_start
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:364,1
    - Dst: va_arg
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:367,1
    - Dst: va_arg
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:370,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:371,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:371,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:372,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:372,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:374,1
    - Dst: va_end
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:375,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - ht
    - promise_base
    - promise_len
    - expected_method
    - expected_scheme
    - expected_authority
    - expected_path
    argTypes:
    - h2o_hpack_header_table_t*
    - char*
    - size_t
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 378
    functionName: parse_and_compare_request
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - va_arg
    - h2o_mem_clear_pool
    - va_start
    - h2o_mem_init_pool
    - h2o_hpack_parse_request
    - ok
    - h2o_memis
    - va_end
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void parse_and_compare_request(h2o_hpack_header_table_t *ht, const
      char *promise_base, size_t promise_len,\n                                      h2o_iovec_t
      expected_method, const h2o_url_scheme_t *expected_scheme,\n                                      h2o_iovec_t
      expected_authority, h2o_iovec_t expected_path, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:382,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:382,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:383,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:385,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:386,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:387,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:388,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:388,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:393,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:395,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:401,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:401,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:402,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:403,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:404,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:405,1
    - Dst: h2o_hpack_flatten_push_promise
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:408,1
    - Dst: parse_and_compare_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:410,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:411,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:411,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:414,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:417,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:417,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:419,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:420,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:421,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:422,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:423,1
    - Dst: h2o_hpack_flatten_push_promise
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:426,1
    - Dst: parse_and_compare_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:428,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:429,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:429,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:432,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:435,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:435,1
    - Dst: h2o_hpack_flatten_push_promise
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:438,1
    - Dst: parse_and_compare_request
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:440,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:441,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:441,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:444,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:446,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 448
    functionName: test_hpack_push
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - parse_and_compare_request
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - h2o_buffer_init
    - h2o_buffer_dispose
    - h2o_hpack_flatten_push_promise
    - h2o_add_header
    - h2o_buffer_consume
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_hpack_push(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:456,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:461,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:461,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:462,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:462,1
    - Dst: do_encode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:463,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:465,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:465,1
    - Dst: do_encode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:466,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:468,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:468,1
    - Dst: do_encode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:469,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:471,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:471,1
    - Dst: do_encode_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:472,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:474,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:475,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:487,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:488,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 489
    functionName: test_hpack_dynamic_table
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - memcmp
    - do_encode_header
    - ok
    - memset
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_hpack_dynamic_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:494,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:499,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:503,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:503,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:505,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:508,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:508,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:509,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:514,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:515,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:518,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:518,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:519,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:522,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:523,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 525
    functionName: test_token_wo_hpack_id
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_hpack_dispose_header_table
    - H2O_STRLIT
    - h2o_mem_init_pool
    - h2o_hpack_flatten_response
    - h2o_buffer_init
    - h2o_buffer_dispose
    - h2o_add_header
    - ok
    - h2o_buffer_consume
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void test_token_wo_hpack_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:534,1
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:540,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:542,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:543,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:544,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:545,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:546,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:546,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:547,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:547,1
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:555,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:558,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:560,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:561,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:563,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:564,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:565,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:565,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:566,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:566,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 7
    argNames:
    - first_input
    - second_input
    - expected_name
    - expected_first_value
    - expected_first_err_desc
    - expected_second_value
    - expected_second_err_desc
    argTypes:
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_iovec_t
    - char*
    - h2o_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 571
    functionName: do_test_inherit_invalid
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - h2o_hpack_parse_response
    - ok
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: "void do_test_inherit_invalid(h2o_iovec_t first_input, h2o_iovec_t
      second_input, h2o_iovec_t expected_name,\n                                    h2o_iovec_t
      expected_first_value, const char *expected_first_err_desc,\n                                    h2o_iovec_t
      expected_second_value, const char *expected_second_err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_inherit_invalid
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:584,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:584,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:585,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:585,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:585,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:586,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:586,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:587,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:587,1
    - Dst: do_test_inherit_invalid
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:599,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:599,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:600,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:600,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:600,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:601,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:601,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:602,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:602,1
    - Dst: do_test_inherit_invalid
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:614,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:614,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:615,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:615,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:615,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:616,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:616,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:617,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 619
    functionName: test_inherit_invalid
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - do_test_inherit_invalid
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_inherit_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:626,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:628,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:634,1
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:635,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:637,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:638,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:639,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:640,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:641,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:642,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:642,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:642,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:644,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 646
    functionName: test_dynamic_table_size_update
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - h2o_hpack_flatten_response
    - h2o_buffer_init
    - h2o_hpack_parse_response
    - h2o_buffer_dispose
    - ok
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void test_dynamic_table_size_update(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:655,1
    - Dst: decode_string
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:657,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:658,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:659,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:659,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:660,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:661,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - src
    - len
    - is_header_name
    - expected_result
    argTypes:
    - uint8_t*
    - size_t
    - int
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 664
    functionName: do_test_more_soft_error
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - decode_string
    - ok
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void do_test_more_soft_error(const uint8_t *src, size_t len, int is_header_name,
      h2o_iovec_t expected_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:668,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:669,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:669,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:669,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:670,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:671,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:671,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:671,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:674,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:675,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:675,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:675,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:676,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:676,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:676,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:677,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:677,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:677,1
    - Dst: note
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:678,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:679,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:679,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:679,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:680,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:680,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:680,1
    - Dst: do_test_more_soft_error
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:681,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:681,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 682
    functionName: test_more_soft_errors
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - do_test_more_soft_error
    - note
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_more_soft_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:686,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:687,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:688,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:689,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:690,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:691,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/hpack.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: test_lib__http2__hpack
    functionSourceFile: /src/h2o/t/00unit/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http2__hpack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:28,1
    - Dst: calc_hash
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:28,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:28,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:28,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:29,1
    - Dst: calc_hash
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:29,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:29,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: test_calc_hash
    functionSourceFile: /src/h2o/t/00unit/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - calc_hash
    - ok
    linkageType: ''
    returnType: void
    signature: void test_calc_hash(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_digests_load_header
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:36,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:36,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:44,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:47,1
    - Dst: h2o_cache_digests_lookup_by_url
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:47,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:49,1
    - Dst: h2o_cache_digests_lookup_by_url
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:49,1
    - Dst: h2o_cache_digests_load_header
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:52,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:55,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:56,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:57,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:59,1
    - Dst: h2o_cache_digests_lookup_by_url
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:59,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:59,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:61,1
    - Dst: h2o_cache_digests_lookup_by_url
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:61,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:61,1
    - Dst: h2o_cache_digests_load_header
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:64,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:66,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:67,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:69,1
    - Dst: h2o_cache_digests_destroy
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 72
    functionName: test_decode
    functionSourceFile: /src/h2o/t/00unit/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_cache_digests_destroy
    - h2o_cache_digests_lookup_by_url
    - ok
    - h2o_cache_digests_load_header
    linkageType: ''
    returnType: void
    signature: void test_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:76,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/cache_digests.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: test_lib__http2__cache_digests
    functionSourceFile: /src/h2o/t/00unit/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http2__cache_digests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - cookie
    - cookie_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: get_end_of_cookie_value
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_end_of_cookie_value(char *cookie, size_t cookie_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:37,1
    - Dst: calc_key
      Src: /src/h2o/t/00unit/lib/http2/casper.c:39,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:39,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:40,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:42,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: test_calc_key
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - calc_key
    - H2O_STRLIT
    - h2o_http2_casper_destroy
    - h2o_http2_casper_create
    - memcpy
    - ok
    linkageType: ''
    returnType: void
    signature: void test_calc_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:50,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:52,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:52,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:53,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:53,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:55,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:55,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:55,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:56,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:56,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:56,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:57,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: test_lookup
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_http2_casper_destroy
    - h2o_http2_casper_create
    - h2o_http2_casper_lookup
    - ok
    linkageType: ''
    returnType: void
    signature: void test_lookup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:66,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:69,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:70,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:72,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:72,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:73,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:74,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:75,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:76,1
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:77,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:79,1
    - Dst: get_end_of_cookie_value
      Src: /src/h2o/t/00unit/lib/http2/casper.c:79,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:80,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:80,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:81,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:81,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:81,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:82,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:82,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:84,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:84,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:85,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:86,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:87,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:89,1
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:90,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:92,1
    - Dst: get_end_of_cookie_value
      Src: /src/h2o/t/00unit/lib/http2/casper.c:92,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:93,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:93,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:94,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:94,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:94,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 97
    functionName: test_cookie
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - h2o_http2_casper_destroy
    - h2o_http2_casper_create
    - h2o_http2_casper_lookup
    - h2o_http2_casper_get_cookie
    - h2o_http2_casper_consume_cookie
    - ok
    - get_end_of_cookie_value
    linkageType: ''
    returnType: void
    signature: void test_cookie(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:103,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:104,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:104,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:105,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:106,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:107,1
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:109,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:110,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:110,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:111,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:112,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:113,1
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/t/00unit/lib/http2/casper.c:115,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:116,1
    - Dst: get_end_of_cookie_value
      Src: /src/h2o/t/00unit/lib/http2/casper.c:116,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:117,1
    - Dst: get_end_of_cookie_value
      Src: /src/h2o/t/00unit/lib/http2/casper.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:118,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:119,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:119,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:119,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/t/00unit/lib/http2/casper.c:120,1
    - Dst: get_end_of_cookie_value
      Src: /src/h2o/t/00unit/lib/http2/casper.c:120,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:121,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:122,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:122,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/casper.c:123,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/t/00unit/lib/http2/casper.c:123,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/http2/casper.c:123,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/t/00unit/lib/http2/casper.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: test_cookie_merge
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - h2o_http2_casper_destroy
    - h2o_http2_casper_create
    - h2o_http2_casper_lookup
    - h2o_http2_casper_get_cookie
    - h2o_http2_casper_consume_cookie
    - ok
    - get_end_of_cookie_value
    linkageType: ''
    returnType: void
    signature: void test_cookie_merge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/casper.c:129,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/casper.c:130,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/casper.c:131,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/casper.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: test_lib__http2__casper
    functionSourceFile: /src/h2o/t/00unit/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http2__casper(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:36,1
    - Dst: queue_set
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:37,1
    - Dst: queue_set
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:38,1
    - Dst: queue_set
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:39,1
    - Dst: queue_set
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:40,1
    - Dst: queue_pop
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:43,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:45,1
    - Dst: queue_set
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:49,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:52,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: test_queue
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - queue_set
    - queue_init
    - queue_pop
    - ok
    linkageType: ''
    returnType: void
    signature: void test_queue(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:73,1
    - Dst: strcat
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ref
    - still_is_active
    - _unused
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: iterate_cb
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - strcat
    linkageType: ''
    returnType: int
    signature: int iterate_cb(h2o_http2_scheduler_openref_t *ref, int *still_is_active,
      void *_unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:89,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:90,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:91,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:92,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:97,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:98,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:98,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:101,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:104,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:105,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:105,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:111,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:112,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:112,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:115,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:117,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:118,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:121,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:122,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:122,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:131,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:131,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:134,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:135,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:136,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:139,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:140,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:140,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:142,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:143,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 145
    functionName: test_round_robin
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_run
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_round_robin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:154,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:155,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:156,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:157,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:158,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:159,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:160,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:165,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:166,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:166,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:172,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:173,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:173,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:179,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:180,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:180,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:182,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:183,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:184,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 186
    functionName: test_priority
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_run
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_priority(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:204,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:205,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:206,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:207,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:208,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:209,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:210,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:211,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:212,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:217,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:218,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:218,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:224,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:225,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:225,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:231,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:232,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:232,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:235,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:236,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:240,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:241,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:241,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:243,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:244,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:245,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 247
    functionName: test_dependency
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_run
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_dependency(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:256,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:267,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:268,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:269,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:270,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:274,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:275,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:275,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:278,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:283,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:284,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:284,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:287,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:290,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:291,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:291,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:297,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:298,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:298,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:300,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:301,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:302,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 304
    functionName: test_exclusive
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_run
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_exclusive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:330,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:333,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:334,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:335,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:336,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:337,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:340,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:341,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:344,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:345,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:345,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:348,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:349,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:350,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:351,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:354,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:355,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:355,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:362,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:363,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:363,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:366,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:367,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:370,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:371,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:371,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:373,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:375,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:376,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:377,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:378,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:379,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 381
    functionName: test_firefox
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_run
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_firefox(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:387,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:388,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:388,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:388,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:391,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:397,1
    - Dst: strcat
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:401,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:403,1
    - Dst: strcat
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 410
    functionName: dump_tree
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - strcat
    - h2o_linklist_is_empty
    - h2o_http2_scheduler_get_weight
    - H2O_STRUCT_FROM_MEMBER
    - dump_tree
    - sprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void dump_tree(h2o_http2_scheduler_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:436,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:437,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:438,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:439,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:440,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:441,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:442,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:445,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:446,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:446,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:448,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:450,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:452,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:452,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:454,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:454,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:457,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:458,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:459,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:460,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:461,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:462,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 464
    functionName: test_reprioritize
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - dump_tree
    - h2o_http2_scheduler_rebind
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_reprioritize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:473,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:476,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:477,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:478,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:479,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:480,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:481,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:483,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:484,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:484,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:489,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:490,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:490,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:493,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:495,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:496,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:496,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:499,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:500,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:500,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:507,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:508,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:508,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:510,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:511,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:512,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 514
    functionName: test_change_weight
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - dump_tree
    - h2o_http2_scheduler_rebind
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_init
    - h2o_http2_scheduler_run
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_change_weight(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:523,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:526,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:527,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:528,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:529,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:530,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:531,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:534,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:535,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:535,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:537,1
    - Dst: dump_tree
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:540,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:541,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:541,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:543,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:544,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:545,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 547
    functionName: test_exclusive_at_current_pos
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - dump_tree
    - h2o_http2_scheduler_rebind
    - h2o_http2_scheduler_close
    - h2o_http2_scheduler_activate
    - h2o_http2_scheduler_open
    - strcmp
    - h2o_http2_scheduler_init
    - ok
    - h2o_http2_scheduler_dispose
    linkageType: ''
    returnType: void
    signature: void test_exclusive_at_current_pos(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:551,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:552,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:553,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:554,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:555,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:556,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:558,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:560,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:561,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/http2/scheduler.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 563
    functionName: test_lib__http2__scheduler
    functionSourceFile: /src/h2o/t/00unit/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__http2__scheduler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:30,1
    - Dst: h2o_lcstris
      Src: /src/h2o/t/00unit/lib/handler/file.c:33,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - res
    - header_name
    - expected
    argTypes:
    - h2o_res_t*
    - h2o_token_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: check_header
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_lcstris
    - h2o_find_header
    - strlen
    linkageType: ''
    returnType: int
    signature: int check_header(h2o_res_t *res, const h2o_token_t *header_name, const
      char *expected)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:43,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:48,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:48,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:51,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:54,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:54,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:57,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:62,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:62,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:65,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:68,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - resbody
    - boundary
    - expected
    - partlen
    argTypes:
    - char*
    - char*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: check_multirange_body
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int check_multirange_body(char *resbody, const char *boundary, const
      h2o_iovec_t *expected, size_t partlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:78,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:81,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:81,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:82,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:85,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:89,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:89,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:90,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:92,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:93,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:97,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:97,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:98,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:99,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:100,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:101,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:105,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:105,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:106,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:107,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:108,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:109,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:110,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:111,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:115,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:115,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:116,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:118,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:119,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:120,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:121,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:125,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:125,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:126,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:127,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:128,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:131,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:135,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:135,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:136,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:137,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:141,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:141,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:142,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:143,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:147,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:147,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:148,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:149,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:151,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:155,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:155,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:156,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:157,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:158,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:159,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:163,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:163,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:164,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:165,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:166,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:167,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:168,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:169,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:170,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:171,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:175,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:176,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:177,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:181,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:181,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:182,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:183,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:187,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:187,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:188,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:189,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:193,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:193,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:194,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:195,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:199,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:199,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:200,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:201,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:205,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:205,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:206,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:207,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:211,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:211,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:212,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:213,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:217,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:217,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:218,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:219,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:220,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:221,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:225,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:226,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:227,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:228,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:232,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:232,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:233,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:234,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:235,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:236,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:237,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:238,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:242,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:242,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:243,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:244,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:248,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:248,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:249,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:250,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:254,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:254,1
    - Dst: process_range
      Src: /src/h2o/t/00unit/lib/handler/file.c:255,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:256,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:257,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:258,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:259,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:260,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 264
    functionName: test_process_range
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - process_range
    - ok
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_process_range(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:271,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:273,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:273,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:274,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:274,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:275,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:276,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:277,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:278,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:281,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/file.c:282,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:284,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:288,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:289,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:289,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:290,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:290,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:291,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:292,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:293,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:294,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:295,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:295,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:296,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:300,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:301,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:301,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:302,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:302,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:303,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:304,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:305,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:306,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:307,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:311,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:312,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:312,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:313,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:313,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:314,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:315,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:316,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:317,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:318,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:319,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:319,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 322
    functionName: test_if_modified_since
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - H2O_STRLIT
    - h2o_loopback_destroy
    - memcpy
    - h2o_add_header
    - h2o_find_header
    - ok
    - h2o_loopback_run_loop
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_if_modified_since(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:329,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:331,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:331,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:332,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:332,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:333,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:334,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:335,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:336,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/handler/file.c:339,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:341,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:345,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:346,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:346,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:347,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:347,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:348,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:349,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:350,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:351,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:352,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/handler/file.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 356
    functionName: test_if_match
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - H2O_STRLIT
    - h2o_strdup
    - free
    - h2o_loopback_destroy
    - h2o_add_header
    - h2o_find_header
    - ok
    - h2o_loopback_run_loop
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_if_match(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:365,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:367,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:367,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:368,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:368,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:369,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:370,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:371,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:372,1
    - Dst: h2o_strdup
      Src: /src/h2o/t/00unit/lib/handler/file.c:375,1
    - Dst: malloc
      Src: /src/h2o/t/00unit/lib/handler/file.c:377,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/file.c:381,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:383,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:387,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:389,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:389,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:390,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:390,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:391,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:392,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:393,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:394,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:395,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:398,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/file.c:399,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:401,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:405,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:406,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:406,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:407,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:407,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:408,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:409,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:410,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:411,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:412,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:416,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:417,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:417,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:418,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:418,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:419,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:420,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:420,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:421,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:422,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:423,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:423,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:424,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:424,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:425,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:426,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:426,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:427,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:431,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:432,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:432,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:433,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:433,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:434,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:435,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:435,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:436,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:437,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:438,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:438,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:439,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:439,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:440,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:441,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:441,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:442,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:446,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:447,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:447,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:448,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:448,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:449,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:450,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:450,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:451,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:452,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:453,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:453,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:454,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:455,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:459,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:460,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:460,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:461,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:461,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:463,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:464,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:464,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:465,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:466,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:467,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:467,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:468,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:469,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:473,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:474,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:474,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:475,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:475,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:476,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:476,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:477,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:477,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:478,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:479,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:480,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:480,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:481,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:482,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:486,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:487,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:487,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:488,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:488,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:489,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:489,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:490,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:490,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:491,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:492,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:493,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:493,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:494,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:494,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:495,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:496,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:496,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:497,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/handler/file.c:500,1
    - Dst: free
      Src: /src/h2o/t/00unit/lib/handler/file.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 502
    functionName: test_if_range
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - malloc
    - H2O_STRLIT
    - h2o_strdup
    - check_header
    - memcmp
    - free
    - h2o_loopback_destroy
    - memcpy
    - h2o_add_header
    - h2o_find_header
    - ok
    - h2o_loopback_run_loop
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_if_range(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:507,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:508,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:508,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:509,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:509,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:510,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:511,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:512,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:512,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:513,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:514,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:517,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:517,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:518,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:519,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:519,1
    - Dst: sha1sum
      Src: /src/h2o/t/00unit/lib/handler/file.c:519,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:520,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:523,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:524,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:524,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:525,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:525,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:526,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:526,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:527,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:528,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:529,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:529,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:530,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:530,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:531,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:532,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:532,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:533,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:536,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:537,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:537,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:538,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:538,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:539,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:539,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:540,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:541,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:542,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:542,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:543,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:543,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:544,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:545,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:545,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:546,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:549,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:550,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:550,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:551,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:551,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:552,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:552,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:553,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:554,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:555,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:555,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:556,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:556,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:557,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:558,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:558,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:559,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:562,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:563,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:563,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:564,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:564,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:565,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:565,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:566,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:567,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:568,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:568,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:569,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:569,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:570,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:571,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:571,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:572,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:575,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:576,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:576,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:577,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:577,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:578,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:578,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:579,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:580,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:581,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:581,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:582,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:582,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:583,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:584,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:584,1
    - Dst: sha1sum
      Src: /src/h2o/t/00unit/lib/handler/file.c:584,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:585,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:588,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:589,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:589,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:590,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:590,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:591,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:591,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:592,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:593,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:594,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:594,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:595,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:595,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:596,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:596,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:597,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:597,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:597,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:598,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:601,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:602,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:602,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:603,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:603,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:604,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:604,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:605,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:606,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:607,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:607,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:608,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:608,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:609,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:609,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:610,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:610,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:610,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:611,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:614,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:615,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:615,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:616,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:616,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:617,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:617,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:618,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:619,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:620,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:620,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:621,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:621,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:622,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:622,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:623,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:623,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:623,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:624,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:627,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:628,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:628,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:629,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:629,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:630,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:630,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:631,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:632,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:633,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:633,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:634,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:634,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:635,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:635,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:636,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:636,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:636,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:637,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:640,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:641,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:641,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:642,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:642,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:643,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:643,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:644,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:645,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:646,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:646,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:647,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:647,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:648,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:648,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:649,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:649,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:649,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:650,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:653,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:654,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:654,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:655,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:655,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:656,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:656,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:657,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:658,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:659,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:659,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:660,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:660,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:661,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:661,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:662,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:662,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:662,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:663,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:666,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:667,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:667,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:668,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:668,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:669,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:669,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:670,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:671,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:672,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:672,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:673,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:673,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:674,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:675,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:675,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:676,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:679,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:683,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:684,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:684,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:685,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:685,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:686,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:686,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:687,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:688,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:689,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:690,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:694,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:694,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/file.c:695,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:697,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/lib/handler/file.c:699,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:700,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/lib/handler/file.c:701,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:703,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:703,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:704,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:705,1
    - Dst: check_multirange_body
      Src: /src/h2o/t/00unit/lib/handler/file.c:705,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:706,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:709,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/file.c:713,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:714,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:714,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:715,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:715,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:716,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:716,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:717,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:718,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:719,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:720,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:724,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:724,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/file.c:725,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:727,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/lib/handler/file.c:729,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/t/00unit/lib/handler/file.c:730,1
    - Dst: sprintf
      Src: /src/h2o/t/00unit/lib/handler/file.c:732,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:733,1
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:733,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:734,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:735,1
    - Dst: check_multirange_body
      Src: /src/h2o/t/00unit/lib/handler/file.c:735,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 191
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 738
    functionName: test_range_req
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - sha1sum
    - H2O_STRLIT
    - check_header
    - memcmp
    - check_multirange_body
    - h2o_mem_alloc_pool
    - strcmp
    - h2o_loopback_destroy
    - memcpy
    - sprintf
    - h2o_add_header
    - h2o_find_header
    - ok
    - h2o_memis
    - h2o_loopback_run_loop
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_range_req(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:743,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:743,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:743,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:743,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:744,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:744,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:744,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:744,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:745,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:745,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:745,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:745,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:746,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:746,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:746,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:746,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:748,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:748,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:748,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:748,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:749,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:749,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:749,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:749,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:750,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:750,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:750,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:750,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:751,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:751,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:751,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:751,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:752,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:752,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:752,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:752,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:753,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:753,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:753,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:753,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:754,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/t/00unit/lib/handler/file.c:754,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:754,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 755
    functionName: test_strong_etag_cmp
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_filecache_compare_etag_strong
    - ok
    linkageType: ''
    returnType: void
    signature: void test_strong_etag_cmp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:763,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/lib/handler/file.c:764,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:764,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:764,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/handler/file.c:765,1
    - Dst: h2o_file_register
      Src: /src/h2o/t/00unit/lib/handler/file.c:766,1
    - Dst: h2o_context_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:768,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:771,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:772,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:772,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:773,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:773,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:774,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:775,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:776,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:776,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:777,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:778,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:781,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:782,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:782,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:783,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:783,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:784,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:785,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:786,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:786,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:787,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:787,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:787,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:788,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:791,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:792,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:792,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:793,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:793,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:794,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:795,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:796,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:796,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:797,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:798,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:801,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:802,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:802,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:803,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:803,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:804,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:805,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:806,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:806,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:807,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:807,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:807,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:808,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:811,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:812,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:812,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:813,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:813,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:814,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:815,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:816,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:816,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:817,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:818,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:821,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:822,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:822,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:823,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:823,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:824,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:825,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:826,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:826,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:827,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:828,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:828,1
    - Dst: sha1sum
      Src: /src/h2o/t/00unit/lib/handler/file.c:828,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:829,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:832,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:833,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:833,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:834,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:834,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:835,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:836,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:837,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:837,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:838,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:839,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:842,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:843,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:843,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:844,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:844,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:845,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:846,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:847,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:847,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:848,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:849,1
    - Dst: strcmp
      Src: /src/h2o/t/00unit/lib/handler/file.c:849,1
    - Dst: sha1sum
      Src: /src/h2o/t/00unit/lib/handler/file.c:849,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:850,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:853,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:854,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:854,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:855,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:855,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:856,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:857,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:858,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:858,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:859,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:860,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:863,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:864,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:864,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:865,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:865,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:866,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:867,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:868,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:868,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:869,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/file.c:869,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:869,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:870,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:873,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:874,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:874,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:875,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:875,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:876,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:877,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:878,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:878,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:879,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:882,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:883,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:883,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:884,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:884,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:885,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:886,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:887,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:887,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:888,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:891,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:892,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:892,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:893,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:893,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:894,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:895,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:896,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:896,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:897,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/file.c:900,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:901,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:901,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/file.c:902,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/file.c:902,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/file.c:903,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:904,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/file.c:905,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/file.c:905,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/file.c:906,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:908,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:909,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:910,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:911,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:912,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/file.c:913,1
    - Dst: h2o_context_dispose
      Src: /src/h2o/t/00unit/lib/handler/file.c:915,1
    - Dst: h2o_config_dispose
      Src: /src/h2o/t/00unit/lib/handler/file.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 917
    functionName: test_lib__handler__file_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose
    - h2o_loopback_create
    - sha1sum
    - h2o_config_register_host
    - H2O_STRLIT
    - check_header
    - h2o_memis
    - h2o_context_dispose
    - h2o_loopback_destroy
    - strcmp
    - subtest
    - h2o_context_init
    - h2o_file_register
    - ok
    - h2o_config_init
    - h2o_loopback_run_loop
    - h2o_config_register_path
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__file_c()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/handler/compress.c:34,1
    - Dst: inflateInit2
      Src: /src/h2o/t/00unit/lib/handler/compress.c:40,1
    - Dst: inflate
      Src: /src/h2o/t/00unit/lib/handler/compress.c:47,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/compress.c:49,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/compress.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/compress.c:58,1
    - Dst: inflateEnd
      Src: /src/h2o/t/00unit/lib/handler/compress.c:59,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/compress.c:61,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/compress.c:62,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/compress.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - vecs
    - num_vecs
    - expected
    - expectedlen
    argTypes:
    - h2o_sendvec_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 63
    functionName: check_result
    functionSourceFile: /src/h2o/t/00unit/lib/handler/compress.c
    functionUses: 0
    functionsReached:
    - inflate
    - memcmp
    - inflateInit2
    - ok
    - memset
    - inflateEnd
    linkageType: ''
    returnType: void
    signature: void check_result(h2o_sendvec_t *vecs, size_t num_vecs, const char
      *expected, size_t expectedlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/handler/compress.c:71,1
    - Dst: h2o_compress_gzip_open
      Src: /src/h2o/t/00unit/lib/handler/compress.c:73,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/t/00unit/lib/handler/compress.c:74,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/compress.c:74,1
    - Dst: h2o_compress_transform
      Src: /src/h2o/t/00unit/lib/handler/compress.c:75,1
    - Dst: check_result
      Src: /src/h2o/t/00unit/lib/handler/compress.c:77,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/compress.c:77,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/handler/compress.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: test_gzip_simple
    functionSourceFile: /src/h2o/t/00unit/lib/handler/compress.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_compress_gzip_open
    - h2o_mem_init_pool
    - check_result
    - h2o_compress_transform
    linkageType: ''
    returnType: void
    signature: void test_gzip_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/t/00unit/lib/handler/compress.c:105,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/compress.c:105,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/t/00unit/lib/handler/compress.c:106,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/compress.c:106,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/t/00unit/lib/handler/compress.c:107,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/compress.c:107,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/handler/compress.c:109,1
    - Dst: h2o_compress_gzip_open
      Src: /src/h2o/t/00unit/lib/handler/compress.c:111,1
    - Dst: h2o_compress_transform
      Src: /src/h2o/t/00unit/lib/handler/compress.c:112,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/compress.c:114,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/handler/compress.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (outbufcnt > 1)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/h2o/t/00unit/lib/handler/compress.c
    constantsTouched: []
    func_position:
      end: 123
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 123
    functionName: test_gzip_multi
    functionSourceFile: /src/h2o/t/00unit/lib/handler/compress.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - h2o_mem_clear_pool
    - h2o_compress_gzip_open
    - H2O_STRLIT
    - h2o_mem_init_pool
    - h2o_compress_transform
    - assert
    linkageType: ''
    returnType: void
    signature: void test_gzip_multi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/compress.c:127,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/compress.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: test_lib__handler__gzip_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/compress.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__gzip_c()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:30,1
    - Dst: h2o_lcstris
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:33,1
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - res
    - header_name
    - expected
    argTypes:
    - h2o_res_t*
    - h2o_token_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: check_header
    functionSourceFile: /src/h2o/t/00unit/lib/handler/redirect.c
    functionUses: 3
    functionsReached:
    - h2o_lcstris
    - h2o_find_header
    - strlen
    linkageType: ''
    returnType: int
    signature: int check_header(h2o_res_t *res, const h2o_token_t *header_name, const
      char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:42,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:43,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:43,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:44,1
    - Dst: h2o_redirect_register
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:45,1
    - Dst: h2o_context_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:47,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:50,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:51,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:51,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:52,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:52,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:55,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:55,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:56,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:57,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:60,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:61,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:61,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:62,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:62,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:63,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:64,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:65,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:65,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:66,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:67,1
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:70,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:71,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:71,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:72,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:72,1
    - Dst: h2o_loopback_run_loop
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:73,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:74,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:75,1
    - Dst: check_header
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:75,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:76,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:77,1
    - Dst: h2o_context_dispose
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:80,1
    - Dst: h2o_config_dispose
      Src: /src/h2o/t/00unit/lib/handler/redirect.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 82
    functionName: test_lib__handler__redirect_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/redirect.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose
    - h2o_loopback_create
    - h2o_config_register_host
    - H2O_STRLIT
    - check_header
    - h2o_context_dispose
    - h2o_loopback_destroy
    - h2o_context_init
    - ok
    - h2o_config_init
    - h2o_redirect_register
    - h2o_loopback_run_loop
    - h2o_config_register_path
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__redirect_c()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:37,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:43,1
    - Dst: DECODE_UINT16
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:46,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:47,1
    - Dst: DECODE_UINT16
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:51,1
    - Dst: DECODE_UINT16
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:53,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:54,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:57,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:62,1
    - Dst: fprintf
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:63,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - vecs
    - index
    - request_id
    - expected
    - expected_len
    argTypes:
    - h2o_iovec_t*
    - size_t*
    - uint16_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 70
    functionName: check_params
    functionSourceFile: /src/h2o/t/00unit/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - DECODE_UINT16
    - memcpy
    - h2o_memis
    - fprintf
    linkageType: ''
    returnType: int
    signature: int check_params(h2o_iovec_t *vecs, size_t *index, uint16_t request_id,
      const char *expected, size_t expected_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: DECODE_UINT16
    functionSourceFile: /src/h2o/t/00unit/lib/handler/fastcgi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_UINT16(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_loopback_create
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:74,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:79,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:79,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:81,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:81,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:82,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:82,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:88,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:88,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:89,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:90,1
    - Dst: build_request
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:94,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:94,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:98,1
    - Dst: check_params
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:98,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:99,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:115,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:115,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:115,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:117,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:120,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:120,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:121,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:121,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:122,1
    - Dst: build_request
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:124,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:125,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:125,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:126,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:129,1
    - Dst: check_params
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:129,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:151,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:151,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:151,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:153,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:153,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:154,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:156,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:156,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:156,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:158,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:158,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:159,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:161,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:161,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:161,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:163,1
    - Dst: h2o_loopback_destroy
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 166
    functionName: test_build_request
    functionSourceFile: /src/h2o/t/00unit/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_loopback_create
    - build_request
    - H2O_STRLIT
    - check_params
    - h2o_loopback_destroy
    - h2o_add_header
    - ok
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_build_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:174,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:175,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:176,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:176,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:176,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:177,1
    - Dst: h2o_context_init
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:179,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:181,1
    - Dst: h2o_context_dispose
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:183,1
    - Dst: h2o_config_dispose
      Src: /src/h2o/t/00unit/lib/handler/fastcgi.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 185
    functionName: test_lib__handler__fastcgi_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose
    - h2o_config_register_host
    - H2O_STRLIT
    - h2o_context_dispose
    - h2o_context_init
    - h2o_config_init
    - subtest
    - h2o_config_register_path
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__fastcgi_c()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:83,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:84,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:85,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:85,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:85,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:87,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:87,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:87,1
    - Dst: htonl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:88,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:89,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:90,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:90,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:90,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:91,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:92,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:92,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:92,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/connect.c:96,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:103,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:103,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:103,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:105,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:105,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:105,1
    - Dst: test_acl_port_range
      Src: /src/h2o/t/00unit/lib/handler/connect.c:108,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:113,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:113,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:114,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:115,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:116,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:117,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:120,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:120,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:121,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:122,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:123,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:124,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:125,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:128,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:128,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:129,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:130,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:131,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:132,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:133,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:136,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:136,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:137,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:138,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:139,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:140,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:143,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:143,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:144,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:145,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:148,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:148,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:149,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:150,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:153,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:153,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:154,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:155,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:156,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:156,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:157,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:158,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:161,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:161,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:164,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:164,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:168,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:168,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:169,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:169,1
    - Dst: htonl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:173,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:176,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:177,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:177,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:177,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:180,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:181,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:181,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:181,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:184,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:185,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:185,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:185,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:188,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:189,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:189,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:189,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:192,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:193,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:193,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:193,1
    - Dst: htons
      Src: /src/h2o/t/00unit/lib/handler/connect.c:196,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:197,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/t/00unit/lib/handler/connect.c:197,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/t/00unit/lib/handler/connect.c:197,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:267,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/connect.c:267,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:267,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:268,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:271,1
    - Dst: masque_decode_hostport
      Src: /src/h2o/t/00unit/lib/handler/connect.c:271,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:271,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:274,1
    - Dst: masque_decode_hostport
      Src: /src/h2o/t/00unit/lib/handler/connect.c:274,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:274,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/handler/connect.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 277
    functionName: test_to_bitmask
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - test_acl_port_range
    - htons
    - masque_decode_hostport
    - htonl
    - h2o_connect_lookup_acl
    - memcpy
    - ok
    - h2o_memis
    - h2o_connect_parse_acl
    linkageType: ''
    returnType: void
    signature: void test_to_bitmask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/handler/connect.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ip
    - port
    argTypes:
    - struct st_connect_generator_t*
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: add_ipv4_dest_addr
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    linkageType: ''
    returnType: void
    signature: void add_ipv4_dest_addr(struct st_connect_generator_t *self, uint32_t
      ip, uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/t/00unit/lib/handler/connect.c:302,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:307,1
    - Dst: memcpy
      Src: /src/h2o/t/00unit/lib/handler/connect.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - ip
    - port
    argTypes:
    - struct st_connect_generator_t*
    - h2o_iovec_t
    - uint16_t
    assertStmts:
    - condition: (ip.len == sizeof(sa->sin6_addr.s6_addr))
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: add_ipv6_dest_addr
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - assert
    linkageType: ''
    returnType: void
    signature: void add_ipv6_dest_addr(struct st_connect_generator_t *self, h2o_iovec_t
      ip, uint16_t port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct st_server_address_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: get_port
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_port(struct st_server_address_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_ipv6_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:335,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/connect.c:335,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:335,1
    - Dst: add_ipv6_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:336,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/connect.c:336,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:336,1
    - Dst: add_ipv6_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:337,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/connect.c:337,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/connect.c:337,1
    - Dst: add_ipv4_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:338,1
    - Dst: add_ipv4_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:339,1
    - Dst: add_ipv4_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:340,1
    - Dst: add_ipv4_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:341,1
    - Dst: add_ipv4_dest_addr
      Src: /src/h2o/t/00unit/lib/handler/connect.c:342,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:347,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:348,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:349,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:350,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:351,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:351,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:352,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:353,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:355,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:356,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:357,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:358,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:358,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:359,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:360,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:362,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:363,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:364,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:365,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:365,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:366,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:367,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:369,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:370,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:371,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:372,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:372,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:373,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:374,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:376,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:377,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:378,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:379,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:379,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:380,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:381,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:383,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:384,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:385,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:386,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:386,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:387,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:388,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:390,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:391,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:392,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:393,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:393,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:394,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:395,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:397,1
    - Dst: assert
      Src: /src/h2o/t/00unit/lib/handler/connect.c:398,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:399,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:400,1
    - Dst: get_port
      Src: /src/h2o/t/00unit/lib/handler/connect.c:400,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:401,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:402,1
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/t/00unit/lib/handler/connect.c:404,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/connect.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (next_addr != NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    - condition: (next_addr != NULL)
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/h2o/t/00unit/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 406
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 406
    functionName: test_get_next_server_address_for_connect
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - get_port
    - add_ipv4_dest_addr
    - get_next_server_address_for_connect
    - ok
    - add_ipv6_dest_addr
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void test_get_next_server_address_for_connect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:410,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:411,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:412,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:413,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:414,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/connect.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: test_lib__handler__connect_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__connect_c()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_concat
      Src: /src/h2o/t/00unit/lib/handler/headers.c:31,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/headers.c:31,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:31,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/headers.c:32,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:32,1
    - Dst: h2o_memis
      Src: /src/h2o/t/00unit/lib/handler/headers.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pool
    - headers
    - s
    - len
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: headers_are
    functionSourceFile: /src/h2o/t/00unit/lib/handler/headers.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - h2o_memis
    - H2O_STRLIT
    - h2o_concat
    linkageType: ''
    returnType: int
    signature: int headers_are(h2o_mem_pool_t *pool, h2o_headers_t *headers, const
      char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/headers.c:41,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:41,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/headers.c:42,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:42,1
    - Dst: h2o_add_header
      Src: /src/h2o/t/00unit/lib/handler/headers.c:43,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:43,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/t/00unit/lib/handler/headers.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:44,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - headers
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: setup_headers
    functionSourceFile: /src/h2o/t/00unit/lib/handler/headers.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_add_header
    - H2O_STRLIT
    linkageType: ''
    returnType: void
    signature: void setup_headers(h2o_mem_pool_t *pool, h2o_headers_t *headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/t/00unit/lib/handler/headers.c:54,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:57,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:58,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:58,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:59,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:60,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:62,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:63,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:63,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:65,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:68,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:69,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:71,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:72,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:72,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:74,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:76,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:77,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:79,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:80,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:80,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:81,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:83,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:84,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:87,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:87,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:88,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:90,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:91,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:94,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:94,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:95,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/headers.c:98,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:98,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:99,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:100,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:102,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:103,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:103,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:105,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:107,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:108,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:110,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:111,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:111,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:113,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:115,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:116,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:118,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:119,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:119,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:120,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:123,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:125,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:126,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:126,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:127,1
    - Dst: setup_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:129,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:130,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/t/00unit/lib/handler/headers.c:132,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/headers.c:133,1
    - Dst: headers_are
      Src: /src/h2o/t/00unit/lib/handler/headers.c:133,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/headers.c:134,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/t/00unit/lib/handler/headers.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 137
    functionName: test_lib__handler__headers_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/headers.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - H2O_STRLIT
    - h2o_mem_init_pool
    - setup_headers
    - h2o_iovec_init
    - ok
    - h2o_rewrite_headers
    - headers_are
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__headers_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:27,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:27,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:28,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:28,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:29,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:29,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:31,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:31,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:32,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:32,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:33,1
    - Dst: calc_delay
      Src: /src/h2o/t/00unit/lib/handler/throttle_resp.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: test_lib__handler__throttle_resp_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - calc_delay
    - ok
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__throttle_resp_c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:29,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:30,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:31,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:33,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:34,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:35,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:37,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:38,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:39,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:41,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:42,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:43,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:45,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:46,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:47,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:49,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:50,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:51,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:53,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:54,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 56
    functionName: test_default_attributes
    functionSourceFile: /src/h2o/t/00unit/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_mimemap_get_default_attributes
    - ok
    linkageType: ''
    returnType: void
    signature: void test_default_attributes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:60,1
    - Dst: memcmp
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - type
    - expected
    argTypes:
    - h2o_mimemap_type_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: is_mimetype
    functionSourceFile: /src/h2o/t/00unit/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_mimetype(h2o_mimemap_type_t *type, const char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_create
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:66,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:68,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:71,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:71,1
    - Dst: h2o_mimemap_get_default_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:71,1
    - Dst: strcpy
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:74,1
    - Dst: h2o_mimemap_set_default_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:75,1
    - Dst: memset
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:76,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:78,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:78,1
    - Dst: h2o_mimemap_get_default_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:78,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:81,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:82,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:82,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:82,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:82,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:82,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:83,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:83,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:83,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:83,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:83,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:84,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:84,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:84,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:84,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:85,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:85,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:85,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:86,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:87,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:87,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:87,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:87,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:87,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:88,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:88,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:88,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:88,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:89,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:89,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:89,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:90,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:90,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:90,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:90,1
    - Dst: h2o_mimemap_clone
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:93,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:94,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:94,1
    - Dst: h2o_mimemap_get_default_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:94,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:95,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:95,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:95,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:95,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:95,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:96,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:96,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:96,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:96,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:97,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:97,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:97,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:98,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:101,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:101,1
    - Dst: h2o_mimemap_get_default_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:101,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:102,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:102,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:102,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:102,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:102,1
    - Dst: h2o_mimemap_remove_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:105,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:106,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:106,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:106,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:106,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:106,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:107,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:107,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:107,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:107,1
    - Dst: h2o_mimemap_remove_type
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:108,1
    - Dst: ok
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:109,1
    - Dst: is_mimetype
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:109,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:109,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:109,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:109,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 112
    functionName: test_basic
    functionSourceFile: /src/h2o/t/00unit/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - H2O_STRLIT
    - h2o_mimemap_clone
    - h2o_mimemap_get_type_by_mimetype
    - h2o_mimemap_get_default_type
    - is_mimetype
    - h2o_mimemap_set_default_type
    - h2o_mimemap_create
    - h2o_mimemap_define_mimetype
    - h2o_iovec_init
    - h2o_mimemap_remove_type
    - ok
    - h2o_mimemap_get_type_by_extension
    - memset
    - subtest
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_basic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_create
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:116,1
    - Dst: h2o_mimemap_define_dynamic
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:119,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: test_dynamic
    functionSourceFile: /src/h2o/t/00unit/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mimemap_define_dynamic
    - h2o_mimemap_create
    linkageType: ''
    returnType: void
    signature: void test_dynamic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:125,1
    - Dst: subtest
      Src: /src/h2o/t/00unit/lib/handler/mimemap.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: test_lib__handler__mimemap_c
    functionSourceFile: /src/h2o/t/00unit/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lib__handler__mimemap_c()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:110,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:111,1
    - Dst: fopen
      Src: /src/h2o/src/httpclient.c:116,1
    - Dst: fread
      Src: /src/h2o/src/httpclient.c:118,1
    - Dst: fclose
      Src: /src/h2o/src/httpclient.c:119,1
    - Dst: fclose
      Src: /src/h2o/src/httpclient.c:122,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/src/httpclient.c:126,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:127,1
    - Dst: memcmp
      Src: /src/h2o/src/httpclient.c:127,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/src/httpclient.c:133,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:135,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:135,1
    - Dst: memcpy
      Src: /src/h2o/src/httpclient.c:136,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/src/httpclient.c:140,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/src/httpclient.c:142,1
    - Dst: ptls_decode_block
      Src: /src/h2o/src/httpclient.c:147,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:149,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:149,1
    - Dst: memcpy
      Src: /src/h2o/src/httpclient.c:150,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:159,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:160,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:161,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - server_name
    - tls_session
    - quic_tp
    - quic_address_token
    argTypes:
    - char*
    - ptls_iovec_t*
    - quicly_transport_parameters_t*
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 164
    functionName: load_session
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - memcmp
    - ptls_decode_block
    - fread
    - free
    - h2o_mem_alloc
    - fopen
    - memcpy
    - quicly_decode_transport_parameter_list
    - fclose
    - strlen
    linkageType: ''
    returnType: void
    signature: "void load_session(const char *server_name, ptls_iovec_t *tls_session,
      quicly_transport_parameters_t *quic_tp,\n                         ptls_iovec_t
      *quic_address_token)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_server_name
      Src: /src/h2o/src/httpclient.c:172,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/src/httpclient.c:180,1
    - Dst: load_session
      Src: /src/h2o/src/httpclient.c:183,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/src/httpclient.c:194,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/src/httpclient.c:194,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:194,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/src/httpclient.c:195,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/src/httpclient.c:195,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/src/httpclient.c:196,1
    - Dst: quicly_encode_transport_parameter_list
      Src: /src/h2o/src/httpclient.c:198,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/src/httpclient.c:201,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/src/httpclient.c:201,1
    - Dst: fopen
      Src: /src/h2o/src/httpclient.c:205,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:206,1
    - Dst: strerror
      Src: /src/h2o/src/httpclient.c:206,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:207,1
    - Dst: fwrite
      Src: /src/h2o/src/httpclient.c:209,1
    - Dst: fclose
      Src: /src/h2o/src/httpclient.c:210,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:213,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:214,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/src/httpclient.c:215,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:219,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - tls
    - tls_session
    - quic_tp
    - quic_address_token
    argTypes:
    - ptls_t*
    - ptls_iovec_t*
    - quicly_transport_parameters_t*
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 221
    functionName: save_session
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - fwrite
    - ptls_buffer_dispose
    - free
    - ptls_buffer_push_block
    - exit
    - load_session
    - fopen
    - quicly_encode_transport_parameter_list
    - fprintf
    - fclose
    - strerror
    - ptls_buffer_pushv
    - strlen
    - ptls_get_server_name
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: "void save_session(ptls_t *tls, ptls_iovec_t *tls_session, const quicly_transport_parameters_t
      *quic_tp,\n                         ptls_iovec_t *quic_address_token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_session
      Src: /src/h2o/src/httpclient.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - server_addr
    - server_name
    - address_token
    - session_ticket
    - tp
    argTypes:
    - h2o_httpclient_ctx_t*
    - struct sockaddr*
    - char*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - quicly_transport_parameters_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: load_http3_session_cb
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - load_session
    linkageType: ''
    returnType: int
    signature: "int load_http3_session_cb(h2o_httpclient_ctx_t *ctx, struct sockaddr
      *server_addr, const char *server_name,\n                                 ptls_iovec_t
      *address_token, ptls_iovec_t *session_ticket, quicly_transport_parameters_t
      *tp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: save_session
      Src: /src/h2o/src/httpclient.c:232,1
    - Dst: quicly_get_tls
      Src: /src/h2o/src/httpclient.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - conn
    - token
    argTypes:
    - quicly_save_resumption_token_t*
    - quicly_conn_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: save_http3_token_cb
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - save_session
    - quicly_get_tls
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t save_http3_token_cb(quicly_save_resumption_token_t *self,
      quicly_conn_t *conn, ptls_iovec_t token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/src/httpclient.c:238,1
    - Dst: assert
      Src: /src/h2o/src/httpclient.c:239,1
    - Dst: quicly_get_tls
      Src: /src/h2o/src/httpclient.c:239,1
    - Dst: save_session
      Src: /src/h2o/src/httpclient.c:241,1
    - Dst: quicly_get_remote_transport_parameters
      Src: /src/h2o/src/httpclient.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - tls
    - src
    argTypes:
    - ptls_save_ticket_t*
    - ptls_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (quicly_get_tls(conn) == tls)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/h2o/src/httpclient.c
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: save_http3_ticket_cb
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - save_session
    - ptls_get_data_ptr
    - quicly_get_tls
    - quicly_get_remote_transport_parameters
    - assert
    linkageType: ''
    returnType: int
    signature: int save_http3_ticket_cb(ptls_save_ticket_t *self, ptls_t *tls, ptls_iovec_t
      src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:248,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: add_header
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 9
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void add_header(h2o_iovec_t name, h2o_iovec_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:264,1
    - Dst: h2o_timer_link
      Src: /src/h2o/src/httpclient.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - loop
    - delay_ticks
    - cb
    - ptr
    argTypes:
    - h2o_loop_t*
    - uint64_t
    - h2o_timer_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: create_timeout
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void create_timeout(h2o_loop_t *loop, uint64_t delay_ticks, h2o_timer_cb
      cb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: on_exit_deferred
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void on_exit_deferred(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/src/httpclient.c:278,1
    - Dst: vsnprintf
      Src: /src/h2o/src/httpclient.c:279,1
    - Dst: va_end
      Src: /src/h2o/src/httpclient.c:280,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:281,1
    - Dst: create_timeout
      Src: /src/h2o/src/httpclient.c:284,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/src/httpclient.c:286,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - pool
    - fmt
    argTypes:
    - h2o_httpclient_ctx_t*
    - h2o_mem_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: on_error
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - create_timeout
    - h2o_mem_clear_pool
    - va_start
    - free
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void on_error(h2o_httpclient_ctx_t *ctx, h2o_mem_pool_t *pool, const
      char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/httpclient.c:292,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/httpclient.c:294,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/httpclient.c:298,1
    - Dst: h2o_httpclient_t*::write_req
      Src: /src/h2o/src/httpclient.c:306,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:306,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:307,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:308,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/src/httpclient.c:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (input.sock == _sock)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/src/httpclient.c
    constantsTouched: []
    func_position:
      end: 311
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 311
    functionName: input_on_read
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - h2o_httpclient_t*::write_req
    - exit
    - fprintf
    - h2o_buffer_consume
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void input_on_read(h2o_socket_t *_sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/src/httpclient.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - header_buf
    - payload_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: build_capsule_header
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: size_t
    signature: size_t build_capsule_header(uint8_t *header_buf, size_t payload_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:329,1
    - Dst: recvmsg
      Src: /src/h2o/src/httpclient.c:345,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/httpclient.c:345,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:357,1
    - Dst: udp_write
      Src: /src/h2o/src/httpclient.c:358,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/src/httpclient.c:362,1
    - Dst: build_capsule_header
      Src: /src/h2o/src/httpclient.c:362,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/src/httpclient.c:363,1
    - Dst: input_on_read
      Src: /src/h2o/src/httpclient.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 367
    functionName: tunnel_on_udp_sock_read
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_socket_get_fd
    - build_capsule_header
    - h2o_buffer_append
    - udp_write
    - input_on_read
    - strcmp
    - recvmsg
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void tunnel_on_udp_sock_read(h2o_socket_t *sock, const char *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:371,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/src/httpclient.c:383,1
    - Dst: sendmsg
      Src: /src/h2o/src/httpclient.c:392,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/httpclient.c:392,1
    - Dst: fwrite
      Src: /src/h2o/src/httpclient.c:396,1
    - Dst: build_capsule_header
      Src: /src/h2o/src/httpclient.c:396,1
    - Dst: fwrite
      Src: /src/h2o/src/httpclient.c:397,1
    - Dst: fflush
      Src: /src/h2o/src/httpclient.c:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - client
    - datagrams
    - num_datagrams
    argTypes:
    - h2o_httpclient_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 401
    functionName: tunnel_on_udp_read
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_socket_get_fd
    - fwrite
    - ptls_decode_quicint
    - build_capsule_header
    - fflush
    - strcmp
    - sendmsg
    linkageType: ''
    returnType: void
    signature: void tunnel_on_udp_read(h2o_httpclient_t *client, h2o_iovec_t *datagrams,
      size_t num_datagrams)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/httpclient.c:406,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/httpclient.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_httpclient_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: input_proceed_request
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void input_proceed_request(h2o_httpclient_t *client, const char *errstr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:419,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/src/httpclient.c:420,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/src/httpclient.c:423,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:426,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:426,1
    - Dst: h2o_url_init
      Src: /src/h2o/src/httpclient.c:430,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:430,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:430,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:430,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:432,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:435,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:437,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/httpclient.c:437,1
    - Dst: h2o_url_parse
      Src: /src/h2o/src/httpclient.c:442,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:443,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:451,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:452,1
    - Dst: h2o_socketpool_create_target
      Src: /src/h2o/src/httpclient.c:453,1
    - Dst: h2o_socketpool_init_specific
      Src: /src/h2o/src/httpclient.c:454,1
    - Dst: h2o_socketpool_set_timeout
      Src: /src/h2o/src/httpclient.c:455,1
    - Dst: h2o_socketpool_register_loop
      Src: /src/h2o/src/httpclient.c:456,1
    - Dst: h2o_httpclient_connection_pool_init
      Src: /src/h2o/src/httpclient.c:457,1
    - Dst: getenv
      Src: /src/h2o/src/httpclient.c:461,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/src/httpclient.c:462,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:464,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:464,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:464,1
    - Dst: sprintf
      Src: /src/h2o/src/httpclient.c:465,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/src/httpclient.c:468,1
    - Dst: SSLv23_client_method
      Src: /src/h2o/src/httpclient.c:468,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/src/httpclient.c:469,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/src/httpclient.c:471,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/src/httpclient.c:473,1
    - Dst: X509_STORE_new
      Src: /src/h2o/src/httpclient.c:474,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:476,1
    - Dst: X509_STORE_load_locations
      Src: /src/h2o/src/httpclient.c:479,1
    - Dst: X509_STORE_free
      Src: /src/h2o/src/httpclient.c:480,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:481,1
    - Dst: ptls_openssl_init_verify_certificate
      Src: /src/h2o/src/httpclient.c:484,1
    - Dst: X509_STORE_free
      Src: /src/h2o/src/httpclient.c:485,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:486,1
    - Dst: X509_STORE_free
      Src: /src/h2o/src/httpclient.c:489,1
    - Dst: h2o_socketpool_set_ssl_ctx
      Src: /src/h2o/src/httpclient.c:492,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/src/httpclient.c:493,1
    - Dst: h2o_httpclient_connect
      Src: /src/h2o/src/httpclient.c:495,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_httpclient_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 497
    functionName: start_request
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_httpclient_connection_pool_init
    - SSL_CTX_load_verify_locations
    - h2o_mem_init_pool
    - h2o_mem_alloc_pool
    - h2o_httpclient_connect
    - sprintf
    - X509_STORE_new
    - SSLv23_client_method
    - X509_STORE_free
    - SSL_CTX_set_verify
    - h2o_socketpool_create_target
    - h2o_iovec_init
    - h2o_url_init
    - H2O_STRLIT
    - H2O_TO_STR
    - h2o_socketpool_set_timeout
    - on_error
    - SSL_CTX_new
    - h2o_socketpool_init_specific
    - h2o_mem_alloc
    - getenv
    - strlen
    - X509_STORE_load_locations
    - ptls_openssl_init_verify_certificate
    - strcmp
    - h2o_socketpool_set_ssl_ctx
    - SSL_CTX_free
    - h2o_socketpool_register_loop
    - h2o_url_parse
    linkageType: ''
    returnType: void
    signature: void start_request(h2o_httpclient_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/httpclient.c:501,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:503,1
    - Dst: start_request
      Src: /src/h2o/src/httpclient.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: on_next_request
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - free
    - H2O_STRUCT_FROM_MEMBER
    - start_request
    linkageType: ''
    returnType: void
    signature: void on_next_request(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - headers
    - num_headers
    argTypes:
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 516
    functionName: print_headers
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_headers(h2o_header_t *headers, size_t num_headers)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/httpclient.c:522,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:524,1
    - Dst: fwrite
      Src: /src/h2o/src/httpclient.c:529,1
    - Dst: fflush
      Src: /src/h2o/src/httpclient.c:530,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/src/httpclient.c:531,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/src/httpclient.c:534,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:535,1
    - Dst: ftruncate
      Src: /src/h2o/src/httpclient.c:539,1
    - Dst: fileno
      Src: /src/h2o/src/httpclient.c:539,1
    - Dst: create_timeout
      Src: /src/h2o/src/httpclient.c:540,1
    - Dst: print_headers
      Src: /src/h2o/src/httpclient.c:545,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:546,1
    - Dst: fflush
      Src: /src/h2o/src/httpclient.c:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - client
    - errstr
    - trailers
    - num_trailers
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 551
    functionName: on_body
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - create_timeout
    - h2o_socket_read_stop
    - h2o_mem_clear_pool
    - fwrite
    - fileno
    - on_error
    - fflush
    - free
    - ftruncate
    - print_headers
    - fprintf
    - h2o_buffer_consume
    linkageType: ''
    returnType: int
    signature: int on_body(h2o_httpclient_t *client, const char *errstr, h2o_header_t
      *trailers, size_t num_trailers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:558,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:560,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:562,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:564,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - version
    - status
    - msg
    argTypes:
    - int
    - int
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 568
    functionName: print_status_line
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_status_line(int version, int status, h2o_iovec_t msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_status_line
      Src: /src/h2o/src/httpclient.c:573,1
    - Dst: print_headers
      Src: /src/h2o/src/httpclient.c:574,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:575,1
    - Dst: fflush
      Src: /src/h2o/src/httpclient.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - client
    - version
    - status
    - msg
    - headers
    - num_headers
    argTypes:
    - h2o_httpclient_t*
    - int
    - int
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: on_informational
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - print_status_line
    - print_headers
    - fflush
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int on_informational(h2o_httpclient_t *client, int version, int status,
      h2o_iovec_t msg, h2o_header_t *headers,\n                            size_t
      num_headers)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:583,1
    - Dst: print_status_line
      Src: /src/h2o/src/httpclient.c:587,1
    - Dst: print_headers
      Src: /src/h2o/src/httpclient.c:588,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:589,1
    - Dst: fflush
      Src: /src/h2o/src/httpclient.c:590,1
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - client
    - errstr
    - args
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_httpclient_on_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 604
    functionName: on_head
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - print_status_line
    - on_error
    - fflush
    - print_headers
    - fprintf
    linkageType: ''
    returnType: h2o_httpclient_body_cb
    signature: h2o_httpclient_body_cb on_head(h2o_httpclient_t *client, const char
      *errstr, h2o_httpclient_on_head_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: filler_remaining_bytes
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t *filler_remaining_bytes(h2o_httpclient_t *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/httpclient.c:613,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:615,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:618,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:619,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:620,1
    - Dst: h2o_httpclient_t*::write_req
      Src: /src/h2o/src/httpclient.c:621,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: filler_on_io_timeout
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - filler_remaining_bytes
    - free
    - h2o_httpclient_t*::write_req
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void filler_on_io_timeout(h2o_timer_t *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:627,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:630,1
    - Dst: create_timeout
      Src: /src/h2o/src/httpclient.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_httpclient_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: filler_proceed_request
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - create_timeout
    - on_error
    - filler_remaining_bytes
    linkageType: ''
    returnType: void
    signature: void filler_proceed_request(h2o_httpclient_t *client, const char *errstr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: on_error
      Src: /src/h2o/src/httpclient.c:642,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:646,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:646,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/src/httpclient.c:649,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:651,1
    - Dst: h2o_add_header
      Src: /src/h2o/src/httpclient.c:657,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/httpclient.c:657,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/src/httpclient.c:662,1
    - Dst: memcpy
      Src: /src/h2o/src/httpclient.c:663,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/src/httpclient.c:664,1
    - Dst: filler_remaining_bytes
      Src: /src/h2o/src/httpclient.c:667,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/src/httpclient.c:668,1
    - Dst: sprintf
      Src: /src/h2o/src/httpclient.c:669,1
    - Dst: h2o_add_header
      Src: /src/h2o/src/httpclient.c:670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 10
    argNames:
    - client
    - errstr
    - _method
    - url
    - headers
    - num_headers
    - body
    - proceed_req_cb
    - props
    - origin
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_iovec_t*
    - h2o_url_t*
    - h2o_header_t**
    - size_t*
    - h2o_iovec_t*
    - h2o_httpclient_proceed_req_cb*
    - h2o_httpclient_properties_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 678
    functionName: on_connect
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - H2O_STRLIT
    - on_error
    - h2o_mem_alloc_pool
    - filler_remaining_bytes
    - memcpy
    - sprintf
    - h2o_add_header
    - h2o_buffer_consume
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_httpclient_head_cb
    signature: "h2o_httpclient_head_cb on_connect(h2o_httpclient_t *client, const
      char *errstr, h2o_iovec_t *_method, h2o_url_t *url,\n                                  const
      h2o_header_t **headers, size_t *num_headers, h2o_iovec_t *body,\n                                  h2o_httpclient_proceed_req_cb
      *proceed_req_cb, h2o_httpclient_properties_t *props,\n                                  h2o_url_t
      *origin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 730
    functionName: usage
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/src/httpclient.c:737,1
    - Dst: perror
      Src: /src/h2o/src/httpclient.c:738,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:739,1
    - Dst: htonl
      Src: /src/h2o/src/httpclient.c:742,1
    - Dst: htons
      Src: /src/h2o/src/httpclient.c:743,1
    - Dst: bind
      Src: /src/h2o/src/httpclient.c:744,1
    - Dst: perror
      Src: /src/h2o/src/httpclient.c:745,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:746,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/src/httpclient.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - loop
    - port
    argTypes:
    - h2o_loop_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 749
    functionName: create_udp_socket
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - perror
    - htons
    - exit
    - htonl
    - bind
    - socket
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *create_udp_socket(h2o_loop_t *loop, uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:755,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:757,1
    - Dst: backtrace
      Src: /src/h2o/src/httpclient.c:761,1
    - Dst: backtrace_symbols_fd
      Src: /src/h2o/src/httpclient.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 764
    functionName: on_sigfatal
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - backtrace_symbols_fd
    - backtrace
    - h2o_set_signal_handler
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_sigfatal(int signo)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:770,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:771,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:772,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:773,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/httpclient.c:774,1
    - Dst: SSL_load_error_strings
      Src: /src/h2o/src/httpclient.c:786,1
    - Dst: SSL_library_init
      Src: /src/h2o/src/httpclient.c:787,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/src/httpclient.c:788,1
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/src/httpclient.c:790,1
    - Dst: tls::random_bytes
      Src: /src/h2o/src/httpclient.c:799,1
    - Dst: quicly_new_default_cid_encryptor
      Src: /src/h2o/src/httpclient.c:800,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/httpclient.c:801,1
    - Dst: assert
      Src: /src/h2o/src/httpclient.c:802,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/src/httpclient.c:803,1
    - Dst: uv_loop_new
      Src: /src/h2o/src/httpclient.c:809,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/src/httpclient.c:811,1
    - Dst: getopt_long
      Src: /src/h2o/src/httpclient.c:847,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:850,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:851,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:852,1
    - Dst: freopen
      Src: /src/h2o/src/httpclient.c:859,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:860,1
    - Dst: strerror
      Src: /src/h2o/src/httpclient.c:860,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:861,1
    - Dst: atoi
      Src: /src/h2o/src/httpclient.c:865,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:867,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:868,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/src/httpclient.c:873,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:874,1
    - Dst: h2o_url_parse
      Src: /src/h2o/src/httpclient.c:876,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:876,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:877,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:878,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:883,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:884,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:887,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:888,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:889,1
    - Dst: create_udp_socket
      Src: /src/h2o/src/httpclient.c:891,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/httpclient.c:892,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:898,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:899,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:900,1
    - Dst: atoi
      Src: /src/h2o/src/httpclient.c:904,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:906,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:907,1
    - Dst: atoi
      Src: /src/h2o/src/httpclient.c:911,1
    - Dst: strchr
      Src: /src/h2o/src/httpclient.c:915,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:916,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:917,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/httpclient.c:922,1
    - Dst: h2o_strtolower
      Src: /src/h2o/src/httpclient.c:923,1
    - Dst: add_header
      Src: /src/h2o/src/httpclient.c:924,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/httpclient.c:924,1
    - Dst: strlen
      Src: /src/h2o/src/httpclient.c:924,1
    - Dst: atoi
      Src: /src/h2o/src/httpclient.c:927,1
    - Dst: strcasecmp
      Src: /src/h2o/src/httpclient.c:933,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:936,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:938,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:939,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:944,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:945,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:950,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:956,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:960,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:961,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:967,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:968,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:969,1
    - Dst: usage
      Src: /src/h2o/src/httpclient.c:982,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:983,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:986,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:987,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:988,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:992,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:993,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:994,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:1002,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1003,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1004,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:1009,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1010,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1011,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:1015,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1016,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1017,1
    - Dst: strcasecmp
      Src: /src/h2o/src/httpclient.c:1023,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1026,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1027,1
    - Dst: sscanf
      Src: /src/h2o/src/httpclient.c:1037,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1038,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1039,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1049,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1062,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1063,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1066,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1067,1
    - Dst: h2o_quic_create_client_socket
      Src: /src/h2o/src/httpclient.c:1081,1
    - Dst: h2o_quic_create_client_socket
      Src: /src/h2o/src/httpclient.c:1083,1
    - Dst: perror
      Src: /src/h2o/src/httpclient.c:1086,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1087,1
    - Dst: h2o_quic_init_context
      Src: /src/h2o/src/httpclient.c:1089,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:1095,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:1095,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1098,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1099,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:1104,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1106,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1107,1
    - Dst: strcmp
      Src: /src/h2o/src/httpclient.c:1109,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1112,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1114,1
    - Dst: open
      Src: /src/h2o/src/httpclient.c:1123,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1124,1
    - Dst: strerror
      Src: /src/h2o/src/httpclient.c:1124,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1125,1
    - Dst: h2o_uv__poll_create
      Src: /src/h2o/src/httpclient.c:1128,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/src/httpclient.c:1130,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/httpclient.c:1132,1
    - Dst: fprintf
      Src: /src/h2o/src/httpclient.c:1136,1
    - Dst: exit
      Src: /src/h2o/src/httpclient.c:1137,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/httpclient.c:1142,1
    - Dst: memset
      Src: /src/h2o/src/httpclient.c:1143,1
    - Dst: h2o_multithread_create_queue
      Src: /src/h2o/src/httpclient.c:1148,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/src/httpclient.c:1149,1
    - Dst: start_request
      Src: /src/h2o/src/httpclient.c:1153,1
    - Dst: uv_run
      Src: /src/h2o/src/httpclient.c:1157,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/src/httpclient.c:1159,1
    - Dst: h2o_quic_close_all_connections
      Src: /src/h2o/src/httpclient.c:1167,1
    - Dst: h2o_quic_num_connections
      Src: /src/h2o/src/httpclient.c:1168,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/src/httpclient.c:1169,1
    - Dst: free
      Src: /src/h2o/src/httpclient.c:1175,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 309
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (h3ctx.quic.cid_encryptor != NULL)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/h2o/src/httpclient.c
    constantsTouched: []
    func_position:
      end: 1178
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 1178
    functionName: main
    functionSourceFile: /src/h2o/src/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_mem_init_pool
    - getopt_long
    - open
    - h2o_uv__poll_create
    - sscanf
    - assert
    - h2o_socket_read_start
    - h2o_iovec_init
    - ptls_iovec_init
    - h2o_set_signal_handler
    - h2o_strdup
    - start_request
    - free
    - uv_loop_new
    - ptls_clear_memory
    - h2o_multithread_create_queue
    - h2o_evloop_create
    - fprintf
    - strchr
    - strerror
    - usage
    - memset
    - h2o_evloop_socket_create
    - create_udp_socket
    - h2o_quic_num_connections
    - perror
    - uv_run
    - exit
    - h2o_quic_close_all_connections
    - OpenSSL_add_all_algorithms
    - h2o_mem_alloc
    - h2o_evloop_run
    - h2o_strtolower
    - strlen
    - h2o_quic_create_client_socket
    - tls::random_bytes
    - h2o_quic_init_context
    - atoi
    - freopen
    - quicly_amend_ptls_context
    - strcmp
    - strcasecmp
    - quicly_new_default_cid_encryptor
    - h2o_multithread_register_receiver
    - SSL_load_error_strings
    - add_header
    - SSL_library_init
    - h2o_url_parse
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/src/main.c:413,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:415,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: set_cloexec
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_fatal
    - fcntl
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void set_cloexec(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/src/main.c:425,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:425,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: on_neverbleed_fork
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void on_neverbleed_fork(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/src/main.c:436,1
    - Dst: h2o_concat
      Src: /src/h2o/src/main.c:437,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:437,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:437,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:437,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:437,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:439,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/src/main.c:439,1
    - Dst: va_start
      Src: /src/h2o/src/main.c:442,1
    - Dst: vsnprintf
      Src: /src/h2o/src/main.c:443,1
    - Dst: va_end
      Src: /src/h2o/src/main.c:444,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:446,1
    - Dst: va_start
      Src: /src/h2o/src/main.c:447,1
    - Dst: vsnprintf
      Src: /src/h2o/src/main.c:448,1
    - Dst: va_end
      Src: /src/h2o/src/main.c:449,1
    - Dst: h2o_concat
      Src: /src/h2o/src/main.c:451,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:451,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:451,1
    - Dst: free
      Src: /src/h2o/src/main.c:453,1
    - Dst: free
      Src: /src/h2o/src/main.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 456
    functionName: get_localstate_path
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - H2O_TO_STR
    - h2o_concat
    - va_start
    - free
    - vsnprintf
    - h2o_mem_alloc
    - getenv
    - va_end
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t get_localstate_path(const char *fmt, ...)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:466,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:468,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:469,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:472,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:473,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:474,1
    - Dst: h2o_spawnp
      Src: /src/h2o/src/main.c:479,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:480,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:480,1
    - Dst: waitpid
      Src: /src/h2o/src/main.c:482,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:484,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:485,1
    - Dst: h2o_concat
      Src: /src/h2o/src/main.c:491,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:491,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:491,1
    - Dst: get_localstate_path
      Src: /src/h2o/src/main.c:492,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:492,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:492,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/src/main.c:495,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/src/main.c:496,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:496,1
    - Dst: yoml_parse_document
      Src: /src/h2o/src/main.c:498,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/src/main.c:499,1
    - Dst: assert
      Src: /src/h2o/src/main.c:501,1
    - Dst: assert
      Src: /src/h2o/src/main.c:502,1
    - Dst: assert
      Src: /src/h2o/src/main.c:505,1
    - Dst: assert
      Src: /src/h2o/src/main.c:506,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:512,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:526,1
    - Dst: yoml__merge
      Src: /src/h2o/src/main.c:531,1
    - Dst: yoml_free
      Src: /src/h2o/src/main.c:536,1
    - Dst: free
      Src: /src/h2o/src/main.c:537,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: (conf.yoml->type == YOML_TYPE_MAPPING)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/h2o/src/main.c
    - condition: (well_known->type == YOML_TYPE_MAPPING)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/h2o/src/main.c
    - condition: (well_known->data.mapping.size == 1)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/h2o/src/main.c
    - condition: (conf.yoml != NULL)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 539
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 539
    functionName: on_config_acme
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - yoml_parse_document
    - assert
    - h2o_iovec_init
    - h2o_configurator_parse_mapping
    - get_localstate_path
    - H2O_STRLIT
    - h2o_strdup
    - free
    - strerror
    - h2o_configurator_errprintf
    - h2o_concat
    - getenv
    - yoml_free
    - waitpid
    - yaml_parser_set_input_string
    - h2o_fatal
    - strlen
    - h2o_configurator_get_cmd_path
    - yaml_parser_initialize
    - strcmp
    - yaml_parser_delete
    - strcasecmp
    - yoml__merge
    - h2o_spawnp
    linkageType: ''
    returnType: int
    signature: int on_config_acme(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:550,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:551,1
    - Dst: get_localstate_path
      Src: /src/h2o/src/main.c:556,1
    - Dst: get_localstate_path
      Src: /src/h2o/src/main.c:558,1
    - Dst: stat
      Src: /src/h2o/src/main.c:561,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:564,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:567,1
    - Dst: stat
      Src: /src/h2o/src/main.c:570,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:573,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:576,1
    - Dst: free
      Src: /src/h2o/src/main.c:584,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:585,1
    - Dst: free
      Src: /src/h2o/src/main.c:586,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - cmd
    - identity
    - host
    - ssl_node
    argTypes:
    - h2o_configurator_command_t*
    - struct listener_ssl_parsed_identity_t*
    - char*
    - yoml_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 589
    functionName: get_acme_cert_and_key
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - get_localstate_path
    - h2o_strdup
    - free
    - h2o_configurator_get_cmd_path
    - strerror
    - stat
    - h2o_vector_reserve
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int get_acme_cert_and_key(h2o_configurator_command_t *cmd, struct
      listener_ssl_parsed_identity_t *identity, const char *host,\n                                 yoml_t
      **ssl_node)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:608,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:611,1
    - Dst: getpid
      Src: /src/h2o/src/main.c:611,1
    - Dst: get_localstate_path
      Src: /src/h2o/src/main.c:614,1
    - Dst: pipe
      Src: /src/h2o/src/main.c:623,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:624,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:624,1
    - Dst: h2o_spawnp
      Src: /src/h2o/src/main.c:625,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:626,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:626,1
    - Dst: close
      Src: /src/h2o/src/main.c:627,1
    - Dst: free
      Src: /src/h2o/src/main.c:629,1
    - Dst: free
      Src: /src/h2o/src/main.c:630,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:636,1
    - Dst: setenv
      Src: /src/h2o/src/main.c:637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 638
    functionName: spawn_acme_loader
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - get_localstate_path
    - free
    - pipe
    - h2o_mem_alloc
    - sprintf
    - setenv
    - strerror
    - h2o_spawnp
    - h2o_fatal
    - getpid
    linkageType: ''
    returnType: void
    signature: void spawn_acme_loader(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/src/main.c:646,1
    - Dst: sscanf
      Src: /src/h2o/src/main.c:651,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:652,1
    - Dst: close
      Src: /src/h2o/src/main.c:654,1
    - Dst: unsetenv
      Src: /src/h2o/src/main.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 656
    functionName: close_acme_loader_pipe
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - sscanf
    - getenv
    - unsetenv
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void close_acme_loader_pipe(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:680,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/src/main.c:680,1
    - Dst: assert
      Src: /src/h2o/src/main.c:684,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/src/main.c:684,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct async_nb_queue_t*
    assertStmts:
    - condition: (h2o_linklist_is_empty(&queue->anchor))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/h2o/src/main.c
    - condition: (!h2o_linklist_is_empty(&queue->anchor))
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: async_nb_get
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: struct async_nb_transaction_t
    signature: struct async_nb_transaction_t *async_nb_get(struct async_nb_queue_t
      *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_nb_get
      Src: /src/h2o/src/main.c:694,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/src/main.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct async_nb_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 700
    functionName: async_nb_pop
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_get
    - h2o_linklist_unlink
    linkageType: ''
    returnType: struct async_nb_transaction_t
    signature: struct async_nb_transaction_t *async_nb_pop(struct async_nb_queue_t
      *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:704,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/src/main.c:704,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/src/main.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - queue
    - transaction
    argTypes:
    - struct async_nb_queue_t*
    - struct async_nb_transaction_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&transaction->link))
      pos:
        line_end: 703
        line_start: 703
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: async_nb_push
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void async_nb_push(struct async_nb_queue_t *queue, struct async_nb_transaction_t
      *transaction)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_nb_pop
      Src: /src/h2o/src/main.c:716,1
    - Dst: async_nb_push
      Src: /src/h2o/src/main.c:718,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/src/main.c:719,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/main.c:720,1
    - Dst: assert
      Src: /src/h2o/src/main.c:723,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/src/main.c:723,1
    - Dst: neverbleed_iobuf_dispose
      Src: /src/h2o/src/main.c:724,1
    - Dst: free
      Src: /src/h2o/src/main.c:725,1
    - Dst: async_nb_submit_write_pending
      Src: /src/h2o/src/main.c:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&transaction->link))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 730
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 730
    functionName: async_nb_on_write_complete
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_pop
    - free
    - h2o_socket_is_reading
    - async_nb_submit_write_pending
    - neverbleed_iobuf_dispose
    - h2o_linklist_is_linked
    - assert
    - h2o_socket_read_start
    - async_nb_push
    linkageType: ''
    returnType: void
    signature: void async_nb_on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/src/main.c:741,1
    - Dst: async_nb_get
      Src: /src/h2o/src/main.c:741,1
    - Dst: neverbleed_iobuf_size
      Src: /src/h2o/src/main.c:744,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:745,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:746,1
    - Dst: h2o_socket_write
      Src: /src/h2o/src/main.c:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 749
    functionName: async_nb_submit_write_pending
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached:
    - h2o_socket_is_writing
    - async_nb_get
    - neverbleed_iobuf_size
    - h2o_socket_write
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void async_nb_submit_write_pending(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_get_fd
      Src: /src/h2o/src/main.c:753,1
    - Dst: fcntl
      Src: /src/h2o/src/main.c:754,1
    - Dst: fcntl
      Src: /src/h2o/src/main.c:757,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:759,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:759,1
    - Dst: transaction_cb
      Src: /src/h2o/src/main.c:762,1
    - Dst: fcntl
      Src: /src/h2o/src/main.c:765,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:767,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 769
    functionName: async_nb_run_sync
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - neverbleed_get_fd
    - fcntl
    - transaction_cb
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void async_nb_run_sync(neverbleed_iobuf_t *buf, void (*transaction_cb)(neverbleed_t
      *, neverbleed_iobuf_t *))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: async_nb_pop
      Src: /src/h2o/src/main.c:776,1
    - Dst: assert
      Src: /src/h2o/src/main.c:777,1
    - Dst: async_nb_run_sync
      Src: /src/h2o/src/main.c:779,1
    - Dst: struct async_nb_transaction_t*::on_read_complete
      Src: /src/h2o/src/main.c:780,1
    - Dst: neverbleed_get_fd
      Src: /src/h2o/src/main.c:786,1
    - Dst: poll
      Src: /src/h2o/src/main.c:788,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:791,1
    - Dst: async_nb_submit_write_pending
      Src: /src/h2o/src/main.c:800,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/main.c:803,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (transaction != NULL)
      pos:
        line_end: 776
        line_start: 776
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 804
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 804
    functionName: async_nb_read_ready
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - neverbleed_get_fd
    - async_nb_run_sync
    - async_nb_pop
    - poll
    - h2o_fatal
    - struct async_nb_transaction_t*::on_read_complete
    - async_nb_submit_write_pending
    - assert
    linkageType: ''
    returnType: void
    signature: void async_nb_read_ready(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eventfd_write
      Src: /src/h2o/src/main.c:818,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:820,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:820,1
    - Dst: write
      Src: /src/h2o/src/main.c:824,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:828,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - _transaction
    argTypes:
    - struct async_nb_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 831
    functionName: async_nb_notify_fd
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - write
    - h2o_fatal
    - eventfd_write
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void async_nb_notify_fd(struct async_nb_transaction_t *_transaction)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/h2o/src/main.c:840,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:842,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:842,1
    - Dst: cloexec_pipe
      Src: /src/h2o/src/main.c:848,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:850,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:850,1
    - Dst: async_nb_push
      Src: /src/h2o/src/main.c:858,1
    - Dst: async_nb_submit_write_pending
      Src: /src/h2o/src/main.c:859,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/h2o/src/main.c:864,1
    - Dst: assert
      Src: /src/h2o/src/main.c:865,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/h2o/src/main.c:865,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/h2o/src/main.c:866,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:867,1
    - Dst: ASYNC_pause_job
      Src: /src/h2o/src/main.c:868,1
    - Dst: ASYNC_WAIT_CTX_clear_fd
      Src: /src/h2o/src/main.c:869,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:870,1
    - Dst: assert
      Src: /src/h2o/src/main.c:873,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/src/main.c:873,1
    - Dst: close
      Src: /src/h2o/src/main.c:877,1
    - Dst: close
      Src: /src/h2o/src/main.c:879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - job
    - buf
    argTypes:
    - ASYNC_JOB*
    - neverbleed_iobuf_t*
    assertStmts:
    - condition: (ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds) && numfds ==
        0)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/h2o/src/main.c
    - condition: (!h2o_linklist_is_linked(&transaction.super.link))
      pos:
        line_end: 872
        line_start: 872
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 880
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 880
    functionName: async_nb_do_async_transaction
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - assert
    - h2o_strerror_r
    - ASYNC_WAIT_CTX_clear_fd
    - ASYNC_WAIT_CTX_get_all_fds
    - eventfd
    - ASYNC_WAIT_CTX_set_wait_fd
    - cloexec_pipe
    - ASYNC_get_wait_ctx
    - h2o_linklist_is_linked
    - ASYNC_pause_job
    - async_nb_submit_write_pending
    - h2o_fatal
    - async_nb_push
    linkageType: ''
    returnType: void
    signature: void async_nb_do_async_transaction(ASYNC_JOB *job, neverbleed_iobuf_t
      *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/h2o/src/main.c:889,1
    - Dst: assert
      Src: /src/h2o/src/main.c:890,1
    - Dst: assert
      Src: /src/h2o/src/main.c:891,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/main.c:891,1
    - Dst: neverbleed_get_fd
      Src: /src/h2o/src/main.c:891,1
    - Dst: async_nb_do_async_transaction
      Src: /src/h2o/src/main.c:892,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:902,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:904,1
    - Dst: h2o_memcpy
      Src: /src/h2o/src/main.c:910,1
    - Dst: memset
      Src: /src/h2o/src/main.c:911,1
    - Dst: async_nb_push
      Src: /src/h2o/src/main.c:914,1
    - Dst: async_nb_submit_write_pending
      Src: /src/h2o/src/main.c:915,1
    - Dst: async_nb_read_ready
      Src: /src/h2o/src/main.c:920,1
    - Dst: async_nb_run_sync
      Src: /src/h2o/src/main.c:923,1
    - Dst: async_nb_run_sync
      Src: /src/h2o/src/main.c:926,1
    - Dst: neverbleed_iobuf_dispose
      Src: /src/h2o/src/main.c:928,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - reponseless
    argTypes:
    - neverbleed_iobuf_t*
    - int
    assertStmts:
    - condition: (h2o_socket_get_fd(async_nb.sock) == neverbleed_get_fd(neverbleed))
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/h2o/src/main.c
    - condition: (!reponseless)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 931
      start: 884
    functionDepth: 4
    functionLinenumber: 884
    functionLinenumberEnd: 931
    functionName: async_nb_transaction
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - neverbleed_get_fd
    - h2o_socket_get_fd
    - async_nb_read_ready
    - async_nb_run_sync
    - h2o_memcpy
    - ASYNC_get_current_job
    - h2o_mem_alloc
    - async_nb_push
    - memset
    - neverbleed_iobuf_dispose
    - async_nb_submit_write_pending
    - assert
    - async_nb_do_async_transaction
    linkageType: ''
    returnType: void
    signature: void async_nb_transaction(neverbleed_iobuf_t *buf, int reponseless)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:956,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/src/main.c:956,1
    - Dst: neverbleed_iobuf_dispose
      Src: /src/h2o/src/main.c:958,1
    - Dst: free
      Src: /src/h2o/src/main.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - job
    argTypes:
    - ptls_async_job_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&ctx->transaction.link))
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 960
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 960
    functionName: async_nb_job_free
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - free
    - neverbleed_iobuf_dispose
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void async_nb_job_free(ptls_async_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - job
    - cbdata
    argTypes:
    - ptls_async_job_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 968
    functionName: async_nb_job_set_completion_callback
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_nb_job_set_completion_callback(ptls_async_job_t *job, void
      (*cb)(void *), void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:972,1
    - Dst: assert
      Src: /src/h2o/src/main.c:974,1
    - Dst: struct async_nb_job_t*::on_complete::func
      Src: /src/h2o/src/main.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct async_nb_transaction_t*
    assertStmts:
    - condition: (ctx->on_complete.func != NULL)
      pos:
        line_end: 973
        line_start: 973
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 976
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 976
    functionName: async_nb_job_handle_response
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - struct async_nb_job_t*::on_complete::func
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void async_nb_job_handle_response(struct async_nb_transaction_t *transaction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 990
    functionName: async_nb_job_new
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    linkageType: ''
    returnType: struct async_nb_job_t
    signature: struct async_nb_job_t *async_nb_job_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_nb_push
      Src: /src/h2o/src/main.c:994,1
    - Dst: async_nb_submit_write_pending
      Src: /src/h2o/src/main.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct async_nb_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: async_nb_job_submit
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_submit_write_pending
    - async_nb_push
    linkageType: ''
    returnType: void
    signature: void async_nb_job_submit(struct async_nb_job_t *job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:1005,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1012,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/src/main.c:1012,1
    - Dst: neverbleed_finish_digestsign
      Src: /src/h2o/src/main.c:1017,1
    - Dst: async_nb_job_free
      Src: /src/h2o/src/main.c:1018,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/src/main.c:1022,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:1023,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/src/main.c:1027,1
    - Dst: free
      Src: /src/h2o/src/main.c:1028,1
    - Dst: ptls_openssl_select_signature_scheme
      Src: /src/h2o/src/main.c:1033,1
    - Dst: async_nb_job_new
      Src: /src/h2o/src/main.c:1037,1
    - Dst: neverbleed_start_digestsign
      Src: /src/h2o/src/main.c:1038,1
    - Dst: ptls_openssl_signature_scheme_t*::scheme_md
      Src: /src/h2o/src/main.c:1038,1
    - Dst: async_nb_job_submit
      Src: /src/h2o/src/main.c:1041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 8
    argNames:
    - _self
    - tls
    - _job
    - selected_algorithm
    - output
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (_job != NULL)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/h2o/src/main.c
    - condition: (!h2o_linklist_is_linked(&job->transaction.link))
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1044
      start: 998
    functionDepth: 4
    functionLinenumber: 998
    functionLinenumberEnd: 1044
    functionName: async_nb_picotls_sign
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_job_submit
    - async_nb_job_new
    - neverbleed_start_digestsign
    - free
    - ptls_openssl_signature_scheme_t*::scheme_md
    - ptls_buffer_reserve
    - memcpy
    - async_nb_job_free
    - ptls_clear_memory
    - neverbleed_finish_digestsign
    - h2o_linklist_is_linked
    - assert
    - ptls_openssl_select_signature_scheme
    linkageType: ''
    returnType: int
    signature: "int async_nb_picotls_sign(ptls_sign_certificate_t *_self, ptls_t *tls,
      ptls_async_job_t **_job, uint16_t *selected_algorithm,\n                                 ptls_buffer_t
      *output, ptls_iovec_t input, const uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_resume_handshake
      Src: /src/h2o/src/main.c:1048,1
    - Dst: quicly_get_data
      Src: /src/h2o/src/main.c:1052,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/src/main.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tls
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1055
    functionName: async_nb_quic_resume_handshake
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - quicly_resume_handshake
    - quicly_get_data
    - h2o_quic_schedule_timer
    linkageType: ''
    returnType: void
    signature: void async_nb_quic_resume_handshake(void *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_async_job
      Src: /src/h2o/src/main.c:1059,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1061,1
    - Dst: ptls_async_job_t*::set_completion_callback
      Src: /src/h2o/src/main.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - tls
    argTypes:
    - quicly_async_handshake_t*
    - ptls_t*
    assertStmts:
    - condition: (job->set_completion_callback != NULL)
      pos:
        line_end: 1060
        line_start: 1060
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1063
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1063
    functionName: async_nb_quic_start
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - assert
    - ptls_async_job_t*::set_completion_callback
    - ptls_get_async_job
    linkageType: ''
    returnType: void
    signature: void async_nb_quic_start(quicly_async_handshake_t *self, ptls_t *tls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/h2o/src/main.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1073
    functionName: async_nb_boringssl_free_key_callback
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void async_nb_boringssl_free_key_callback(void *parent, void *ptr,
      CRYPTO_EX_DATA *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/src/main.c:1078,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/h2o/src/main.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1080
    functionName: async_nb_boringssl_get_key_index
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_new_index
    - H2O_MULTITHREAD_ONCE
    linkageType: ''
    returnType: int
    signature: int async_nb_boringssl_get_key_index(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_boringssl_async_resumption_in_flight
      Src: /src/h2o/src/main.c:1085,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/src/main.c:1088,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/h2o/src/main.c:1088,1
    - Dst: async_nb_boringssl_get_key_index
      Src: /src/h2o/src/main.c:1088,1
    - Dst: SSL_get_signature_algorithm_digest
      Src: /src/h2o/src/main.c:1089,1
    - Dst: SSL_is_signature_algorithm_rsa_pss
      Src: /src/h2o/src/main.c:1090,1
    - Dst: async_nb_job_new
      Src: /src/h2o/src/main.c:1092,1
    - Dst: neverbleed_start_digestsign
      Src: /src/h2o/src/main.c:1093,1
    - Dst: SSL_set_ex_data
      Src: /src/h2o/src/main.c:1094,1
    - Dst: h2o_socket_boringssl_get_async_job_index
      Src: /src/h2o/src/main.c:1094,1
    - Dst: async_nb_job_submit
      Src: /src/h2o/src/main.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - ssl
    - out
    - outlen
    - max_out
    - signature_algorithm
    - in
    - len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t*
    - size_t
    - uint16_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1082
    functionDepth: 4
    functionLinenumber: 1082
    functionLinenumberEnd: 1098
    functionName: async_nb_boringssl_sign
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_job_submit
    - SSL_CTX_get_ex_data
    - async_nb_job_new
    - neverbleed_start_digestsign
    - async_nb_boringssl_get_key_index
    - h2o_socket_boringssl_get_async_job_index
    - SSL_set_ex_data
    - SSL_get_SSL_CTX
    - SSL_is_signature_algorithm_rsa_pss
    - SSL_get_signature_algorithm_digest
    - h2o_socket_boringssl_async_resumption_in_flight
    linkageType: ''
    returnType: enum ssl_private_key_result_t
    signature: "enum ssl_private_key_result_t async_nb_boringssl_sign(SSL *ssl, uint8_t
      *out, size_t *outlen, size_t max_out,\n                                                      uint16_t
      signature_algorithm, const uint8_t *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_boringssl_async_resumption_in_flight
      Src: /src/h2o/src/main.c:1103,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/src/main.c:1106,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/h2o/src/main.c:1106,1
    - Dst: async_nb_boringssl_get_key_index
      Src: /src/h2o/src/main.c:1106,1
    - Dst: async_nb_job_new
      Src: /src/h2o/src/main.c:1108,1
    - Dst: neverbleed_start_decrypt
      Src: /src/h2o/src/main.c:1109,1
    - Dst: SSL_set_ex_data
      Src: /src/h2o/src/main.c:1110,1
    - Dst: h2o_socket_boringssl_get_async_job_index
      Src: /src/h2o/src/main.c:1110,1
    - Dst: async_nb_job_submit
      Src: /src/h2o/src/main.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - max_out
    - in
    - len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1100
    functionDepth: 4
    functionLinenumber: 1100
    functionLinenumberEnd: 1114
    functionName: async_nb_boringssl_decrypt
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_job_submit
    - SSL_CTX_get_ex_data
    - async_nb_boringssl_get_key_index
    - h2o_socket_boringssl_get_async_job_index
    - SSL_set_ex_data
    - SSL_get_SSL_CTX
    - neverbleed_start_decrypt
    - async_nb_job_new
    - h2o_socket_boringssl_async_resumption_in_flight
    linkageType: ''
    returnType: enum ssl_private_key_result_t
    signature: "enum ssl_private_key_result_t async_nb_boringssl_decrypt(SSL *ssl,
      uint8_t *out, size_t *outlen, size_t max_out, const uint8_t *in,\n                                                         size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/h2o/src/main.c:1118,1
    - Dst: h2o_socket_boringssl_get_async_job_index
      Src: /src/h2o/src/main.c:1118,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1122,1
    - Dst: neverbleed_finish_digestsign
      Src: /src/h2o/src/main.c:1124,1
    - Dst: async_nb_job_free
      Src: /src/h2o/src/main.c:1125,1
    - Dst: SSL_set_ex_data
      Src: /src/h2o/src/main.c:1127,1
    - Dst: h2o_socket_boringssl_get_async_job_index
      Src: /src/h2o/src/main.c:1127,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1129,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:1130,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/src/main.c:1133,1
    - Dst: free
      Src: /src/h2o/src/main.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - ssl
    - out
    - outlen
    - max_out
    argTypes:
    - SSL*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts:
    - condition: (job != NULL)
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/h2o/src/main.c
    - condition: (digestlen <= max_out)
      pos:
        line_end: 1128
        line_start: 1128
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1137
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1137
    functionName: async_nb_boringssl_complete
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    - h2o_socket_boringssl_get_async_job_index
    - async_nb_job_free
    - SSL_set_ex_data
    - ptls_clear_memory
    - neverbleed_finish_digestsign
    - SSL_get_ex_data
    - assert
    linkageType: ''
    returnType: enum ssl_private_key_result_t
    signature: enum ssl_private_key_result_t async_nb_boringssl_complete(SSL *ssl,
      uint8_t *out, size_t *outlen, size_t max_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get0_privatekey
      Src: /src/h2o/src/main.c:1141,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/src/main.c:1142,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/h2o/src/main.c:1143,1
    - Dst: async_nb_boringssl_get_key_index
      Src: /src/h2o/src/main.c:1143,1
    - Dst: SSL_CTX_set_private_key_method
      Src: /src/h2o/src/main.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1147
    functionName: async_nb_boringssl_setup_key_method
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ex_data
    - EVP_PKEY_up_ref
    - async_nb_boringssl_get_key_index
    - SSL_CTX_get0_privatekey
    - SSL_CTX_set_private_key_method
    linkageType: ''
    returnType: void
    signature: void async_nb_boringssl_setup_key_method(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/h2o/src/main.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - str
    - len
    - fp
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1155
    functionName: on_openssl_print_errors
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int on_openssl_print_errors(const char *str, size_t len, void *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ecdh_auto
      Src: /src/h2o/src/main.c:1160,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/h2o/src/main.c:1163,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1165,1
    - Dst: OBJ_nid2sn
      Src: /src/h2o/src/main.c:1165,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/h2o/src/main.c:1168,1
    - Dst: EC_KEY_free
      Src: /src/h2o/src/main.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ssl_ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1171
    functionName: setup_ecc_key
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_tmp_ecdh
    - SSL_CTX_set_ecdh_auto
    - OBJ_nid2sn
    - EC_KEY_free
    - fprintf
    - EC_KEY_new_by_curve_name
    linkageType: ''
    returnType: void
    signature: void setup_ecc_key(SSL_CTX *ssl_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_log_recalc_conn_state
      Src: /src/h2o/src/main.c:1175,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/src/main.c:1175,1
    - Dst: quicly_get_tls
      Src: /src/h2o/src/main.c:1175,1
    - Dst: h2o_socket_log_state
      Src: /src/h2o/src/main.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - is_quic
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: recalc_log_state
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_socket_log_state
    - ptls_log_recalc_conn_state
    - quicly_get_tls
    - ptls_get_log_state
    linkageType: ''
    returnType: void
    signature: void recalc_log_state(void *conn, int is_quic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/src/main.c:1188,1
    - Dst: h2o_lcstris
      Src: /src/h2o/src/main.c:1192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - listener
    - name
    - name_len
    argTypes:
    - struct listener_config_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1200
    functionName: resolve_sni
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_lcstris
    linkageType: ''
    returnType: struct listener_ssl_config_t
    signature: struct listener_ssl_config_t *resolve_sni(struct listener_config_t
      *listener, const char *name, size_t name_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/main.c:1206,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1207,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:1208,1
    - Dst: perror
      Src: /src/h2o/src/main.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - cc_name
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    assertStmts:
    - condition: (fd >= 0)
      pos:
        line_end: 1206
        line_start: 1206
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1212
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1212
    functionName: set_tcp_congestion_controller
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - perror
    - h2o_socket_get_fd
    - assert
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void set_tcp_congestion_controller(h2o_socket_t *sock, h2o_iovec_t
      cc_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/h2o/src/main.c:1217,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:1220,1
    - Dst: SSL_get_app_data
      Src: /src/h2o/src/main.c:1221,1
    - Dst: resolve_sni
      Src: /src/h2o/src/main.c:1222,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/h2o/src/main.c:1223,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/h2o/src/main.c:1224,1
    - Dst: set_tcp_congestion_controller
      Src: /src/h2o/src/main.c:1225,1
    - Dst: recalc_log_state
      Src: /src/h2o/src/main.c:1227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1231
    functionName: on_sni_callback
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - SSL_get_servername
    - set_tcp_congestion_controller
    - resolve_sni
    - SSL_get_app_data
    - recalc_log_state
    - SSL_get_SSL_CTX
    - SSL_set_SSL_CTX
    - strlen
    linkageType: ''
    returnType: int
    signature: int on_sni_callback(SSL *ssl, int *ad, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/src/main.c:1247,1
    - Dst: resolve_sni
      Src: /src/h2o/src/main.c:1253,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/src/main.c:1254,1
    - Dst: recalc_log_state
      Src: /src/h2o/src/main.c:1255,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1258,1
    - Dst: set_tcp_congestion_controller
      Src: /src/h2o/src/main.c:1263,1
    - Dst: quicly_set_cc
      Src: /src/h2o/src/main.c:1266,1
    - Dst: memchr
      Src: /src/h2o/src/main.c:1271,1
    - Dst: ptls_set_context
      Src: /src/h2o/src/main.c:1289,1
    - Dst: h2o_memis
      Src: /src/h2o/src/main.c:1297,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/src/main.c:1303,1
    - Dst: h2o_memis
      Src: /src/h2o/src/main.c:1310,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/src/main.c:1316,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 3
    argNames:
    - _self
    - tls
    - params
    argTypes:
    - ptls_on_client_hello_t*
    - ptls_t*
    - ptls_on_client_hello_parameters_t*
    assertStmts:
    - condition: (ssl_config != NULL)
      pos:
        line_end: 1257
        line_start: 1257
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1322
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1322
    functionName: on_client_hello_ptls
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_set_server_name
    - quicly_set_cc
    - ptls_set_negotiated_protocol
    - set_tcp_congestion_controller
    - memchr
    - ptls_set_context
    - ptls_get_data_ptr
    - resolve_sni
    - recalc_log_state
    - h2o_memis
    - assert
    linkageType: ''
    returnType: int
    signature: int on_client_hello_ptls(ptls_on_client_hello_t *_self, ptls_t *tls,
      ptls_on_client_hello_parameters_t *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:1327,1
    - Dst: ptls_init_compressed_certificate
      Src: /src/h2o/src/main.c:1330,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ocsp_status
    argTypes:
    - ptls_context_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1334
    functionName: build_compressed_certificate_ptls
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_fatal
    - ptls_init_compressed_certificate
    linkageType: ''
    returnType: ptls_emit_compressed_certificate_t
    signature: ptls_emit_compressed_certificate_t *build_compressed_certificate_ptls(ptls_context_t
      *ctx, ptls_iovec_t ocsp_status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: build_compressed_certificate_ptls
      Src: /src/h2o/src/main.c:1343,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1345,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1345,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/src/main.c:1348,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/src/main.c:1351,1
    - Dst: ptls_dispose_compressed_certificate
      Src: /src/h2o/src/main.c:1354,1
    - Dst: free
      Src: /src/h2o/src/main.c:1355,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/src/main.c:1361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - identity
    - ocsp_status
    argTypes:
    - struct listener_ssl_identity_t*
    - h2o_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1362
    functionName: build_ssl_dynamic_data
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - free
    - pthread_mutex_lock
    - build_compressed_certificate_ptls
    - h2o_buffer_dispose
    - pthread_mutex_unlock
    - ptls_dispose_compressed_certificate
    linkageType: ''
    returnType: void
    signature: void build_ssl_dynamic_data(struct listener_ssl_identity_t *identity,
      h2o_buffer_t *ocsp_status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:1366,1
    - Dst: h2o_read_command
      Src: /src/h2o/src/main.c:1369,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1370,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:1370,1
    - Dst: WIFEXITED
      Src: /src/h2o/src/main.c:1384,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/src/main.c:1384,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/src/main.c:1385,1
    - Dst: WIFEXITED
      Src: /src/h2o/src/main.c:1386,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1387,1
    - Dst: WTERMSIG
      Src: /src/h2o/src/main.c:1387,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/src/main.c:1391,1
    - Dst: free
      Src: /src/h2o/src/main.c:1394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - cmd
    - cert_chain_pem
    - resp
    argTypes:
    - char*
    - h2o_iovec_t
    - h2o_buffer_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1396
    functionName: get_ocsp_response
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_read_command
    - h2o_configurator_get_cmd_path
    - WTERMSIG
    - free
    - h2o_buffer_dispose
    - WEXITSTATUS
    - fprintf
    - WIFEXITED
    - strerror
    linkageType: ''
    returnType: int
    signature: int get_ocsp_response(const char *cmd, h2o_iovec_t cert_chain_pem,
      h2o_buffer_t **resp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:1406,1
    - Dst: time
      Src: /src/h2o/src/main.c:1410,1
    - Dst: sleep
      Src: /src/h2o/src/main.c:1412,1
    - Dst: h2o_sem_wait
      Src: /src/h2o/src/main.c:1416,1
    - Dst: get_ocsp_response
      Src: /src/h2o/src/main.c:1417,1
    - Dst: h2o_sem_post
      Src: /src/h2o/src/main.c:1418,1
    - Dst: build_ssl_dynamic_data
      Src: /src/h2o/src/main.c:1422,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1423,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1428,1
    - Dst: build_ssl_dynamic_data
      Src: /src/h2o/src/main.c:1431,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1433,1
    - Dst: build_ssl_dynamic_data
      Src: /src/h2o/src/main.c:1441,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:1442,1
    - Dst: time
      Src: /src/h2o/src/main.c:1446,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - _identity
    argTypes:
    - void*
    assertStmts:
    - condition: (identity->ocsp_stapling->interval != 0)
      pos:
        line_end: 1405
        line_start: 1405
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1451
      start: 1398
    functionDepth: 3
    functionLinenumber: 1398
    functionLinenumberEnd: 1451
    functionName: ocsp_updater_thread
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_sem_wait
    - time
    - sleep
    - get_ocsp_response
    - fprintf
    - h2o_sem_post
    - build_ssl_dynamic_data
    - assert
    linkageType: ''
    returnType: void
    signature: void *ocsp_updater_thread(void *_identity)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/src/main.c:1462,1
    - Dst: CRYPTO_malloc
      Src: /src/h2o/src/main.c:1464,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:1467,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/src/main.c:1470,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/h2o/src/main.c:1473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ssl
    - _identity
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1478
    functionName: on_staple_ocsp_ossl
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - memcpy
    - CRYPTO_malloc
    - pthread_mutex_unlock
    - SSL_set_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: int on_staple_ocsp_ossl(SSL *ssl, void *_identity)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/src/main.c:1494,1
    - Dst: ptls_emit_certificate_t*::cb
      Src: /src/h2o/src/main.c:1499,1
    - Dst: ptls_push_message
      Src: /src/h2o/src/main.c:1505,1
    - Dst: ptls_get_context
      Src: /src/h2o/src/main.c:1506,1
    - Dst: ptls_build_certificate_message
      Src: /src/h2o/src/main.c:1508,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1509,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1510,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1510,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/src/main.c:1517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 8
    argNames:
    - _self
    - tls
    - emitter
    - key_sched
    - context
    - push_status_request
    - compress_algos
    - num_compress_algos
    argTypes:
    - ptls_emit_certificate_t*
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_key_schedule_t*
    - ptls_iovec_t
    - int
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1519
    functionName: on_emit_certificate_ptls
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_get_context
    - ptls_push_message
    - pthread_mutex_lock
    - ptls_build_certificate_message
    - pthread_mutex_unlock
    - ptls_emit_certificate_t*::cb
    linkageType: ''
    returnType: int
    signature: "int on_emit_certificate_ptls(ptls_emit_certificate_t *_self, ptls_t
      *tls, ptls_message_emitter_t *emitter,\n                                    ptls_key_schedule_t
      *key_sched, ptls_iovec_t context, int push_status_request,\n                                    const
      uint16_t *compress_algos, size_t num_compress_algos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:1535,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:1539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1543
    functionName: replace_ciphersuites
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t **replace_ciphersuites(ptls_cipher_suite_t **input,
      ptls_cipher_suite_t **replacements)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:1562,1
    - Dst: STACK_OF
      Src: /src/h2o/src/main.c:1565,1
    - Dst: SSL_new
      Src: /src/h2o/src/main.c:1633,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1634,1
    - Dst: SSL_get_certificate
      Src: /src/h2o/src/main.c:1635,1
    - Dst: X509_up_ref
      Src: /src/h2o/src/main.c:1636,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/src/main.c:1639,1
    - Dst: async_nb_boringssl_get_key_index
      Src: /src/h2o/src/main.c:1639,1
    - Dst: SSL_get_privatekey
      Src: /src/h2o/src/main.c:1643,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1645,1
    - Dst: SSL_get_verify_mode
      Src: /src/h2o/src/main.c:1647,1
    - Dst: SSL_free
      Src: /src/h2o/src/main.c:1648,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/h2o/src/main.c:1654,1
    - Dst: ptls_openssl_init_verify_certificate
      Src: /src/h2o/src/main.c:1655,1
    - Dst: free
      Src: /src/h2o/src/main.c:1656,1
    - Dst: ptls_openssl_lookup_signature_schemes
      Src: /src/h2o/src/main.c:1667,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/src/main.c:1669,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/src/main.c:1675,1
    - Dst: free
      Src: /src/h2o/src/main.c:1676,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1685,1
    - Dst: SSL_CTX_get_extra_chain_certs
      Src: /src/h2o/src/main.c:1686,1
    - Dst: ptls_openssl_load_certificates
      Src: /src/h2o/src/main.c:1687,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1688,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:1691,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1699,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/src/main.c:1700,1
    - Dst: ptls_fusion_is_supported_by_cpu
      Src: /src/h2o/src/main.c:1707,1
    - Dst: replace_ciphersuites
      Src: /src/h2o/src/main.c:1713,1
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/src/main.c:1716,1
    - Dst: X509_free
      Src: /src/h2o/src/main.c:1721,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 10
    argNames:
    - listener
    - identity
    - raw_public_key
    - key_exchanges
    - cipher_suites
    - server_cipher_preference
    - use_neverbleed
    - ech_create_opener
    - ech_retry_configs
    - max_tickets
    argTypes:
    - struct listener_config_t*
    - struct listener_ssl_identity_t*
    - ptls_iovec_t
    - ptls_key_exchange_algorithm_t**
    - ptls_cipher_suite_t**
    - int
    - int
    - ptls_ech_create_opener_t*
    - ptls_iovec_t
    - uint8_t
    assertStmts:
    - condition: (sizeof(pctx->ctx.ticket_context.bytes) == PTLS_SHA256_DIGEST_SIZE)
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/h2o/src/main.c
    - condition: (key != NULL)
      pos:
        line_end: 1644
        line_start: 1644
        source_file: /src/h2o/src/main.c
    - condition: (cert != NULL)
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/h2o/src/main.c
    - condition: (fakeconn != NULL)
      pos:
        line_end: 1633
        line_start: 1633
        source_file: /src/h2o/src/main.c
    - condition: (ret == 0)
      pos:
        line_end: 1687
        line_start: 1687
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1724
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1724
    functionName: listener_setup_ssl_picotls
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - async_nb_boringssl_get_key_index
    - SSL_get_privatekey
    - assert
    - SSL_get_verify_mode
    - STACK_OF
    - free
    - X509_up_ref
    - SSL_CTX_get_ex_data
    - EVP_PKEY_up_ref
    - ptls_fusion_is_supported_by_cpu
    - h2o_mem_alloc
    - ptls_calc_hash
    - ptls_openssl_load_certificates
    - replace_ciphersuites
    - ptls_openssl_init_verify_certificate
    - ptls_openssl_init_sign_certificate
    - ptls_openssl_lookup_signature_schemes
    - SSL_CTX_get_extra_chain_certs
    - SSL_get_certificate
    - SSL_CTX_get_cert_store
    - quicly_amend_ptls_context
    - SSL_free
    - SSL_new
    - X509_free
    linkageType: ''
    returnType: char
    signature: "char *listener_setup_ssl_picotls(struct listener_config_t *listener,
      struct listener_ssl_identity_t *identity,\n                                              ptls_iovec_t
      raw_public_key, ptls_key_exchange_algorithm_t **key_exchanges,\n                                              ptls_cipher_suite_t
      **cipher_suites, int server_cipher_preference, int use_neverbleed,\n                                              ptls_ech_create_opener_t
      *ech_create_opener, ptls_iovec_t ech_retry_configs,\n                                              uint8_t
      max_tickets)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/src/main.c:1728,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:1732,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ssl_config
    - host
    argTypes:
    - struct listener_ssl_config_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1734
    functionName: listener_setup_ssl_add_host
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - memchr
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void listener_setup_ssl_add_host(struct listener_ssl_config_t *ssl_config,
      h2o_iovec_t host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:1739,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1745,1
    - Dst: free
      Src: /src/h2o/src/main.c:1746,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:1749,1
    - Dst: htons
      Src: /src/h2o/src/main.c:1750,1
    - Dst: h2o_strtolower
      Src: /src/h2o/src/main.c:1755,1
    - Dst: h2o_concat_list
      Src: /src/h2o/src/main.c:1757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - cmd
    - origins
    - nr_origins
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1759
    functionName: build_http2_origin_frame
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - htons
    - free
    - h2o_concat_list
    - h2o_configurator_errprintf
    - h2o_mem_alloc
    - h2o_strtolower
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t *build_http2_origin_frame(h2o_configurator_command_t *cmd,
      yoml_t **origins, size_t nr_origins)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1769,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:1774,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:1778,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:1780,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:1780,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1781,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1785,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:1788,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:1793,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1797,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1802
    functionName: parse_tls13_ciphers
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - strcmp
    - sprintf
    - h2o_vector_reserve
    - strlen
    - strcpy
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t **parse_tls13_ciphers(h2o_configurator_command_t
      *cmd, yoml_t *node, int is_quic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/src/main.c:1812,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:1814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - conf
    - parsed
    - num_parsed
    argTypes:
    - struct listener_ssl_config_t*
    - struct listener_ssl_parsed_identity_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1819
    functionName: ssl_identity_is_equal
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ssl_identity_is_equal(struct listener_ssl_config_t *conf, struct
      listener_ssl_parsed_identity_t *parsed,\n                                 size_t
      num_parsed)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:1825,1
    - Dst: ptls_load_pem_objects
      Src: /src/h2o/src/main.c:1830,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/src/main.c:1833,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1834,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:1836,1
    - Dst: h2o_file_read
      Src: /src/h2o/src/main.c:1839,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1840,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:1841,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:1852,1
    - Dst: neverbleed_init
      Src: /src/h2o/src/main.c:1853,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:1854,1
    - Dst: neverbleed_load_private_key_file
      Src: /src/h2o/src/main.c:1858,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1859,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/src/main.c:1864,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1865,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:1866,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/src/main.c:1873,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/src/main.c:1874,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1875,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:1876,1
    - Dst: X509_STORE_get0_param
      Src: /src/h2o/src/main.c:1881,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/h2o/src/main.c:1881,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/h2o/src/main.c:1882,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1883,1
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/src/main.c:1890,1
    - Dst: X509_digest
      Src: /src/h2o/src/main.c:1891,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/h2o/src/main.c:1891,1
    - Dst: EVP_sha256
      Src: /src/h2o/src/main.c:1891,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1892,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1893,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/h2o/src/main.c:1894,1
    - Dst: assert
      Src: /src/h2o/src/main.c:1895,1
    - Dst: async_nb_boringssl_setup_key_method
      Src: /src/h2o/src/main.c:1902,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 7
    argNames:
    - cmd
    - ssl_ctx
    - cert_chain_pem
    - raw_pubkey
    - use_neverbleed
    - parsed
    - client_ca_file
    argTypes:
    - h2o_configurator_command_t*
    - SSL_CTX*
    - h2o_iovec_t*
    - ptls_iovec_t*
    - int
    - struct listener_ssl_parsed_identity_t*
    - yoml_t**
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/h2o/src/main.c
    - condition: (ret == 1)
      pos:
        line_end: 1891
        line_start: 1891
        source_file: /src/h2o/src/main.c
    - condition: (session_ctx_len == sizeof(session_ctx))
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/h2o/src/main.c
    - condition: (ret == 1)
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 1906
      start: 1821
    functionDepth: 3
    functionLinenumber: 1821
    functionLinenumberEnd: 1906
    functionName: load_ssl_identity
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_certificate
    - SSL_CTX_load_verify_locations
    - neverbleed_init
    - SSL_CTX_use_certificate_chain_file
    - ptls_load_pem_objects
    - SSL_CTX_set_verify
    - assert
    - h2o_iovec_init
    - H2O_BUILD_ASSERT
    - SSL_CTX_set_session_id_context
    - EVP_sha256
    - strerror
    - h2o_configurator_errprintf
    - neverbleed_load_private_key_file
    - X509_STORE_get0_param
    - ERR_print_errors_cb
    - async_nb_boringssl_setup_key_method
    - X509_digest
    - h2o_mem_alloc
    - X509_VERIFY_PARAM_set_flags
    - h2o_fatal
    - SSL_CTX_get_cert_store
    - h2o_file_read
    - SSL_CTX_use_PrivateKey_file
    linkageType: ''
    returnType: int
    signature: "int load_ssl_identity(h2o_configurator_command_t *cmd, SSL_CTX *ssl_ctx,
      h2o_iovec_t *cert_chain_pem,\n                             ptls_iovec_t *raw_pubkey,
      int use_neverbleed, struct listener_ssl_parsed_identity_t *parsed,\n                             yoml_t
      **client_ca_file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/src/main.c:1934,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/src/main.c:1954,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/src/main.c:1955,1
    - Dst: ptls_hpke_setup_base_r
      Src: /src/h2o/src/main.c:1959,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:1959,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/src/main.c:1963,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 8
    argNames:
    - _self
    - kem
    - cipher
    - tls
    - config_id
    - cipher_id
    - enc
    - info_prefix
    argTypes:
    - ptls_ech_create_opener_t*
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    - ptls_t*
    - uint8_t
    - ptls_hpke_cipher_suite_id_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1965
    functionName: ech_create_opener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_pushv
    - ptls_buffer_init
    - ptls_hpke_setup_base_r
    - ptls_buffer_dispose
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: "ptls_aead_context_t *ech_create_opener(ptls_ech_create_opener_t *_self,
      ptls_hpke_kem_t **kem,\n                                              ptls_hpke_cipher_suite_t
      **cipher, ptls_t *tls, uint8_t config_id,\n                                              ptls_hpke_cipher_suite_id_t
      cipher_id, ptls_iovec_t enc, ptls_iovec_t info_prefix)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:1973,1
    - Dst: fopen
      Src: /src/h2o/src/main.c:1981,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1982,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:1983,1
    - Dst: PEM_read_PrivateKey
      Src: /src/h2o/src/main.c:1987,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1988,1
    - Dst: ptls_openssl_create_key_exchange
      Src: /src/h2o/src/main.c:1991,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:1992,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/src/main.c:1995,1
    - Dst: fclose
      Src: /src/h2o/src/main.c:1996,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2007,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2013,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2017,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:2022,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2025,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2036,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2037,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2041,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2042,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:2047,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2048,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/src/main.c:2056,1
    - Dst: ptls_ech_encode_config
      Src: /src/h2o/src/main.c:2057,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2060,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:2061,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 3
    argNames:
    - cmd
    - map
    - config
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - struct ech_opener_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 2065
    functionName: on_config_one_ech
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_openssl_create_key_exchange
    - EVP_PKEY_free
    - h2o_configurator_get_one_of
    - ptls_iovec_init
    - PEM_read_PrivateKey
    - ptls_ech_encode_config
    - h2o_configurator_scanf
    - h2o_mem_alloc
    - fopen
    - strcasecmp
    - fclose
    - strerror
    - ptls_buffer_init
    - h2o_fatal
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_one_ech(h2o_configurator_command_t *cmd, yoml_t *map,
      struct ech_opener_config_t *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2074,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:2080,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2086,1
    - Dst: on_config_one_ech
      Src: /src/h2o/src/main.c:2089,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:2095,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2095,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/src/main.c:2097,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:2098,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - cmd
    - configs
    - _opener
    - retry_configs
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - ptls_ech_create_opener_t**
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2070
    functionDepth: 2
    functionLinenumber: 2070
    functionLinenumberEnd: 2115
    functionName: on_config_ech
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - h2o_mem_realloc
    - h2o_mem_alloc
    - memcpy
    - h2o_configurator_errprintf
    - on_config_one_ech
    linkageType: ''
    returnType: int
    signature: "int on_config_ech(h2o_configurator_command_t *cmd, yoml_t *configs,
      ptls_ech_create_opener_t **_opener,\n                         ptls_iovec_t *retry_configs)"
  - BBCount: 90
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2140,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2144,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:2154,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2168,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2174,1
    - Dst: alloca
      Src: /src/h2o/src/main.c:2177,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2182,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:2191,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2201,1
    - Dst: alloca
      Src: /src/h2o/src/main.c:2205,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2214,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2220,1
    - Dst: alloca
      Src: /src/h2o/src/main.c:2224,1
    - Dst: get_acme_cert_and_key
      Src: /src/h2o/src/main.c:2226,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:2233,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:2244,1
    - Dst: build_http2_origin_frame
      Src: /src/h2o/src/main.c:2249,1
    - Dst: build_http2_origin_frame
      Src: /src/h2o/src/main.c:2253,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2258,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2269,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2270,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2271,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2272,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2274,1
    - Dst: MAP
      Src: /src/h2o/src/main.c:2277,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2280,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:2287,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2296,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:2303,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2305,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2309,1
    - Dst: ssl_identity_is_equal
      Src: /src/h2o/src/main.c:2320,1
    - Dst: listener_setup_ssl_add_host
      Src: /src/h2o/src/main.c:2323,1
    - Dst: assert
      Src: /src/h2o/src/main.c:2351,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2353,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2356,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2361,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:2366,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:2371,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2375,1
    - Dst: parse_tls13_ciphers
      Src: /src/h2o/src/main.c:2382,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2385,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2393,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2397,1
    - Dst: on_config_ech
      Src: /src/h2o/src/main.c:2400,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2409,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2412,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2418,1
    - Dst: memset
      Src: /src/h2o/src/main.c:2419,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:2420,1
    - Dst: listener_setup_ssl_add_host
      Src: /src/h2o/src/main.c:2423,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2426,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:2434,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:2435,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/src/main.c:2443,1
    - Dst: SSLv23_server_method
      Src: /src/h2o/src/main.c:2443,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/h2o/src/main.c:2446,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/src/main.c:2448,1
    - Dst: SSL_CTX_set_mode
      Src: /src/h2o/src/main.c:2454,1
    - Dst: SSL_CTX_get_mode
      Src: /src/h2o/src/main.c:2454,1
    - Dst: setup_ecc_key
      Src: /src/h2o/src/main.c:2457,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/h2o/src/main.c:2458,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2459,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:2460,1
    - Dst: BIO_new_file
      Src: /src/h2o/src/main.c:2464,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2466,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:2467,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/h2o/src/main.c:2470,1
    - Dst: BIO_free
      Src: /src/h2o/src/main.c:2471,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2473,1
    - Dst: ERR_print_errors_cb
      Src: /src/h2o/src/main.c:2474,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/h2o/src/main.c:2477,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/src/main.c:2478,1
    - Dst: DH_free
      Src: /src/h2o/src/main.c:2479,1
    - Dst: h2o_ssl_register_npn_protocols
      Src: /src/h2o/src/main.c:2482,1
    - Dst: h2o_ssl_register_alpn_protocols
      Src: /src/h2o/src/main.c:2485,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/h2o/src/main.c:2488,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/h2o/src/main.c:2489,1
    - Dst: load_ssl_identity
      Src: /src/h2o/src/main.c:2494,1
    - Dst: listener_setup_ssl_picotls
      Src: /src/h2o/src/main.c:2499,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2505,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2508,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2513,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/h2o/src/main.c:2522,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/h2o/src/main.c:2523,1
    - Dst: h2o_socket_ssl_set_picotls_context
      Src: /src/h2o/src/main.c:2527,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/src/main.c:2530,1
    - Dst: h2o_multithread_create_thread
      Src: /src/h2o/src/main.c:2540,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2548,1
    - Dst: get_ocsp_response
      Src: /src/h2o/src/main.c:2549,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/src/main.c:2551,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2552,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2555,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2559,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:2576,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:2581,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2588,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2601,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 352
    argCount: 8
    argNames:
    - cmd
    - ctx
    - listen_node
    - ssl_node
    - cc_node
    - initcwnd_node
    - listener
    - listener_is_new
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    - yoml_t**
    - yoml_t**
    - yoml_t**
    - struct listener_config_t*
    - int
    assertStmts:
    - condition: ((*key_exchange_tls13_node)->type == YOML_TYPE_SEQUENCE)
      pos:
        line_end: 2350
        line_start: 2350
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 2611
      start: 2117
    functionDepth: 4
    functionLinenumber: 2117
    functionLinenumberEnd: 2611
    functionName: listener_setup_ssl
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_ssl_register_npn_protocols
    - SSL_CTX_set_tlsext_status_arg
    - BIO_new_file
    - BIO_free
    - SSL_CTX_set_cipher_list
    - h2o_socket_ssl_set_picotls_context
    - SSLv23_server_method
    - DH_free
    - h2o_configurator_scanf
    - get_ocsp_response
    - h2o_buffer_dispose
    - setup_ecc_key
    - ssl_identity_is_equal
    - assert
    - h2o_ssl_register_alpn_protocols
    - h2o_configurator_parse_mapping
    - h2o_strdup
    - listener_setup_ssl_picotls
    - SSL_CTX_set_tmp_dh
    - parse_tls13_ciphers
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_mode
    - SSL_CTX_set_min_proto_version
    - fprintf
    - load_ssl_identity
    - memset
    - h2o_configurator_errprintf
    - ERR_print_errors_cb
    - SSL_CTX_new
    - listener_setup_ssl_add_host
    - h2o_mem_alloc
    - on_config_ech
    - SSL_CTX_get_mode
    - h2o_vector_reserve
    - build_http2_origin_frame
    - alloca
    - SSL_CTX_set_tlsext_status_cb
    - SSL_CTX_set_tlsext_servername_arg
    - h2o_configurator_get_one_of
    - SSL_CTX_set_options
    - PEM_read_bio_DHparams
    - strcasecmp
    - MAP
    - SSL_CTX_free
    - h2o_multithread_create_thread
    - get_acme_cert_and_key
    linkageType: ''
    returnType: int
    signature: "int listener_setup_ssl(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *listen_node,\n                              yoml_t **ssl_node,
      yoml_t **cc_node, yoml_t **initcwnd_node, struct listener_config_t *listener,\n
      \                             int listener_is_new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tok
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2269
    functionName: MAP
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP(tok, op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_compare_address
      Src: /src/h2o/src/main.c:2619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - addrlen
    - is_quic
    argTypes:
    - struct sockaddr*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2613
    functionDepth: 1
    functionLinenumber: 2613
    functionLinenumberEnd: 2625
    functionName: find_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_socket_compare_address
    linkageType: ''
    returnType: struct listener_config_t
    signature: struct listener_config_t *find_listener(struct sockaddr *addr, socklen_t
      addrlen, int is_quic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2630,1
    - Dst: memset
      Src: /src/h2o/src/main.c:2632,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:2633,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:2635,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:2640,1
    - Dst: memset
      Src: /src/h2o/src/main.c:2643,1
    - Dst: memset
      Src: /src/h2o/src/main.c:2644,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:2647,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/src/main.c:2651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 7
    argNames:
    - fd
    - addr
    - addrlen
    - is_global
    - proxy_protocol
    - sndbuf
    - rcvbuf
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    - int
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2655
    functionName: add_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_mem_realloc
    - h2o_mem_alloc
    - memcpy
    - h2o_vector_reserve
    - memset
    - h2o_iovec_init
    linkageType: ''
    returnType: struct listener_config_t
    signature: "struct listener_config_t *add_listener(int fd, struct sockaddr *addr,
      socklen_t addrlen, int is_global, int proxy_protocol,\n                                              unsigned
      sndbuf, unsigned rcvbuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:2661,1
    - Dst: assert
      Src: /src/h2o/src/main.c:2662,1
    - Dst: getsockname
      Src: /src/h2o/src/main.c:2673,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2674,1
    - Dst: exit
      Src: /src/h2o/src/main.c:2676,1
    - Dst: getsockopt
      Src: /src/h2o/src/main.c:2679,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2680,1
    - Dst: exit
      Src: /src/h2o/src/main.c:2682,1
    - Dst: h2o_socket_compare_address
      Src: /src/h2o/src/main.c:2684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - addr
    - type
    argTypes:
    - struct sockaddr*
    - int
    assertStmts:
    - condition: (conf.server_starter.fds != NULL)
      pos:
        line_end: 2660
        line_start: 2660
        source_file: /src/h2o/src/main.c
    - condition: (conf.server_starter.num_fds != 0)
      pos:
        line_end: 2661
        line_start: 2661
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 2693
      start: 2657
    functionDepth: 1
    functionLinenumber: 2657
    functionLinenumberEnd: 2693
    functionName: find_listener_from_server_starter
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_socket_compare_address
    - exit
    - getsockname
    - fprintf
    - assert
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int find_listener_from_server_starter(struct sockaddr *addr, int type)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2707,1
    - Dst: getpwnam_r
      Src: /src/h2o/src/main.c:2711,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2713,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2714,1
    - Dst: getgrnam_r
      Src: /src/h2o/src/main.c:2721,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2723,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2724,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:2730,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2731,1
    - Dst: lstat
      Src: /src/h2o/src/main.c:2736,1
    - Dst: S_ISSOCK
      Src: /src/h2o/src/main.c:2737,1
    - Dst: unlink
      Src: /src/h2o/src/main.c:2738,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2740,1
    - Dst: socket
      Src: /src/h2o/src/main.c:2746,1
    - Dst: bind
      Src: /src/h2o/src/main.c:2746,1
    - Dst: listen
      Src: /src/h2o/src/main.c:2746,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2747,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2747,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:2750,1
    - Dst: chown
      Src: /src/h2o/src/main.c:2753,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2754,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2755,1
    - Dst: chmod
      Src: /src/h2o/src/main.c:2758,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2759,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2759,1
    - Dst: close
      Src: /src/h2o/src/main.c:2767,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 6
    argNames:
    - cmd
    - node
    - sa
    - owner_node
    - group_node
    - permission_node
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - struct sockaddr_un*
    - yoml_t**
    - yoml_t**
    - yoml_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2695
    functionDepth: 1
    functionLinenumber: 2695
    functionLinenumberEnd: 2769
    functionName: open_unix_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - set_cloexec
    - unlink
    - getpwnam_r
    - bind
    - chmod
    - listen
    - h2o_configurator_scanf
    - S_ISSOCK
    - lstat
    - strerror
    - socket
    - getgrnam_r
    - h2o_configurator_errprintf
    - chown
    linkageType: ''
    returnType: int
    signature: "int open_unix_listener(h2o_configurator_command_t *cmd, yoml_t *node,
      struct sockaddr_un *sa, yoml_t **owner_node,\n                              yoml_t
      **group_node, yoml_t **permission_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2775,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2776,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2778
    functionName: socket_reuseport
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void socket_reuseport(int fd)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/src/main.c:2787,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:2789,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2795,1
    - Dst: perror
      Src: /src/h2o/src/main.c:2796,1
    - Dst: socket_reuseport
      Src: /src/h2o/src/main.c:2804,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2807,1
    - Dst: socket_reuseport
      Src: /src/h2o/src/main.c:2812,1
    - Dst: h2o_socket_set_df_bit
      Src: /src/h2o/src/main.c:2813,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2816,1
    - Dst: bind
      Src: /src/h2o/src/main.c:2821,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2833,1
    - Dst: listen
      Src: /src/h2o/src/main.c:2838,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:2843,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2844,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2845,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2845,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2858,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:2859,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2859,1
    - Dst: assert
      Src: /src/h2o/src/main.c:2861,1
    - Dst: close
      Src: /src/h2o/src/main.c:2870,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 5
    argNames:
    - domain
    - type
    - protocol
    - addr
    - addrlen
    argTypes:
    - int
    - int
    - int
    - struct sockaddr*
    - socklen_t
    assertStmts:
    - condition: (!"conf.tfo_queues not zero on platform without TCP_FASTOPEN")
      pos:
        line_end: 2860
        line_start: 2860
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 2872
      start: 2783
    functionDepth: 2
    functionLinenumber: 2783
    functionLinenumberEnd: 2872
    functionName: open_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - set_cloexec
    - assert
    - perror
    - h2o_socket_set_df_bit
    - setsockopt
    - strerror
    - socket_reuseport
    - fprintf
    - bind
    - socket
    - h2o_fatal
    - listen
    - strcpy
    linkageType: ''
    returnType: int
    signature: int open_listener(int domain, int type, int protocol, struct sockaddr
      *addr, socklen_t addrlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2887
    functionName: protocol_to_string
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_fatal
    linkageType: ''
    returnType: char
    signature: char *protocol_to_string(int protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_listener
      Src: /src/h2o/src/main.c:2894,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2895,1
    - Dst: protocol_to_string
      Src: /src/h2o/src/main.c:2895,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 9
    argNames:
    - cmd
    - node
    - hostname
    - servname
    - domain
    - type
    - protocol
    - addr
    - addrlen
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    - char*
    - int
    - int
    - int
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2889
    functionDepth: 3
    functionLinenumber: 2889
    functionLinenumberEnd: 2899
    functionName: open_inet_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - protocol_to_string
    - open_listener
    - h2o_configurator_errprintf
    - strerror
    linkageType: ''
    returnType: int
    signature: "int open_inet_listener(h2o_configurator_command_t *cmd, yoml_t *node,
      const char *hostname, const char *servname, int domain,\n                              int
      type, int protocol, struct sockaddr *addr, socklen_t addrlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2909,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2910,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2910,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2912,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2913,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2913,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2916,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2917,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2917,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2922,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2923,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2923,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2926,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2927,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2927,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2935,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2936,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2936,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:2937,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:2938,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:2938,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 4
    argNames:
    - fd
    - family
    - sndbuf
    - rcvbuf
    argTypes:
    - int
    - int
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2939
    functionName: set_quic_sockopts
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - strerror
    - h2o_fatal
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void set_quic_sockopts(int fd, int family, unsigned sndbuf, unsigned
      rcvbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/src/main.c:2947,1
    - Dst: getaddrinfo
      Src: /src/h2o/src/main.c:2952,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2953,1
    - Dst: gai_strerror
      Src: /src/h2o/src/main.c:2953,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:2956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - cmd
    - node
    - socktype
    - protocol
    - hostname
    - servname
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2941
    functionDepth: 1
    functionLinenumber: 2941
    functionLinenumberEnd: 2961
    functionName: resolve_address
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - memset
    - getaddrinfo
    - gai_strerror
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: struct addrinfo
    signature: "struct addrinfo *resolve_address(h2o_configurator_command_t *cmd,
      yoml_t *node, int socktype, int protocol,\n                                        const
      char *hostname, const char *servname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/src/main.c:2967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2968
    functionName: notify_all_threads
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_multithread_send_message
    linkageType: ''
    returnType: void
    signature: void notify_all_threads(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/src/main.c:2972,1
    - Dst: notify_all_threads
      Src: /src/h2o/src/main.c:2975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - delta
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2970
    functionDepth: 2
    functionLinenumber: 2970
    functionLinenumberEnd: 2978
    functionName: num_connections
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached:
    - __sync_fetch_and_add
    - notify_all_threads
    linkageType: ''
    returnType: int
    signature: int num_connections(int delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/src/main.c:2982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2980
    functionDepth: 0
    functionLinenumber: 2980
    functionLinenumberEnd: 2983
    functionName: num_quic_connections
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: int
    signature: int num_quic_connections(int delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/src/main.c:2987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2985
    functionDepth: 0
    functionLinenumber: 2985
    functionLinenumberEnd: 2988
    functionName: num_sessions
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long num_sessions(int delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_connections
      Src: /src/h2o/src/main.c:2992,1
    - Dst: num_quic_connections
      Src: /src/h2o/src/main.c:2993,1
    - Dst: super::destroy_connection
      Src: /src/h2o/src/main.c:2995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2990
    functionDepth: 3
    functionLinenumber: 2990
    functionLinenumberEnd: 2996
    functionName: on_http3_conn_destroy
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - num_connections
    - super::destroy_connection
    - num_quic_connections
    linkageType: ''
    returnType: void
    signature: void on_http3_conn_destroy(h2o_quic_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/main.c:3000,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:3002,1
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:3004,1
    - Dst: sscanf
      Src: /src/h2o/src/main.c:3006,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - cmd
    - node
    - ratio
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - uint8_t*
    assertStmts:
    - condition: (node->type == YOML_TYPE_SCALAR)
      pos:
        line_end: 2999
        line_start: 2999
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 3012
      start: 2998
    functionDepth: 1
    functionLinenumber: 2998
    functionLinenumberEnd: 3012
    functionName: parse_quic_enable_ratio
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strcasecmp
    - assert
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int parse_quic_enable_ratio(h2o_configurator_command_t *cmd, yoml_t
      *node, uint8_t *ratio)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:3029,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:3044,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3046,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3048,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3052,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3056,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3059,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3061,1
    - Dst: memset
      Src: /src/h2o/src/main.c:3069,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:3070,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3071,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:3075,1
    - Dst: find_listener
      Src: /src/h2o/src/main.c:3078,1
    - Dst: find_listener_from_server_starter
      Src: /src/h2o/src/main.c:3083,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3084,1
    - Dst: open_unix_listener
      Src: /src/h2o/src/main.c:3088,1
    - Dst: add_listener
      Src: /src/h2o/src/main.c:3095,1
    - Dst: listener_setup_ssl
      Src: /src/h2o/src/main.c:3101,1
    - Dst: h2o_append_to_null_terminated_list
      Src: /src/h2o/src/main.c:3104,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3106,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3108,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3114,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3118,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3120,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3122,1
    - Dst: resolve_address
      Src: /src/h2o/src/main.c:3127,1
    - Dst: find_listener
      Src: /src/h2o/src/main.c:3130,1
    - Dst: find_listener_from_server_starter
      Src: /src/h2o/src/main.c:3137,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3138,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3140,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3146,1
    - Dst: open_inet_listener
      Src: /src/h2o/src/main.c:3154,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3156,1
    - Dst: add_listener
      Src: /src/h2o/src/main.c:3164,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3167,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3170,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3175,1
    - Dst: getsockopt
      Src: /src/h2o/src/main.c:3177,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3179,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:3179,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3180,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3184,1
    - Dst: protocol_to_string
      Src: /src/h2o/src/main.c:3185,1
    - Dst: protocol_to_string
      Src: /src/h2o/src/main.c:3185,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3187,1
    - Dst: listener_setup_ssl
      Src: /src/h2o/src/main.c:3192,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3193,1
    - Dst: h2o_append_to_null_terminated_list
      Src: /src/h2o/src/main.c:3197,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3199,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3201,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3205,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3211,1
    - Dst: resolve_address
      Src: /src/h2o/src/main.c:3214,1
    - Dst: find_listener
      Src: /src/h2o/src/main.c:3218,1
    - Dst: find_listener_from_server_starter
      Src: /src/h2o/src/main.c:3225,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3226,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3228,1
    - Dst: open_inet_listener
      Src: /src/h2o/src/main.c:3231,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3233,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:3240,1
    - Dst: add_listener
      Src: /src/h2o/src/main.c:3245,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:3256,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:3268,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3273,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3275,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3278,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3283,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3288,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3293,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3298,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3304,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3307,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3314,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3317,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3324,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3327,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3335,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3336,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3337,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3338,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3339,1
    - Dst: APPLY_RATIO
      Src: /src/h2o/src/main.c:3340,1
    - Dst: set_quic_sockopts
      Src: /src/h2o/src/main.c:3344,1
    - Dst: listener_setup_ssl
      Src: /src/h2o/src/main.c:3347,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3348,1
    - Dst: h2o_append_to_null_terminated_list
      Src: /src/h2o/src/main.c:3352,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3358,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3362,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3369,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 259
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3014
    functionDepth: 5
    functionLinenumber: 3014
    functionLinenumberEnd: 3372
    functionName: on_config_listen_element
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - APPLY_RATIO
    - open_unix_listener
    - h2o_configurator_scanf
    - getsockopt
    - h2o_configurator_parse_mapping
    - find_listener
    - listener_setup_ssl
    - h2o_strdup
    - find_listener_from_server_starter
    - add_listener
    - h2o_append_to_null_terminated_list
    - strerror
    - memset
    - set_quic_sockopts
    - h2o_configurator_errprintf
    - strcpy
    - open_inet_listener
    - h2o_mem_alloc
    - strlen
    - h2o_configurator_get_one_of
    - freeaddrinfo
    - strcmp
    - resolve_address
    - protocol_to_string
    linkageType: ''
    returnType: int
    signature: int on_config_listen_element(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3335
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3335
    functionName: APPLY_RATIO
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_RATIO(node, fld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: on_config_listen_element
      Src: /src/h2o/src/main.c:3378,1
    - Dst: on_config_listen_element
      Src: /src/h2o/src/main.c:3383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3374
    functionDepth: 6
    functionLinenumber: 3374
    functionLinenumberEnd: 3385
    functionName: on_config_listen
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - on_config_listen_element
    linkageType: ''
    returnType: int
    signature: int on_config_listen(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    functionName: on_config_listen_enter
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_listen_enter(h2o_configurator_t *_configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - _configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3392
    functionDepth: 1
    functionLinenumber: 3392
    functionLinenumberEnd: 3415
    functionName: on_config_listen_exit
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_listen_exit(h2o_configurator_t *_configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/h2o/src/main.c:3420,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3422,1
    - Dst: perror
      Src: /src/h2o/src/main.c:3424,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3417
    functionDepth: 1
    functionLinenumber: 3417
    functionLinenumberEnd: 3430
    functionName: on_config_user
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - perror
    - h2o_strdup
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_user(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3435,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:3444,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3448,1
    - Dst: cap_from_name
      Src: /src/h2o/src/main.c:3452,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3432
    functionDepth: 1
    functionLinenumber: 3432
    functionLinenumberEnd: 3461
    functionName: on_config_capabilities
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_configurator_errprintf
    - cap_from_name
    linkageType: ''
    returnType: int
    signature: int on_config_capabilities(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/h2o/src/main.c:3467,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3469,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3463
    functionDepth: 1
    functionLinenumber: 3463
    functionLinenumberEnd: 3473
    functionName: capabilities_set_keepcaps
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - prctl
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void capabilities_set_keepcaps(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cap_init
      Src: /src/h2o/src/main.c:3480,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3482,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3482,1
    - Dst: cap_set_flag
      Src: /src/h2o/src/main.c:3483,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3484,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3484,1
    - Dst: cap_set_flag
      Src: /src/h2o/src/main.c:3485,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3486,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3486,1
    - Dst: cap_set_proc
      Src: /src/h2o/src/main.c:3488,1
    - Dst: h2o_error_printf
      Src: /src/h2o/src/main.c:3489,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3489,1
    - Dst: cap_free
      Src: /src/h2o/src/main.c:3492,1
    - Dst: prctl
      Src: /src/h2o/src/main.c:3493,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3494,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:3494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3475
    functionDepth: 1
    functionLinenumber: 3475
    functionLinenumberEnd: 3498
    functionName: capabilities_drop
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - cap_init
    - cap_set_flag
    - h2o_error_printf
    - cap_set_proc
    - cap_free
    - prctl
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: int
    signature: int capabilities_drop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3500
    functionDepth: 1
    functionLinenumber: 3500
    functionLinenumberEnd: 3504
    functionName: on_config_pid_file
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    linkageType: ''
    returnType: int
    signature: int on_config_pid_file(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3506
    functionDepth: 1
    functionLinenumber: 3506
    functionLinenumberEnd: 3510
    functionName: on_config_error_log
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    linkageType: ''
    returnType: int
    signature: int on_config_error_log(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3515
      start: 3512
    functionDepth: 1
    functionLinenumber: 3512
    functionLinenumberEnd: 3515
    functionName: on_config_max_connections
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_max_connections(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3520
    functionName: on_config_max_quic_connections
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_max_quic_connections(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3522
    functionDepth: 1
    functionLinenumber: 3522
    functionLinenumberEnd: 3525
    functionName: on_config_soft_connection_limit
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_soft_connection_limit(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3527
    functionDepth: 1
    functionLinenumber: 3527
    functionLinenumberEnd: 3530
    functionName: on_config_soft_connection_limit_min_age
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_soft_connection_limit_min_age(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3535,1
    - Dst: strchr
      Src: /src/h2o/src/main.c:3542,1
    - Dst: sscanf
      Src: /src/h2o/src/main.c:3543,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:3543,1
    - Dst: sscanf
      Src: /src/h2o/src/main.c:3547,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:3547,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:3553,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3558,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3532
    functionDepth: 1
    functionLinenumber: 3532
    functionLinenumberEnd: 3561
    functionName: on_config_num_threads_add_cpu
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - sscanf
    - strchr
    - h2o_vector_reserve
    - strlen
    linkageType: ''
    returnType: int
    signature: int on_config_num_threads_add_cpu(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3568,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:3570,1
    - Dst: on_config_num_threads_add_cpu
      Src: /src/h2o/src/main.c:3578,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3582,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3563
    functionDepth: 2
    functionLinenumber: 3563
    functionLinenumberEnd: 3592
    functionName: on_config_num_threads
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_vector_reserve
    - on_config_num_threads_add_cpu
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_num_threads(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3594
    functionDepth: 1
    functionLinenumber: 3594
    functionLinenumberEnd: 3599
    functionName: on_config_num_quic_threads
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_num_quic_threads(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3603,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3601
    functionDepth: 1
    functionLinenumber: 3601
    functionLinenumberEnd: 3610
    functionName: on_config_num_name_resolution_threads
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_num_name_resolution_threads(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3614,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3612
    functionDepth: 1
    functionLinenumber: 3612
    functionLinenumberEnd: 3623
    functionName: on_config_tcp_fastopen
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_tcp_fastopen(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3635,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/src/main.c:3642,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:3642,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3644,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:3647,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:3649,1
    - Dst: resolve_address
      Src: /src/h2o/src/main.c:3653,1
    - Dst: socket
      Src: /src/h2o/src/main.c:3657,1
    - Dst: connect
      Src: /src/h2o/src/main.c:3658,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3659,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:3659,1
    - Dst: freeaddrinfo
      Src: /src/h2o/src/main.c:3666,1
    - Dst: close
      Src: /src/h2o/src/main.c:3668,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - cmd
    - target
    - input
    argTypes:
    - h2o_configurator_command_t*
    - struct st_h2o_quic_forward_node_t*
    - yoml_mapping_element_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3625
    functionDepth: 1
    functionLinenumber: 3625
    functionLinenumberEnd: 3670
    functionName: configure_quic_forward_node
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - freeaddrinfo
    - h2o_configurator_scanf
    - memcpy
    - sprintf
    - resolve_address
    - strlen
    - connect
    - strerror
    - socket
    - h2o_url_parse_hostport
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int configure_quic_forward_node(h2o_configurator_command_t *cmd, struct
      st_h2o_quic_forward_node_t *target,\n                                       yoml_mapping_element_t
      *input)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/main.c:3676,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3680,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:3684,1
    - Dst: configure_quic_forward_node
      Src: /src/h2o/src/main.c:3687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3672
    functionDepth: 2
    functionLinenumber: 3672
    functionLinenumberEnd: 3693
    functionName: on_config_quic_nodes
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_vector_reserve
    - configure_quic_forward_node
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_quic_nodes(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3698,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3695
    functionDepth: 1
    functionLinenumber: 3695
    functionLinenumberEnd: 3706
    functionName: on_config_num_ocsp_updaters
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_num_ocsp_updaters(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/src/main.c:3712,1
    - Dst: strrchr
      Src: /src/h2o/src/main.c:3712,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3714,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:3717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3720
      start: 3708
    functionDepth: 1
    functionLinenumber: 3708
    functionLinenumberEnd: 3720
    functionName: on_config_temp_buffer_path
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - snprintf
    - strrchr
    - strcpy
    linkageType: ''
    returnType: int
    signature: int on_config_temp_buffer_path(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/src/main.c:3725,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3731,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3740
    functionName: on_config_temp_buffer_threshold
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - strcasecmp
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_temp_buffer_threshold(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3742
    functionDepth: 1
    functionLinenumber: 3742
    functionLinenumberEnd: 3746
    functionName: on_config_crash_handler
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    linkageType: ''
    returnType: int
    signature: int on_config_crash_handler(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:3752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - node
    - slot
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3748
    functionDepth: 1
    functionLinenumber: 3748
    functionLinenumberEnd: 3757
    functionName: on_config_onoff
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_onoff(h2o_configurator_command_t *cmd, yoml_t *node,
      int *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_onoff
      Src: /src/h2o/src/main.c:3761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3759
    functionDepth: 2
    functionLinenumber: 3759
    functionLinenumberEnd: 3762
    functionName: on_config_crash_handler_wait_pipe_close
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - on_config_onoff
    linkageType: ''
    returnType: int
    signature: int on_config_crash_handler_wait_pipe_close(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_onoff
      Src: /src/h2o/src/main.c:3766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3764
    functionDepth: 2
    functionLinenumber: 3764
    functionLinenumberEnd: 3767
    functionName: on_tcp_reuseport
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - on_config_onoff
    linkageType: ''
    returnType: int
    signature: int on_tcp_reuseport(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:3771,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3781,1
    - Dst: ptls_fusion_is_supported_by_cpu
      Src: /src/h2o/src/main.c:3785,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3798
      start: 3769
    functionDepth: 1
    functionLinenumber: 3769
    functionLinenumberEnd: 3798
    functionName: on_config_ssl_offload
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_is_supported_by_cpu
    - h2o_configurator_get_one_of
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_ssl_offload(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/main.c:3802,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:3813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3800
    functionDepth: 1
    functionLinenumber: 3800
    functionLinenumberEnd: 3817
    functionName: on_config_neverbleed_offload
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_fatal
    linkageType: ''
    returnType: int
    signature: int on_config_neverbleed_offload(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/main.c:3822,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3825,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/main.c:3830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3819
    functionDepth: 1
    functionLinenumber: 3819
    functionLinenumberEnd: 3833
    functionName: on_config_io_uring_batch_size
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_io_uring_batch_size(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/src/main.c:3841,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3842,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:3842,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/src/main.c:3846,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/src/main.c:3847,1
    - Dst: yoml_parse_document
      Src: /src/h2o/src/main.c:3849,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3852,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3854,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3856,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/src/main.c:3859,1
    - Dst: fclose
      Src: /src/h2o/src/main.c:3861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - parse_args
    - source
    argTypes:
    - yoml_parse_args_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3864
    functionName: load_config
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - yaml_parser_initialize
    - yoml_parse_document
    - yaml_parser_delete
    - fopen
    - fprintf
    - fclose
    - strerror
    - yaml_parser_set_input_file
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *load_config(yoml_parse_args_t *parse_args, yoml_t *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3873,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3882,1
    - Dst: load_config
      Src: /src/h2o/src/main.c:3898,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:3902,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - yoml_t*
    - resolve_tag_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3867
    functionDepth: 2
    functionLinenumber: 3867
    functionLinenumberEnd: 3909
    functionName: resolve_file_tag
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - load_config
    - strcmp
    - fprintf
    - h2o_vector_reserve
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *resolve_file_tag(yoml_t *node, resolve_tag_arg_t *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/main.c:3914,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:3919,1
    - Dst: free
      Src: /src/h2o/src/main.c:3924,1
    - Dst: free
      Src: /src/h2o/src/main.c:3925,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/main.c:3928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - yoml_t*
    - resolve_tag_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3911
    functionDepth: 1
    functionLinenumber: 3911
    functionLinenumberEnd: 3932
    functionName: resolve_env_tag
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - free
    - getenv
    - h2o_strdup
    - fprintf
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *resolve_env_tag(yoml_t *node, resolve_tag_arg_t *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3938,1
    - Dst: resolve_file_tag
      Src: /src/h2o/src/main.c:3939,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:3942,1
    - Dst: resolve_env_tag
      Src: /src/h2o/src/main.c:3943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tag
    - node
    - cb_arg
    argTypes:
    - char*
    - yoml_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3934
    functionDepth: 3
    functionLinenumber: 3934
    functionLinenumberEnd: 3949
    functionName: resolve_tag
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - resolve_env_tag
    - resolve_file_tag
    - strcmp
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *resolve_tag(const char *tag, yoml_t *node, void *cb_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/src/main.c:3956,1
    - Dst: yoml_free
      Src: /src/h2o/src/main.c:3957,1
    - Dst: free
      Src: /src/h2o/src/main.c:3959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - resolve_tag_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3960
      start: 3951
    functionDepth: 1
    functionLinenumber: 3951
    functionLinenumberEnd: 3960
    functionName: dispose_resolve_tag_arg
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - free
    - yoml_free
    linkageType: ''
    returnType: void
    signature: void dispose_resolve_tag_arg(resolve_tag_arg_t *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notify_all_threads
      Src: /src/h2o/src/main.c:3966,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:3967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - notify_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3962
    functionDepth: 2
    functionLinenumber: 3962
    functionLinenumberEnd: 3968
    functionName: on_sigterm
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - notify_all_threads
    - h2o_set_signal_handler
    linkageType: ''
    returnType: void
    signature: void on_sigterm(int notify_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_sigterm
      Src: /src/h2o/src/main.c:3972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3970
    functionDepth: 3
    functionLinenumber: 3970
    functionLinenumberEnd: 3973
    functionName: on_sigterm_set_flag_only
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - on_sigterm
    linkageType: ''
    returnType: void
    signature: void on_sigterm_set_flag_only(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_sigterm
      Src: /src/h2o/src/main.c:3977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3978
      start: 3975
    functionDepth: 3
    functionLinenumber: 3975
    functionLinenumberEnd: 3978
    functionName: on_sigterm_set_flag_notify_threads
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - on_sigterm
    linkageType: ''
    returnType: void
    signature: void on_sigterm_set_flag_notify_threads(int signo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:3984,1
    - Dst: pipe
      Src: /src/h2o/src/main.c:3988,1
    - Dst: perror
      Src: /src/h2o/src/main.c:3989,1
    - Dst: fcntl
      Src: /src/h2o/src/main.c:3992,1
    - Dst: perror
      Src: /src/h2o/src/main.c:3993,1
    - Dst: h2o_spawnp
      Src: /src/h2o/src/main.c:4000,1
    - Dst: close
      Src: /src/h2o/src/main.c:4002,1
    - Dst: close
      Src: /src/h2o/src/main.c:4003,1
    - Dst: close
      Src: /src/h2o/src/main.c:4007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3982
    functionDepth: 1
    functionLinenumber: 3982
    functionLinenumberEnd: 4009
    functionName: popen_crash_handler
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - close
    - perror
    - h2o_configurator_get_cmd_path
    - pipe
    - fcntl
    - h2o_spawnp
    linkageType: ''
    returnType: int
    signature: int popen_crash_handler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4015,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4017,1
    - Dst: backtrace
      Src: /src/h2o/src/main.c:4020,1
    - Dst: backtrace_symbols_fd
      Src: /src/h2o/src/main.c:4021,1
    - Dst: poll
      Src: /src/h2o/src/main.c:4027,1
    - Dst: raise
      Src: /src/h2o/src/main.c:4031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4013
    functionDepth: 1
    functionLinenumber: 4013
    functionLinenumberEnd: 4032
    functionName: on_sigfatal
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_set_signal_handler
    - poll
    - raise
    - fprintf
    - backtrace
    - backtrace_symbols_fd
    linkageType: ''
    returnType: void
    signature: void on_sigfatal(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4038,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4039,1
    - Dst: popen_crash_handler
      Src: /src/h2o/src/main.c:4041,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4043,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4044,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4045,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4046,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4036
    functionDepth: 2
    functionLinenumber: 4036
    functionLinenumberEnd: 4049
    functionName: setup_signal_handlers
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - popen_crash_handler
    - h2o_set_signal_handler
    linkageType: ''
    returnType: void
    signature: void setup_signal_handlers(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4067,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4069,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4074,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4076,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:4083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - dst
    - addr
    argTypes:
    - uint8_t*
    - quicly_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4087
      start: 4062
    functionDepth: 1
    functionLinenumber: 4062
    functionLinenumberEnd: 4087
    functionName: encode_quic_address
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_fatal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_quic_address(uint8_t *dst, quicly_address_t *addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/src/main.c:4091,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4100,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4102,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4109,1
    - Dst: memcpy
      Src: /src/h2o/src/main.c:4111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - addr
    - src
    - end
    argTypes:
    - quicly_address_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4089
    functionDepth: 1
    functionLinenumber: 4089
    functionLinenumberEnd: 4121
    functionName: decode_quic_address
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: int decode_quic_address(quicly_address_t *addr, const uint8_t **src,
      const uint8_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encode32
      Src: /src/h2o/src/main.c:4132,1
    - Dst: encode_quic_address
      Src: /src/h2o/src/main.c:4133,1
    - Dst: encode_quic_address
      Src: /src/h2o/src/main.c:4134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - destaddr
    - srcaddr
    - ttl
    argTypes:
    - void*
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 4127
    functionDepth: 2
    functionLinenumber: 4127
    functionLinenumberEnd: 4138
    functionName: encode_quic_forwarded_header
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - encode_quic_address
    - quicly_encode32
    linkageType: ''
    returnType: size_t
    signature: size_t encode_quic_forwarded_header(void *buf, quicly_address_t *destaddr,
      quicly_address_t *srcaddr, uint8_t ttl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode32
      Src: /src/h2o/src/main.c:4148,1
    - Dst: decode_quic_address
      Src: /src/h2o/src/main.c:4150,1
    - Dst: decode_quic_address
      Src: /src/h2o/src/main.c:4152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - destaddr
    - srcaddr
    - ttl
    - octets
    argTypes:
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4140
    functionDepth: 2
    functionLinenumber: 4140
    functionLinenumberEnd: 4161
    functionName: decode_quic_forwarded_header
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - quicly_decode32
    - decode_quic_address
    linkageType: ''
    returnType: size_t
    signature: size_t decode_quic_forwarded_header(quicly_address_t *destaddr, quicly_address_t
      *srcaddr, uint8_t *ttl, h2o_iovec_t octets)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:4166,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4173,1
    - Dst: H2O_PROBE
      Src: /src/h2o/src/main.c:4180,1
    - Dst: PTLS_LOG
      Src: /src/h2o/src/main.c:4181,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4181,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4189,1
    - Dst: H2O_PROBE
      Src: /src/h2o/src/main.c:4191,1
    - Dst: PTLS_LOG
      Src: /src/h2o/src/main.c:4192,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4192,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4197,1
    - Dst: H2O_PROBE
      Src: /src/h2o/src/main.c:4199,1
    - Dst: PTLS_LOG
      Src: /src/h2o/src/main.c:4200,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4200,1
    - Dst: encode_quic_forwarded_header
      Src: /src/h2o/src/main.c:4209,1
    - Dst: writev
      Src: /src/h2o/src/main.c:4212,1
    - Dst: H2O_H3_PACKET_FORWARD_ENABLED
      Src: /src/h2o/src/main.c:4217,1
    - Dst: H2O_PROBE
      Src: /src/h2o/src/main.c:4221,1
    - Dst: PTLS_LOG
      Src: /src/h2o/src/main.c:4222,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4224,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4225,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/src/main.c:4226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 8
    argNames:
    - h3ctx
    - node_id
    - thread_id
    - destaddr
    - srcaddr
    - ttl
    - packets
    - num_packets
    argTypes:
    - h2o_quic_ctx_t*
    - uint64_t*
    - uint32_t
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t
    - quicly_decoded_packet_t*
    - size_t
    assertStmts:
    - condition: (h3ctx->acceptor == NULL)
      pos:
        line_end: 4188
        line_start: 4188
        source_file: /src/h2o/src/main.c
    - condition: (thread_id != ctx->http3.ctx.super.next_cid->thread_id)
      pos:
        line_end: 4196
        line_start: 4196
        source_file: /src/h2o/src/main.c
    - condition: (ctx->http3.ctx.super.next_cid->node_id == conf.quic.node_id)
      pos:
        line_end: 4172
        line_start: 4172
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 4232
      start: 4163
    functionDepth: 3
    functionLinenumber: 4163
    functionLinenumberEnd: 4232
    functionName: forward_quic_packets
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - H2O_H3_PACKET_FORWARD_ENABLED
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG
    - H2O_PROBE
    - writev
    - PTLS_LOG_ELEMENT_SIGNED
    - assert
    - encode_quic_forwarded_header
    linkageType: ''
    returnType: int
    signature: "int forward_quic_packets(h2o_quic_ctx_t *h3ctx, const uint64_t *node_id,
      uint32_t thread_id, quicly_address_t *destaddr,\n                                quicly_address_t
      *srcaddr, uint8_t ttl, quicly_decoded_packet_t *packets, size_t num_packets)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:4242,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4245,1
    - Dst: decode_quic_forwarded_header
      Src: /src/h2o/src/main.c:4247,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4248,1
    - Dst: write
      Src: /src/h2o/src/main.c:4270,1
    - Dst: H2O_PROBE
      Src: /src/h2o/src/main.c:4284,1
    - Dst: PTLS_LOG
      Src: /src/h2o/src/main.c:4285,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/src/main.c:4287,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - h3ctx
    - msg
    - destaddr
    - srcaddr
    - ttl
    argTypes:
    - h2o_quic_ctx_t*
    - struct msghdr*
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t*
    assertStmts:
    - condition: (msg->msg_iovlen == 1)
      pos:
        line_end: 4244
        line_start: 4244
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 4290
      start: 4234
    functionDepth: 3
    functionLinenumber: 4234
    functionLinenumberEnd: 4290
    functionName: rewrite_forwarded_quic_datagram
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - PTLS_LOG_ELEMENT_UNSIGNED
    - H2O_PROBE
    - PTLS_LOG
    - decode_quic_forwarded_header
    - write
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int rewrite_forwarded_quic_datagram(h2o_quic_ctx_t *h3ctx, struct
      msghdr *msg, quicly_address_t *destaddr,\n                                           quicly_address_t
      *srcaddr, uint8_t *ttl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_read_socket
      Src: /src/h2o/src/main.c:4295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4296
      start: 4292
    functionDepth: 1
    functionLinenumber: 4292
    functionLinenumberEnd: 4296
    functionName: forwarded_quic_socket_on_read
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_quic_read_socket
    linkageType: ''
    returnType: void
    signature: void forwarded_quic_socket_on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4298
    functionDepth: 3
    functionLinenumber: 4298
    functionLinenumberEnd: 4301
    functionName: on_socketclose
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - num_connections
    linkageType: ''
    returnType: void
    signature: void on_socketclose(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4305,1
    - Dst: h2o_context_close_idle_connections
      Src: /src/h2o/src/main.c:4307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4310
      start: 4303
    functionDepth: 3
    functionLinenumber: 4303
    functionLinenumberEnd: 4310
    functionName: close_idle_connections
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached:
    - h2o_context_close_idle_connections
    - num_connections
    linkageType: ''
    returnType: void
    signature: void close_idle_connections(h2o_context_t *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: close_idle_connections
      Src: /src/h2o/src/main.c:4325,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4327,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4332,1
    - Dst: h2o_evloop_socket_accept
      Src: /src/h2o/src/main.c:4335,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4336,1
    - Dst: num_sessions
      Src: /src/h2o/src/main.c:4339,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:4345,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/main.c:4345,1
    - Dst: h2o_perror
      Src: /src/h2o/src/main.c:4347,1
    - Dst: setsockopt
      Src: /src/h2o/src/main.c:4348,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/src/main.c:4348,1
    - Dst: h2o_perror
      Src: /src/h2o/src/main.c:4350,1
    - Dst: set_tcp_congestion_controller
      Src: /src/h2o/src/main.c:4351,1
    - Dst: h2o_accept
      Src: /src/h2o/src/main.c:4353,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - listener
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4312
    functionDepth: 4
    functionLinenumber: 4312
    functionLinenumberEnd: 4356
    functionName: on_accept
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_evloop_socket_accept
    - h2o_socket_get_fd
    - setsockopt
    - h2o_accept
    - set_tcp_congestion_controller
    - num_connections
    - close_idle_connections
    - num_sessions
    - h2o_perror
    linkageType: ''
    returnType: void
    signature: void on_accept(h2o_socket_t *listener, const char *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_server_ctx_t*::super::quic::now::cb
      Src: /src/h2o/src/main.c:4363,1
    - Dst: h2o_socket_compare_address
      Src: /src/h2o/src/main.c:4367,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/src/main.c:4375,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/src/main.c:4377,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:4385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - remote
    - client_cid
    - server_cid
    - token
    argTypes:
    - h2o_http3_server_ctx_t*
    - struct sockaddr*
    - ptls_iovec_t
    - ptls_iovec_t
    - quicly_address_token_plaintext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4358
    functionDepth: 1
    functionLinenumber: 4358
    functionLinenumberEnd: 4390
    functionName: validate_token
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - quicly_cid_is_equal
    - h2o_socket_compare_address
    - h2o_fatal
    - h2o_http3_server_ctx_t*::super::quic::now::cb
    linkageType: ''
    returnType: int
    signature: "int validate_token(h2o_http3_server_ctx_t *ctx, struct sockaddr *remote,
      ptls_iovec_t client_cid, ptls_iovec_t server_cid,\n                          quicly_address_token_plaintext_t
      *token)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: close_idle_connections
      Src: /src/h2o/src/main.c:4396,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4399,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4400,1
    - Dst: num_quic_connections
      Src: /src/h2o/src/main.c:4403,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4404,1
    - Dst: num_quic_connections
      Src: /src/h2o/src/main.c:4405,1
    - Dst: quic_decrypt_address_token
      Src: /src/h2o/src/main.c:4416,1
    - Dst: validate_token
      Src: /src/h2o/src/main.c:4417,1
    - Dst: quicly_send_close_invalid_token
      Src: /src/h2o/src/main.c:4421,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4423,1
    - Dst: h2o_quic_send_datagrams
      Src: /src/h2o/src/main.c:4425,1
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/src/main.c:4439,1
    - Dst: quic_get_address_token_encryptor
      Src: /src/h2o/src/main.c:4440,1
    - Dst: quicly_send_retry
      Src: /src/h2o/src/main.c:4456,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:4457,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:4458,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/main.c:4458,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4462,1
    - Dst: h2o_quic_send_datagrams
      Src: /src/h2o/src/main.c:4464,1
    - Dst: h2o_http3_server_accept
      Src: /src/h2o/src/main.c:4470,1
    - Dst: num_sessions
      Src: /src/h2o/src/main.c:4477,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4482,1
    - Dst: num_quic_connections
      Src: /src/h2o/src/main.c:4483,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 4
    argNames:
    - _ctx
    - destaddr
    - srcaddr
    - packet
    argTypes:
    - h2o_quic_ctx_t*
    - quicly_address_t*
    - quicly_address_t*
    - quicly_decoded_packet_t*
    assertStmts:
    - condition: (payload_size != SIZE_MAX)
      pos:
        line_end: 4422
        line_start: 4422
        source_file: /src/h2o/src/main.c
    - condition: (payload_size != SIZE_MAX)
      pos:
        line_end: 4461
        line_start: 4461
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 4487
      start: 4392
    functionDepth: 4
    functionLinenumber: 4392
    functionLinenumberEnd: 4487
    functionName: on_http3_accept
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quic_get_address_token_encryptor
    - quicly_send_close_invalid_token
    - num_quic_connections
    - h2o_quic_send_datagrams
    - h2o_http3_server_accept
    - num_connections
    - close_idle_connections
    - num_sessions
    - quic_decrypt_address_token
    - ptls_openssl_random_bytes
    - quicly_send_retry
    - validate_token
    - assert
    linkageType: ''
    returnType: h2o_quic_conn_t
    signature: "h2o_quic_conn_t *on_http3_accept(h2o_quic_ctx_t *_ctx, quicly_address_t
      *destaddr, quicly_address_t *srcaddr,\n                                        quicly_decoded_packet_t
      *packet)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4493,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/src/main.c:4495,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/main.c:4496,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/src/main.c:4500,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/main.c:4501,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - listeners
    argTypes:
    - struct listener_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4504
      start: 4489
    functionDepth: 3
    functionLinenumber: 4489
    functionLinenumberEnd: 4504
    functionName: update_listener_state
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - h2o_socket_is_reading
    - num_connections
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void update_listener_state(struct listener_ctx_t *listeners)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/src/main.c:4510,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:4511,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/src/main.c:4512,1
    - Dst: free
      Src: /src/h2o/src/main.c:4513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - receiver
    - messages
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4515
      start: 4506
    functionDepth: 1
    functionLinenumber: 4506
    functionLinenumberEnd: 4515
    functionName: on_server_notification
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void on_server_notification(h2o_multithread_receiver_t *receiver, h2o_linklist_t
      *messages)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/src/main.c:4520,1
    - Dst: h2o_context_init
      Src: /src/h2o/src/main.c:4523,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/src/main.c:4523,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/src/main.c:4526,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/src/main.c:4528,1
    - Dst: neverbleed_get_fd
      Src: /src/h2o/src/main.c:4531,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/src/main.c:4532,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/src/main.c:4533,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/src/main.c:4534,1
    - Dst: cpuset_create
      Src: /src/h2o/src/main.c:4540,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:4542,1
    - Dst: cpuset_zero
      Src: /src/h2o/src/main.c:4544,1
    - Dst: cpuset_set
      Src: /src/h2o/src/main.c:4545,1
    - Dst: pthread_setaffinity_np
      Src: /src/h2o/src/main.c:4546,1
    - Dst: pthread_self
      Src: /src/h2o/src/main.c:4546,1
    - Dst: cpuset_size
      Src: /src/h2o/src/main.c:4546,1
    - Dst: cpuset_destroy
      Src: /src/h2o/src/main.c:4547,1
    - Dst: CPU_ZERO
      Src: /src/h2o/src/main.c:4554,1
    - Dst: CPU_SET
      Src: /src/h2o/src/main.c:4555,1
    - Dst: pthread_setaffinity_np
      Src: /src/h2o/src/main.c:4556,1
    - Dst: pthread_self
      Src: /src/h2o/src/main.c:4556,1
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/src/main.c:4560,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4561,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:4565,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/src/main.c:4580,1
    - Dst: h2o_http3_server_init_context
      Src: /src/h2o/src/main.c:4584,1
    - Dst: h2o_quic_set_forwarding_context
      Src: /src/h2o/src/main.c:4588,1
    - Dst: socketpair
      Src: /src/h2o/src/main.c:4595,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:4597,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:4597,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:4599,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:4600,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/src/main.c:4602,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/src/main.c:4604,1
    - Dst: fcntl
      Src: /src/h2o/src/main.c:4605,1
    - Dst: update_listener_state
      Src: /src/h2o/src/main.c:4611,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/src/main.c:4614,1
    - Dst: h2o_set_signal_handler
      Src: /src/h2o/src/main.c:4618,1
    - Dst: exit
      Src: /src/h2o/src/main.c:4620,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4621,1
    - Dst: getpid
      Src: /src/h2o/src/main.c:4621,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/src/main.c:4625,1
    - Dst: h2o_cleanup_thread
      Src: /src/h2o/src/main.c:4630,1
    - Dst: h2o_now
      Src: /src/h2o/src/main.c:4630,1
    - Dst: update_listener_state
      Src: /src/h2o/src/main.c:4631,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/src/main.c:4632,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4636,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/src/main.c:4641,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/src/main.c:4643,1
    - Dst: h2o_socket_close
      Src: /src/h2o/src/main.c:4646,1
    - Dst: h2o_context_request_shutdown
      Src: /src/h2o/src/main.c:4652,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4657,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/src/main.c:4658,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/src/main.c:4662,1
    - Dst: unlink
      Src: /src/h2o/src/main.c:4666,1
    - Dst: _exit
      Src: /src/h2o/src/main.c:4671,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 1
    argNames:
    - _thread_index
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4672
      start: 4517
    functionDepth: 4
    functionLinenumber: 4517
    functionLinenumberEnd: 4672
    functionName: run_loop
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 8
    functionsReached:
    - neverbleed_get_fd
    - cpuset_size
    - h2o_now
    - pthread_setaffinity_np
    - cpuset_set
    - h2o_cleanup_thread
    - update_listener_state
    - h2o_barrier_wait
    - h2o_socket_read_start
    - h2o_strerror_r
    - getpid
    - h2o_set_signal_handler
    - h2o_socket_close
    - pthread_mutex_lock
    - cpuset_destroy
    - cpuset_zero
    - h2o_evloop_create
    - fprintf
    - socketpair
    - h2o_evloop_socket_create
    - set_cloexec
    - exit
    - fcntl
    - CPU_SET
    - h2o_linklist_init_anchor
    - pthread_self
    - h2o_evloop_run
    - h2o_context_request_shutdown
    - unlink
    - alloca
    - h2o_http3_server_init_context
    - h2o_quic_set_forwarding_context
    - h2o_fatal
    - __sync_fetch_and_add
    - h2o_socket_read_stop
    - CPU_ZERO
    - num_connections
    - _exit
    - h2o_context_init
    - h2o_multithread_register_receiver
    - cpuset_create
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *run_loop(void *_thread_index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4679,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/src/main.c:4680,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4684,1
    - Dst: h2o_concat
      Src: /src/h2o/src/main.c:4686,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4686,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:4686,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4686,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4686,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4689,1
    - Dst: h2o_concat
      Src: /src/h2o/src/main.c:4691,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4691,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:4691,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4691,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4691,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4697,1
    - Dst: strcpy
      Src: /src/h2o/src/main.c:4712,1
    - Dst: getnameinfo
      Src: /src/h2o/src/main.c:4716,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4717,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4718,1
    - Dst: gai_strerror
      Src: /src/h2o/src/main.c:4718,1
    - Dst: exit
      Src: /src/h2o/src/main.c:4719,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:4721,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4721,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4721,1
    - Dst: strchr
      Src: /src/h2o/src/main.c:4722,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:4723,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:4725,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:4730,1
    - Dst: strlen
      Src: /src/h2o/src/main.c:4730,1
    - Dst: sprintf
      Src: /src/h2o/src/main.c:4731,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4734,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:4738,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4746
      start: 4674
    functionDepth: 1
    functionLinenumber: 4674
    functionLinenumberEnd: 4746
    functionName: build_server_starter_argv
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_concat
    - strcpy
    - h2o_configurator_get_cmd_path
    - gai_strerror
    - exit
    - h2o_mem_alloc
    - sprintf
    - fprintf
    - strchr
    - h2o_vector_reserve
    - getnameinfo
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: char **build_server_starter_argv(const char *h2o_cmd, const char *config_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_server_starter_argv
      Src: /src/h2o/src/main.c:4750,1
    - Dst: setenv
      Src: /src/h2o/src/main.c:4751,1
    - Dst: execvp
      Src: /src/h2o/src/main.c:4752,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:4753,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:4753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h2o_cmd
    - config_file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4748
    functionDepth: 2
    functionLinenumber: 4748
    functionLinenumberEnd: 4755
    functionName: run_using_server_starter
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - build_server_starter_argv
    - setenv
    - execvp
    - fprintf
    - strerror
    linkageType: ''
    returnType: int
    signature: int run_using_server_starter(const char *h2o_cmd, const char *config_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4789,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4790,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4791,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4792,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4793,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4794,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4795,1
    - Dst: JSON_ESCAPE
      Src: /src/h2o/src/main.c:4796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - stats
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4812
      start: 4766
    functionDepth: 1
    functionLinenumber: 4766
    functionLinenumberEnd: 4812
    functionName: extra_status_jemalloc_cb
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - JSON_ESCAPE
    linkageType: ''
    returnType: void
    signature: void extra_status_jemalloc_cb(void *ctx, const char *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4781
    functionDepth: 0
    functionLinenumber: 4781
    functionLinenumberEnd: 4789
    functionName: JSON_ESCAPE
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_ESCAPE(x, y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/h2o/src/main.c:4821,1
    - Dst: h2o_time2str_log
      Src: /src/h2o/src/main.c:4823,1
    - Dst: h2o_time2str_log
      Src: /src/h2o/src/main.c:4824,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:4825,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/src/main.c:4828,1
    - Dst: snprintf
      Src: /src/h2o/src/main.c:4829,1
    - Dst: OpenSSL_version
      Src: /src/h2o/src/main.c:4844,1
    - Dst: num_connections
      Src: /src/h2o/src/main.c:4845,1
    - Dst: num_sessions
      Src: /src/h2o/src/main.c:4846,1
    - Dst: assert
      Src: /src/h2o/src/main.c:4847,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/main.c:4857,1
    - Dst: alloca
      Src: /src/h2o/src/main.c:4857,1
    - Dst: snprintf
      Src: /src/h2o/src/main.c:4859,1
    - Dst: malloc_stats_print
      Src: /src/h2o/src/main.c:4863,1
    - Dst: snprintf
      Src: /src/h2o/src/main.c:4870,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4876,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4879,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4879,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4880,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4880,1
    - Dst: mallctl
      Src: /src/h2o/src/main.c:4881,1
    - Dst: snprintf
      Src: /src/h2o/src/main.c:4882,1
    - Dst: strncpy
      Src: /src/h2o/src/main.c:4895,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - unused
    - _conf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts:
    - condition: (ret.len < BUFSIZE)
      pos:
        line_end: 4846
        line_start: 4846
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 4908
      start: 4815
    functionDepth: 3
    functionLinenumber: 4815
    functionLinenumberEnd: 4908
    functionName: on_extra_status
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - mallctl
    - strncpy
    - time
    - OpenSSL_version
    - h2o_mem_alloc_pool
    - num_connections
    - snprintf
    - num_sessions
    - getenv
    - h2o_time2str_log
    - alloca
    - malloc_stats_print
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t on_extra_status(void *unused, h2o_globalconf_t *_conf,
      h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/src/main.c:4912,1
    - Dst: getuid
      Src: /src/h2o/src/main.c:4915,1
    - Dst: getpwnam
      Src: /src/h2o/src/main.c:4915,1
    - Dst: h2o_configurator_create
      Src: /src/h2o/src/main.c:4919,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4922,1
    - Dst: h2o_configurator_create
      Src: /src/h2o/src/main.c:4928,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4929,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4931,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4933,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4935,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4937,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4938,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4939,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4940,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4942,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4943,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4944,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4946,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4947,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4949,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4952,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4954,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4956,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4959,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4961,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4964,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4965,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4967,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4969,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/src/main.c:4972,1
    - Dst: h2o_access_log_register_configurator
      Src: /src/h2o/src/main.c:4976,1
    - Dst: h2o_compress_register_configurator
      Src: /src/h2o/src/main.c:4977,1
    - Dst: h2o_expires_register_configurator
      Src: /src/h2o/src/main.c:4978,1
    - Dst: h2o_errordoc_register_configurator
      Src: /src/h2o/src/main.c:4979,1
    - Dst: h2o_fastcgi_register_configurator
      Src: /src/h2o/src/main.c:4980,1
    - Dst: h2o_file_register_configurator
      Src: /src/h2o/src/main.c:4981,1
    - Dst: h2o_throttle_resp_register_configurator
      Src: /src/h2o/src/main.c:4982,1
    - Dst: h2o_headers_register_configurator
      Src: /src/h2o/src/main.c:4983,1
    - Dst: h2o_proxy_register_configurator
      Src: /src/h2o/src/main.c:4984,1
    - Dst: h2o_reproxy_register_configurator
      Src: /src/h2o/src/main.c:4985,1
    - Dst: h2o_redirect_register_configurator
      Src: /src/h2o/src/main.c:4986,1
    - Dst: h2o_status_register_configurator
      Src: /src/h2o/src/main.c:4987,1
    - Dst: h2o_http2_debug_state_register_configurator
      Src: /src/h2o/src/main.c:4988,1
    - Dst: h2o_server_timing_register_configurator
      Src: /src/h2o/src/main.c:4989,1
    - Dst: h2o_mruby_register_configurator
      Src: /src/h2o/src/main.c:4991,1
    - Dst: h2o_self_trace_register_configurator
      Src: /src/h2o/src/main.c:4993,1
    - Dst: h2o_log_register_configurator
      Src: /src/h2o/src/main.c:4994,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/main.c:4996,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/src/main.c:4997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4910
    functionDepth: 1
    functionLinenumber: 4910
    functionLinenumberEnd: 4998
    functionName: setup_configurators
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_status_register_configurator
    - h2o_proxy_register_configurator
    - H2O_STRLIT
    - h2o_throttle_resp_register_configurator
    - h2o_fastcgi_register_configurator
    - h2o_mruby_register_configurator
    - h2o_headers_register_configurator
    - h2o_redirect_register_configurator
    - h2o_config_init
    - getuid
    - getpwnam
    - h2o_access_log_register_configurator
    - h2o_reproxy_register_configurator
    - h2o_errordoc_register_configurator
    - h2o_http2_debug_state_register_configurator
    - h2o_server_timing_register_configurator
    - h2o_config_register_status_handler
    - h2o_expires_register_configurator
    - h2o_file_register_configurator
    - h2o_configurator_create
    - h2o_compress_register_configurator
    - h2o_self_trace_register_configurator
    - h2o_configurator_define_command
    - h2o_log_register_configurator
    linkageType: ''
    returnType: void
    signature: void setup_configurators(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/h2o/src/main.c:5006,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:5008,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:5008,1
    - Dst: assert
      Src: /src/h2o/src/main.c:5010,1
    - Dst: getsockopt
      Src: /src/h2o/src/main.c:5020,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:5022,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:5022,1
    - Dst: assert
      Src: /src/h2o/src/main.c:5024,1
    - Dst: getsockname
      Src: /src/h2o/src/main.c:5025,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:5027,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:5027,1
    - Dst: open_listener
      Src: /src/h2o/src/main.c:5029,1
    - Dst: set_quic_sockopts
      Src: /src/h2o/src/main.c:5032,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:5035,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:5035,1
    - Dst: dup
      Src: /src/h2o/src/main.c:5039,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/main.c:5041,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/src/main.c:5041,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:5043,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct listener_config_t*
    assertStmts:
    - condition: (reuseportlen == sizeof(reuseport))
      pos:
        line_end: 5009
        line_start: 5009
        source_file: /src/h2o/src/main.c
    - condition: (type == SOCK_DGRAM || type == SOCK_STREAM)
      pos:
        line_end: 5023
        line_start: 5023
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 5045
      start: 5000
    functionDepth: 3
    functionLinenumber: 5000
    functionLinenumberEnd: 5045
    functionName: dup_listener
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - set_cloexec
    - open_listener
    - getsockname
    - dup
    - h2o_fatal
    - set_quic_sockopts
    - assert
    - getsockopt
    - h2o_strerror_r
    linkageType: ''
    returnType: int
    signature: int dup_listener(struct listener_config_t *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:5051,1
    - Dst: dup_listener
      Src: /src/h2o/src/main.c:5053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5057
      start: 5047
    functionDepth: 4
    functionLinenumber: 5047
    functionLinenumberEnd: 5057
    functionName: create_per_thread_listeners
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - dup_listener
    linkageType: ''
    returnType: void
    signature: void create_per_thread_listeners(void)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: close_acme_loader_pipe
      Src: /src/h2o/src/main.c:5061,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/src/main.c:5066,1
    - Dst: h2o_numproc
      Src: /src/h2o/src/main.c:5068,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:5070,1
    - Dst: time
      Src: /src/h2o/src/main.c:5076,1
    - Dst: h2o_sem_init
      Src: /src/h2o/src/main.c:5077,1
    - Dst: init_openssl
      Src: /src/h2o/src/main.c:5081,1
    - Dst: setup_configurators
      Src: /src/h2o/src/main.c:5082,1
    - Dst: getopt_long
      Src: /src/h2o/src/main.c:5094,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:5100,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:5102,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:5104,1
    - Dst: strcmp
      Src: /src/h2o/src/main.c:5106,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5109,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5110,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:5115,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5116,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5119,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5130,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5131,1
    - Dst: OpenSSL_version
      Src: /src/h2o/src/main.c:5131,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5133,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5137,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5140,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5143,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5146,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5149,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5152,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5155,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5158,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5161,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5164,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5166,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5168,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5170,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5172,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/src/main.c:5199,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5200,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5204,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/src/main.c:5207,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5209,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5212,1
    - Dst: assert
      Src: /src/h2o/src/main.c:5214,1
    - Dst: h2o_server_starter_get_fds
      Src: /src/h2o/src/main.c:5223,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5224,1
    - Dst: set_cloexec
      Src: /src/h2o/src/main.c:5228,1
    - Dst: malloc
      Src: /src/h2o/src/main.c:5229,1
    - Dst: memset
      Src: /src/h2o/src/main.c:5230,1
    - Dst: load_config
      Src: /src/h2o/src/main.c:5241,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5242,1
    - Dst: h2o_configurator_apply
      Src: /src/h2o/src/main.c:5243,1
    - Dst: exit
      Src: /src/h2o/src/main.c:5244,1
    - Dst: dispose_resolve_tag_arg
      Src: /src/h2o/src/main.c:5245,1
    - Dst: yoml_free
      Src: /src/h2o/src/main.c:5246,1
    - Dst: h2o_file_mktemp
      Src: /src/h2o/src/main.c:5251,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5253,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5254,1
    - Dst: close
      Src: /src/h2o/src/main.c:5257,1
    - Dst: spawn_acme_loader
      Src: /src/h2o/src/main.c:5261,1
    - Dst: replace_ciphersuites
      Src: /src/h2o/src/main.c:5275,1
    - Dst: replace_ciphersuites
      Src: /src/h2o/src/main.c:5277,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5291,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5302,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5309,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:5309,1
    - Dst: unsetenv
      Src: /src/h2o/src/main.c:5313,1
    - Dst: h2o_srand
      Src: /src/h2o/src/main.c:5315,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5322,1
    - Dst: run_using_server_starter
      Src: /src/h2o/src/main.c:5325,1
    - Dst: run_using_server_starter
      Src: /src/h2o/src/main.c:5327,1
    - Dst: printf
      Src: /src/h2o/src/main.c:5329,1
    - Dst: getenv
      Src: /src/h2o/src/main.c:5333,1
    - Dst: getrlimit
      Src: /src/h2o/src/main.c:5341,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5343,1
    - Dst: setrlimit
      Src: /src/h2o/src/main.c:5350,1
    - Dst: setrlimit
      Src: /src/h2o/src/main.c:5352,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5355,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5357,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5357,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5360,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5360,1
    - Dst: getuid
      Src: /src/h2o/src/main.c:5368,1
    - Dst: setrlimit
      Src: /src/h2o/src/main.c:5371,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5372,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5372,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5375,1
    - Dst: getrlimit
      Src: /src/h2o/src/main.c:5377,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5378,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5378,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5382,1
    - Dst: setup_signal_handlers
      Src: /src/h2o/src/main.c:5390,1
    - Dst: h2o_access_log_open_log
      Src: /src/h2o/src/main.c:5394,1
    - Dst: setvbuf
      Src: /src/h2o/src/main.c:5397,1
    - Dst: setvbuf
      Src: /src/h2o/src/main.c:5398,1
    - Dst: create_per_thread_listeners
      Src: /src/h2o/src/main.c:5401,1
    - Dst: capabilities_set_keepcaps
      Src: /src/h2o/src/main.c:5403,1
    - Dst: h2o_setuidgid
      Src: /src/h2o/src/main.c:5406,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5407,1
    - Dst: neverbleed_setuidgid
      Src: /src/h2o/src/main.c:5410,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5411,1
    - Dst: getuid
      Src: /src/h2o/src/main.c:5415,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5416,1
    - Dst: capabilities_drop
      Src: /src/h2o/src/main.c:5421,1
    - Dst: fopen
      Src: /src/h2o/src/main.c:5426,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5428,1
    - Dst: strerror
      Src: /src/h2o/src/main.c:5428,1
    - Dst: fprintf
      Src: /src/h2o/src/main.c:5431,1
    - Dst: getpid
      Src: /src/h2o/src/main.c:5431,1
    - Dst: fclose
      Src: /src/h2o/src/main.c:5432,1
    - Dst: assert
      Src: /src/h2o/src/main.c:5436,1
    - Dst: h2o_barrier_init
      Src: /src/h2o/src/main.c:5437,1
    - Dst: h2o_barrier_init
      Src: /src/h2o/src/main.c:5438,1
    - Dst: h2o_sem_set_capacity
      Src: /src/h2o/src/main.c:5441,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/main.c:5450,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/main.c:5455,1
    - Dst: ssl_setup_session_resumption
      Src: /src/h2o/src/main.c:5466,1
    - Dst: free
      Src: /src/h2o/src/main.c:5467,1
    - Dst: ssl_setup_session_resumption_ptls
      Src: /src/h2o/src/main.c:5472,1
    - Dst: h2o_http3_server_amend_quicly_context
      Src: /src/h2o/src/main.c:5481,1
    - Dst: pipe
      Src: /src/h2o/src/main.c:5489,1
    - Dst: perror
      Src: /src/h2o/src/main.c:5490,1
    - Dst: close
      Src: /src/h2o/src/main.c:5493,1
    - Dst: dup2
      Src: /src/h2o/src/main.c:5494,1
    - Dst: close
      Src: /src/h2o/src/main.c:5495,1
    - Dst: dup2
      Src: /src/h2o/src/main.c:5500,1
    - Dst: dup2
      Src: /src/h2o/src/main.c:5500,1
    - Dst: perror
      Src: /src/h2o/src/main.c:5501,1
    - Dst: close
      Src: /src/h2o/src/main.c:5504,1
    - Dst: malloc
      Src: /src/h2o/src/main.c:5509,1
    - Dst: h2o_multithread_create_thread
      Src: /src/h2o/src/main.c:5512,1
    - Dst: run_loop
      Src: /src/h2o/src/main.c:5516,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 293
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (conf.thread_map.size != 0)
      pos:
        line_end: 5435
        line_start: 5435
        source_file: /src/h2o/src/main.c
    - condition: (0)
      pos:
        line_end: 5213
        line_start: 5213
        source_file: /src/h2o/src/main.c
    constantsTouched: []
    func_position:
      end: 5520
      start: 5059
    functionDepth: 5
    functionLinenumber: 5059
    functionLinenumberEnd: 5520
    functionName: main
    functionSourceFile: /src/h2o/src/main.c
    functionUses: 0
    functionsReached:
    - setup_configurators
    - time
    - getopt_long
    - pipe
    - spawn_acme_loader
    - setvbuf
    - fopen
    - h2o_configurator_apply
    - h2o_file_mktemp
    - getrlimit
    - h2o_access_log_open_log
    - create_per_thread_listeners
    - assert
    - getpid
    - setrlimit
    - H2O_TO_STR
    - H2O_STRUCT_FROM_MEMBER
    - free
    - init_openssl
    - h2o_barrier_init
    - h2o_sem_set_capacity
    - printf
    - fprintf
    - dispose_resolve_tag_arg
    - h2o_sem_init
    - strerror
    - memset
    - getuid
    - fclose
    - dup2
    - close
    - set_cloexec
    - h2o_numproc
    - malloc
    - close_acme_loader_pipe
    - perror
    - load_config
    - h2o_server_starter_get_fds
    - exit
    - h2o_srand
    - h2o_setuidgid
    - ssl_setup_session_resumption_ptls
    - neverbleed_setuidgid
    - h2o_mem_alloc
    - getenv
    - yoml_free
    - h2o_vector_reserve
    - h2o_multithread_create_thread
    - replace_ciphersuites
    - setup_signal_handlers
    - capabilities_set_keepcaps
    - OpenSSL_version
    - strcmp
    - run_using_server_starter
    - ssl_setup_session_resumption
    - unsetenv
    - capabilities_drop
    - h2o_http3_server_amend_quicly_context
    - run_loop
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/src/setuidgid.c:43,1
    - Dst: getpwnam
      Src: /src/h2o/src/setuidgid.c:50,1
    - Dst: fprintf
      Src: /src/h2o/src/setuidgid.c:52,1
    - Dst: perror
      Src: /src/h2o/src/setuidgid.c:55,1
    - Dst: setgid
      Src: /src/h2o/src/setuidgid.c:62,1
    - Dst: perror
      Src: /src/h2o/src/setuidgid.c:63,1
    - Dst: initgroups
      Src: /src/h2o/src/setuidgid.c:66,1
    - Dst: perror
      Src: /src/h2o/src/setuidgid.c:67,1
    - Dst: setuid
      Src: /src/h2o/src/setuidgid.c:70,1
    - Dst: perror
      Src: /src/h2o/src/setuidgid.c:71,1
    - Dst: execvp
      Src: /src/h2o/src/setuidgid.c:75,1
    - Dst: fprintf
      Src: /src/h2o/src/setuidgid.c:76,1
    - Dst: strerror
      Src: /src/h2o/src/setuidgid.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/h2o/src/setuidgid.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - perror
    - setuid
    - strerror
    - fprintf
    - execvp
    - setgid
    - initgroups
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_flush_sessions
      Src: /src/h2o/src/ssl.c:109,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:109,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - _contexts
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: cache_cleanup_thread
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_flush_sessions
    - time
    - sleep
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *cache_cleanup_thread(void *_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/ssl.c:117,1
    - Dst: h2o_memcpy
      Src: /src/h2o/src/ssl.c:118,1
    - Dst: pthread_attr_init
      Src: /src/h2o/src/ssl.c:124,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/h2o/src/ssl.c:125,1
    - Dst: h2o_multithread_create_thread
      Src: /src/h2o/src/ssl.c:126,1
    - Dst: pthread_attr_destroy
      Src: /src/h2o/src/ssl.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - _contexts
    - num_contexts
    argTypes:
    - SSL_CTX**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: spawn_cache_cleanup_thread
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_attr_destroy
    - h2o_memcpy
    - pthread_attr_init
    - h2o_mem_alloc
    - pthread_attr_setdetachstate
    - h2o_multithread_create_thread
    linkageType: ''
    returnType: void
    signature: void spawn_cache_cleanup_thread(SSL_CTX **_contexts, size_t num_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/h2o/src/ssl.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - contexts
    - num_contexts
    argTypes:
    - SSL_CTX**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: setup_cache_disable
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_session_cache_mode
    linkageType: ''
    returnType: void
    signature: void setup_cache_disable(SSL_CTX **contexts, size_t num_contexts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/h2o/src/ssl.c:141,1
    - Dst: SSL_CTX_set_timeout
      Src: /src/h2o/src/ssl.c:142,1
    - Dst: h2o_socket_ssl_async_resumption_setup_ctx
      Src: /src/h2o/src/ssl.c:144,1
    - Dst: spawn_cache_cleanup_thread
      Src: /src/h2o/src/ssl.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - contexts
    - num_contexts
    - async_resumption
    argTypes:
    - SSL_CTX**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: setup_cache_enable
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_timeout
    - spawn_cache_cleanup_thread
    - SSL_CTX_set_session_cache_mode
    - h2o_socket_ssl_async_resumption_setup_ctx
    linkageType: ''
    returnType: void
    signature: void setup_cache_enable(SSL_CTX **contexts, size_t num_contexts, int
      async_resumption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_cache_enable
      Src: /src/h2o/src/ssl.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - contexts
    - num_contexts
    argTypes:
    - SSL_CTX**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: setup_cache_internal
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - setup_cache_enable
    linkageType: ''
    returnType: void
    signature: void setup_cache_internal(SSL_CTX **contexts, size_t num_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memcached_create_context
      Src: /src/h2o/src/ssl.c:157,1
    - Dst: h2o_accept_setup_memcached_ssl_resumption
      Src: /src/h2o/src/ssl.c:159,1
    - Dst: setup_cache_enable
      Src: /src/h2o/src/ssl.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - contexts
    - num_contexts
    argTypes:
    - SSL_CTX**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: setup_cache_memcached
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - h2o_memcached_create_context
    - setup_cache_enable
    - h2o_accept_setup_memcached_ssl_resumption
    linkageType: ''
    returnType: void
    signature: void setup_cache_memcached(SSL_CTX **contexts, size_t num_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_accept_setup_redis_ssl_resumption
      Src: /src/h2o/src/ssl.c:165,1
    - Dst: setup_cache_enable
      Src: /src/h2o/src/ssl.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - contexts
    - num_contexts
    argTypes:
    - SSL_CTX**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: setup_cache_redis
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - setup_cache_enable
    - h2o_accept_setup_redis_ssl_resumption
    linkageType: ''
    returnType: void
    signature: void setup_cache_redis(SSL_CTX **contexts, size_t num_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: cache_init_defaults
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cache_init_defaults(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - struct st_session_ticket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: session_ticket_get_cipher_key
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *session_ticket_get_cipher_key(struct st_session_ticket_t
      *ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - struct st_session_ticket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: session_ticket_get_hmac_key
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_key_length
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *session_ticket_get_hmac_key(struct st_session_ticket_t
      *ticket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:217,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:217,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/ssl.c:218,1
    - Dst: RAND_bytes
      Src: /src/h2o/src/ssl.c:225,1
    - Dst: RAND_bytes
      Src: /src/h2o/src/ssl.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - cipher
    - md
    - not_before
    - not_after
    - fill_in
    argTypes:
    - EVP_CIPHER*
    - EVP_MD*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: new_ticket
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - EVP_CIPHER_key_length
    - EVP_MD_block_size
    - RAND_bytes
    linkageType: ''
    returnType: struct st_session_ticket_t
    signature: "struct st_session_ticket_t *new_ticket(const EVP_CIPHER *cipher, const
      EVP_MD *md, uint64_t not_before, uint64_t not_after,\n                                              int
      fill_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:234,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:234,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/src/ssl.c:235,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - struct st_session_ticket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: free_ticket
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - free
    - EVP_CIPHER_key_length
    - EVP_MD_block_size
    - h2o_mem_set_secure
    linkageType: ''
    returnType: void
    signature: void free_ticket(struct st_session_ticket_t *ticket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/src/ssl.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: ticket_sort_compare
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ticket_sort_compare(const void *_x, const void *_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_ticket
      Src: /src/h2o/src/ssl.c:252,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:253,1
    - Dst: memset
      Src: /src/h2o/src/ssl.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - session_ticket_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: free_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - memset
    - free
    - free_ticket
    linkageType: ''
    returnType: void
    signature: void free_tickets(session_ticket_vector_t *tickets)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tickets
    - now
    argTypes:
    - session_ticket_vector_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: find_ticket_for_encryption
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct st_session_ticket_t
    signature: struct st_session_ticket_t *find_ticket_for_encryption(session_ticket_vector_t
      *tickets, uint64_t now)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/h2o/src/ssl.c:277,1
    - Dst: RAND_bytes
      Src: /src/h2o/src/ssl.c:280,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/src/ssl.c:281,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:281,1
    - Dst: new_ticket
      Src: /src/h2o/src/ssl.c:286,1
    - Dst: EVP_aes_256_cbc
      Src: /src/h2o/src/ssl.c:286,1
    - Dst: EVP_sha256
      Src: /src/h2o/src/ssl.c:286,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:288,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/src/ssl.c:289,1
    - Dst: session_ticket_get_cipher_key
      Src: /src/h2o/src/ssl.c:289,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:290,1
    - Dst: HMAC_Init_ex
      Src: /src/h2o/src/ssl.c:291,1
    - Dst: session_ticket_get_hmac_key
      Src: /src/h2o/src/ssl.c:291,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:291,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:292,1
    - Dst: free_ticket
      Src: /src/h2o/src/ssl.c:294,1
    - Dst: memcmp
      Src: /src/h2o/src/ssl.c:301,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/h2o/src/ssl.c:308,1
    - Dst: session_ticket_get_cipher_key
      Src: /src/h2o/src/ssl.c:308,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:309,1
    - Dst: HMAC_Init_ex
      Src: /src/h2o/src/ssl.c:310,1
    - Dst: session_ticket_get_hmac_key
      Src: /src/h2o/src/ssl.c:310,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:310,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:311,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:313,1
    - Dst: pthread_rwlock_unlock
      Src: /src/h2o/src/ssl.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/src/ssl.c
    - condition: (ret)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/h2o/src/ssl.c
    - condition: (ret)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/h2o/src/ssl.c
    - condition: (ret)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 322
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 322
    functionName: ticket_key_callback
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - new_ticket
    - EVP_MD_block_size
    - session_ticket_get_hmac_key
    - time
    - memcmp
    - HMAC_Init_ex
    - pthread_rwlock_unlock
    - RAND_bytes
    - pthread_rwlock_rdlock
    - memcpy
    - EVP_EncryptInit_ex
    - free_ticket
    - session_ticket_get_cipher_key
    - EVP_aes_256_cbc
    - EVP_sha256
    - EVP_DecryptInit_ex
    - assert
    - find_ticket_for_encryption
    linkageType: ''
    returnType: int
    signature: int ticket_key_callback(unsigned char *key_name, unsigned char *iv,
      EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ticket_key_callback
      Src: /src/h2o/src/ssl.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ssl
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: ticket_key_callback_ossl
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - ticket_key_callback
    linkageType: ''
    returnType: int
    signature: "int ticket_key_callback_ossl(SSL *ssl, unsigned char *key_name, unsigned
      char *iv, EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx,\n                                    int
      enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/src/ssl.c:337,1
    - Dst: quicly_build_session_ticket_auth_data
      Src: /src/h2o/src/ssl.c:338,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/src/ssl.c:340,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/src/ssl.c:341,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/src/ssl.c:342,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/src/ssl.c:344,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:347,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:351,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/ssl.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - tag64
    - ctx
    - qpack
    argTypes:
    - uint8_t*
    - quicly_context_t*
    - h2o_http3_qpack_context_t*
    assertStmts:
    - condition: (ret != 0)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 353
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 353
    functionName: calculate_quic_tag
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - quicly_build_session_ticket_auth_data
    - memcpy
    - h2o_fatal
    - ptls_calc_hash
    - ptls_buffer_push_quicint
    - assert
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void calculate_quic_tag(uint8_t *tag64, const quicly_context_t *ctx,
      const h2o_http3_qpack_context_t *qpack)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:370,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:371,1
    - Dst: ptls_openssl_encrypt_ticket
      Src: /src/h2o/src/ssl.c:375,1
    - Dst: ptls_openssl_decrypt_ticket
      Src: /src/h2o/src/ssl.c:379,1
    - Dst: memcmp
      Src: /src/h2o/src/ssl.c:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - _self
    - tls
    - is_encrypt
    - dst
    - src
    argTypes:
    - ptls_encrypt_ticket_t*
    - ptls_t*
    - int
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 390
    functionName: encrypt_ticket_ptls
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - ptls_openssl_encrypt_ticket
    - memcpy
    - ptls_openssl_decrypt_ticket
    - memcmp
    linkageType: ''
    returnType: int
    signature: int encrypt_ticket_ptls(ptls_encrypt_ticket_t *_self, ptls_t *tls,
      int is_encrypt, ptls_buffer_t *dst, ptls_iovec_t src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/src/ssl.c:394,1
    - Dst: calculate_quic_tag
      Src: /src/h2o/src/ssl.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - quic
    - qpack
    argTypes:
    - quicly_context_t*
    - h2o_http3_qpack_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: create_encrypt_ticket_ptls
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - malloc
    - calculate_quic_tag
    linkageType: ''
    returnType: ptls_encrypt_ticket_t
    signature: ptls_encrypt_ticket_t *create_encrypt_ticket_ptls(const quicly_context_t
      *quic, const h2o_http3_qpack_context_t *qpack)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free_ticket
      Src: /src/h2o/src/ssl.c:413,1
    - Dst: free_ticket
      Src: /src/h2o/src/ssl.c:427,1
    - Dst: memmove
      Src: /src/h2o/src/ssl.c:428,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/ssl.c:437,1
    - Dst: find_ticket_for_encryption
      Src: /src/h2o/src/ssl.c:440,1
    - Dst: new_ticket
      Src: /src/h2o/src/ssl.c:443,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/ssl.c:455,1
    - Dst: memmove
      Src: /src/h2o/src/ssl.c:456,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - tickets
    - now
    argTypes:
    - session_ticket_vector_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 463
    functionName: update_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - new_ticket
    - free_ticket
    - memmove
    - h2o_vector_reserve
    - h2o_fatal
    - find_ticket_for_encryption
    linkageType: ''
    returnType: int
    signature: int update_tickets(session_ticket_vector_t *tickets, uint64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_wrlock
      Src: /src/h2o/src/ssl.c:467,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:469,1
    - Dst: pthread_rwlock_unlock
      Src: /src/h2o/src/ssl.c:470,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/src/ssl.c:471,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/src/ssl.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (session_tickets.tickets.size != 0)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 476
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 476
    functionName: register_session_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_wrlock
    - __sync_add_and_fetch
    - pthread_rwlock_unlock
    - h2o_barrier_wait
    - assert
    linkageType: ''
    returnType: void
    signature: void register_session_tickets(void (*cb)(void *), void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_swap
      Src: /src/h2o/src/ssl.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: do_swap_register_session_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - h2o_mem_swap
    linkageType: ''
    returnType: void
    signature: void do_swap_register_session_tickets(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_session_tickets
      Src: /src/h2o/src/ssl.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - session_ticket_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: swap_register_session_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - register_session_tickets
    linkageType: ''
    returnType: void
    signature: void swap_register_session_tickets(session_ticket_vector_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_tickets
      Src: /src/h2o/src/ssl.c:490,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: do_internal_update
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_tickets
    - time
    linkageType: ''
    returnType: void
    signature: void do_internal_update(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_session_tickets
      Src: /src/h2o/src/ssl.c:496,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:498,1
    - Dst: h2o_rand
      Src: /src/h2o/src/ssl.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: ticket_internal_updater
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - register_session_tickets
    - h2o_rand
    - sleep
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *ticket_internal_updater(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/src/ssl.c:504,1
    - Dst: h2o_hex_encode
      Src: /src/h2o/src/ssl.c:505,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:506,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:506,1
    - Dst: alloca
      Src: /src/h2o/src/ssl.c:507,1
    - Dst: h2o_hex_encode
      Src: /src/h2o/src/ssl.c:508,1
    - Dst: session_ticket_get_cipher_key
      Src: /src/h2o/src/ssl.c:508,1
    - Dst: h2o_hex_encode
      Src: /src/h2o/src/ssl.c:509,1
    - Dst: session_ticket_get_hmac_key
      Src: /src/h2o/src/ssl.c:509,1
    - Dst: snprintf
      Src: /src/h2o/src/ssl.c:511,1
    - Dst: OBJ_nid2sn
      Src: /src/h2o/src/ssl.c:518,1
    - Dst: EVP_CIPHER_nid
      Src: /src/h2o/src/ssl.c:518,1
    - Dst: OBJ_nid2sn
      Src: /src/h2o/src/ssl.c:518,1
    - Dst: EVP_MD_type
      Src: /src/h2o/src/ssl.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - bufsz
    - ticket
    argTypes:
    - char*
    - size_t
    - struct st_session_ticket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 520
    functionName: serialize_ticket_entry
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_block_size
    - EVP_CIPHER_key_length
    - session_ticket_get_hmac_key
    - h2o_hex_encode
    - EVP_CIPHER_nid
    - OBJ_nid2sn
    - snprintf
    - session_ticket_get_cipher_key
    - EVP_MD_type
    - alloca
    linkageType: ''
    returnType: int
    signature: int serialize_ticket_entry(char *buf, size_t bufsz, struct st_session_ticket_t
      *ticket)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:534,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:551,1
    - Dst: strlen
      Src: /src/h2o/src/ssl.c:552,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:553,1
    - Dst: h2o_hex_decode
      Src: /src/h2o/src/ssl.c:556,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:557,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:561,1
    - Dst: EVP_get_cipherbyname
      Src: /src/h2o/src/ssl.c:562,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:563,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:567,1
    - Dst: EVP_get_digestbyname
      Src: /src/h2o/src/ssl.c:568,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:569,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:573,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:574,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:574,1
    - Dst: strlen
      Src: /src/h2o/src/ssl.c:575,1
    - Dst: sprintf
      Src: /src/h2o/src/ssl.c:576,1
    - Dst: strlen
      Src: /src/h2o/src/ssl.c:576,1
    - Dst: alloca
      Src: /src/h2o/src/ssl.c:580,1
    - Dst: h2o_hex_decode
      Src: /src/h2o/src/ssl.c:581,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:582,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:586,1
    - Dst: sscanf
      Src: /src/h2o/src/ssl.c:587,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:588,1
    - Dst: FETCH
      Src: /src/h2o/src/ssl.c:592,1
    - Dst: sscanf
      Src: /src/h2o/src/ssl.c:593,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:594,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:599,1
    - Dst: new_ticket
      Src: /src/h2o/src/ssl.c:605,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:606,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:607,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:607,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:607,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - element
    - errstr
    argTypes:
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 609
    functionName: parse_ticket_entry
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - new_ticket
    - EVP_CIPHER_key_length
    - EVP_MD_block_size
    - h2o_hex_decode
    - EVP_get_digestbyname
    - sprintf
    - memcpy
    - sscanf
    - FETCH
    - alloca
    - strlen
    - EVP_get_cipherbyname
    - strcpy
    linkageType: ''
    returnType: struct st_session_ticket_t
    signature: struct st_session_ticket_t *parse_ticket_entry(yoml_t *element, char
      *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - post
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: FETCH
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH(n, post)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_initialize
      Src: /src/h2o/src/ssl.c:618,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/src/ssl.c:620,1
    - Dst: yoml_parse_document
      Src: /src/h2o/src/ssl.c:622,1
    - Dst: sprintf
      Src: /src/h2o/src/ssl.c:623,1
    - Dst: strcpy
      Src: /src/h2o/src/ssl.c:627,1
    - Dst: parse_ticket_entry
      Src: /src/h2o/src/ssl.c:632,1
    - Dst: sprintf
      Src: /src/h2o/src/ssl.c:634,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/ssl.c:637,1
    - Dst: yoml_free
      Src: /src/h2o/src/ssl.c:641,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/src/ssl.c:642,1
    - Dst: yoml_free
      Src: /src/h2o/src/ssl.c:646,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/src/ssl.c:647,1
    - Dst: free_tickets
      Src: /src/h2o/src/ssl.c:648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - tickets
    - src
    - len
    - errstr
    argTypes:
    - session_ticket_vector_t*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 650
    functionName: parse_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - free_tickets
    - parse_ticket_entry
    - yaml_parser_initialize
    - yoml_parse_document
    - yaml_parser_delete
    - sprintf
    - yoml_free
    - h2o_vector_reserve
    - yaml_parser_set_input_string
    - strcpy
    linkageType: ''
    returnType: int
    signature: int parse_tickets(session_ticket_vector_t *tickets, const void *src,
      size_t len, char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/ssl.c:654,1
    - Dst: serialize_ticket_entry
      Src: /src/h2o/src/ssl.c:659,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:661,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - session_ticket_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 671
    functionName: serialize_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - fprintf
    - h2o_mem_alloc
    - free
    - serialize_ticket_entry
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t serialize_tickets(session_ticket_vector_t *tickets)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_get
      Src: /src/h2o/src/ssl.c:684,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:685,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:685,1
    - Dst: yrmcds_recv
      Src: /src/h2o/src/ssl.c:688,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:689,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:689,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:693,1
    - Dst: parse_tickets
      Src: /src/h2o/src/ssl.c:697,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/src/ssl.c:698,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:700,1
    - Dst: qsort
      Src: /src/h2o/src/ssl.c:705,1
    - Dst: update_tickets
      Src: /src/h2o/src/ssl.c:708,1
    - Dst: serialize_tickets
      Src: /src/h2o/src/ssl.c:709,1
    - Dst: yrmcds_add
      Src: /src/h2o/src/ssl.c:711,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:713,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:713,1
    - Dst: yrmcds_set
      Src: /src/h2o/src/ssl.c:717,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:719,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:719,1
    - Dst: yrmcds_recv
      Src: /src/h2o/src/ssl.c:723,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:724,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:724,1
    - Dst: swap_register_session_tickets
      Src: /src/h2o/src/ssl.c:732,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:735,1
    - Dst: free_tickets
      Src: /src/h2o/src/ssl.c:736,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - conn
    - key
    - now
    argTypes:
    - yrmcds*
    - h2o_iovec_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 738
    functionName: ticket_memcached_update_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - free_tickets
    - qsort
    - serialize_tickets
    - yrmcds_get
    - parse_tickets
    - swap_register_session_tickets
    - free
    - yrmcds_recv
    - yrmcds_add
    - fprintf
    - yrmcds_set
    - h2o_mem_set_secure
    - yrmcds_strerror
    - update_tickets
    linkageType: ''
    returnType: int
    signature: int ticket_memcached_update_tickets(yrmcds *conn, h2o_iovec_t key,
      time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_connect
      Src: /src/h2o/src/ssl.c:747,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:750,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/src/ssl.c:751,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:752,1
    - Dst: yrmcds_text_mode
      Src: /src/h2o/src/ssl.c:755,1
    - Dst: ticket_memcached_update_tickets
      Src: /src/h2o/src/ssl.c:757,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:757,1
    - Dst: yrmcds_close
      Src: /src/h2o/src/ssl.c:760,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 740
    functionDepth: 5
    functionLinenumber: 740
    functionLinenumberEnd: 763
    functionName: ticket_memcached_updater
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - yrmcds_connect
    - time
    - yrmcds_text_mode
    - ticket_memcached_update_tickets
    - sleep
    - fprintf
    - yrmcds_strerror
    - yrmcds_close
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *ticket_memcached_updater(void *unused)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/src/ssl.c:773,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:774,1
    - Dst: parse_tickets
      Src: /src/h2o/src/ssl.c:778,1
    - Dst: freeReplyObject
      Src: /src/h2o/src/ssl.c:779,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:781,1
    - Dst: qsort
      Src: /src/h2o/src/ssl.c:786,1
    - Dst: update_tickets
      Src: /src/h2o/src/ssl.c:788,1
    - Dst: serialize_tickets
      Src: /src/h2o/src/ssl.c:789,1
    - Dst: redisCommand
      Src: /src/h2o/src/ssl.c:790,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:791,1
    - Dst: freeReplyObject
      Src: /src/h2o/src/ssl.c:794,1
    - Dst: swap_register_session_tickets
      Src: /src/h2o/src/ssl.c:801,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:804,1
    - Dst: free_tickets
      Src: /src/h2o/src/ssl.c:805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - key
    - now
    argTypes:
    - redisContext*
    - h2o_iovec_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 807
    functionName: ticket_redis_update_tickets
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - qsort
    - redisCommand
    - serialize_tickets
    - parse_tickets
    - swap_register_session_tickets
    - free
    - fprintf
    - free_tickets
    - freeReplyObject
    - update_tickets
    linkageType: ''
    returnType: int
    signature: int ticket_redis_update_tickets(redisContext *ctx, h2o_iovec_t key,
      time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisConnect
      Src: /src/h2o/src/ssl.c:815,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:817,1
    - Dst: redisFree
      Src: /src/h2o/src/ssl.c:820,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:821,1
    - Dst: ticket_redis_update_tickets
      Src: /src/h2o/src/ssl.c:824,1
    - Dst: time
      Src: /src/h2o/src/ssl.c:824,1
    - Dst: redisFree
      Src: /src/h2o/src/ssl.c:827,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 831
    functionName: ticket_redis_updater
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - ticket_redis_update_tickets
    - time
    - redisConnect
    - sleep
    - redisFree
    - fprintf
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *ticket_redis_updater(void *unused)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_file_read
      Src: /src/h2o/src/ssl.c:843,1
    - Dst: strerror_r
      Src: /src/h2o/src/ssl.c:846,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:847,1
    - Dst: parse_tickets
      Src: /src/h2o/src/ssl.c:851,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:852,1
    - Dst: qsort
      Src: /src/h2o/src/ssl.c:857,1
    - Dst: swap_register_session_tickets
      Src: /src/h2o/src/ssl.c:860,1
    - Dst: free
      Src: /src/h2o/src/ssl.c:864,1
    - Dst: free_tickets
      Src: /src/h2o/src/ssl.c:865,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 833
    functionDepth: 4
    functionLinenumber: 833
    functionLinenumberEnd: 869
    functionName: load_tickets_file
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - qsort
    - parse_tickets
    - swap_register_session_tickets
    - free
    - h2o_file_read
    - fprintf
    - free_tickets
    - strerror_r
    linkageType: ''
    returnType: int
    signature: int load_tickets_file(const char *fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/h2o/src/ssl.c:877,1
    - Dst: strerror_r
      Src: /src/h2o/src/ssl.c:880,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:881,1
    - Dst: load_tickets_file
      Src: /src/h2o/src/ssl.c:887,1
    - Dst: fprintf
      Src: /src/h2o/src/ssl.c:888,1
    - Dst: sleep
      Src: /src/h2o/src/ssl.c:890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 892
    functionName: ticket_file_updater
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - sleep
    - stat
    - fprintf
    - load_tickets_file
    - strerror_r
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN *ticket_file_updater(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_256_cbc
      Src: /src/h2o/src/ssl.c:898,1
    - Dst: EVP_sha256
      Src: /src/h2o/src/ssl.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 901
    functionName: ticket_init_defaults
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cbc
    - EVP_sha256
    linkageType: ''
    returnType: void
    signature: void ticket_init_defaults(void)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/ssl.c:916,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/ssl.c:926,1
    - Dst: cache_init_defaults
      Src: /src/h2o/src/ssl.c:947,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/ssl.c:949,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/ssl.c:967,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:970,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:976,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:980,1
    - Dst: ticket_init_defaults
      Src: /src/h2o/src/ssl.c:988,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/ssl.c:990,1
    - Dst: EVP_get_cipherbyname
      Src: /src/h2o/src/ssl.c:1011,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1012,1
    - Dst: EVP_get_digestbyname
      Src: /src/h2o/src/ssl.c:1016,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1017,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/ssl.c:1021,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/ssl.c:1021,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:1023,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/src/ssl.c:1025,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/src/ssl.c:1025,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:1027,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1032,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:1035,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1038,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/ssl.c:1048,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:1050,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/ssl.c:1053,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/src/ssl.c:1056,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/src/ssl.c:1062,1
    - Dst: h2o_strdup
      Src: /src/h2o/src/ssl.c:1064,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/ssl.c:1066,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1075,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1084,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/src/ssl.c:1089,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/src/ssl.c:1092,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 147
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 1098
    functionName: ssl_session_resumption_on_config
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - EVP_get_cipherbyname
    - h2o_strdup
    - ticket_init_defaults
    - H2O_STRLIT
    - EVP_get_digestbyname
    - h2o_configurator_scanf
    - cache_init_defaults
    - h2o_iovec_init
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int ssl_session_resumption_on_config(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cache::setup
      Src: /src/h2o/src/ssl.c:1104,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1107,1
    - Dst: h2o_fatal
      Src: /src/h2o/src/ssl.c:1109,1
    - Dst: h2o_barrier_add
      Src: /src/h2o/src/ssl.c:1118,1
    - Dst: pthread_attr_init
      Src: /src/h2o/src/ssl.c:1126,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/h2o/src/ssl.c:1127,1
    - Dst: h2o_multithread_create_thread
      Src: /src/h2o/src/ssl.c:1128,1
    - Dst: pthread_attr_destroy
      Src: /src/h2o/src/ssl.c:1129,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/h2o/src/ssl.c:1133,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/src/ssl.c:1139,1
    - Dst: SSL_CTX_get_options
      Src: /src/h2o/src/ssl.c:1139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - contexts
    - num_contexts
    - quic_args
    - startup_barrier
    argTypes:
    - SSL_CTX**
    - size_t
    - struct st_h2o_quic_resumption_args_t*
    - h2o_barrier_t*
    assertStmts:
    - condition: (num_contexts != 0)
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1142
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1142
    functionName: ssl_setup_session_resumption
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - assert
    - h2o_barrier_add
    - pthread_attr_destroy
    - SSL_CTX_set_tlsext_ticket_key_cb
    - SSL_CTX_set_options
    - pthread_attr_init
    - pthread_attr_setdetachstate
    - SSL_CTX_get_options
    - h2o_multithread_create_thread
    - h2o_fatal
    - cache::setup
    linkageType: ''
    returnType: void
    signature: "void ssl_setup_session_resumption(SSL_CTX **contexts, size_t num_contexts,
      struct st_h2o_quic_resumption_args_t *quic_args,\n                                  h2o_barrier_t
      *startup_barrier)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1148,1
    - Dst: create_encrypt_ticket_ptls
      Src: /src/h2o/src/ssl.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptls
    - quic
    - qpack
    argTypes:
    - ptls_context_t*
    - quicly_context_t*
    - h2o_http3_qpack_context_t*
    assertStmts:
    - condition: ((quic != NULL) == ptls->omit_end_of_early_data && "detected contradictory
        setting")
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1151
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1151
    functionName: ssl_setup_session_resumption_ptls
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - create_encrypt_ticket_ptls
    - assert
    linkageType: ''
    returnType: void
    signature: void ssl_setup_session_resumption_ptls(ptls_context_t *ptls, quicly_context_t
      *quic, const h2o_http3_qpack_context_t *qpack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/src/ssl.c:1158,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/src/ssl.c:1160,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - mode
    - n
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts:
    - condition: (!"unexpected mode")
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1164
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1164
    functionName: lock_callback
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - assert
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void lock_callback(int mode, int n, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/h2o/src/ssl.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: thread_id_callback
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long thread_id_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/src/ssl.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - num
    - amount
    - type
    - file
    - line
    argTypes:
    - int*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1178
    functionName: add_lock_callback
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: int
    signature: int add_lock_callback(int *num, int amount, int type, const char *file,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_num_locks
      Src: /src/h2o/src/ssl.c:1182,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/src/ssl.c:1183,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/src/ssl.c:1185,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/h2o/src/ssl.c:1186,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/h2o/src/ssl.c:1187,1
    - Dst: CRYPTO_set_add_lock_callback
      Src: /src/h2o/src/ssl.c:1188,1
    - Dst: SSL_load_error_strings
      Src: /src/h2o/src/ssl.c:1192,1
    - Dst: SSL_library_init
      Src: /src/h2o/src/ssl.c:1193,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/src/ssl.c:1194,1
    - Dst: ERR_load_ASYNC_strings
      Src: /src/h2o/src/ssl.c:1196,1
    - Dst: cache_init_defaults
      Src: /src/h2o/src/ssl.c:1199,1
    - Dst: ticket_init_defaults
      Src: /src/h2o/src/ssl.c:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1204
    functionName: init_openssl
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 2
    functionsReached:
    - ERR_load_ASYNC_strings
    - CRYPTO_set_add_lock_callback
    - ticket_init_defaults
    - OpenSSL_add_all_algorithms
    - h2o_mem_alloc
    - CRYPTO_set_id_callback
    - CRYPTO_num_locks
    - cache_init_defaults
    - pthread_mutex_init
    - SSL_load_error_strings
    - SSL_library_init
    - CRYPTO_set_locking_callback
    linkageType: ''
    returnType: void
    signature: void init_openssl(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_calc_hash
      Src: /src/h2o/src/ssl.c:1226,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/ssl.c:1227,1
    - Dst: ptls_fusion_is_supported_by_cpu
      Src: /src/h2o/src/ssl.c:1236,1
    - Dst: quicly_new_default_cid_encryptor
      Src: /src/h2o/src/ssl.c:1242,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1243,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/src/ssl.c:1244,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/ssl.c:1245,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1246,1
    - Dst: ptls_aead_new
      Src: /src/h2o/src/ssl.c:1247,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1248,1
    - Dst: ptls_aead_new
      Src: /src/h2o/src/ssl.c:1249,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1250,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/src/ssl.c:1252,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/src/ssl.c:1253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - keyset
    - name
    - master_secret
    argTypes:
    - struct st_quic_keyset_t*
    - uint8_t
    - ptls_iovec_t
    assertStmts:
    - condition: (keyset->cid != NULL)
      pos:
        line_end: 1242
        line_start: 1242
        source_file: /src/h2o/src/ssl.c
    - condition: (ret == 0)
      pos:
        line_end: 1245
        line_start: 1245
        source_file: /src/h2o/src/ssl.c
    - condition: (keyset->address_token.enc != NULL)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/h2o/src/ssl.c
    - condition: (keyset->address_token.dec != NULL)
      pos:
        line_end: 1249
        line_start: 1249
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1254
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1254
    functionName: init_quic_keyset
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    - ptls_fusion_is_supported_by_cpu
    - ptls_aead_new
    - quicly_new_default_cid_encryptor
    - ptls_clear_memory
    - ptls_calc_hash
    - assert
    linkageType: ''
    returnType: void
    signature: void init_quic_keyset(struct st_quic_keyset_t *keyset, uint8_t name,
      ptls_iovec_t master_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_free_default_cid_encryptor
      Src: /src/h2o/src/ssl.c:1258,1
    - Dst: ptls_aead_free
      Src: /src/h2o/src/ssl.c:1260,1
    - Dst: ptls_aead_free
      Src: /src/h2o/src/ssl.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - struct st_quic_keyset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1264
    functionName: dispose_quic_keyset
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - quicly_free_default_cid_encryptor
    - ptls_aead_free
    linkageType: ''
    returnType: void
    signature: void dispose_quic_keyset(struct st_quic_keyset_t *keyset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispose_quic_keyset
      Src: /src/h2o/src/ssl.c:1276,1
    - Dst: pthread_rwlock_rdlock
      Src: /src/h2o/src/ssl.c:1279,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1280,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/src/ssl.c:1281,1
    - Dst: init_quic_keyset
      Src: /src/h2o/src/ssl.c:1284,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/src/ssl.c:1286,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/h2o/src/ssl.c:1286,1
    - Dst: EVP_MD_block_size
      Src: /src/h2o/src/ssl.c:1286,1
    - Dst: pthread_rwlock_unlock
      Src: /src/h2o/src/ssl.c:1288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (session_tickets.tickets.size != 0)
      pos:
        line_end: 1279
        line_start: 1279
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1295
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1295
    functionName: update_quic_keys
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - EVP_CIPHER_key_length
    - EVP_MD_block_size
    - init_quic_keyset
    - pthread_rwlock_unlock
    - pthread_rwlock_rdlock
    - h2o_vector_reserve
    - dispose_quic_keyset
    - assert
    linkageType: ''
    returnType: struct st_quic_keyset_t
    signature: struct st_quic_keyset_t *update_quic_keys(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1306
    functionName: find_quic_keyset
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_quic_keyset_t
    signature: struct st_quic_keyset_t *find_quic_keyset(uint8_t key_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_quic_keys
      Src: /src/h2o/src/ssl.c:1311,1
    - Dst: struct st_quic_keyset_t*::cid::encrypt_cid
      Src: /src/h2o/src/ssl.c:1314,1
    - Dst: assert
      Src: /src/h2o/src/ssl.c:1315,1
    - Dst: memcpy
      Src: /src/h2o/src/ssl.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - self
    - encrypted
    - stateless_reset_token
    - plaintext
    argTypes:
    - quicly_cid_encryptor_t*
    - quicly_cid_t*
    - void*
    - quicly_cid_plaintext_t*
    assertStmts:
    - condition: (tmp_cid.len < sizeof(tmp_cid.cid))
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/h2o/src/ssl.c
    constantsTouched: []
    func_position:
      end: 1319
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1319
    functionName: encrypt_cid
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_quic_keys
    - memcpy
    - assert
    - struct st_quic_keyset_t*::cid::encrypt_cid
    linkageType: ''
    returnType: void
    signature: "void encrypt_cid(quicly_cid_encryptor_t *self, quicly_cid_t *encrypted,
      void *stateless_reset_token,\n                        const quicly_cid_plaintext_t
      *plaintext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_quic_keys
      Src: /src/h2o/src/ssl.c:1326,1
    - Dst: find_quic_keyset
      Src: /src/h2o/src/ssl.c:1334,1
    - Dst: struct st_quic_keyset_t*::cid::decrypt_cid
      Src: /src/h2o/src/ssl.c:1336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - plaintext
    - _encrypted
    - len
    argTypes:
    - quicly_cid_encryptor_t*
    - quicly_cid_plaintext_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1339
    functionName: decrypt_cid
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_quic_keys
    - find_quic_keyset
    - struct st_quic_keyset_t*::cid::decrypt_cid
    linkageType: ''
    returnType: size_t
    signature: size_t decrypt_cid(quicly_cid_encryptor_t *self, quicly_cid_plaintext_t
      *plaintext, const void *_encrypted, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_quic_keys
      Src: /src/h2o/src/ssl.c:1346,1
    - Dst: find_quic_keyset
      Src: /src/h2o/src/ssl.c:1348,1
    - Dst: struct st_quic_keyset_t*::cid::generate_stateless_reset_token
      Src: /src/h2o/src/ssl.c:1350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - token
    - _encrypted
    argTypes:
    - quicly_cid_encryptor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1351
    functionName: generate_stateless_reset_token
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_quic_keys
    - find_quic_keyset
    - struct st_quic_keyset_t*::cid::generate_stateless_reset_token
    linkageType: ''
    returnType: int
    signature: int generate_stateless_reset_token(quicly_cid_encryptor_t *self, void
      *token, const void *_encrypted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_quic_keys
      Src: /src/h2o/src/ssl.c:1359,1
    - Dst: find_quic_keyset
      Src: /src/h2o/src/ssl.c:1361,1
    - Dst: quicly_decrypt_address_token
      Src: /src/h2o/src/ssl.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pt
    - input
    - err_desc
    argTypes:
    - quicly_address_token_plaintext_t*
    - ptls_iovec_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1364
    functionName: quic_decrypt_address_token
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_quic_keys
    - find_quic_keyset
    - quicly_decrypt_address_token
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quic_decrypt_address_token(quicly_address_token_plaintext_t
      *pt, ptls_iovec_t input, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_quic_keys
      Src: /src/h2o/src/ssl.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1371
    functionName: quic_get_address_token_encryptor
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 1
    functionsReached:
    - update_quic_keys
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: ptls_aead_context_t *quic_get_address_token_encryptor(uint8_t *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_get_address_token_encryptor
      Src: /src/h2o/src/ssl.c:1377,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/src/ssl.c:1380,1
    - Dst: quicly_encrypt_address_token
      Src: /src/h2o/src/ssl.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - conn
    - buf
    - token
    argTypes:
    - quicly_generate_resumption_token_t*
    - quicly_conn_t*
    - ptls_buffer_t*
    - quicly_address_token_plaintext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1373
    functionDepth: 4
    functionLinenumber: 1373
    functionLinenumberEnd: 1384
    functionName: generate_resumption_token
    functionSourceFile: /src/h2o/src/ssl.c
    functionUses: 0
    functionsReached:
    - quic_get_address_token_encryptor
    - quicly_encrypt_address_token
    - ptls_buffer_reserve
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t generate_resumption_token(quicly_generate_resumption_token_t
      *self, quicly_conn_t *conn, ptls_buffer_t *buf,\n                                                quicly_address_token_plaintext_t
      *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1101
    functionName: NOPAREN
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOPAREN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - decl_var
    - ','
    - conn_list
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1117
    functionName: H2O_CONN_LIST_FOREACH
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_CONN_LIST_FOREACH(decl_var, conn_list, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1902
    functionName: H2O_SEND_ERROR_XXX
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_SEND_ERROR_XXX(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_generate_uuidv4
      Src: /src/h2o/include/h2o.h:2477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2480
    functionName: h2o_conn_get_uuid
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_generate_uuidv4
    linkageType: ''
    returnType: char
    signature: char *h2o_conn_get_uuid(h2o_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_conn_t*::callbacks::get_ptls
      Src: /src/h2o/include/h2o.h:2487,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/include/h2o.h:2489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2492
    functionName: h2o_conn_is_early_data
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_conn_t*::callbacks::get_ptls
    - ptls_handshake_is_complete
    linkageType: ''
    returnType: int
    signature: int h2o_conn_is_early_data(h2o_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_t*::_generator::proceed
      Src: /src/h2o/include/h2o.h:2497,1
    - Dst: h2o_req_t*::_ostr_top::do_send
      Src: /src/h2o/include/h2o.h:2499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2494
    functionDepth: 1
    functionLinenumber: 2494
    functionLinenumberEnd: 2501
    functionName: h2o_proceed_response
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 1
    functionsReached:
    - h2o_req_t*::_generator::proceed
    - h2o_req_t*::_ostr_top::do_send
    linkageType: ''
    returnType: void
    signature: void h2o_proceed_response(h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/include/h2o.h:2507,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/include/h2o.h:2511,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o.h:2512,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o.h:2513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - req
    - name
    - name_len
    - allocate_if_not_found
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2503
    functionDepth: 1
    functionLinenumber: 2503
    functionLinenumberEnd: 2515
    functionName: h2o_req_getenv
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_vector_reserve
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t *h2o_req_getenv(h2o_req_t *req, const char *name, size_t
      name_len, int allocate_if_not_found)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/include/h2o.h:2521,1
    - Dst: memmove
      Src: /src/h2o/include/h2o.h:2526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - req
    - name
    - name_len
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2517
    functionDepth: 1
    functionLinenumber: 2517
    functionLinenumberEnd: 2528
    functionName: h2o_req_unsetenv
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - memmove
    linkageType: ''
    returnType: void
    signature: void h2o_req_unsetenv(h2o_req_t *req, const char *name, size_t name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2530
    functionDepth: 0
    functionLinenumber: 2530
    functionLinenumberEnd: 2533
    functionName: h2o_send_state_is_in_progress
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_send_state_is_in_progress(h2o_send_state_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_filter_t*::on_setup_ostream
      Src: /src/h2o/include/h2o.h:2541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - req
    - slot
    argTypes:
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2543
    functionName: h2o_setup_next_ostream
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_filter_t*::on_setup_ostream
    linkageType: ''
    returnType: void
    signature: void h2o_setup_next_ostream(h2o_req_t *req, h2o_ostream_t **slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_prefilter_t*::on_setup_ostream
      Src: /src/h2o/include/h2o.h:2550,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/include/h2o.h:2552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - req
    - slot
    argTypes:
    - h2o_req_prefilter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2545
    functionDepth: 1
    functionLinenumber: 2545
    functionLinenumberEnd: 2553
    functionName: h2o_setup_next_prefilter
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_setup_next_ostream
    - h2o_req_prefilter_t*::on_setup_ostream
    linkageType: ''
    returnType: void
    signature: void h2o_setup_next_prefilter(h2o_req_prefilter_t *self, h2o_req_t
      *req, h2o_ostream_t **slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_gettimeofday
      Src: /src/h2o/include/h2o.h:2558,1
    - Dst: h2o_context_update_timestamp_string_cache
      Src: /src/h2o/include/h2o.h:2560,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/include/h2o.h:2564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pool
    argTypes:
    - h2o_context_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2555
    functionDepth: 1
    functionLinenumber: 2555
    functionLinenumberEnd: 2568
    functionName: h2o_get_timestamp
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_gettimeofday
    - h2o_context_update_timestamp_string_cache
    - h2o_mem_link_shared
    linkageType: ''
    returnType: h2o_timestamp_t
    signature: h2o_timestamp_t h2o_get_timestamp(h2o_context_t *ctx, h2o_mem_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - h2o_context_t*
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2573
    functionName: h2o_context_get_handler_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *h2o_context_get_handler_context(h2o_context_t *ctx, h2o_handler_t
      *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - handler
    - handler_ctx
    argTypes:
    - h2o_context_t*
    - h2o_handler_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2578
    functionName: h2o_context_set_handler_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_context_set_handler_context(h2o_context_t *ctx, h2o_handler_t
      *handler, void *handler_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - filter
    argTypes:
    - h2o_context_t*
    - h2o_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2583
    functionName: h2o_context_get_filter_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *h2o_context_get_filter_context(h2o_context_t *ctx, h2o_filter_t
      *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - filter
    - filter_ctx
    argTypes:
    - h2o_context_t*
    - h2o_filter_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2585
    functionDepth: 0
    functionLinenumber: 2585
    functionLinenumberEnd: 2588
    functionName: h2o_context_set_filter_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_context_set_filter_context(h2o_context_t *ctx, h2o_filter_t
      *filter, void *filter_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - logger
    argTypes:
    - h2o_context_t*
    - h2o_logger_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2593
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2593
    functionName: h2o_context_get_logger_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *h2o_context_get_logger_context(h2o_context_t *ctx, h2o_logger_t
      *logger)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/include/h2o.h:2602,1
    - Dst: memset
      Src: /src/h2o/include/h2o.h:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2595
    functionDepth: 1
    functionLinenumber: 2595
    functionLinenumberEnd: 2609
    functionName: h2o_context_get_storage
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - memset
    linkageType: ''
    returnType: void
    signature: void **h2o_context_get_storage(h2o_context_t *ctx, size_t *key, void
      (*dispose_cb)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - logger
    - logger_ctx
    argTypes:
    - h2o_context_t*
    - h2o_logger_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2611
    functionDepth: 0
    functionLinenumber: 2611
    functionLinenumberEnd: 2614
    functionName: h2o_context_set_logger_context
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_context_set_logger_context(h2o_context_t *ctx, h2o_logger_t
      *logger, void *logger_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_first_handler
      Src: /src/h2o/include/h2o.h:2618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2620
    functionName: h2o_req_can_stream_request
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_get_first_handler
    linkageType: ''
    returnType: int
    signature: int h2o_req_can_stream_request(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_can_stream_request
      Src: /src/h2o/include/h2o.h:2627,1
    - Dst: h2o_get_first_handler
      Src: /src/h2o/include/h2o.h:2630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2622
    functionDepth: 2
    functionLinenumber: 2622
    functionLinenumberEnd: 2632
    functionName: h2o_req_should_forward_expect
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached:
    - h2o_req_can_stream_request
    - h2o_get_first_handler
    linkageType: ''
    returnType: int
    signature: int h2o_req_should_forward_expect(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - from
    - ','
    - until
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2643
    functionName: COMPUTE_DURATION
    functionSourceFile: /src/h2o/include/h2o.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPUTE_DURATION(name, from, until)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: h2o_rand
    functionSourceFile: /src/h2o/include/h2o/rand.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_rand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - anchor
    argTypes:
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: h2o_linklist_init_anchor
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_linklist_init_anchor(h2o_linklist_t *anchor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: h2o_linklist_is_linked
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_linklist_is_linked(h2o_linklist_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - anchor
    argTypes:
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: h2o_linklist_is_empty
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_linklist_is_empty(h2o_linklist_t *anchor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/linklist.h:89,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/include/h2o/linklist.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pos
    - node
    argTypes:
    - h2o_linklist_t*
    - h2o_linklist_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(node))
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/h2o/include/h2o/linklist.h
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: h2o_linklist_insert
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 3
    functionsReached:
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_linklist_insert(h2o_linklist_t *pos, h2o_linklist_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/include/h2o/linklist.h:99,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/include/h2o/linklist.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - list
    argTypes:
    - h2o_linklist_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: h2o_linklist_insert_list
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 0
    functionsReached:
    - h2o_linklist_init_anchor
    - h2o_linklist_is_empty
    linkageType: ''
    returnType: void
    signature: void h2o_linklist_insert_list(h2o_linklist_t *pos, h2o_linklist_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: h2o_linklist_unlink
    functionSourceFile: /src/h2o/include/h2o/linklist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_linklist_unlink(h2o_linklist_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: h2o_mruby_assert
    functionSourceFile: /src/h2o/include/h2o/mruby_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_mruby_assert(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: h2o_mruby_new_str
    functionSourceFile: /src/h2o/include/h2o/mruby_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_mruby_new_str(mrb, s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: h2o_mruby_new_str_static
    functionSourceFile: /src/h2o/include/h2o/mruby_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_mruby_new_str_static(mrb, s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 207
    functionName: H2O_MRUBY_EXEC_GUARD
    functionSourceFile: /src/h2o/include/h2o/mruby_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_MRUBY_EXEC_GUARD(block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/absprio.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - urgency
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (urgency < H2O_ABSPRIO_NUM_URGENCY_LEVELS)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/include/h2o/absprio.h
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: h2o_absprio_urgency_to_chromium_weight
    functionSourceFile: /src/h2o/include/h2o/absprio.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t h2o_absprio_urgency_to_chromium_weight(uint8_t urgency)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: H2O_STRLIT
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_STRLIT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: h2o_concat
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_concat(pool, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: h2o_tolower
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_tolower(int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strcopytolower
      Src: /src/h2o/include/h2o/string_.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: h2o_strtolower
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 2
    functionsReached:
    - h2o_strcopytolower
    linkageType: ''
    returnType: void
    signature: void h2o_strtolower(char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_tolower
      Src: /src/h2o/include/h2o/string_.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - d
    - s
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: h2o_strcopytolower
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 1
    functionsReached:
    - h2o_tolower
    linkageType: ''
    returnType: void
    signature: void h2o_strcopytolower(char *d, const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: h2o_toupper
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_toupper(int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_toupper
      Src: /src/h2o/include/h2o/string_.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: h2o_strtoupper
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 0
    functionsReached:
    - h2o_toupper
    linkageType: ''
    returnType: void
    signature: void h2o_strtoupper(char *s, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o__lcstris_core
      Src: /src/h2o/include/h2o/string_.h:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - target
    - target_len
    - test
    - test_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: h2o_lcstris
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 4
    functionsReached:
    - h2o__lcstris_core
    linkageType: ''
    returnType: int
    signature: int h2o_lcstris(const char *target, size_t target_len, const char *test,
      size_t test_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: h2o_base64_encode_capacity
    functionSourceFile: /src/h2o/include/h2o/string_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_base64_encode_capacity(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - stream_id
    - ','
    - errnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: h2o_http2_encode_rst_stream_frame
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_http2_encode_rst_stream_frame(buf, stream_id, errnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - initial_window_size
    argTypes:
    - h2o_http2_window_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: h2o_http2_window_init
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_http2_window_init(h2o_http2_window_t *window, uint32_t initial_window_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - window
    - delta
    argTypes:
    - h2o_http2_window_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: h2o_http2_window_update
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_http2_window_update(h2o_http2_window_t *window, ssize_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - window
    argTypes:
    - h2o_http2_window_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: h2o_http2_window_get_avail
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_http2_window_get_avail(h2o_http2_window_t *window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - window
    - bytes
    argTypes:
    - h2o_http2_window_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: h2o_http2_window_consume_window
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_http2_window_consume_window(h2o_http2_window_t *window, size_t
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: h2o_http2_decode16u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t h2o_http2_decode16u(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: h2o_http2_decode24u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h2o_http2_decode24u(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: h2o_http2_decode32u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h2o_http2_decode32u(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: h2o_http2_encode16u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http2_encode16u(uint8_t *dst, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: h2o_http2_encode24u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http2_encode24u(uint8_t *dst, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: h2o_http2_encode32u
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http2_encode32u(uint8_t *dst, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_common.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - index
    argTypes:
    - h2o_hpack_header_table_t*
    - size_t
    assertStmts:
    - condition: (entry->name != NULL)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/h2o/include/h2o/http2_common.h
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: h2o_hpack_header_table_get
    functionSourceFile: /src/h2o/include/h2o/http2_common.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: h2o_hpack_header_table_entry_t
    signature: h2o_hpack_header_table_entry_t *h2o_hpack_header_table_get(h2o_hpack_header_table_t
      *table, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bio
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: BIO_get_data
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_data(bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bio
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BIO_set_data
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_data(bio, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bio
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BIO_get_init
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_init(bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bio
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BIO_set_init
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_init(bio, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bio
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: BIO_get_shutdown
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_shutdown(bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bio
    - ','
    - shut
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: BIO_set_shutdown
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_shutdown(bio, shut)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/include/h2o/openssl_backport.h:39,1
    - Dst: memset
      Src: /src/h2o/include/h2o/openssl_backport.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: BIO_meth_new
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_meth_new(int type, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bm
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: BIO_meth_set_write
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_write(bm, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bm
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: BIO_meth_set_read
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_read(bm, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bm
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_puts(bm, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bm
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_ctrl(bm, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: SSL_CTX_up_ref
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_up_ref(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x509
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: X509_up_ref
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_up_ref(x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - store
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: X509_STORE_up_ref
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_up_ref(store)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkey
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_up_ref(pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: X509_STORE_get0_param
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_get0_param(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: SSL_is_server
    functionSourceFile: /src/h2o/include/h2o/openssl_backport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_is_server(ssl)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - client
    - status
    - http_version
    argTypes:
    - h2o_httpclient_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: h2o_httpclient__tunnel_is_ready
    functionSourceFile: /src/h2o/include/h2o/httpclient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_httpclient__tunnel_is_ready(h2o_httpclient_t *client, int status,
      int http_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sender
    argTypes:
    - h2o_pipe_sender_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: h2o_pipe_sender_init
    functionSourceFile: /src/h2o/include/h2o/pipe_sender.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_pipe_sender_init(h2o_pipe_sender_t *sender)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sender
    argTypes:
    - h2o_pipe_sender_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: h2o_pipe_sender_in_use
    functionSourceFile: /src/h2o/include/h2o/pipe_sender.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_pipe_sender_in_use(h2o_pipe_sender_t *sender)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: H2O_MULTITHREAD_ONCE
    functionSourceFile: /src/h2o/include/h2o/multithread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_MULTITHREAD_ONCE(block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: H2O_ERROR_REPORTER_INITIALIZER
    functionSourceFile: /src/h2o/include/h2o/multithread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_ERROR_REPORTER_INITIALIZER(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/include/h2o/multithread.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reporter
    argTypes:
    - h2o_error_reporter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: h2o_error_reporter_record_success
    functionSourceFile: /src/h2o/include/h2o/multithread.h
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void h2o_error_reporter_record_success(h2o_error_reporter_t *reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: H2O_HTTP3_CHECK_SUCCESS
    functionSourceFile: /src/h2o/include/h2o/http3_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_HTTP3_CHECK_SUCCESS(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http3_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: h2o_http3_has_received_settings
    functionSourceFile: /src/h2o/include/h2o/http3_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_http3_has_received_settings(h2o_http3_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_headers_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: h2o_http3_calc_min_flow_control_size
    functionSourceFile: /src/h2o/include/h2o/http3_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_http3_calc_min_flow_control_size(size_t max_headers_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - m
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: H2O_STRUCT_FROM_MEMBER
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_STRUCT_FROM_MEMBER(s, m, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: H2O_ALIGNOF
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_ALIGNOF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: H2O_LIKELY
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: H2O_UNLIKELY
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: H2O_LIKELY
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: H2O_UNLIKELY
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: H2O_TO__STR
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_TO__STR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: H2O_TO_STR
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_TO_STR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: H2O_BUILD_ASSERT
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_BUILD_ASSERT(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: h2o_error_printf
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_error_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: H2O_VECTOR
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_VECTOR(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: h2o_fatal
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_fatal(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pool
    - ','
    - type
    - ','
    - cnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: h2o_mem_alloc_pool
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_mem_alloc_pool(pool, type, cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pool
    - ','
    - vector
    - ','
    - new_capacity
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: h2o_vector_reserve
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_vector_reserve(pool, vector, new_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vector
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: h2o_vector_erase
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_vector_erase(vector, index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/include/h2o/memory.h:419,1
    - Dst: h2o_fatal
      Src: /src/h2o/include/h2o/memory.h:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: h2o_memcpy
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 2
    functionsReached:
    - memcpy
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void *h2o_memcpy(void *dst, const void *src, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - h2o_mem_recycle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: h2o_mem_recycle_is_empty
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_mem_recycle_is_empty(h2o_mem_recycle_t *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: h2o_iovec_init
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_iovec_init(const void *base, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/include/h2o/memory.h:441,1
    - Dst: h2o_fatal
      Src: /src/h2o/include/h2o/memory.h:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: h2o_mem_alloc
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 32
    functionsReached:
    - malloc
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_alloc(size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/include/h2o/memory.h:450,1
    - Dst: posix_memalign
      Src: /src/h2o/include/h2o/memory.h:453,1
    - Dst: h2o_fatal
      Src: /src/h2o/include/h2o/memory.h:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - alignment
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: h2o_mem_aligned_alloc
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - posix_memalign
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_aligned_alloc(size_t alignment, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/include/h2o/memory.h:460,1
    - Dst: h2o_fatal
      Src: /src/h2o/include/h2o/memory.h:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - oldp
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: h2o_mem_realloc
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 2
    functionsReached:
    - realloc
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_realloc(void *oldp, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:472,1
    - Dst: h2o_mem__do_alloc_pool_aligned
      Src: /src/h2o/include/h2o/memory.h:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - pool
    - alignment
    - size
    argTypes:
    - h2o_mem_pool_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (alignment != 0 && (alignment & (alignment - 1)) == 0)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: h2o_mem_alloc_pool_aligned
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_mem__do_alloc_pool_aligned
    - assert
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_alloc_pool_aligned(h2o_mem_pool_t *pool, size_t alignment,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/include/h2o/memory.h:478,1
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: (entry->refcnt != 0)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: h2o_mem_addref_shared
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void h2o_mem_addref_shared(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/include/h2o/memory.h:485,1
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:486,1
    - Dst: struct st_h2o_mem_pool_shared_entry_t*::dispose
      Src: /src/h2o/include/h2o/memory.h:489,1
    - Dst: free
      Src: /src/h2o/include/h2o/memory.h:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: (entry->refcnt != 0)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: h2o_mem_release_shared
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 2
    functionsReached:
    - struct st_h2o_mem_pool_shared_entry_t*::dispose
    - free
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: int h2o_mem_release_shared(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - prototype
    argTypes:
    - h2o_buffer_t**
    - h2o_buffer_prototype_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: h2o_buffer_init
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_init(h2o_buffer_t **buffer, h2o_buffer_prototype_t
      *prototype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer__do_free
      Src: /src/h2o/include/h2o/memory.h:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _buffer
    argTypes:
    - h2o_buffer_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 507
    functionName: h2o_buffer_dispose
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 10
    functionsReached:
    - h2o_buffer__do_free
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_dispose(h2o_buffer_t **_buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - prototype
    argTypes:
    - h2o_buffer_t**
    - h2o_buffer_prototype_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 515
    functionName: h2o_buffer_set_prototype
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_set_prototype(h2o_buffer_t **buffer, h2o_buffer_prototype_t
      *prototype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/include/h2o/memory.h:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - pool
    argTypes:
    - h2o_buffer_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: h2o_buffer_link_to_pool
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_shared
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_link_to_pool(h2o_buffer_t *buffer, h2o_mem_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/include/h2o/memory.h:525,1
    - Dst: h2o_memcpy
      Src: /src/h2o/include/h2o/memory.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - h2o_buffer_t**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: h2o_buffer_append
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 1
    functionsReached:
    - h2o_memcpy
    - h2o_buffer_reserve
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_append(h2o_buffer_t **dst, const void *src, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/include/h2o/memory.h:532,1
    - Dst: h2o_memcpy
      Src: /src/h2o/include/h2o/memory.h:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - h2o_buffer_t**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: h2o_buffer_try_append
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_memcpy
    - h2o_buffer_try_reserve
    linkageType: ''
    returnType: int
    signature: int h2o_buffer_try_append(h2o_buffer_t **dst, const void *src, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/include/h2o/memory.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - db
    - prototype
    argTypes:
    - h2o_doublebuffer_t*
    - h2o_buffer_prototype_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 545
    functionName: h2o_doublebuffer_init
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    linkageType: ''
    returnType: void
    signature: void h2o_doublebuffer_init(h2o_doublebuffer_t *db, h2o_buffer_prototype_t
      *prototype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/include/h2o/memory.h:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - h2o_doublebuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: h2o_doublebuffer_dispose
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_doublebuffer_dispose(h2o_doublebuffer_t *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:554,1
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:555,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/memory.h:559,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/memory.h:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - receiving
    - max_bytes
    argTypes:
    - h2o_doublebuffer_t*
    - h2o_buffer_t**
    - size_t
    assertStmts:
    - condition: (!db->inflight)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/h2o/include/h2o/memory.h
    - condition: (max_bytes != 0)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: h2o_doublebuffer_prepare
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_doublebuffer_prepare(h2o_doublebuffer_t *db, h2o_buffer_t
      **receiving, size_t max_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - h2o_doublebuffer_t*
    assertStmts:
    - condition: (!db->inflight)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: h2o_doublebuffer_prepare_empty
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_doublebuffer_prepare_empty(h2o_doublebuffer_t *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/memory.h:579,1
    - Dst: h2o_buffer_consume_all
      Src: /src/h2o/include/h2o/memory.h:583,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/include/h2o/memory.h:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - h2o_doublebuffer_t*
    assertStmts:
    - condition: (db->inflight)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/h2o/include/h2o/memory.h
    constantsTouched: []
    func_position:
      end: 588
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 588
    functionName: h2o_doublebuffer_consume
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_buffer_consume_all
    - assert
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void h2o_doublebuffer_consume(h2o_doublebuffer_t *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector__expand
      Src: /src/h2o/include/h2o/memory.h:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pool
    - vector
    - alignment
    - element_size
    - new_capacity
    argTypes:
    - h2o_mem_pool_t*
    - h2o_vector_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: h2o_vector__reserve
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - h2o_vector__expand
    linkageType: ''
    returnType: void
    signature: "void h2o_vector__reserve(h2o_mem_pool_t *pool, h2o_vector_t *vector,
      size_t alignment, size_t element_size,\n                                size_t
      new_capacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/include/h2o/memory.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vector
    - element_size
    - index
    argTypes:
    - h2o_vector_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: h2o_vector__erase
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void h2o_vector__erase(h2o_vector_t *vector, size_t element_size, size_t
      index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/include/h2o/memory.h:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - _target
    - target_len
    - _test
    - test_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: h2o_memis
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 43
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int h2o_memis(const void *_target, size_t target_len, const void *_test,
      size_t test_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 627
    functionName: h2o_memrchr
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *h2o_memrchr(const void *s, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem__set_secure
      Src: /src/h2o/include/h2o/memory.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - c
    - len
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: h2o_mem_set_secure
    functionSourceFile: /src/h2o/include/h2o/memory.h
    functionUses: 2
    functionsReached:
    - h2o_mem__set_secure
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_set_secure(void *b, int c, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: h2o_socketpool_get_timeout
    functionSourceFile: /src/h2o/include/h2o/socketpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_socketpool_get_timeout(h2o_socketpool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - msec
    argTypes:
    - h2o_socketpool_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: h2o_socketpool_set_timeout
    functionSourceFile: /src/h2o/include/h2o/socketpool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_set_timeout(h2o_socketpool_t *pool, uint64_t msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - sock
    argTypes:
    - h2o_socketpool_t*
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: h2o_socketpool_is_owned_socket
    functionSourceFile: /src/h2o/include/h2o/socketpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socketpool_is_owned_socket(h2o_socketpool_t *pool, h2o_socket_t
      *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - entry
    - cb
    argTypes:
    - h2o_timerwheel_entry_t*
    - h2o_timerwheel_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: h2o_timerwheel_init_entry
    functionSourceFile: /src/h2o/include/h2o/timerwheel.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_init_entry(h2o_timerwheel_entry_t *entry, h2o_timerwheel_cb
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/include/h2o/timerwheel.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: h2o_timerwheel_is_linked
    functionSourceFile: /src/h2o/include/h2o/timerwheel.h
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: int
    signature: int h2o_timerwheel_is_linked(h2o_timerwheel_entry_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/include/h2o/timerwheel.h:102,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/include/h2o/timerwheel.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: h2o_timerwheel_unlink
    functionSourceFile: /src/h2o/include/h2o/timerwheel.h
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_linked
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_unlink(h2o_timerwheel_entry_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/include/h2o/header.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - h2o_header_t*
    - h2o_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: h2o_header_name_is_equal
    functionSourceFile: /src/h2o/include/h2o/header.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int h2o_header_name_is_equal(const h2o_header_t *x, const h2o_header_t
      *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/h2o/include/h2o/hostinfo.h:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: h2o_hostinfo_select_one
    functionSourceFile: /src/h2o/include/h2o/hostinfo.h
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: struct addrinfo
    signature: struct addrinfo *h2o_hostinfo_select_one(struct addrinfo *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/include/h2o/http2_internal.h:287,1
    - Dst: kh_end
      Src: /src/h2o/include/h2o/http2_internal.h:288,1
    - Dst: kh_val
      Src: /src/h2o/include/h2o/http2_internal.h:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - h2o_http2_conn_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: h2o_http2_conn_get_stream
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_end
    - kh_get
    linkageType: ''
    returnType: h2o_http2_stream_t
    signature: h2o_http2_stream_t *h2o_http2_conn_get_stream(h2o_http2_conn_t *conn,
      uint32_t stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: h2o_http2_stream_is_push
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_http2_stream_is_push(uint32_t stream_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_prepare_for_latency_optimized_write
      Src: /src/h2o/include/h2o/http2_internal.h:304,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/include/h2o/http2_internal.h:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 319
    functionName: h2o_http2_conn_get_buffer_window
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_socket_prepare_for_latency_optimized_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_http2_conn_get_buffer_window(h2o_http2_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:323,1
    - Dst: h2o_http2_casper_create
      Src: /src/h2o/include/h2o/http2_internal.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - capacity_bits
    argTypes:
    - h2o_http2_conn_t*
    - unsigned
    assertStmts:
    - condition: (conn->casper == NULL)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/h2o/include/h2o/http2_internal.h
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: h2o_http2_conn_init_casper
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - h2o_http2_casper_create
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_init_casper(h2o_http2_conn_t *conn, unsigned capacity_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - slot
    argTypes:
    - h2o_http2_stream_t*
    - h2o_http2_conn_num_streams_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: h2o_http2_stream_update_open_slot
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_update_open_slot(h2o_http2_stream_t *stream,
      h2o_http2_conn_num_streams_t *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:337,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - stream
    - 'on'
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - unsigned
    assertStmts:
    - condition: (!stream->blocked_by_server)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (stream->blocked_by_server)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/h2o/include/h2o/http2_internal.h
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: h2o_http2_stream_set_blocked_by_server
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_set_blocked_by_server(h2o_http2_conn_t *conn,
      h2o_http2_stream_t *stream, unsigned on)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:351,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:354,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/include/h2o/http2_internal.h:355,1
    - Dst: h2o_http2_stream_update_open_slot
      Src: /src/h2o/include/h2o/http2_internal.h:356,1
    - Dst: h2o_http2_stream_update_open_slot
      Src: /src/h2o/include/h2o/http2_internal.h:358,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/include/h2o/http2_internal.h:360,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/include/h2o/http2_internal.h:364,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:370,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:375,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:380,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:400,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/include/h2o/http2_internal.h:404,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/include/h2o/http2_internal.h:405,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/include/h2o/http2_internal.h:411,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/include/h2o/http2_internal.h:417,1
    - Dst: h2o_conn_set_state
      Src: /src/h2o/include/h2o/http2_internal.h:421,1
    - Dst: h2o_conn_set_state
      Src: /src/h2o/include/h2o/http2_internal.h:423,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 3
    argNames:
    - conn
    - stream
    - new_state
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - h2o_http2_stream_state_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_IDLE)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_REQ_PENDING)
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_SEND_HEADERS)
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_SEND_BODY)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (!"FIXME")
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/h2o/include/h2o/http2_internal.h
    constantsTouched: []
    func_position:
      end: 426
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 426
    functionName: h2o_http2_stream_set_state
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    - h2o_http2_stream_set_blocked_by_server
    - h2o_http2_stream_update_open_slot
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - h2o_timer_is_linked
    - h2o_conn_set_state
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_set_state(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, h2o_http2_stream_state_t new_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:430,1
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:431,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/include/h2o/http2_internal.h:431,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/include/h2o/http2_internal.h:435,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/include/h2o/http2_internal.h:443,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/include/h2o/http2_internal.h:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (conn->state != H2O_HTTP2_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/h2o/include/h2o/http2_internal.h
    - condition: (h2o_http2_scheduler_is_open(&stream->_scheduler))
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/h2o/include/h2o/http2_internal.h
    constantsTouched: []
    func_position:
      end: 445
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 445
    functionName: h2o_http2_stream_prepare_for_request
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    - h2o_http2_scheduler_is_open
    - assert
    - h2o_http2_stream_set_state
    - h2o_http2_window_init
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_prepare_for_request(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: h2o_http2_stream_has_pending_data
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_http2_stream_has_pending_data(h2o_http2_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/include/h2o/http2_internal.h:454,1
    - Dst: h2o_hpack_flatten_push_promise
      Src: /src/h2o/include/h2o/http2_internal.h:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (!stream->push.promise_sent)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/h2o/include/h2o/http2_internal.h
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: h2o_http2_stream_send_push_promise
    functionSourceFile: /src/h2o/include/h2o/http2_internal.h
    functionUses: 0
    functionsReached:
    - h2o_hpack_flatten_push_promise
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_send_push_promise(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cmd
    - ','
    - node
    - ','
    - keys_required
    - ','
    - keys_optional
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: h2o_configurator_parse_mapping
    functionSourceFile: /src/h2o/include/h2o/configurator.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2o_configurator_parse_mapping(cmd, node, keys_required, keys_optional,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_configurator_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: h2o_configurator_at_extension_level
    functionSourceFile: /src/h2o/include/h2o/configurator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_configurator_at_extension_level(h2o_configurator_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/include/h2o/http2_scheduler.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: h2o_http2_scheduler_is_open
    functionSourceFile: /src/h2o/include/h2o/http2_scheduler.h
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: int
    signature: int h2o_http2_scheduler_is_open(h2o_http2_scheduler_openref_t *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: h2o_http2_scheduler_get_weight
    functionSourceFile: /src/h2o/include/h2o/http2_scheduler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t h2o_http2_scheduler_get_weight(h2o_http2_scheduler_openref_t
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: h2o_http2_scheduler_get_parent
    functionSourceFile: /src/h2o/include/h2o/http2_scheduler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_http2_scheduler_node_t
    signature: h2o_http2_scheduler_node_t *h2o_http2_scheduler_get_parent(h2o_http2_scheduler_openref_t
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: h2o_socket_is_writing
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socket_is_writing(h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: h2o_socket_is_reading
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socket_is_reading(h2o_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_do_prepare_for_latency_optimized_write
      Src: /src/h2o/include/h2o/socket.h:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - conditions
    argTypes:
    - h2o_socket_t*
    - h2o_socket_latency_optimization_conditions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 586
    functionName: h2o_socket_prepare_for_latency_optimized_write
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 1
    functionsReached:
    - h2o_socket_do_prepare_for_latency_optimized_write
    linkageType: ''
    returnType: size_t
    signature: "size_t h2o_socket_prepare_for_latency_optimized_write(h2o_socket_t
      *sock,\n                                                             const h2o_socket_latency_optimization_conditions_t
      *conditions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_protocol_version
      Src: /src/h2o/include/h2o/socket.h:591,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:592,1
    - Dst: strlen
      Src: /src/h2o/include/h2o/socket.h:592,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: h2o_socket_log_ssl_protocol_version
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached:
    - h2o_socket_get_ssl_protocol_version
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_protocol_version(h2o_socket_t *sock,
      h2o_mem_pool_t *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_session_reused
      Src: /src/h2o/include/h2o/socket.h:598,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:600,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/include/h2o/socket.h:600,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:602,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/include/h2o/socket.h:602,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: h2o_socket_log_ssl_session_reused
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_socket_get_ssl_session_reused
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_session_reused(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_cipher
      Src: /src/h2o/include/h2o/socket.h:611,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:612,1
    - Dst: strlen
      Src: /src/h2o/include/h2o/socket.h:612,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: h2o_socket_log_ssl_cipher
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached:
    - h2o_socket_get_ssl_cipher
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_cipher(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_server_name
      Src: /src/h2o/include/h2o/socket.h:618,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:619,1
    - Dst: strlen
      Src: /src/h2o/include/h2o/socket.h:619,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/include/h2o/socket.h:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: h2o_socket_log_ssl_server_name
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached:
    - h2o_socket_get_ssl_server_name
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_server_name(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_ssl_get_selected_protocol
      Src: /src/h2o/include/h2o/socket.h:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: h2o_socket_log_ssl_negotiated_protocol
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached:
    - h2o_socket_ssl_get_selected_protocol
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_negotiated_protocol(h2o_socket_t *sock,
      h2o_mem_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - h2o_sliding_counter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: h2o_sliding_counter_is_running
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_sliding_counter_is_running(h2o_sliding_counter_t *counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - counter
    - now
    argTypes:
    - h2o_sliding_counter_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: h2o_sliding_counter_start
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_sliding_counter_start(h2o_sliding_counter_t *counter, uint64_t
      now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: h2o_socket_log_state
    functionSourceFile: /src/h2o/include/h2o/socket.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *h2o_socket_log_state(h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/include/h2o/url.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - url
    - scheme
    - authority
    - path
    argTypes:
    - h2o_url_t*
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: h2o_url_init
    functionSourceFile: /src/h2o/include/h2o/url.h
    functionUses: 1
    functionsReached:
    - h2o_url_parse_hostport
    linkageType: ''
    returnType: int
    signature: int h2o_url_init(h2o_url_t *url, const h2o_url_scheme_t *scheme, h2o_iovec_t
      authority, h2o_iovec_t path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: h2o_url_get_port
    functionSourceFile: /src/h2o/include/h2o/url.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t h2o_url_get_port(const h2o_url_t *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_resolve
      Src: /src/h2o/include/h2o/url.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - url
    argTypes:
    - h2o_mem_pool_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: h2o_url_stringify
    functionSourceFile: /src/h2o/include/h2o/url.h
    functionUses: 1
    functionsReached:
    - h2o_url_resolve
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_url_stringify(h2o_mem_pool_t *pool, const h2o_url_t
      *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/include/h2o/url.h:145,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/include/h2o/url.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - host
    argTypes:
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: h2o_url_host_is_unix_path
    functionSourceFile: /src/h2o/include/h2o/url.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int h2o_url_host_is_unix_path(h2o_iovec_t host)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_host_is_unix_path
      Src: /src/h2o/include/h2o/url.h:157,1
    - Dst: h2o_memis
      Src: /src/h2o/include/h2o/url.h:158,1
    - Dst: h2o_lcstris
      Src: /src/h2o/include/h2o/url.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - url_a
    - url_b
    argTypes:
    - h2o_url_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: h2o_url_hosts_are_equal
    functionSourceFile: /src/h2o/include/h2o/url.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_url_host_is_unix_path
    - h2o_lcstris
    linkageType: ''
    returnType: int
    signature: int h2o_url_hosts_are_equal(const h2o_url_t *url_a, const h2o_url_t
      *url_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - until
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: h2o_timeval_subtract
    functionSourceFile: /src/h2o/include/h2o/time_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t h2o_timeval_subtract(struct timeval *from, struct timeval *until)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: h2o_timeval_is_null
    functionSourceFile: /src/h2o/include/h2o/time_.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_timeval_is_null(struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/include/h2o/socket/uv-binding.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - loop
    argTypes:
    - uv_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: h2o_gettimeofday
    functionSourceFile: /src/h2o/include/h2o/socket/uv-binding.h
    functionUses: 2
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval h2o_gettimeofday(uv_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_now
      Src: /src/h2o/include/h2o/socket/uv-binding.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: h2o_now
    functionSourceFile: /src/h2o/include/h2o/socket/uv-binding.h
    functionUses: 1
    functionsReached:
    - uv_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_now(h2o_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_now
      Src: /src/h2o/include/h2o/socket/uv-binding.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: h2o_now_nanosec
    functionSourceFile: /src/h2o/include/h2o/socket/uv-binding.h
    functionUses: 0
    functionsReached:
    - uv_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_now_nanosec(h2o_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/include/h2o/socket/uv-binding.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - timer
    - cb
    argTypes:
    - h2o_timer_t*
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: h2o_timer_init
    functionSourceFile: /src/h2o/include/h2o/socket/uv-binding.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void h2o_timer_init(h2o_timer_t *timer, h2o_timer_cb cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: h2o_timer_is_linked
    functionSourceFile: /src/h2o/include/h2o/socket/uv-binding.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_timer_is_linked(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: h2o_gettimeofday
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval h2o_gettimeofday(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: h2o_now
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_now(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: h2o_now_nanosec
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_now_nanosec(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: h2o_evloop_get_execution_time_millisec
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_evloop_get_execution_time_millisec(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: h2o_evloop_get_execution_time_nanosec
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_evloop_get_execution_time_nanosec(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_link_abs
      Src: /src/h2o/include/h2o/socket/evloop.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - loop
    - delay_ticks
    - timer
    argTypes:
    - h2o_evloop_t*
    - uint64_t
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: h2o_timer_link
    functionSourceFile: /src/h2o/include/h2o/socket/evloop.h
    functionUses: 1
    functionsReached:
    - h2o_timerwheel_link_abs
    linkageType: ''
    returnType: void
    signature: void h2o_timer_link(h2o_evloop_t *loop, uint64_t delay_ticks, h2o_timer_t
      *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: phr_parse_request
      Src: /src/h2o/deps/picohttpparser/bench.c:60,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/bench.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == sizeof(REQ) - 1)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/h2o/deps/picohttpparser/bench.c
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: main
    functionSourceFile: /src/h2o/deps/picohttpparser/bench.c
    functionUses: 0
    functionsReached:
    - phr_parse_request
    - assert
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:39,1
    - Dst: memcmp
      Src: /src/h2o/deps/picohttpparser/test.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - s
    - l
    - t
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: bufis
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int bufis(const char *s, size_t l, const char *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:65,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:66,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:66,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:67,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:67,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:68,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:70,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:72,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:74,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:74,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:75,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:77,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:77,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:78,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:78,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:79,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:79,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:80,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:80,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:84,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:85,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:86,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:87,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:87,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:88,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:89,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:89,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:90,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:90,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:92,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:94,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:94,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:95,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:95,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:96,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:97,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:97,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:98,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:98,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:99,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:99,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:100,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:100,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:101,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:102,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:102,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:104,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:106,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:107,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:109,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:109,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:110,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:111,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:112,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:113,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:113,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:114,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:115,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:116,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:117,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:118,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:119,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:121,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:121,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:122,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:122,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:124,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:125,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:127,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:128,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:130,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:131,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:132,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:133,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:134,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:135,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:136,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:137,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:138,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:141,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:141,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:142,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:142,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:144,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:144,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:145,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:145,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:148,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:149,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:150,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:150,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:152,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:155,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:155,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 160
    functionName: test_request
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 1
    functionsReached:
    - bufis
    - ok
    - strlen
    - PARSE
    linkageType: ''
    returnType: void
    signature: void test_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - last_len
    - ','
    - exp
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: PARSE
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE(s, last_len, exp, comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:181,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:183,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:184,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:185,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:185,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:187,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:189,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:190,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:191,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:192,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:193,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:193,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:194,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:194,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:195,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:196,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:196,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:197,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:197,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:199,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:200,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:201,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:202,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:203,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:204,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:204,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:205,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:205,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:206,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:206,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:207,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:207,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:208,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:209,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:209,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:211,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:212,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:213,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:214,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:215,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:216,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:218,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:219,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:220,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:221,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:222,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:223,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:224,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:225,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:226,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:227,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:228,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:229,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:230,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:231,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:232,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:233,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:233,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:234,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:235,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:235,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:237,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:238,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:239,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:240,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:241,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:242,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:242,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:244,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:244,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:245,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:245,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:247,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:248,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:249,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:251,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:252,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:252,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:253,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:254,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:255,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:257,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:258,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:258,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 263
    functionName: test_response
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - bufis
    - ok
    - strlen
    - PARSE
    linkageType: ''
    returnType: void
    signature: void test_response(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - last_len
    - ','
    - exp
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: PARSE
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE(s, last_len, exp, comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:279,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:280,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:281,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:281,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:282,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:282,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:283,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:283,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:284,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:284,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:286,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:287,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:288,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:288,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:289,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:289,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:290,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:290,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:291,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:291,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:293,1
    - Dst: PARSE
      Src: /src/h2o/deps/picohttpparser/test.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 298
    functionName: test_headers
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - bufis
    - ok
    - PARSE
    linkageType: ''
    returnType: void
    signature: void test_headers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - last_len
    - ','
    - exp
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: PARSE
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE(s, last_len, exp, comment)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picohttpparser/test.c:309,1
    - Dst: strdup
      Src: /src/h2o/deps/picohttpparser/test.c:311,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:312,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:314,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:316,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:317,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:317,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:318,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:318,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:321,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:321,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:321,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:323,1
    - Dst: free
      Src: /src/h2o/deps/picohttpparser/test.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - line
    - consume_trailer
    - encoded
    - decoded
    - expected
    argTypes:
    - int
    - int
    - char*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: test_chunked_at_once
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - strdup
    - note
    - bufis
    - free
    - ok
    - phr_decode_chunked
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_chunked_at_once(int line, int consume_trailer, const char
      *encoded, const char *decoded, ssize_t expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picohttpparser/test.c:332,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:332,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:333,1
    - Dst: note
      Src: /src/h2o/deps/picohttpparser/test.c:338,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:343,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:345,1
    - Dst: strcpy
      Src: /src/h2o/deps/picohttpparser/test.c:350,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:351,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:352,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:353,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:355,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:355,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:356,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:356,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:359,1
    - Dst: bufis
      Src: /src/h2o/deps/picohttpparser/test.c:359,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:361,1
    - Dst: free
      Src: /src/h2o/deps/picohttpparser/test.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - line
    - consume_trailer
    - encoded
    - decoded
    - expected
    argTypes:
    - int
    - int
    - char*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 366
    functionName: test_chunked_per_byte
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - malloc
    - note
    - bufis
    - free
    - phr_decode_chunked
    - ok
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_chunked_per_byte(int line, int consume_trailer, const char
      *encoded, const char *decoded, ssize_t expected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/picohttpparser/test.c:371,1
    - Dst: note
      Src: /src/h2o/deps/picohttpparser/test.c:375,1
    - Dst: strlen
      Src: /src/h2o/deps/picohttpparser/test.c:376,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:377,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:378,1
    - Dst: note
      Src: /src/h2o/deps/picohttpparser/test.c:380,1
    - Dst: memset
      Src: /src/h2o/deps/picohttpparser/test.c:381,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:385,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:387,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:392,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:396,1
    - Dst: free
      Src: /src/h2o/deps/picohttpparser/test.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - line
    - encoded
    - expected
    argTypes:
    - int
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 400
    functionName: test_chunked_failure
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - strdup
    - note
    - free
    - ok
    - phr_decode_chunked
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_chunked_failure(int line, const char *encoded, ssize_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picohttpparser/test.c:419,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:420,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:422,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:423,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:425,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:428,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:429,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:430,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:431,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:432,1
    - Dst: test_chunked_failure
      Src: /src/h2o/deps/picohttpparser/test.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 434
    functionName: test_chunked
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - test_chunked_failure
    - note
    linkageType: ''
    returnType: void
    signature: void test_chunked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 450
    functionName: test_chunked_consume_trailer
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_chunked_consume_trailer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:461,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:462,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:463,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:464,1
    - Dst: memcmp
      Src: /src/h2o/deps/picohttpparser/test.c:464,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:465,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:466,1
    - Dst: memcmp
      Src: /src/h2o/deps/picohttpparser/test.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 469
    functionName: test_chunked_leftdata
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - ok
    - phr_decode_chunked
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_chunked_leftdata(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/h2o/deps/picohttpparser/test.c:480,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:481,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:483,1
    - Dst: memset
      Src: /src/h2o/deps/picohttpparser/test.c:485,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:487,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:489,1
    - Dst: strcpy
      Src: /src/h2o/deps/picohttpparser/test.c:491,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:493,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:495,1
    - Dst: strcpy
      Src: /src/h2o/deps/picohttpparser/test.c:499,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/deps/picohttpparser/test.c:501,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - chunk_len
    - chunk_count
    - extra
    argTypes:
    - size_t
    - size_t
    - char*
    assertStmts:
    - condition: (bufsz == 0)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/h2o/deps/picohttpparser/test.c
    - condition: (bufsz == chunk_len)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/h2o/deps/picohttpparser/test.c
    - condition: (bufsz == 0)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/h2o/deps/picohttpparser/test.c
    - condition: (bufsz == 0)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/h2o/deps/picohttpparser/test.c
    constantsTouched: []
    func_position:
      end: 506
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 506
    functionName: do_test_chunked_overhead
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - sprintf
    - phr_decode_chunked
    - memset
    - assert
    - strcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t do_test_chunked_overhead(size_t chunk_len, size_t chunk_count,
      const char *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:510,1
    - Dst: do_test_chunked_overhead
      Src: /src/h2o/deps/picohttpparser/test.c:510,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:511,1
    - Dst: do_test_chunked_overhead
      Src: /src/h2o/deps/picohttpparser/test.c:511,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:512,1
    - Dst: do_test_chunked_overhead
      Src: /src/h2o/deps/picohttpparser/test.c:512,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:514,1
    - Dst: do_test_chunked_overhead
      Src: /src/h2o/deps/picohttpparser/test.c:514,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:515,1
    - Dst: do_test_chunked_overhead
      Src: /src/h2o/deps/picohttpparser/test.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 516
    functionName: test_chunked_overhead
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 1
    functionsReached:
    - do_test_chunked_overhead
    - ok
    linkageType: ''
    returnType: void
    signature: void test_chunked_overhead(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/h2o/deps/picohttpparser/test.c:520,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:521,1
    - Dst: mmap
      Src: /src/h2o/deps/picohttpparser/test.c:523,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/test.c:524,1
    - Dst: ok
      Src: /src/h2o/deps/picohttpparser/test.c:526,1
    - Dst: mprotect
      Src: /src/h2o/deps/picohttpparser/test.c:526,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:528,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:529,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:530,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:531,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:532,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:533,1
    - Dst: subtest
      Src: /src/h2o/deps/picohttpparser/test.c:534,1
    - Dst: munmap
      Src: /src/h2o/deps/picohttpparser/test.c:536,1
    - Dst: done_testing
      Src: /src/h2o/deps/picohttpparser/test.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pagesize >= 1)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/h2o/deps/picohttpparser/test.c
    - condition: (inputbuf != MAP_FAILED)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/h2o/deps/picohttpparser/test.c
    constantsTouched: []
    func_position:
      end: 539
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 539
    functionName: main
    functionSourceFile: /src/h2o/deps/picohttpparser/test.c
    functionUses: 0
    functionsReached:
    - munmap
    - mprotect
    - ok
    - subtest
    - sysconf
    - mmap
    - assert
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: likely
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: unlikely
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: likely
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: unlikely
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ALIGNED
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ALIGNED
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: IS_PRINTABLE_ASCII
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PRINTABLE_ASCII(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: CHECK_EOF
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: EXPECT_CHAR_NO_CHECK
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT_CHAR_NO_CHECK(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: EXPECT_CHAR
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tok
    - ','
    - toklen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: ADVANCE_TOKEN
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADVANCE_TOKEN(tok, toklen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:109,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:110,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:114,1
    - Dst: _mm_cmpestri
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:115,1
    - Dst: unlikely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:116,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - buf
    - buf_end
    - ranges
    - ranges_size
    - found
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: findchar_fast
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - _mm_cmpestri
    - likely
    - unlikely
    - _mm_loadu_si128
    linkageType: ''
    returnType: char
    signature: char *findchar_fast(const char *buf, const char *buf_end, const char
      *ranges, size_t ranges_size, int *found)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: findchar_fast
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:143,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:148,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:155,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:156,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:157,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:158,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:159,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:160,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:161,1
    - Dst: DOIT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:162,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:166,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:166,1
    - Dst: unlikely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:166,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:173,1
    - Dst: unlikely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:174,1
    - Dst: IS_PRINTABLE_ASCII
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:174,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:175,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:175,1
    - Dst: unlikely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:175,1
    - Dst: likely
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:181,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:183,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 5
    argNames:
    - buf
    - buf_end
    - token
    - token_len
    - ret
    argTypes:
    - char*
    - char*
    - char**
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 195
    functionName: get_token_to_eol
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - DOIT
    - IS_PRINTABLE_ASCII
    - EXPECT_CHAR
    - CHECK_EOF
    - unlikely
    - findchar_fast
    - likely
    linkageType: ''
    returnType: char
    signature: char *get_token_to_eol(const char *buf, const char *buf_end, const
      char **token, size_t *token_len, int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: DOIT
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOIT()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:203,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:206,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - buf
    - buf_end
    - last_len
    - ret
    argTypes:
    - char*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: is_complete
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 1
    functionsReached:
    - EXPECT_CHAR
    - CHECK_EOF
    linkageType: ''
    returnType: char
    signature: char *is_complete(const char *buf, const char *buf_end, size_t last_len,
      int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - valp_
    - ','
    - mul_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: PARSE_INT
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_INT(valp_, mul_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - valp_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: PARSE_INT_3
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_INT_3(valp_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: findchar_fast
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:260,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:262,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - buf
    - buf_end
    - token
    - token_len
    - next_char
    - ret
    argTypes:
    - char*
    - char*
    - char**
    - size_t*
    - char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: parse_token
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - findchar_fast
    - CHECK_EOF
    linkageType: ''
    returnType: char
    signature: "char *parse_token(const char *buf, const char *buf_end, const char
      **token, size_t *token_len, char next_char,\n                               int
      *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:287,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:288,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:289,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:290,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:291,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:292,1
    - Dst: EXPECT_CHAR_NO_CHECK
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:293,1
    - Dst: PARSE_INT
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - buf_end
    - minor_version
    - ret
    argTypes:
    - char*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: parse_http_version
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - PARSE_INT
    - EXPECT_CHAR_NO_CHECK
    linkageType: ''
    returnType: char
    signature: char *parse_http_version(const char *buf, const char *buf_end, int
      *minor_version, int *ret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:302,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:305,1
    - Dst: parse_token
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:318,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:327,1
    - Dst: get_token_to_eol
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:338,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 6
    argNames:
    - buf
    - buf_end
    - headers
    - num_headers
    - max_headers
    - ret
    argTypes:
    - char*
    - char*
    - struct phr_header*
    - size_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 353
    functionName: parse_headers
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - parse_token
    - EXPECT_CHAR
    - get_token_to_eol
    - CHECK_EOF
    linkageType: ''
    returnType: char
    signature: "char *parse_headers(const char *buf, const char *buf_end, struct phr_header
      *headers, size_t *num_headers,\n                                 size_t max_headers,
      int *ret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:360,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:363,1
    - Dst: parse_token
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:369,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:374,1
    - Dst: ADVANCE_TOKEN
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:376,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:379,1
    - Dst: parse_http_version
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:385,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:390,1
    - Dst: parse_headers
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 11
    argNames:
    - buf
    - buf_end
    - method
    - method_len
    - path
    - path_len
    - minor_version
    - headers
    - num_headers
    - max_headers
    - ret
    argTypes:
    - char*
    - char*
    - char**
    - size_t*
    - char**
    - size_t*
    - int*
    - struct phr_header*
    - size_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 399
    functionName: parse_request
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 6
    functionsReached:
    - parse_token
    - EXPECT_CHAR
    - parse_headers
    - CHECK_EOF
    - parse_http_version
    - ADVANCE_TOKEN
    linkageType: ''
    returnType: char
    signature: "char *parse_request(const char *buf, const char *buf_end, const char
      **method, size_t *method_len, const char **path,\n                                 size_t
      *path_len, int *minor_version, struct phr_header *headers, size_t *num_headers,\n
      \                                size_t max_headers, int *ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:417,1
    - Dst: parse_request
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 10
    argNames:
    - buf_start
    - len
    - method
    - method_len
    - path
    - path_len
    - minor_version
    - headers
    - num_headers
    - last_len
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    - char**
    - size_t*
    - int*
    - struct phr_header*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: phr_parse_request
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 1
    functionsReached:
    - is_complete
    - parse_request
    linkageType: ''
    returnType: int
    signature: "int phr_parse_request(const char *buf_start, size_t len, const char
      **method, size_t *method_len, const char **path,\n                      size_t
      *path_len, int *minor_version, struct phr_header *headers, size_t *num_headers,
      size_t last_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_http_version
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:433,1
    - Dst: CHECK_EOF
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:443,1
    - Dst: PARSE_INT_3
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:450,1
    - Dst: get_token_to_eol
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:453,1
    - Dst: parse_headers
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 10
    argNames:
    - buf
    - buf_end
    - minor_version
    - status
    - msg
    - msg_len
    - headers
    - num_headers
    - max_headers
    - ret
    argTypes:
    - char*
    - char*
    - int*
    - int*
    - char**
    - size_t*
    - struct phr_header*
    - size_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 472
    functionName: parse_response
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 3
    functionsReached:
    - parse_headers
    - PARSE_INT_3
    - get_token_to_eol
    - CHECK_EOF
    - parse_http_version
    linkageType: ''
    returnType: char
    signature: "char *parse_response(const char *buf, const char *buf_end, int *minor_version,
      int *status, const char **msg,\n                                  size_t *msg_len,
      struct phr_header *headers, size_t *num_headers, size_t max_headers, int *ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:489,1
    - Dst: parse_response
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 9
    argNames:
    - buf_start
    - len
    - minor_version
    - status
    - msg
    - msg_len
    - headers
    - num_headers
    - last_len
    argTypes:
    - char*
    - size_t
    - int*
    - int*
    - char**
    - size_t*
    - struct phr_header*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 498
    functionName: phr_parse_response
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - parse_response
    - is_complete
    linkageType: ''
    returnType: int
    signature: "int phr_parse_response(const char *buf_start, size_t len, int *minor_version,
      int *status, const char **msg, size_t *msg_len,\n                       struct
      phr_header *headers, size_t *num_headers, size_t last_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:510,1
    - Dst: parse_headers
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - buf_start
    - len
    - headers
    - num_headers
    - last_len
    argTypes:
    - char*
    - size_t
    - struct phr_header*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 519
    functionName: phr_parse_headers
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached:
    - is_complete
    - parse_headers
    linkageType: ''
    returnType: int
    signature: int phr_parse_headers(const char *buf_start, size_t len, struct phr_header
      *headers, size_t *num_headers, size_t last_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 543
    functionName: decode_hex
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_hex(int ch)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: decode_hex
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:559,1
    - Dst: memmove
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:625,1
    - Dst: memmove
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:632,1
    - Dst: assert
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:681,1
    - Dst: memmove
      Src: /src/h2o/deps/picohttpparser/picohttpparser.c:689,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 156
    argCount: 3
    argNames:
    - decoder
    - buf
    - _bufsz
    argTypes:
    - struct phr_chunked_decoder*
    - char*
    - size_t*
    assertStmts:
    - condition: (!"decoder is corrupt")
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/h2o/deps/picohttpparser/picohttpparser.c
    constantsTouched: []
    func_position:
      end: 698
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 698
    functionName: phr_decode_chunked
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 5
    functionsReached:
    - assert
    - decode_hex
    - memmove
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t phr_decode_chunked(struct phr_chunked_decoder *decoder, char
      *buf, size_t *_bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - struct phr_chunked_decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: phr_decode_chunked_is_in_data
    functionSourceFile: /src/h2o/deps/picohttpparser/picohttpparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int phr_decode_chunked_is_in_data(struct phr_chunked_decoder *decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:109,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:109,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:110,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:110,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:111,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:111,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:112,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:112,1
    - Dst: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:114,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:115,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:116,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:116,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:117,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:117,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:118,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:118,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:120,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:121,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:122,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:122,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:123,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:123,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:124,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:124,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:127,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:128,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:128,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:129,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:130,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/test.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:133,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:133,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:134,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:135,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:138,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:138,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:139,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:140,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:143,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:144,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:144,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:145,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:148,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:148,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:149,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:150,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:150,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:153,1
    - Dst: QUICLY_ERROR_IS_QUIC
      Src: /src/h2o/deps/quicly/t/test.c:153,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:154,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/t/test.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:155,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 156
    functionName: test_error_codes
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - QUICLY_ERROR_IS_QUIC
    - QUICLY_ERROR_GET_ERROR_CODE
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - ok
    - QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void test_error_codes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:162,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/t/test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (len == sizeof(test_enable_with_ratio255_random_value))
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: test_enable_with_ratio255_get_random
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void test_enable_with_ratio255_get_random(void *p, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:169,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/t/test.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:170,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/t/test.c:170,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:173,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/t/test.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:174,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/t/test.c:174,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/t/test.c:179,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: test_enable_with_ratio255
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - enable_with_ratio255
    - ok
    linkageType: ''
    returnType: void
    signature: void test_enable_with_ratio255(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:200,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:201,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:202,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:204,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:205,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:205,1
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:207,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:208,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:209,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:210,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:211,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:212,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:212,1
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:214,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:217,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:218,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:219,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:219,1
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:223,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:224,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:225,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:226,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:227,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:228,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:228,1
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:230,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:231,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:232,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:233,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:234,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:235,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:235,1
    - Dst: TEST
      Src: /src/h2o/deps/quicly/t/test.c:237,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:238,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:239,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:240,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:242,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 246
    functionName: test_adjust_stream_frame_layout
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - TEST
    - ok
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_adjust_stream_frame_layout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _is_crypto
    - ','
    - _capacity
    - ','
    - check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: TEST
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(_is_crypto, _capacity, check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - quicly_now_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: get_now_cb
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_now_cb(quicly_now_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: on_destroy
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_destroy(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:264,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: on_egress_stop
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void on_egress_stop(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_ingress_receive
      Src: /src/h2o/deps/quicly/t/test.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: on_ingress_receive
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_streambuf_ingress_receive
    linkageType: ''
    returnType: void
    signature: void on_ingress_receive(quicly_stream_t *stream, size_t off, const
      void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:276,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/t/test.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: on_ingress_reset
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void on_ingress_reset(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: new_master_id
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_cid_plaintext_t
    signature: quicly_cid_plaintext_t *new_master_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_create
      Src: /src/h2o/deps/quicly/t/test.c:293,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: on_stream_open
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_streambuf_create
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_stream_open(quicly_stream_open_t *self, quicly_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:387,1
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/t/test.c:387,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:388,1
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/t/test.c:391,1
    - Dst: setup_initial_encryption
      Src: /src/h2o/deps/quicly/t/test.c:392,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:393,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:394,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:395,1
    - Dst: decrypt_packet
      Src: /src/h2o/deps/quicly/t/test.c:395,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:397,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:398,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:399,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:399,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/t/test.c:401,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/t/test.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 403
    functionName: test_vector
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - memcmp
    - setup_initial_encryption
    - quicly_get_salt
    - quicly_decode_packet
    - decrypt_packet
    - ok
    - dispose_cipher
    linkageType: ''
    returnType: void
    signature: void test_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/t/test.c:414,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:415,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:416,1
    - Dst: create_retry_aead
      Src: /src/h2o/deps/quicly/t/test.c:419,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:420,1
    - Dst: validate_retry_tag
      Src: /src/h2o/deps/quicly/t/test.c:420,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/t/test.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 422
    functionName: test_retry_aead
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - create_retry_aead
    - ptls_aead_free
    - quicly_decode_packet
    - ok
    - validate_retry_tag
    linkageType: ''
    returnType: void
    signature: void test_retry_aead(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/test.c:431,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:432,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/deps/quicly/t/test.c:432,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:434,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:435,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:436,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:437,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:438,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:439,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:440,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:441,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:442,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:443,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/test.c:446,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:447,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/deps/quicly/t/test.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 449
    functionName: test_transport_parameters
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - memset
    - quicly_decode_transport_parameter_list
    - ok
    linkageType: ''
    returnType: void
    signature: void test_transport_parameters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/t/test.c:458,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - decoded
    - raw
    - cnt
    argTypes:
    - quicly_decoded_packet_t*
    - struct iovec*
    - size_t
    assertStmts:
    - condition: (dl != SIZE_MAX)
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 465
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 465
    functionName: decode_packets
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - assert
    - quicly_decode_packet
    linkageType: ''
    returnType: size_t
    signature: size_t decode_packets(quicly_decoded_packet_t *decoded, struct iovec
      *raw, size_t cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/test.c:469,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - ptls_buffer_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: buffer_is
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int buffer_is(ptls_buffer_t *buf, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:476,1
    - Dst: quicly_get_context
      Src: /src/h2o/deps/quicly/t/test.c:476,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:478,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:481,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:482,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:483,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:486,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/test.c:488,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - quicly_conn_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 494
    functionName: transmit
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - quicly_send
    - quicly_receive
    - quicly_get_context
    - decode_packets
    - ok
    linkageType: ''
    returnType: size_t
    signature: size_t transmit(quicly_conn_t *src, quicly_conn_t *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/test.c:499,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/test.c:499,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:506,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - quicly_conn_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 511
    functionName: exchange_until_idle
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_get_first_timeout
    - transmit
    linkageType: ''
    returnType: void
    signature: void exchange_until_idle(quicly_conn_t *c1, quicly_conn_t *c2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/test.c:518,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/test.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - quicly_conn_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 527
    functionName: max_data_is_equal
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_get_max_data
    linkageType: ''
    returnType: int
    signature: int max_data_is_equal(quicly_conn_t *client, quicly_conn_t *server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_determine_packet_number
      Src: /src/h2o/deps/quicly/t/test.c:532,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:533,1
    - Dst: quicly_determine_packet_number
      Src: /src/h2o/deps/quicly/t/test.c:534,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:535,1
    - Dst: quicly_determine_packet_number
      Src: /src/h2o/deps/quicly/t/test.c:536,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:537,1
    - Dst: quicly_determine_packet_number
      Src: /src/h2o/deps/quicly/t/test.c:539,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: test_next_packet_number
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_determine_packet_number
    - ok
    linkageType: ''
    returnType: void
    signature: void test_next_packet_number(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/deps/quicly/t/test.c:548,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:550,1
    - Dst: quicly_decrypt_address_token
      Src: /src/h2o/deps/quicly/t/test.c:550,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:551,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:552,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:553,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:554,1
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/test.c:554,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:555,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/test.c:555,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:556,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/t/test.c:556,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:556,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:557,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/t/test.c:557,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:557,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:558,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/t/test.c:558,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:558,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:559,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:560,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/test.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dec
    - encrypted
    - encrypted_len
    argTypes:
    - ptls_aead_context_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 561
    functionName: test_address_token_codec_decode
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - memcmp
    - quicly_decrypt_address_token
    - htons
    - quicly_cid_is_equal
    - htonl
    - ptls_openssl_random_bytes
    - ok
    linkageType: ''
    returnType: void
    signature: void test_address_token_codec_decode(ptls_aead_context_t *dec, const
      void *encrypted, size_t encrypted_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/quicly/t/test.c:566,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/quicly/t/test.c:567,1
    - Dst: test_address_token_codec_decode
      Src: /src/h2o/deps/quicly/t/test.c:580,1
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/test.c:586,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/test.c:587,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/t/test.c:588,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:588,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/t/test.c:589,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:589,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/t/test.c:590,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:590,1
    - Dst: strcpy
      Src: /src/h2o/deps/quicly/t/test.c:591,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/test.c:592,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/t/test.c:593,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:594,1
    - Dst: quicly_encrypt_address_token
      Src: /src/h2o/deps/quicly/t/test.c:594,1
    - Dst: test_address_token_codec_decode
      Src: /src/h2o/deps/quicly/t/test.c:595,1
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/deps/quicly/t/test.c:598,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:600,1
    - Dst: quicly_decrypt_address_token
      Src: /src/h2o/deps/quicly/t/test.c:600,1
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/deps/quicly/t/test.c:604,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:606,1
    - Dst: quicly_decrypt_address_token
      Src: /src/h2o/deps/quicly/t/test.c:606,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/t/test.c:609,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/t/test.c:610,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/t/test.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 612
    functionName: test_address_token_codec
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_dispose
    - htons
    - quicly_decrypt_address_token
    - ptls_aead_free
    - ptls_aead_new
    - htonl
    - ptls_openssl_random_bytes
    - test_address_token_codec_decode
    - ok
    - quicly_set_cid
    - quicly_encrypt_address_token
    - ptls_buffer_init
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_address_token_codec(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pn_space
      Src: /src/h2o/deps/quicly/t/test.c:617,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:623,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:623,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:624,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:626,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:626,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:627,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:631,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:631,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:632,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:641,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:641,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:642,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:644,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:644,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:645,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:648,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:648,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:649,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:651,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:651,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:652,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:657,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:657,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:658,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:669,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:669,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:670,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:672,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:672,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:673,1
    - Dst: do_free_pn_space
      Src: /src/h2o/deps/quicly/t/test.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 678
    functionName: do_test_record_receipt
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - alloc_pn_space
    - do_free_pn_space
    - ok
    - record_receipt
    linkageType: ''
    returnType: void
    signature: void do_test_record_receipt(size_t epoch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:712,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:732,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:754,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:772,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:790,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:806,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:828,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:850,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:874,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:899,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:912,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:933,1
    - Dst: alloc_pn_space
      Src: /src/h2o/deps/quicly/t/test.c:938,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:945,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:945,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:946,1
    - Dst: update_smallest_unreported_missing_on_send_ack
      Src: /src/h2o/deps/quicly/t/test.c:951,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:955,1
    - Dst: do_free_pn_space
      Src: /src/h2o/deps/quicly/t/test.c:958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 960
    functionName: do_test_ack_frequency_ack_logic
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - update_smallest_unreported_missing_on_send_ack
    - PTLS_ELEMENTSOF
    - alloc_pn_space
    - do_free_pn_space
    - ok
    - record_receipt
    linkageType: ''
    returnType: void
    signature: void do_test_ack_frequency_ack_logic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:964,1
    - Dst: do_test_record_receipt
      Src: /src/h2o/deps/quicly/t/test.c:965,1
    - Dst: do_test_ack_frequency_ack_logic
      Src: /src/h2o/deps/quicly/t/test.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 967
    functionName: test_record_receipt
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 1
    functionsReached:
    - do_test_ack_frequency_ack_logic
    - do_test_record_receipt
    linkageType: ''
    returnType: void
    signature: void test_record_receipt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/test.c:985,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:985,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:985,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:987,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:989,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:990,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:991,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:992,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:992,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:993,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/test.c:994,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:994,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:995,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:996,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/test.c:999,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1000,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/test.c:1001,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1002,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:1004,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:1005,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/test.c:1008,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1009,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1015,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1016,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/test.c:1019,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/test.c:1027,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1028,1
    - Dst: quicly_streambuf_ingress_get
      Src: /src/h2o/deps/quicly/t/test.c:1030,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/test.c:1031,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:1033,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:1034,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1039,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1040,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1042,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 1027
        line_start: 1027
        source_file: /src/h2o/deps/quicly/t/test.c
    - condition: (ret == 0)
      pos:
        line_end: 1001
        line_start: 1001
        source_file: /src/h2o/deps/quicly/t/test.c
    - condition: (ret == 0)
      pos:
        line_end: 999
        line_start: 999
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 1044
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1044
    functionName: test_ack_frequency
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_open_stream
    - quicly_get_stream
    - quicly_streambuf_ingress_shift
    - quicly_send
    - quicly_accept
    - new_master_id
    - transmit
    - quicly_streambuf_ingress_get
    - decode_packets
    - ok
    - quicly_streambuf_egress_write
    - quicly_free
    - assert
    - strlen
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_ack_frequency(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1048,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1050
    functionName: test_cid
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_cid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/t/test.c:1098,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/test.c:1099,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1100,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1101,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/test.c:1104,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1110
    functionName: test_nondecryptable_initial
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - quicly_accept
    - new_master_id
    - memcpy
    - decode_packets
    - ok
    - memset
    linkageType: ''
    returnType: void
    signature: void test_nondecryptable_initial(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/test.c:1117,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1117,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:1117,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1119,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1124,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1125,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1126,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1127,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1127,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1130,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1131,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1132,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1133,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1133,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1136,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1137,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1138,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1140,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1140,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1143,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1144,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1146,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1147,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1147,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1150,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1151,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1152,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1153,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1154,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1154,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1157,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1158,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1159,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1160,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1161,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1161,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1164,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1165,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1166,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1167,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1168,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1168,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1171,1
    - Dst: quicly_set_cc
      Src: /src/h2o/deps/quicly/t/test.c:1172,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/test.c:1173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1174,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1175,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1176
    functionName: test_set_cc
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_set_cc
    - quicly_get_stats
    - new_master_id
    - strcmp
    - ok
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_set_cc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1180,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/t/test.c:1180,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1181,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/t/test.c:1181,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1182,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/t/test.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1183
    functionName: test_ecn_index_from_bits
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - get_ecn_index_from_bits
    - ok
    linkageType: ''
    returnType: void
    signature: void test_ecn_index_from_bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1191,1
    - Dst: derive_jumpstart_cwnd
      Src: /src/h2o/deps/quicly/t/test.c:1191,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1192,1
    - Dst: derive_jumpstart_cwnd
      Src: /src/h2o/deps/quicly/t/test.c:1192,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1193,1
    - Dst: derive_jumpstart_cwnd
      Src: /src/h2o/deps/quicly/t/test.c:1193,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1199,1
    - Dst: derive_jumpstart_cwnd
      Src: /src/h2o/deps/quicly/t/test.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1200
    functionName: test_jumpstart_cwnd
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - derive_jumpstart_cwnd
    - ok
    linkageType: ''
    returnType: void
    signature: void test_jumpstart_cwnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:1206,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/test.c:1207,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/test.c:1211,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1211,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:1211,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1213,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1217,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1218,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1219,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/test.c:1220,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1220,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1221,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/test.c:1222,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1223,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1224,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/test.c:1224,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1225,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/test.c:1225,1
    - Dst: exchange_until_idle
      Src: /src/h2o/deps/quicly/t/test.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - quicly_conn_t**
    - quicly_conn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1227
    functionName: test_setup_connected_peers
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - exchange_until_idle
    - quicly_send
    - quicly_accept
    - new_master_id
    - transmit
    - decode_packets
    - ok
    - quicly_get_state
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_setup_connected_peers(quicly_conn_t **client, quicly_conn_t
      **server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1232,1
    - Dst: get_dcid
      Src: /src/h2o/deps/quicly/t/test.c:1240,1
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/t/test.c:1242,1
    - Dst: setup_send_space
      Src: /src/h2o/deps/quicly/t/test.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - conn
    - s
    - datagram
    - buf
    - bufsize
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - struct iovec*
    - void*
    - size_t
    assertStmts:
    - condition: (conn->application != NULL)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 1244
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1244
    functionName: test_setup_send_context
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - get_dcid
    - setup_send_space
    - assert
    - lock_now
    linkageType: ''
    returnType: void
    signature: "void test_setup_send_context(quicly_conn_t *conn, quicly_send_context_t
      *s, struct iovec *datagram, void *buf,\n                                    size_t
      bufsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_setup_connected_peers
      Src: /src/h2o/deps/quicly/t/test.c:1264,1
    - Dst: test_setup_send_context
      Src: /src/h2o/deps/quicly/t/test.c:1268,1
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/t/test.c:1269,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/test.c:1271,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/test.c:1272,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/test.c:1273,1
    - Dst: commit_send_packet
      Src: /src/h2o/deps/quicly/t/test.c:1275,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/t/test.c:1276,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1278,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1279,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/test.c:1280,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1283,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/t/test.c:1286,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1288,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1289,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1290,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1291,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/test.c:1292,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1293,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1294,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/test.c:1294,1
    - Dst: quicly_get_close_reason
      Src: /src/h2o/deps/quicly/t/test.c:1300,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1301,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1302,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/test.c:1302,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1303,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1305,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1309
    functionName: test_state_exhaustion
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - commit_send_packet
    - quicly_encodev
    - quicly_close
    - quicly_get_close_reason
    - quicly_send
    - quicly_receive
    - strcmp
    - do_allocate_frame
    - test_setup_send_context
    - quicly_get_state
    - decode_packets
    - ok
    - unlock_now
    - quicly_free
    - test_setup_connected_peers
    linkageType: ''
    returnType: void
    signature: void test_state_exhaustion(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/test.c:1314,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/test.c:1314,1
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/test.c:1315,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/test.c:1315,1
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/test.c:1316,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/test.c:1316,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/test.c:1325,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1325,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/test.c:1325,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1327,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1329,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1330,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1331,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1334,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1335,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/test.c:1336,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/test.c:1336,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1337,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1339,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1340,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1341,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/test.c:1346,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/test.c:1346,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1354,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1357,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1358,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/test.c:1359,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1360,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/test.c:1362,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1364,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1366,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/test.c:1375,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1378,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1379,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1380,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1381,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1385,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/test.c:1386,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - second_flight_from_orig_address
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1387
    functionName: do_test_migration_during_handshake
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - htons
    - quicly_send
    - quicly_accept
    - new_master_id
    - quicly_receive
    - htonl
    - decode_packets
    - ok
    - quicly_get_first_timeout
    - quicly_free
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void do_test_migration_during_handshake(int second_flight_from_orig_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1391,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1393
    functionName: test_migration_during_handshake
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_migration_during_handshake(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1399,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1404,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1405,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1406,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1407,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1408,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1409,1
    - Dst: GAP
      Src: /src/h2o/deps/quicly/t/test.c:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - 'off'
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1422
    functionName: test_stats_foreach_field
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - ok
    - GAP
    linkageType: ''
    returnType: void
    signature: void test_stats_foreach_field(size_t off, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_STATS_FOREACH
      Src: /src/h2o/deps/quicly/t/test.c:1431,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1432,1
    - Dst: QUICLY_STATS_FOREACH_COUNTERS
      Src: /src/h2o/deps/quicly/t/test.c:1439,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/test.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1443
    functionName: test_stats_foreach
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - QUICLY_STATS_FOREACH
    - QUICLY_STATS_FOREACH_COUNTERS
    - ok
    linkageType: ''
    returnType: void
    signature: void test_stats_foreach(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1428
    functionName: CHECK
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(fld, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/h2o/deps/quicly/t/test.c:1464,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/quicly/t/test.c:1465,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/h2o/deps/quicly/t/test.c:1468,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/h2o/deps/quicly/t/test.c:1469,1
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/quicly/t/test.c:1473,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/test.c:1473,1
    - Dst: PEM_read_bio_X509
      Src: /src/h2o/deps/quicly/t/test.c:1474,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1475,1
    - Dst: BIO_free
      Src: /src/h2o/deps/quicly/t/test.c:1476,1
    - Dst: i2d_X509
      Src: /src/h2o/deps/quicly/t/test.c:1477,1
    - Dst: X509_free
      Src: /src/h2o/deps/quicly/t/test.c:1478,1
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/quicly/t/test.c:1482,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/test.c:1482,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/h2o/deps/quicly/t/test.c:1483,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/test.c:1484,1
    - Dst: BIO_free
      Src: /src/h2o/deps/quicly/t/test.c:1485,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/quicly/t/test.c:1486,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/quicly/t/test.c:1487,1
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/deps/quicly/t/test.c:1490,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1492,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1493,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1494,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1495,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1496,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1497,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1498,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1499,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1500,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1501,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1502,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1503,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1504,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1505,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1506,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1507,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1508,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1509,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1510,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1511,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1512,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1513,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1514,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1515,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1516,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1517,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1518,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1520,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1521,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/test.c:1523,1
    - Dst: done_testing
      Src: /src/h2o/deps/quicly/t/test.c:1525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (pkey != NULL || !"failed to load private key")
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/h2o/deps/quicly/t/test.c
    - condition: (x509 != NULL || !!"failed to load certificate")
      pos:
        line_end: 1474
        line_start: 1474
        source_file: /src/h2o/deps/quicly/t/test.c
    constantsTouched: []
    func_position:
      end: 1526
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1526
    functionName: main
    functionSourceFile: /src/h2o/deps/quicly/t/test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - i2d_X509
    - EVP_PKEY_free
    - ERR_load_crypto_strings
    - ptls_openssl_init_sign_certificate
    - PEM_read_bio_X509
    - BIO_free
    - OpenSSL_add_all_algorithms
    - BIO_new_mem_buf
    - quicly_amend_ptls_context
    - subtest
    - PEM_read_bio_PrivateKey
    - X509_free
    - assert
    - strlen
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:31,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:31,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:32,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:33,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:34,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:35,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:36,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:40,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:40,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:45,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:45,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:46,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:47,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:48,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:49,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:50,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:51,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:56,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:56,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:60,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 62
    functionName: test_ack_decode_underflow
    functionSourceFile: /src/h2o/deps/quicly/t/frame.c
    functionUses: 0
    functionsReached:
    - quicly_decode_ack_frame
    - ok
    linkageType: ''
    returnType: void
    signature: void test_ack_decode_underflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:69,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:69,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:70,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:71,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:72,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:74,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:80,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:80,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:81,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:86,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:87,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:89,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:97,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:98,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:99,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:100,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:102,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/t/frame.c:103,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:106,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:106,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:109,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:110,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:113,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:114,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:117,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:118,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/frame.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 122
    functionName: test_ack_decode
    functionSourceFile: /src/h2o/deps/quicly/t/frame.c
    functionUses: 0
    functionsReached:
    - quicly_decode_ack_frame
    - quicly_encodev
    - ok
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_ack_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/t/frame.c:132,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/frame.c:133,1
    - Dst: quicly_encode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:137,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:140,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:141,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:142,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:144,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:146,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:148,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/frame.c:150,1
    - Dst: quicly_encode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:156,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:157,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:160,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/t/frame.c:160,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:161,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:162,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:163,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:164,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:166,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:168,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/frame.c:170,1
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/t/frame.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 173
    functionName: test_ack_encode
    functionSourceFile: /src/h2o/deps/quicly/t/frame.c
    functionUses: 0
    functionsReached:
    - quicly_encode_ack_frame
    - quicly_ranges_add
    - quicly_ranges_clear
    - quicly_decode_ack_frame
    - quicly_ranges_init
    - ok
    linkageType: ''
    returnType: void
    signature: void test_ack_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_stream_frame
      Src: /src/h2o/deps/quicly/t/frame.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: test_mozquic
    functionSourceFile: /src/h2o/deps/quicly/t/frame.c
    functionUses: 0
    functionsReached:
    - quicly_decode_stream_frame
    linkageType: ''
    returnType: void
    signature: void test_mozquic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/frame.c:185,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/frame.c:186,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/frame.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: test_frame
    functionSourceFile: /src/h2o/deps/quicly/t/frame.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_frame(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_init_cc_t*::cb
      Src: /src/h2o/deps/quicly/t/jumpstart.c:40,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:41,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:42,1
    - Dst: quicly_cc_t::type::cc_on_sent
      Src: /src/h2o/deps/quicly/t/jumpstart.c:47,1
    - Dst: quicly_cc_t::type::cc_on_acked
      Src: /src/h2o/deps/quicly/t/jumpstart.c:52,1
    - Dst: quicly_cc_t::type::cc_jumpstart
      Src: /src/h2o/deps/quicly/t/jumpstart.c:59,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:60,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/jumpstart.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:67,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/t/jumpstart.c:67,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:68,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/jumpstart.c:71,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:75,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/t/jumpstart.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/jumpstart.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - init
    - actions
    - final_cwnd
    argTypes:
    - quicly_init_cc_t*
    - struct test_jumpstart_action*
    - uint32_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/h2o/deps/quicly/t/jumpstart.c
    constantsTouched: []
    func_position:
      end: 77
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 77
    functionName: test_jumpstart_pattern
    functionSourceFile: /src/h2o/deps/quicly/t/jumpstart.c
    functionUses: 0
    functionsReached:
    - quicly_cc_in_jumpstart
    - quicly_cc_t::type::cc_jumpstart
    - quicly_cc_t::type::cc_on_sent
    - quicly_cc_t::type::cc_on_acked
    - ok
    - quicly_init_cc_t*::cb
    - quicly_cc_t::type::cc_on_lost
    - assert
    linkageType: ''
    returnType: void
    signature: void test_jumpstart_pattern(quicly_init_cc_t *init, const struct test_jumpstart_action
      *actions, uint32_t final_cwnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:82,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:93,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:103,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:117,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - init
    argTypes:
    - quicly_init_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 143
    functionName: do_test_jumpstart
    functionSourceFile: /src/h2o/deps/quicly/t/jumpstart.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void do_test_jumpstart(quicly_init_cc_t *init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:147,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:148,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/jumpstart.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: test_jumpstart
    functionSourceFile: /src/h2o/deps/quicly/t/jumpstart.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_jumpstart(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: CHECK
    functionSourceFile: /src/h2o/deps/quicly/t/ranges.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/t/ranges.c:41,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:42,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:44,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:45,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:46,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:48,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:49,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:50,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:52,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:53,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:54,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:56,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:57,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:58,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:60,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:61,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:62,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:65,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:66,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:68,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:69,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:70,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:72,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:73,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:74,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:77,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:78,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:80,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:81,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:82,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:85,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:86,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:89,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:90,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:92,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:93,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 95
    functionName: test_add
    functionSourceFile: /src/h2o/deps/quicly/t/ranges.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_init
    - quicly_ranges_add
    - CHECK
    - ok
    linkageType: ''
    returnType: void
    signature: void test_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/t/ranges.c:102,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:105,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:108,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:109,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:111,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:112,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:113,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:116,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:117,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:119,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:120,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:121,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:123,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:124,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:125,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:128,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:129,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:131,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:132,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:133,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:136,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:137,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:140,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:141,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:144,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:145,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:148,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:149,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:151,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:152,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:153,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:155,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:156,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:157,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:159,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:160,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:161,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:163,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:164,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:165,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:168,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:169,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:171,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:172,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:173,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:175,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:176,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:177,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:179,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:180,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:181,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:183,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:184,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:185,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:187,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:188,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:189,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:191,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:192,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:193,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:196,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:197,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/t/ranges.c:199,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:200,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 202
    functionName: test_subtract
    functionSourceFile: /src/h2o/deps/quicly/t/ranges.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_add
    - quicly_ranges_subtract
    - quicly_ranges_init
    - CHECK
    - ok
    linkageType: ''
    returnType: void
    signature: void test_subtract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/t/ranges.c:209,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:210,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:212,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:213,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:214,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:217,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:218,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/t/ranges.c:220,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:221,1
    - Dst: CHECK
      Src: /src/h2o/deps/quicly/t/ranges.c:222,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/ranges.c:237,1
    - Dst: quicly_ranges_next_missing
      Src: /src/h2o/deps/quicly/t/ranges.c:238,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:239,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/ranges.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 242
    functionName: test_next_missing
    functionSourceFile: /src/h2o/deps/quicly/t/ranges.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - quicly_ranges_add
    - quicly_ranges_init
    - CHECK
    - ok
    - quicly_ranges_next_missing
    linkageType: ''
    returnType: void
    signature: void test_next_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/ranges.c:246,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/ranges.c:247,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/ranges.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: test_ranges
    functionSourceFile: /src/h2o/deps/quicly/t/ranges.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_ranges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:32,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:34,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/simple.c:39,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/simple.c:39,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/simple.c:39,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:41,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:42,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:43,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:44,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:45,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:46,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:49,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:50,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/simple.c:51,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/simple.c:51,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:52,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:53,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:53,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:54,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/simple.c:54,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:55,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:56,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:57,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:58,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:61,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:63,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:66,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:66,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:67,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/simple.c:67,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:68,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:69,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:70,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:71,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:72,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/quicly/t/simple.c:72,1
    - Dst: quicly_get_tls
      Src: /src/h2o/deps/quicly/t/simple.c:72,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:75,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:77,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:78,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:80,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:80,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:81,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/quicly/t/simple.c:81,1
    - Dst: quicly_get_tls
      Src: /src/h2o/deps/quicly/t/simple.c:81,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:82,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:85,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:88,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:90,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:91,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:93,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:94,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:94,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:95,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simple.c:96,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:97,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:98,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:99,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:102,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:105,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:107,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:110,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:110,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:111,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 112
    functionName: test_handshake
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - quicly_connection_is_ready
    - quicly_send
    - quicly_accept
    - new_master_id
    - quicly_receive
    - quicly_get_tls
    - decode_packets
    - ptls_handshake_is_complete
    - ok
    - quicly_get_state
    - quicly_get_first_timeout
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_handshake(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:122,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:123,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:126,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simple.c:126,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:128,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:128,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:130,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:132,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:133,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:135,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:137,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:137,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:138,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simple.c:138,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:140,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:140,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:146,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:147,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:148,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:148,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:149,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:152,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:155,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 156
    functionName: simple_http
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - quicly_get_stream
    - quicly_num_streams
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_streambuf_egress_shutdown
    - buffer_is
    - ok
    - quicly_streambuf_egress_write
    - strlen
    linkageType: ''
    returnType: void
    signature: void simple_http(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:166,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:167,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/t/simple.c:170,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:170,1
    - Dst: quicly_request_stop
      Src: /src/h2o/deps/quicly/t/simple.c:171,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:171,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:176,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:176,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:177,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:178,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:180,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:180,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:181,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:181,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:182,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:183,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:183,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:186,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:189,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:190,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:191,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:191,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:192,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:192,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:197,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:198,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 199
    functionName: test_reset_then_close
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - quicly_get_stream
    - quicly_reset_stream
    - quicly_num_streams
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_sendstate_transfer_complete
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - ok
    - quicly_request_stop
    linkageType: ''
    returnType: void
    signature: void test_reset_then_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:207,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:208,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:210,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:212,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:214,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simple.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:217,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:217,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:218,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:221,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:223,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:224,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:225,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:226,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:228,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:230,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:230,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:231,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:231,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:232,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:235,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:237,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:238,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (server_stream != NULL)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/h2o/deps/quicly/t/simple.c
    constantsTouched: []
    func_position:
      end: 244
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 244
    functionName: test_send_then_close
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_open_stream
    - quicly_streambuf_ingress_shift
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_streambuf_egress_shutdown
    - buffer_is
    - ok
    - quicly_streambuf_egress_write
    - assert
    linkageType: ''
    returnType: void
    signature: void test_send_then_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:252,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:253,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:255,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:257,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:259,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:261,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simple.c:262,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:264,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:264,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:265,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:267,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:268,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/t/simple.c:269,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:269,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:273,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:275,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:275,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:276,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:276,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:278,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:281,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:283,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:286,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (server_stream != NULL)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/h2o/deps/quicly/t/simple.c
    constantsTouched: []
    func_position:
      end: 289
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 289
    functionName: test_reset_after_close
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_open_stream
    - quicly_reset_stream
    - quicly_streambuf_ingress_shift
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_streambuf_egress_shutdown
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - buffer_is
    - ok
    - quicly_streambuf_egress_write
    - assert
    linkageType: ''
    returnType: void
    signature: void test_reset_after_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:301,1
    - Dst: max_data_is_equal
      Src: /src/h2o/deps/quicly/t/simple.c:301,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:303,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:304,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:308,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/simple.c:309,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:311,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/simple.c:313,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:314,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:315,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/simple.c:316,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:317,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:318,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:320,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:321,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:323,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:323,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:324,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:326,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:327,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/simple.c:329,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:330,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:332,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:332,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:333,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:335,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:336,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:338,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:338,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:339,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:339,1
    - Dst: quicly_request_stop
      Src: /src/h2o/deps/quicly/t/simple.c:341,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:341,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:343,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/t/simple.c:345,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:346,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:349,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:349,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:350,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:351,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:351,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:352,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:352,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:354,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:357,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:358,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:358,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:359,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:360,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:360,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:361,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:361,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:364,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:367,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:368,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:368,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:370,1
    - Dst: max_data_is_equal
      Src: /src/h2o/deps/quicly/t/simple.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 373
    functionName: tiny_stream_window
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - quicly_get_stream
    - quicly_get_stats
    - quicly_streambuf_ingress_shift
    - quicly_num_streams
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_sendstate_transfer_complete
    - quicly_streambuf_egress_shutdown
    - max_data_is_equal
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - buffer_is
    - ok
    - quicly_streambuf_egress_write
    - quicly_request_stop
    linkageType: ''
    returnType: void
    signature: void tiny_stream_window(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:387,1
    - Dst: max_data_is_equal
      Src: /src/h2o/deps/quicly/t/simple.c:387,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/simple.c:388,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:390,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:391,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:394,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:397,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:398,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:399,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:401,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:401,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:402,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:405,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:410,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:411,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:412,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/t/simple.c:416,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:416,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:417,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:417,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:418,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:420,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:420,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:421,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:421,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/t/simple.c:422,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:422,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:423,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:424,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simple.c:424,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/simple.c:426,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:427,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/simple.c:428,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:429,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:433,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:434,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:436,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:437,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/simple.c:441,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:442,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:445,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:446,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:446,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:447,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:448,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:448,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:449,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:449,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:451,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:452,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:453,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/t/simple.c:453,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/deps/quicly/t/simple.c:455,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:456,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:457,1
    - Dst: max_data_is_equal
      Src: /src/h2o/deps/quicly/t/simple.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 460
    functionName: test_reset_during_loss
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - quicly_get_stream
    - quicly_get_max_data
    - quicly_reset_stream
    - quicly_streambuf_ingress_shift
    - quicly_send
    - quicly_num_streams
    - quicly_recvstate_transfer_complete
    - transmit
    - quicly_sendstate_transfer_complete
    - quicly_receive
    - max_data_is_equal
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - decode_packets
    - buffer_is
    - quicly_streambuf_egress_write
    - ok
    linkageType: ''
    returnType: void
    signature: void test_reset_during_loss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_close_reason
      Src: /src/h2o/deps/quicly/t/simple.c:468,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:469,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:469,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:470,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:471,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/simple.c:471,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - conn
    argTypes:
    - quicly_closed_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 473
    functionName: test_closed
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - strcmp
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - quicly_get_close_reason
    - ok
    linkageType: ''
    returnType: void
    signature: void test_closed(quicly_closed_t *self, quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/t/simple.c:488,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/simple.c:488,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:489,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:490,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:490,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:491,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:491,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:493,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simple.c:494,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:495,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:496,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:500,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simple.c:501,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:502,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:503,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:503,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:504,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:505,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:510,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:511,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:512,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:517,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:518,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/simple.c:519,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:521,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:522,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/simple.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (num_datagrams == 1)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/h2o/deps/quicly/t/simple.c
    constantsTouched: []
    func_position:
      end: 528
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 528
    functionName: test_close
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_close
    - quicly_send
    - quicly_receive
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - decode_packets
    - ok
    - quicly_get_state
    - quicly_get_first_timeout
    - quicly_free
    - assert
    linkageType: ''
    returnType: void
    signature: void test_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/h2o/deps/quicly/t/simple.c:541,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/simple.c:551,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/simple.c:551,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/simple.c:551,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:553,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simple.c:555,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:556,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:557,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:558,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simple.c:558,1
    - Dst: now::cb
      Src: /src/h2o/deps/quicly/t/simple.c:558,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/simple.c:559,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:560,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/simple.c:561,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/simple.c:561,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:562,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:565,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:566,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/simple.c:566,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:567,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/simple.c:567,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simple.c:569,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:570,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/simple.c:573,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simple.c:573,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:575,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/simple.c:577,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:578,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:580,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:580,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:581,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simple.c:581,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:584,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:585,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:586,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/simple.c:586,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/t/simple.c:587,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simple.c:587,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/simple.c:591,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/simple.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 596
    functionName: tiny_connection_window
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 0
    functionsReached:
    - quicly_send
    - quicly_streambuf_egress_write
    - quicly_get_state
    - ptls_iovec_init
    - quicly_get_stream
    - now::cb
    - new_master_id
    - transmit
    - quicly_streambuf_ingress_shift
    - quicly_get_first_timeout
    - strcpy
    - quicly_accept
    - buffer_is
    - strlen
    - quicly_connect
    - quicly_open_stream
    - quicly_connection_is_ready
    - decode_packets
    - ok
    linkageType: ''
    returnType: void
    signature: void tiny_connection_window(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:600,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:601,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:602,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:603,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:604,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:605,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:606,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:607,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/simple.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: test_simple
    functionSourceFile: /src/h2o/deps/quicly/t/simple.c
    functionUses: 1
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/deps/quicly/t/cc.c:31,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:34,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:35,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:36,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:37,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:38,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:39,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:40,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:41,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:43,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:44,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:45,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:46,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:47,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:48,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:49,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:50,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:51,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:52,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: test_pico_undo_loss
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - quicly_cc_t::type::cc_on_late_ack
    - quicly_cc_t::type::cc_on_lost
    - cb
    - ok
    linkageType: ''
    returnType: void
    signature: void test_pico_undo_loss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/deps/quicly/t/cc.c:62,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:64,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:66,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:67,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:69,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:70,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:71,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:74,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:77,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:79,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:80,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:81,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: test_pico_undo_multiple_losses
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - quicly_cc_t::type::cc_on_late_ack
    - quicly_cc_t::type::cc_on_lost
    - cb
    - ok
    linkageType: ''
    returnType: void
    signature: void test_pico_undo_multiple_losses(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/deps/quicly/t/cc.c:95,1
    - Dst: quicly_cc_t::type::enable_rapid_start
      Src: /src/h2o/deps/quicly/t/cc.c:96,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:97,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/t/cc.c:97,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:99,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:100,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:102,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:103,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:105,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:106,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:109,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: test_pico_undo_rapid_start_loss
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - quicly_cc_t::type::enable_rapid_start
    - cb
    - ok
    - quicly_cc_t::type::cc_on_late_ack
    - quicly_cc_t::type::cc_on_lost
    - quicly_cc_rapid_start_is_enabled
    linkageType: ''
    returnType: void
    signature: void test_pico_undo_rapid_start_loss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/deps/quicly/t/cc.c:119,1
    - Dst: quicly_cc_t::type::cc_jumpstart
      Src: /src/h2o/deps/quicly/t/cc.c:120,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:121,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/t/cc.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:122,1
    - Dst: quicly_cc_t::type::cc_on_lost
      Src: /src/h2o/deps/quicly/t/cc.c:124,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:125,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:127,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/t/cc.c:127,1
    - Dst: quicly_cc_t::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/t/cc.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:131,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:132,1
    - Dst: quicly_cc_t::type::cc_on_acked
      Src: /src/h2o/deps/quicly/t/cc.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:137,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/t/cc.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: test_pico_undo_jumpstart_loss
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - quicly_cc_in_jumpstart
    - quicly_cc_t::type::cc_jumpstart
    - cb
    - quicly_cc_t::type::cc_on_acked
    - ok
    - quicly_cc_t::type::cc_on_late_ack
    - quicly_cc_t::type::cc_on_lost
    linkageType: ''
    returnType: void
    signature: void test_pico_undo_jumpstart_loss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_init_rapid_start
      Src: /src/h2o/deps/quicly/t/cc.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:148,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/t/cc.c:148,1
    - Dst: quicly_cc_rapid_start_update_rtt
      Src: /src/h2o/deps/quicly/t/cc.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:150,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/t/cc.c:150,1
    - Dst: quicly_cc_rapid_start_update_rtt
      Src: /src/h2o/deps/quicly/t/cc.c:153,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:155,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:156,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:157,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/t/cc.c:157,1
    - Dst: quicly_cc_rapid_start_update_rtt
      Src: /src/h2o/deps/quicly/t/cc.c:161,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:162,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:163,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:164,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:166,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/t/cc.c:166,1
    - Dst: quicly_cc_rapid_start_update_rtt
      Src: /src/h2o/deps/quicly/t/cc.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/cc.c:170,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/t/cc.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: test_rapid_start
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - quicly_cc_rapid_start_update_rtt
    - ok
    - quicly_cc_rapid_start_use_3x
    - quicly_cc_init_rapid_start
    linkageType: ''
    returnType: void
    signature: void test_rapid_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/cc.c:175,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/cc.c:176,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/cc.c:177,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/cc.c:178,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/cc.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: test_cc
    functionSourceFile: /src/h2o/deps/quicly/t/cc.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_cc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_remote_cid_shift_retired
      Src: /src/h2o/deps/quicly/t/remote_cid.c:81,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: test_shift_retired
    functionSourceFile: /src/h2o/deps/quicly/t/remote_cid.c
    functionUses: 0
    functionsReached:
    - quicly_remote_cid_shift_retired
    - ok
    linkageType: ''
    returnType: void
    signature: void test_shift_retired(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/remote_cid.c:121,1
    - Dst: quicly_remote_cid_init_set
      Src: /src/h2o/deps/quicly/t/remote_cid.c:123,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:127,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:133,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:133,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:136,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:137,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:139,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:139,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:140,1
    - Dst: quicly_remote_cid_unregister
      Src: /src/h2o/deps/quicly/t/remote_cid.c:144,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:145,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:148,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:151,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:151,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:152,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:155,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:155,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:156,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:159,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:159,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:161,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:163,1
    - Dst: quicly_remote_cid_unregister
      Src: /src/h2o/deps/quicly/t/remote_cid.c:166,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:168,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:170,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:173,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:173,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:175,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:177,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:180,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:180,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:182,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:184,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:185,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:185,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:187,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:189,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:192,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:192,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:194,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:198,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:198,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:200,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:202,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:205,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:205,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/remote_cid.c:211,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/t/remote_cid.c:211,1
    - Dst: TEST_SET
      Src: /src/h2o/deps/quicly/t/remote_cid.c:213,1
    - Dst: TEST_RETIRED
      Src: /src/h2o/deps/quicly/t/remote_cid.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 216
    functionName: test_received_cid
    functionSourceFile: /src/h2o/deps/quicly/t/remote_cid.c
    functionUses: 0
    functionsReached:
    - TEST_RETIRED
    - quicly_remote_cid_unregister
    - quicly_remote_cid_init_set
    - TEST_SET
    - ok
    - quicly_remote_cid_register
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_received_cid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - set.cids[i].stateless_reset_token, srts[expected[i].
    - seq
    - ']'
    - ','
    - QUICLY_STATELESS_RESET_TOKEN_LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: memcmp
    functionSourceFile: /src/h2o/deps/quicly/t/remote_cid.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcmp(set.cids[i].stateless_reset_token, srts[expected[i].seq], QUICLY_STATELESS_RESET_TOKEN_LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: TEST_RETIRED
    functionSourceFile: /src/h2o/deps/quicly/t/remote_cid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_RETIRED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/deps/quicly/t/simulator.c:47,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/simulator.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: new_address
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - htons
    - htonl
    linkageType: ''
    returnType: quicly_address_t
    signature: quicly_address_t new_address(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/t/simulator.c:131,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/t/simulator.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - src
    - dest
    - vec
    argTypes:
    - struct net_endpoint*
    - quicly_address_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: net_packet_create
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: struct net_packet
    signature: struct net_packet *net_packet_create(struct net_endpoint *src, quicly_address_t
      *dest, ptls_iovec_t vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/t/simulator.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: net_packet_destroy
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void net_packet_destroy(struct net_packet *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - packet
    argTypes:
    - struct net_queue*
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: net_queue_enqueue
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void net_queue_enqueue(struct net_queue *self, struct net_packet *packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct net_queue*
    assertStmts:
    - condition: (packet != NULL)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: net_queue_dequeue
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: struct net_packet
    signature: struct net_packet *net_queue_dequeue(struct net_queue *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: net_queue_enqueue
      Src: /src/h2o/deps/quicly/t/simulator.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - packet
    argTypes:
    - struct net_node*
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: net_delay_forward
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - net_queue_enqueue
    linkageType: ''
    returnType: void
    signature: void net_delay_forward(struct net_node *_self, struct net_packet *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: net_delay_next_run_at
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double net_delay_next_run_at(struct net_node *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: net_queue_dequeue
      Src: /src/h2o/deps/quicly/t/simulator.c:184,1
    - Dst: struct net_delay*::next_node::forward_
      Src: /src/h2o/deps/quicly/t/simulator.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: net_delay_run
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - net_queue_dequeue
    - struct net_delay*::next_node::forward_
    linkageType: ''
    returnType: void
    signature: void net_delay_run(struct net_node *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - delay
    argTypes:
    - struct net_delay*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: net_delay_init
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void net_delay_init(struct net_delay *self, double delay)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/h2o/deps/quicly/t/simulator.c:202,1
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/simulator.c:203,1
    - Dst: ntohl
      Src: /src/h2o/deps/quicly/t/simulator.c:204,1
    - Dst: net_packet_destroy
      Src: /src/h2o/deps/quicly/t/simulator.c:205,1
    - Dst: struct net_random_loss*::next_node::forward_
      Src: /src/h2o/deps/quicly/t/simulator.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - packet
    argTypes:
    - struct net_node*
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: net_random_loss_forward
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - ntohl
    - rand
    - struct net_random_loss*::next_node::forward_
    - printf
    - net_packet_destroy
    linkageType: ''
    returnType: void
    signature: void net_random_loss_forward(struct net_node *_self, struct net_packet
      *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: net_random_loss_next_run_at
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double net_random_loss_next_run_at(struct net_node *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - loss_ratio
    argTypes:
    - struct net_random_loss*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: net_random_loss_init
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void net_random_loss_init(struct net_random_loss *self, double loss_ratio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/simulator.c:227,1
    - Dst: ntohl
      Src: /src/h2o/deps/quicly/t/simulator.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - event
    - packet
    argTypes:
    - struct net_bottleneck*
    - char*
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: net_bottleneck_print_stats
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - ntohl
    - printf
    linkageType: ''
    returnType: void
    signature: void net_bottleneck_print_stats(struct net_bottleneck *self, const
      char *event, struct net_packet *packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: net_bottleneck_print_stats
      Src: /src/h2o/deps/quicly/t/simulator.c:237,1
    - Dst: net_packet_destroy
      Src: /src/h2o/deps/quicly/t/simulator.c:238,1
    - Dst: net_bottleneck_print_stats
      Src: /src/h2o/deps/quicly/t/simulator.c:242,1
    - Dst: net_queue_enqueue
      Src: /src/h2o/deps/quicly/t/simulator.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - _self
    - packet
    argTypes:
    - struct net_node*
    - struct net_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: net_bottleneck_forward
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - net_queue_enqueue
    - net_bottleneck_print_stats
    - net_packet_destroy
    linkageType: ''
    returnType: void
    signature: void net_bottleneck_forward(struct net_node *_self, struct net_packet
      *packet)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: net_bottleneck_next_run_at
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double net_bottleneck_next_run_at(struct net_node *_self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: net_bottleneck_next_run_at
      Src: /src/h2o/deps/quicly/t/simulator.c:264,1
    - Dst: net_queue_dequeue
      Src: /src/h2o/deps/quicly/t/simulator.c:268,1
    - Dst: net_bottleneck_print_stats
      Src: /src/h2o/deps/quicly/t/simulator.c:269,1
    - Dst: struct net_bottleneck*::next_node::forward_
      Src: /src/h2o/deps/quicly/t/simulator.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: net_bottleneck_run
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - net_queue_dequeue
    - struct net_bottleneck*::next_node::forward_
    - net_bottleneck_next_run_at
    - net_bottleneck_print_stats
    linkageType: ''
    returnType: void
    signature: void net_bottleneck_run(struct net_node *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - bytes_per_sec
    - capacity_in_sec
    argTypes:
    - struct net_bottleneck*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: net_bottleneck_init
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void net_bottleneck_init(struct net_bottleneck *self, double bytes_per_sec,
      double capacity_in_sec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/t/simulator.c:298,1
    - Dst: quicly_get_context
      Src: /src/h2o/deps/quicly/t/simulator.c:298,1
    - Dst: quicly_is_destination
      Src: /src/h2o/deps/quicly/t/simulator.c:304,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/simulator.c:308,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:310,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/simulator.c:311,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:313,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:317,1
    - Dst: net_packet_destroy
      Src: /src/h2o/deps/quicly/t/simulator.c:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - _self
    - packet
    argTypes:
    - struct net_node*
    - struct net_packet*
    assertStmts:
    - condition: (self->accept_ctx != NULL && "a packet for which we do not have state
        must be a new connection request")
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (conn->quic != NULL)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (conn->quic == NULL)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 323
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 323
    functionName: net_endpoint_forward
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - quicly_is_destination
    - quicly_accept
    - quicly_receive
    - quicly_decode_packet
    - quicly_get_context
    - assert
    - net_packet_destroy
    linkageType: ''
    returnType: void
    signature: void net_endpoint_forward(struct net_node *_self, struct net_packet
      *packet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/simulator.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: net_endpoint_next_run_at
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - quicly_get_first_timeout
    linkageType: ''
    returnType: double
    signature: double net_endpoint_next_run_at(struct net_node *_self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simulator.c:354,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/simulator.c:355,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/simulator.c:357,1
    - Dst: net_packet_create
      Src: /src/h2o/deps/quicly/t/simulator.c:360,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/simulator.c:360,1
    - Dst: struct net_endpoint_conn*::egress::forward_
      Src: /src/h2o/deps/quicly/t/simulator.c:361,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - _self
    argTypes:
    - struct net_node*
    assertStmts:
    - condition: (ret != QUICLY_ERROR_FREE_CONNECTION)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 367
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 367
    functionName: net_endpoint_run
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - quicly_send
    - net_packet_create
    - struct net_endpoint_conn*::egress::forward_
    - assert
    linkageType: ''
    returnType: void
    signature: void net_endpoint_run(struct net_node *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_address
      Src: /src/h2o/deps/quicly/t/simulator.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - endpoint
    argTypes:
    - struct net_endpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: net_endpoint_init
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - new_address
    linkageType: ''
    returnType: void
    signature: void net_endpoint_init(struct net_endpoint *endpoint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_run_at
      Src: /src/h2o/deps/quicly/t/simulator.c:381,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:382,1
    - Dst: isinf
      Src: /src/h2o/deps/quicly/t/simulator.c:387,1
    - Dst: next_run_at
      Src: /src/h2o/deps/quicly/t/simulator.c:392,1
    - Dst: run
      Src: /src/h2o/deps/quicly/t/simulator.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - struct net_node**
    assertStmts:
    - condition: (at >= now)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 395
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 395
    functionName: run_nodes
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - isinf
    - run
    - assert
    - next_run_at
    linkageType: ''
    returnType: void
    signature: void run_nodes(struct net_node **nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_get_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: tls_now_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t tls_now_cb(ptls_get_time_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - quicly_now_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: quic_now_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t quic_now_cb(quicly_now_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: stream_destroy_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stream_destroy_cb(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: stream_egress_shift_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stream_egress_shift_cb(quicly_stream_t *stream, size_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:417,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/t/simulator.c:417,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/simulator.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - stream
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts:
    - condition: (quicly_is_client(stream->conn))
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: stream_egress_emit_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - memset
    - quicly_is_client
    - assert
    linkageType: ''
    returnType: void
    signature: void stream_egress_emit_cb(quicly_stream_t *stream, size_t off, void
      *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (!"unexpected")
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: stream_on_stop_sending_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void stream_on_stop_sending_cb(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:429,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/t/simulator.c:429,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:430,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/simulator.c:430,1
    - Dst: quicly_stream_sync_recvbuf
      Src: /src/h2o/deps/quicly/t/simulator.c:433,1
    - Dst: quicly_get_peername
      Src: /src/h2o/deps/quicly/t/simulator.c:435,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:436,1
    - Dst: ntohl
      Src: /src/h2o/deps/quicly/t/simulator.c:437,1
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/simulator.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (!quicly_is_client(stream->conn))
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (!quicly_recvstate_transfer_complete(&stream->recvstate))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (peer->sa_family == AF_INET)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 441
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 441
    functionName: stream_on_receive_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - quicly_stream_sync_recvbuf
    - ntohl
    - quicly_recvstate_transfer_complete
    - printf
    - quicly_get_peername
    - assert
    linkageType: ''
    returnType: void
    signature: void stream_on_receive_cb(quicly_stream_t *stream, size_t off, const
      void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (!"unexpected")
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: stream_on_receive_reset_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void stream_on_receive_reset_cb(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: stream_open_cb
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t stream_open_cb(quicly_stream_open_t *self, quicly_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/simulator.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 479
    functionName: usage
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: reset_getopt_state
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_getopt_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/simulator.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - argc
    - argv
    - start
    argTypes:
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: find_next_separator
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int find_next_separator(int argc, char **argv, int start)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: reset_getopt_state
      Src: /src/h2o/deps/quicly/t/simulator.c:501,1
    - Dst: getopt
      Src: /src/h2o/deps/quicly/t/simulator.c:503,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/t/simulator.c:509,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:512,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:520,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:523,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:524,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:529,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:530,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:535,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:536,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:541,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:542,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:548,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:551,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:552,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:561,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:564,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:565,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:571,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:574,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:575,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/simulator.c:583,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:584,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:590,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/t/simulator.c:596,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:597,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/t/simulator.c:599,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:600,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:604,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 105
    argCount: 10
    argNames:
    - argc
    - argv
    - quicctx
    - delay
    - start
    - bw
    - depth
    - length
    - random_loss
    - trace_fp
    argTypes:
    - int
    - char**
    - quicly_context_t*
    - double*
    - double*
    - double*
    - double*
    - double*
    - double*
    - FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 608
    functionName: parse_options
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - getopt
    - exit
    - strcmp
    - reset_getopt_state
    - sscanf
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: "int parse_options(int argc, char **argv, quicly_context_t *quicctx,
      double *delay, double *start, double *bw, double *depth,\n                         double
      *length, double *random_loss, FILE **trace_fp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/h2o/deps/quicly/t/simulator.c:663,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/quicly/t/simulator.c:664,1
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/quicly/t/simulator.c:668,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simulator.c:668,1
    - Dst: PEM_read_bio_X509
      Src: /src/h2o/deps/quicly/t/simulator.c:669,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:670,1
    - Dst: BIO_free
      Src: /src/h2o/deps/quicly/t/simulator.c:671,1
    - Dst: i2d_X509
      Src: /src/h2o/deps/quicly/t/simulator.c:672,1
    - Dst: X509_free
      Src: /src/h2o/deps/quicly/t/simulator.c:673,1
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/quicly/t/simulator.c:678,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/simulator.c:678,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/h2o/deps/quicly/t/simulator.c:679,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:680,1
    - Dst: BIO_free
      Src: /src/h2o/deps/quicly/t/simulator.c:681,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/quicly/t/simulator.c:682,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/quicly/t/simulator.c:683,1
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/deps/quicly/t/simulator.c:692,1
    - Dst: net_endpoint_init
      Src: /src/h2o/deps/quicly/t/simulator.c:713,1
    - Dst: find_next_separator
      Src: /src/h2o/deps/quicly/t/simulator.c:721,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:724,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/t/simulator.c:725,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:726,1
    - Dst: parse_options
      Src: /src/h2o/deps/quicly/t/simulator.c:730,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:731,1
    - Dst: find_next_separator
      Src: /src/h2o/deps/quicly/t/simulator.c:736,1
    - Dst: parse_options
      Src: /src/h2o/deps/quicly/t/simulator.c:749,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:750,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/t/simulator.c:755,1
    - Dst: net_delay_init
      Src: /src/h2o/deps/quicly/t/simulator.c:756,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/t/simulator.c:760,1
    - Dst: net_endpoint_init
      Src: /src/h2o/deps/quicly/t/simulator.c:761,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/simulator.c:763,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/simulator.c:764,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:766,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/simulator.c:768,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:769,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/deps/quicly/t/simulator.c:770,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/simulator.c:771,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/simulator.c:779,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/simulator.c:780,1
    - Dst: net_bottleneck_init
      Src: /src/h2o/deps/quicly/t/simulator.c:784,1
    - Dst: net_random_loss_init
      Src: /src/h2o/deps/quicly/t/simulator.c:790,1
    - Dst: run_nodes
      Src: /src/h2o/deps/quicly/t/simulator.c:797,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (ret == 0)
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (pkey != NULL || !"failed to load private key")
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (x509 != NULL || !!"failed to load certificate")
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - condition: (ret == 0)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/h2o/deps/quicly/t/simulator.c
    constantsTouched: []
    func_position:
      end: 800
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 800
    functionName: main
    functionSourceFile: /src/h2o/deps/quicly/t/simulator.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - ERR_load_crypto_strings
    - BIO_free
    - assert
    - ptls_iovec_init
    - BIO_new_mem_buf
    - fprintf
    - usage
    - net_bottleneck_init
    - net_endpoint_init
    - EVP_PKEY_free
    - malloc
    - PEM_read_bio_X509
    - net_random_loss_init
    - exit
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - net_delay_init
    - strlen
    - quicly_connect
    - quicly_open_stream
    - quicly_stream_sync_sendbuf
    - ptls_openssl_init_sign_certificate
    - quicly_amend_ptls_context
    - parse_options
    - X509_free
    - run_nodes
    - find_next_separator
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:42,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:42,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:42,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:44,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:46,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:47,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:48,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:49,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:49,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:50,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:51,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:51,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:52,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:53,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:58,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:59,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:63,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:66,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:68,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:69,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:72,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:76,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:78,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:78,1
    - Dst: quicly_request_stop
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:79,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:79,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:80,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:83,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:84,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:86,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:86,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:87,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:90,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:93,1
    - Dst: transmit
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:94,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:97,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:98,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:102,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:103,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:104,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:106,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/t/stream-concurrency.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/h2o/deps/quicly/t/stream-concurrency.c
    - condition: (ret == 0)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/h2o/deps/quicly/t/stream-concurrency.c
    constantsTouched: []
    func_position:
      end: 108
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 108
    functionName: test_stream_concurrency
    functionSourceFile: /src/h2o/deps/quicly/t/stream-concurrency.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_open_stream
    - quicly_get_stream
    - quicly_reset_stream
    - quicly_send
    - quicly_accept
    - new_master_id
    - transmit
    - decode_packets
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - ok
    - quicly_streambuf_egress_write
    - quicly_request_stop
    - quicly_free
    - assert
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_stream_concurrency(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/t/maxsender.c:30,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:33,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:33,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:34,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:34,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:35,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:35,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:36,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:36,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:39,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:39,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:40,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:40,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/t/maxsender.c:41,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:42,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:42,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:43,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:43,1
    - Dst: quicly_maxsender_acked
      Src: /src/h2o/deps/quicly/t/maxsender.c:44,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:45,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:45,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:46,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:46,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/t/maxsender.c:47,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:48,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:48,1
    - Dst: quicly_maxsender_lost
      Src: /src/h2o/deps/quicly/t/maxsender.c:49,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/maxsender.c:50,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/t/maxsender.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: test_basic
    functionSourceFile: /src/h2o/deps/quicly/t/maxsender.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_should_send_max
    - quicly_maxsender_acked
    - quicly_maxsender_record
    - quicly_maxsender_lost
    - ok
    - quicly_maxsender_init
    linkageType: ''
    returnType: void
    signature: void test_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/maxsender.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: test_maxsender
    functionSourceFile: /src/h2o/deps/quicly/t/maxsender.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_maxsender(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/t/pacer.c:29,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:30,1
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/t/pacer.c:32,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:33,1
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/t/pacer.c:35,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:36,1
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/t/pacer.c:39,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:40,1
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/t/pacer.c:43,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: test_calc_rate
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - quicly_pacer_calc_send_rate
    - ok
    linkageType: ''
    returnType: void
    signature: void test_calc_rate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_pacer_can_send_at
      Src: /src/h2o/deps/quicly/t/pacer.c:58,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:60,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:62,1
    - Dst: quicly_pacer_get_window
      Src: /src/h2o/deps/quicly/t/pacer.c:65,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:66,1
    - Dst: quicly_pacer_consume_window
      Src: /src/h2o/deps/quicly/t/pacer.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pacer
    - now
    - bytes_per_msec
    - expected
    argTypes:
    - quicly_pacer_t*
    - int64_t
    - uint32_t
    - struct pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: test_pattern
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - quicly_pacer_get_window
    - quicly_pacer_consume_window
    - quicly_pacer_can_send_at
    - ok
    linkageType: ''
    returnType: int64_t
    signature: int64_t test_pattern(quicly_pacer_t *pacer, int64_t now, const uint32_t
      bytes_per_msec, const struct pattern *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_pacer_reset
      Src: /src/h2o/deps/quicly/t/pacer.c:79,1
    - Dst: test_pattern
      Src: /src/h2o/deps/quicly/t/pacer.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:90,1
    - Dst: test_pattern
      Src: /src/h2o/deps/quicly/t/pacer.c:94,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:100,1
    - Dst: test_pattern
      Src: /src/h2o/deps/quicly/t/pacer.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/pacer.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: test_medium
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - test_pattern
    - quicly_pacer_reset
    - ok
    linkageType: ''
    returnType: void
    signature: void test_medium(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_pacer_reset
      Src: /src/h2o/deps/quicly/t/pacer.c:119,1
    - Dst: test_pattern
      Src: /src/h2o/deps/quicly/t/pacer.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: test_slow
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - test_pattern
    - quicly_pacer_reset
    linkageType: ''
    returnType: void
    signature: void test_slow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_pacer_reset
      Src: /src/h2o/deps/quicly/t/pacer.c:142,1
    - Dst: test_pattern
      Src: /src/h2o/deps/quicly/t/pacer.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: test_fast
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - test_pattern
    - quicly_pacer_reset
    linkageType: ''
    returnType: void
    signature: void test_fast(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/pacer.c:156,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/pacer.c:157,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/pacer.c:158,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/pacer.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: test_pacer
    functionSourceFile: /src/h2o/deps/quicly/t/pacer.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_pacer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - loss
    - lost_packet
    - is_time_threshold
    argTypes:
    - quicly_loss_t*
    - quicly_sent_packet_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: on_loss_detected
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_loss_detected(quicly_loss_t *loss, const quicly_sent_packet_t
      *lost_packet, int is_time_threshold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init_sentmap_iter
      Src: /src/h2o/deps/quicly/t/loss.c:39,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/loss.c:40,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/loss.c:41,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/t/loss.c:42,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:45,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/loss.c:45,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/t/loss.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - loss
    - pn
    - epoch
    argTypes:
    - quicly_loss_t*
    - uint64_t
    - size_t
    assertStmts:
    - condition: (sent->packet_number != UINT64_MAX)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/h2o/deps/quicly/t/loss.c
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: acked
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 3
    functionsReached:
    - quicly_loss_on_ack_received
    - quicly_loss_init_sentmap_iter
    - quicly_sentmap_get
    - quicly_sentmap_update
    - quicly_sentmap_skip
    - ok
    - assert
    linkageType: ''
    returnType: void
    signature: void acked(quicly_loss_t *loss, uint64_t pn, size_t epoch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init
      Src: /src/h2o/deps/quicly/t/loss.c:58,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:60,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:63,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:63,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:65,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:65,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:66,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:67,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:67,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:68,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:69,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:69,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:70,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:76,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:77,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:83,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:88,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:89,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:90,1
    - Dst: quicly_loss_dispose
      Src: /src/h2o/deps/quicly/t/loss.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: test_time_detection
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached:
    - quicly_loss_detect_loss
    - quicly_sentmap_prepare
    - quicly_loss_dispose
    - quicly_loss_init
    - quicly_sentmap_commit
    - ok
    - acked
    linkageType: ''
    returnType: void
    signature: void test_time_detection(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init
      Src: /src/h2o/deps/quicly/t/loss.c:102,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:107,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:107,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:109,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:109,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:110,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:111,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:111,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:112,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:113,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:113,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:114,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:115,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:116,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:119,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:120,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:120,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:122,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:125,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:126,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:128,1
    - Dst: quicly_loss_dispose
      Src: /src/h2o/deps/quicly/t/loss.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 131
    functionName: test_pn_detection
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached:
    - quicly_loss_detect_loss
    - quicly_sentmap_prepare
    - quicly_loss_dispose
    - quicly_loss_init
    - quicly_sentmap_commit
    - ok
    - acked
    linkageType: ''
    returnType: void
    signature: void test_pn_detection(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init
      Src: /src/h2o/deps/quicly/t/loss.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:148,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:148,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:150,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:150,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:151,1
    - Dst: quicly_loss_update_alarm
      Src: /src/h2o/deps/quicly/t/loss.c:153,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:158,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:159,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:159,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:160,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:161,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:165,1
    - Dst: quicly_loss_on_alarm
      Src: /src/h2o/deps/quicly/t/loss.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:168,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:172,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:172,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:174,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/loss.c:174,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/loss.c:175,1
    - Dst: acked
      Src: /src/h2o/deps/quicly/t/loss.c:180,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:181,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/t/loss.c:181,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:183,1
    - Dst: quicly_loss_dispose
      Src: /src/h2o/deps/quicly/t/loss.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 186
    functionName: test_slow_cert_verify
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached:
    - quicly_loss_detect_loss
    - quicly_sentmap_prepare
    - quicly_loss_on_alarm
    - quicly_loss_dispose
    - quicly_loss_init
    - quicly_sentmap_commit
    - quicly_loss_update_alarm
    - ok
    - acked
    linkageType: ''
    returnType: void
    signature: void test_slow_cert_verify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init
      Src: /src/h2o/deps/quicly/t/loss.c:194,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:197,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:198,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:199,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/t/loss.c:201,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:204,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:205,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/t/loss.c:207,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:209,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:210,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:211,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/t/loss.c:213,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:217,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/t/loss.c:219,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:221,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:222,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/loss.c:223,1
    - Dst: quicly_loss_dispose
      Src: /src/h2o/deps/quicly/t/loss.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 226
    functionName: test_late_ack_threshold_adjustment
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached:
    - quicly_loss_on_ack_received
    - quicly_loss_init
    - quicly_loss_dispose
    - ok
    linkageType: ''
    returnType: void
    signature: void test_late_ack_threshold_adjustment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/loss.c:230,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/loss.c:231,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/loss.c:232,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/loss.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: test_loss
    functionSourceFile: /src/h2o/deps/quicly/t/loss.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_loss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - encrypted
    - stateless_reset_token
    - plaintext
    argTypes:
    - struct st_quicly_cid_encryptor_t*
    - quicly_cid_t*
    - void*
    - quicly_cid_plaintext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: encrypt_cid
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void encrypt_cid(struct st_quicly_cid_encryptor_t *self, quicly_cid_t
      *encrypted, void *stateless_reset_token,\n                        const quicly_cid_plaintext_t
      *plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - plaintext
    - encrypted
    - len
    argTypes:
    - struct st_quicly_cid_encryptor_t*
    - quicly_cid_plaintext_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: decrypt_cid
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t decrypt_cid(struct st_quicly_cid_encryptor_t *self, quicly_cid_plaintext_t
      *plaintext, const void *encrypted,\n                          size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cid_encryptor_t*::decrypt_cid
      Src: /src/h2o/deps/quicly/t/local_cid.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cid
    - encryptor
    argTypes:
    - quicly_local_cid_t*
    - quicly_cid_encryptor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: verify_cid
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 0
    functionsReached:
    - quicly_cid_encryptor_t*::decrypt_cid
    linkageType: ''
    returnType: int
    signature: int verify_cid(const quicly_local_cid_t *cid, quicly_cid_encryptor_t
      *encryptor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_cid
      Src: /src/h2o/deps/quicly/t/local_cid.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - set
    argTypes:
    - quicly_local_cid_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: verify_array
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 0
    functionsReached:
    - verify_cid
    linkageType: ''
    returnType: int
    signature: int verify_array(const quicly_local_cid_set_t *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/local_cid.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set
    - state
    argTypes:
    - quicly_local_cid_set_t*
    - enum en_quicly_local_cid_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: count_by_state
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: size_t
    signature: size_t count_by_state(const quicly_local_cid_set_t *set, enum en_quicly_local_cid_state_t
      state)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - set
    - sequence
    - state
    argTypes:
    - quicly_local_cid_set_t*
    - uint64_t
    - enum en_quicly_local_cid_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: exists_once
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int exists_once(const quicly_local_cid_set_t *set, uint64_t sequence,
      enum en_quicly_local_cid_state_t state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/t/local_cid.c:119,1
    - Dst: quicly_local_cid_init_set
      Src: /src/h2o/deps/quicly/t/local_cid.c:124,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:125,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:125,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:126,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:127,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:129,1
    - Dst: quicly_local_cid_set_size
      Src: /src/h2o/deps/quicly/t/local_cid.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:130,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:131,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:131,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:132,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:132,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:133,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:133,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:134,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:135,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:135,1
    - Dst: quicly_local_cid_on_sent
      Src: /src/h2o/deps/quicly/t/local_cid.c:138,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:139,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:140,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:141,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:141,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:142,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:142,1
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/t/local_cid.c:144,1
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/t/local_cid.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:146,1
    - Dst: quicly_local_cid_on_lost
      Src: /src/h2o/deps/quicly/t/local_cid.c:146,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:147,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:148,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:148,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:149,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:150,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:150,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:151,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:151,1
    - Dst: quicly_local_cid_on_sent
      Src: /src/h2o/deps/quicly/t/local_cid.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:155,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:155,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:159,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:159,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:160,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:161,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:161,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:162,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:163,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:163,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:164,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:165,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:166,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:167,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:167,1
    - Dst: quicly_local_cid_on_sent
      Src: /src/h2o/deps/quicly/t/local_cid.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:170,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:170,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:171,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:171,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:172,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:172,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:173,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:174,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:174,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:175,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:175,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:178,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:178,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:179,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:180,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:180,1
    - Dst: quicly_local_cid_on_sent
      Src: /src/h2o/deps/quicly/t/local_cid.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:183,1
    - Dst: quicly_local_cid_on_lost
      Src: /src/h2o/deps/quicly/t/local_cid.c:183,1
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/t/local_cid.c:184,1
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/t/local_cid.c:185,1
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/t/local_cid.c:186,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:187,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:187,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:188,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:188,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:189,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:189,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:192,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:192,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:193,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:194,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:194,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:204,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:204,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:206,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:206,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:207,1
    - Dst: quicly_local_cid_init_set
      Src: /src/h2o/deps/quicly/t/local_cid.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:216,1
    - Dst: quicly_local_cid_set_size
      Src: /src/h2o/deps/quicly/t/local_cid.c:216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:217,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:217,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:218,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:218,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/local_cid.c:218,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/t/local_cid.c:221,1
    - Dst: quicly_local_cid_init_set
      Src: /src/h2o/deps/quicly/t/local_cid.c:224,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:225,1
    - Dst: quicly_local_cid_set_size
      Src: /src/h2o/deps/quicly/t/local_cid.c:225,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:226,1
    - Dst: verify_array
      Src: /src/h2o/deps/quicly/t/local_cid.c:226,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:227,1
    - Dst: count_by_state
      Src: /src/h2o/deps/quicly/t/local_cid.c:227,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:228,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:228,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:229,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:229,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:230,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:230,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:231,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:231,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:232,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/t/local_cid.c:232,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:233,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/local_cid.c:234,1
    - Dst: exists_once
      Src: /src/h2o/deps/quicly/t/local_cid.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 235
    functionName: test_local_cid
    functionSourceFile: /src/h2o/deps/quicly/t/local_cid.c
    functionUses: 0
    functionsReached:
    - verify_array
    - PTLS_ELEMENTSOF
    - exists_once
    - quicly_local_cid_set_size
    - count_by_state
    - quicly_local_cid_on_lost
    - quicly_local_cid_on_sent
    - quicly_local_cid_on_acked
    - ok
    - quicly_local_cid_init_set
    - PTLS_BUILD_ASSERT
    - quicly_local_cid_retire
    linkageType: ''
    returnType: void
    signature: void test_local_cid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - el
    - ','
    - es
    - ','
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: CHECK_REPORT
    functionSourceFile: /src/h2o/deps/quicly/t/rate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_REPORT(el, es, ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ratemeter_init
      Src: /src/h2o/deps/quicly/t/rate.c:39,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:40,1
    - Dst: quicly_ratemeter_enter_cc_limited
      Src: /src/h2o/deps/quicly/t/rate.c:46,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/t/rate.c:50,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:52,1
    - Dst: quicly_ratemeter_exit_cc_limited
      Src: /src/h2o/deps/quicly/t/rate.c:55,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/t/rate.c:59,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:61,1
    - Dst: quicly_ratemeter_enter_cc_limited
      Src: /src/h2o/deps/quicly/t/rate.c:64,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/t/rate.c:68,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 71
    functionName: test_basic
    functionSourceFile: /src/h2o/deps/quicly/t/rate.c
    functionUses: 0
    functionsReached:
    - quicly_ratemeter_on_ack
    - CHECK_REPORT
    - quicly_ratemeter_enter_cc_limited
    - quicly_ratemeter_exit_cc_limited
    - quicly_ratemeter_init
    linkageType: ''
    returnType: void
    signature: void test_basic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ratemeter_init
      Src: /src/h2o/deps/quicly/t/rate.c:77,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:78,1
    - Dst: quicly_ratemeter_enter_cc_limited
      Src: /src/h2o/deps/quicly/t/rate.c:81,1
    - Dst: quicly_ratemeter_exit_cc_limited
      Src: /src/h2o/deps/quicly/t/rate.c:82,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/t/rate.c:91,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:95,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/rate.c:97,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/t/rate.c:102,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/rate.c:104,1
    - Dst: CHECK_REPORT
      Src: /src/h2o/deps/quicly/t/rate.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 107
    functionName: test_burst
    functionSourceFile: /src/h2o/deps/quicly/t/rate.c
    functionUses: 0
    functionsReached:
    - quicly_ratemeter_on_ack
    - CHECK_REPORT
    - quicly_ratemeter_enter_cc_limited
    - quicly_ratemeter_exit_cc_limited
    - ok
    - quicly_ratemeter_init
    linkageType: ''
    returnType: void
    signature: void test_burst(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/rate.c:111,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/rate.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: test_rate
    functionSourceFile: /src/h2o/deps/quicly/t/rate.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_rate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/udpfw.c:82,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmd
    - exit_status
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: usage
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 4
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd, int exit_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/quicly/t/udpfw.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: gettime
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: int64_t
    signature: int64_t gettime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - _x
    - _y
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: swap_memory
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_memory(void *_x, void *_y, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/quicly/t/udpfw.c:125,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:126,1
    - Dst: fcntl
      Src: /src/h2o/deps/quicly/t/udpfw.c:127,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:128,1
    - Dst: fcntl
      Src: /src/h2o/deps/quicly/t/udpfw.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sin_family
    argTypes:
    - int
    assertStmts:
    - condition: (flags != -1)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    - condition: (s != -1)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: new_socket
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - socket
    - fcntl
    - assert
    linkageType: ''
    returnType: int
    signature: int new_socket(int sin_family)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/udpfw.c:144,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/t/udpfw.c:149,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:153,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/t/udpfw.c:160,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:161,1
    - Dst: new_socket
      Src: /src/h2o/deps/quicly/t/udpfw.c:163,1
    - Dst: connect
      Src: /src/h2o/deps/quicly/t/udpfw.c:164,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:165,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/t/udpfw.c:165,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:166,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/t/udpfw.c:168,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - sa
    - salen
    argTypes:
    - struct sockaddr*
    - socklen_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    - condition: (c != NULL)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    constantsTouched: []
    func_position:
      end: 177
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 177
    functionName: find_or_create_connection
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcmp
    - exit
    - new_socket
    - memcpy
    - fprintf
    - connect
    - strerror
    - assert
    linkageType: ''
    returnType: struct connection_t
    signature: struct connection_t *find_or_create_connection(struct sockaddr *sa,
      socklen_t salen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:181,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/t/udpfw.c:184,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct queue_t*
    assertStmts:
    - condition: (q->ring.depth != 0)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    - condition: (q->ring.elements != NULL)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: init_queue
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    linkageType: ''
    returnType: void
    signature: void init_queue(struct queue_t *q)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/h2o/deps/quicly/t/udpfw.c:195,1
    - Dst: sendto
      Src: /src/h2o/deps/quicly/t/udpfw.c:198,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - q
    - up
    - now
    argTypes:
    - struct queue_t*
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: dequeue
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 2
    functionsReached:
    - sendto
    - fprintf
    - send
    linkageType: ''
    returnType: void
    signature: void dequeue(struct queue_t *q, int up, int64_t now)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/h2o/deps/quicly/t/udpfw.c:218,1
    - Dst: find_or_create_connection
      Src: /src/h2o/deps/quicly/t/udpfw.c:224,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/udpfw.c:227,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:235,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:247,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:251,1
    - Dst: swap_memory
      Src: /src/h2o/deps/quicly/t/udpfw.c:269,1
    - Dst: swap_memory
      Src: /src/h2o/deps/quicly/t/udpfw.c:270,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:279,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - q
    - conn
    - now
    argTypes:
    - struct queue_t*
    - struct connection_t*
    - int64_t
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    constantsTouched: []
    func_position:
      end: 281
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 281
    functionName: enqueue
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 2
    functionsReached:
    - swap_memory
    - recvfrom
    - fprintf
    - find_or_create_connection
    - assert
    linkageType: ''
    returnType: int
    signature: int enqueue(struct queue_t *q, struct connection_t *conn, int64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:285,1
    - Dst: _exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: on_signal
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - _exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_signal(int signo)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/quicly/t/udpfw.c:303,1
    - Dst: signal
      Src: /src/h2o/deps/quicly/t/udpfw.c:304,1
    - Dst: getopt
      Src: /src/h2o/deps/quicly/t/udpfw.c:306,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:309,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:310,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:311,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:315,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:316,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:317,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:321,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:322,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:323,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:327,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:328,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:329,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:333,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:334,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:335,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:339,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:340,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:341,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:347,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:348,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:349,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/udpfw.c:351,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/t/udpfw.c:353,1
    - Dst: new_socket
      Src: /src/h2o/deps/quicly/t/udpfw.c:354,1
    - Dst: bind
      Src: /src/h2o/deps/quicly/t/udpfw.c:355,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:356,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/t/udpfw.c:356,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:357,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:364,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:365,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:366,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:374,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:375,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:376,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:384,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:385,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:386,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/t/udpfw.c:394,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:395,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:396,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/t/udpfw.c:401,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/t/udpfw.c:404,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:411,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:412,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:415,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:416,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/t/udpfw.c:421,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/quicly/t/udpfw.c:426,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/udpfw.c:427,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/quicly/t/udpfw.c:427,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/t/udpfw.c:428,1
    - Dst: init_queue
      Src: /src/h2o/deps/quicly/t/udpfw.c:432,1
    - Dst: init_queue
      Src: /src/h2o/deps/quicly/t/udpfw.c:433,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/quicly/t/udpfw.c:440,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/t/udpfw.c:441,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/t/udpfw.c:444,1
    - Dst: gettime
      Src: /src/h2o/deps/quicly/t/udpfw.c:448,1
    - Dst: select
      Src: /src/h2o/deps/quicly/t/udpfw.c:461,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/quicly/t/udpfw.c:462,1
    - Dst: gettime
      Src: /src/h2o/deps/quicly/t/udpfw.c:463,1
    - Dst: dequeue
      Src: /src/h2o/deps/quicly/t/udpfw.c:465,1
    - Dst: dequeue
      Src: /src/h2o/deps/quicly/t/udpfw.c:466,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/t/udpfw.c:468,1
    - Dst: enqueue
      Src: /src/h2o/deps/quicly/t/udpfw.c:469,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/t/udpfw.c:473,1
    - Dst: enqueue
      Src: /src/h2o/deps/quicly/t/udpfw.c:474,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 163
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 483
    functionName: main
    functionSourceFile: /src/h2o/deps/quicly/t/udpfw.c
    functionUses: 0
    functionsReached:
    - FD_ZERO
    - getaddrinfo
    - gai_strerror
    - sscanf
    - select
    - new_socket
    - signal
    - fprintf
    - usage
    - strerror
    - FD_SET
    - memset
    - getopt
    - htons
    - exit
    - gettime
    - FD_ISSET
    - init_queue
    - enqueue
    - bind
    - dequeue
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct loss_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: cond_true_
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_true_(struct loss_cond_t *cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct loss_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: cond_even_
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_even_(struct loss_cond_t *cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct loss_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: init_cond_even
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_cond_even(struct loss_cond_t *cond)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/quicly/t/lossy.c:70,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/t/lossy.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct loss_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 93
    functionName: cond_rand_
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - ptls_cipher_encrypt
    linkageType: ''
    returnType: int
    signature: int cond_rand_(struct loss_cond_t *cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cond
    - nloss
    - ntotal
    argTypes:
    - struct loss_cond_t*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: init_cond_rand
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_cond_rand(struct loss_cond_t *cond, unsigned nloss, unsigned
      ntotal)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/lossy.c:110,1
    - Dst: quicly_get_context
      Src: /src/h2o/deps/quicly/t/lossy.c:110,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/t/lossy.c:113,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/lossy.c:114,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:115,1
    - Dst: struct loss_cond_t*::cb
      Src: /src/h2o/deps/quicly/t/lossy.c:125,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/t/lossy.c:127,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/lossy.c:129,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:130,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:134,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/t/lossy.c:135,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:135,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/t/lossy.c:138,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:140,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/quicly/t/lossy.c:146,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 7
    argNames:
    - src
    - dst
    - num_sent
    - num_received
    - cond
    - latency
    - logger
    argTypes:
    - quicly_conn_t*
    - quicly_conn_t*
    - size_t*
    - size_t*
    - struct loss_cond_t*
    - int64_t
    - ptls_buffer_t*
    assertStmts:
    - condition: (num_decoded != 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/h2o/deps/quicly/t/lossy.c
    - condition: (ret == 0)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/h2o/deps/quicly/t/lossy.c
    constantsTouched: []
    func_position:
      end: 156
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 156
    functionName: transmit_cond
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_buffer_push
    - quicly_send
    - quicly_receive
    - quicly_get_context
    - sprintf
    - decode_packets
    - fprintf
    - struct loss_cond_t*::cb
    - ptls_buffer_pushv
    - assert
    - strlen
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t transmit_cond(quicly_conn_t *src, quicly_conn_t *dst,
      size_t *num_sent, size_t *num_received,\n                                    struct
      loss_cond_t *cond, int64_t latency, ptls_buffer_t *logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_cond_even
      Src: /src/h2o/deps/quicly/t/lossy.c:166,1
    - Dst: init_cond_even
      Src: /src/h2o/deps/quicly/t/lossy.c:167,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/lossy.c:178,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/lossy.c:178,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/lossy.c:178,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:180,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/lossy.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:183,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:184,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/lossy.c:185,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:186,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/lossy.c:187,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/lossy.c:187,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:188,1
    - Dst: cb
      Src: /src/h2o/deps/quicly/t/lossy.c:189,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:193,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:194,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:196,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:197,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:197,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:198,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:198,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:204,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:205,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:206,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:208,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:208,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:209,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:209,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:214,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:216,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:217,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:218,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:218,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:219,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:219,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:224,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:225,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:226,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:227,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:232,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:233,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:234,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:235,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:237,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:237,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:238,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:238,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:242,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:243,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:244,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:249,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:250,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:251,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:252,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:257,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:258,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:259,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:260,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:262,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:262,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:263,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 266
    functionName: test_even
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - transmit_cond
    - quicly_connection_is_ready
    - quicly_send
    - quicly_accept
    - cb
    - new_master_id
    - decode_packets
    - ok
    - quicly_get_state
    - init_cond_even
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void test_even(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/t/lossy.c:285,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/lossy.c:285,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/t/lossy.c:285,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:287,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/t/lossy.c:289,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:290,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:291,1
    - Dst: decode_packets
      Src: /src/h2o/deps/quicly/t/lossy.c:293,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:294,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/t/lossy.c:295,1
    - Dst: new_master_id
      Src: /src/h2o/deps/quicly/t/lossy.c:295,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:296,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/t/lossy.c:301,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:305,1
    - Dst: quicly_get_original_dcid
      Src: /src/h2o/deps/quicly/t/lossy.c:306,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/quicly/t/lossy.c:307,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:307,1
    - Dst: strcat
      Src: /src/h2o/deps/quicly/t/lossy.c:308,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/t/lossy.c:309,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:309,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/lossy.c:317,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/lossy.c:317,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:319,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:320,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:324,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/t/lossy.c:325,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:325,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:326,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/lossy.c:328,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:329,1
    - Dst: quicly_get_state
      Src: /src/h2o/deps/quicly/t/lossy.c:330,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/t/lossy.c:330,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/t/lossy.c:332,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:333,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/lossy.c:337,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:337,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/lossy.c:338,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/lossy.c:339,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:340,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/lossy.c:340,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:341,1
    - Dst: max_data_is_equal
      Src: /src/h2o/deps/quicly/t/lossy.c:341,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/t/lossy.c:342,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/t/lossy.c:346,1
    - Dst: transmit_cond
      Src: /src/h2o/deps/quicly/t/lossy.c:347,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/t/lossy.c:349,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/lossy.c:350,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/t/lossy.c:351,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/t/lossy.c:352,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:354,1
    - Dst: buffer_is
      Src: /src/h2o/deps/quicly/t/lossy.c:354,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/t/lossy.c:355,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/t/lossy.c:355,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/t/lossy.c:356,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:362,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:371,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/t/lossy.c:372,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/t/lossy.c:373,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/t/lossy.c:377,1
    - Dst: abort
      Src: /src/h2o/deps/quicly/t/lossy.c:378,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (min_timeout != INT64_MAX)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/h2o/deps/quicly/t/lossy.c
    - condition: (min_timeout == 0 || quic_now < min_timeout + 40)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/h2o/deps/quicly/t/lossy.c
    - condition: (server_timeout > quic_now - 20)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/h2o/deps/quicly/t/lossy.c
    - condition: (client_timeout > quic_now - 20)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/h2o/deps/quicly/t/lossy.c
    constantsTouched: []
    func_position:
      end: 379
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 379
    functionName: loss_core
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - ptls_hexdump
    - quicly_send
    - sprintf
    - max_data_is_equal
    - quicly_streambuf_egress_write
    - quicly_get_state
    - assert
    - ptls_iovec_init
    - quicly_get_original_dcid
    - strcat
    - quicly_get_stream
    - transmit_cond
    - new_master_id
    - quicly_streambuf_egress_shutdown
    - fprintf
    - quicly_get_first_timeout
    - quicly_accept
    - quicly_recvstate_transfer_complete
    - buffer_is
    - strlen
    - ptls_buffer_init
    - quicly_connect
    - quicly_open_stream
    - ptls_buffer_dispose
    - fwrite
    - quicly_connection_is_ready
    - abort
    - decode_packets
    - ok
    - ptls_buffer_pushv
    linkageType: ''
    returnType: void
    signature: void loss_core(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: cmp_int64
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_int64(const void *_x, const void *_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/h2o/deps/quicly/t/lossy.c:400,1
    - Dst: printf
      Src: /src/h2o/deps/quicly/t/lossy.c:404,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:405,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:406,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:407,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:408,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:409,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/lossy.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - time_spent
    - max_failures
    - min_mean
    - max_mean
    - min_median
    - max_median
    - max_90th
    argTypes:
    - int64_t*
    - unsigned
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 413
    functionName: loss_check_stats
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - qsort
    - printf
    - ok
    linkageType: ''
    returnType: void
    signature: "void loss_check_stats(int64_t *time_spent, unsigned max_failures,
      double min_mean, double max_mean, double min_median,\n                             double
      max_median, double max_90th)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:424,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:425,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:428,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:431,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:432,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:435,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:438,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:439,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:442,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:445,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:446,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:449,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:452,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:453,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:456,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:459,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:460,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:463,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:466,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:467,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 471
    functionName: test_downstream
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - subtest
    - init_cond_rand
    linkageType: ''
    returnType: void
    signature: void test_downstream(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:480,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:481,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:482,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:485,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:488,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:489,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:490,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:493,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:496,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:497,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:498,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:501,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:504,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:505,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:506,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:509,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:512,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:513,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:514,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:517,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:520,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:521,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:522,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:525,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:528,1
    - Dst: init_cond_rand
      Src: /src/h2o/deps/quicly/t/lossy.c:529,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:530,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 534
    functionName: test_bidirectional
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - subtest
    - init_cond_rand
    linkageType: ''
    returnType: void
    signature: void test_bidirectional(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:542,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:546,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/lossy.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 551
    functionName: test_lossy
    functionSourceFile: /src/h2o/deps/quicly/t/lossy.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_lossy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: on_acked
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_acked(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - map
    argTypes:
    - quicly_sentmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: num_blocks
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t num_blocks(quicly_sentmap_t *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sentmap_init
      Src: /src/h2o/deps/quicly/t/sentmap.c:54,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/sentmap.c:59,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:60,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:61,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/sentmap.c:62,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:67,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:70,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:71,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:72,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:74,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/t/sentmap.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:78,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:78,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:79,1
    - Dst: num_blocks
      Src: /src/h2o/deps/quicly/t/sentmap.c:79,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:82,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:83,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/t/sentmap.c:84,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:85,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:85,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:86,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:87,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:89,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:92,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:92,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/t/sentmap.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:94,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:95,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:98,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:99,1
    - Dst: num_blocks
      Src: /src/h2o/deps/quicly/t/sentmap.c:99,1
    - Dst: quicly_sentmap_dispose
      Src: /src/h2o/deps/quicly/t/sentmap.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (quicly_sentmap_get(&iter)->packet_number == 11)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    constantsTouched: []
    func_position:
      end: 102
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 102
    functionName: test_basic
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_allocate
    - quicly_sentmap_init
    - quicly_sentmap_dispose
    - quicly_sentmap_prepare
    - quicly_sentmap_get
    - quicly_sentmap_init_iter
    - quicly_sentmap_update
    - quicly_sentmap_commit
    - ok
    - quicly_sentmap_skip
    - num_blocks
    - assert
    linkageType: ''
    returnType: void
    signature: void test_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sentmap_init
      Src: /src/h2o/deps/quicly/t/sentmap.c:113,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/sentmap.c:116,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:117,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/sentmap.c:118,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/sentmap.c:119,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:120,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/sentmap.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:122,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:125,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:126,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:128,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:128,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:131,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:134,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:135,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:137,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:137,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:138,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:139,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:140,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:141,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:142,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:143,1
    - Dst: quicly_sentmap_dispose
      Src: /src/h2o/deps/quicly/t/sentmap.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sent->packet_number == 1)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    - condition: (sent->packet_number == 1)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    - condition: (sent->packet_number == 2)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    constantsTouched: []
    func_position:
      end: 146
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 146
    functionName: test_late_ack
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_allocate
    - quicly_sentmap_init
    - quicly_sentmap_dispose
    - quicly_sentmap_prepare
    - quicly_sentmap_get
    - quicly_sentmap_init_iter
    - quicly_sentmap_update
    - quicly_sentmap_commit
    - ok
    - assert
    linkageType: ''
    returnType: void
    signature: void test_late_ack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sentmap_init
      Src: /src/h2o/deps/quicly/t/sentmap.c:157,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/sentmap.c:160,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:161,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/sentmap.c:162,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/t/sentmap.c:163,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/t/sentmap.c:164,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/t/sentmap.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:166,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:169,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:170,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:171,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:172,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:172,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:174,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:175,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/t/sentmap.c:178,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:179,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:180,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:181,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:181,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/t/sentmap.c:182,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/t/sentmap.c:183,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:184,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/t/sentmap.c:184,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:185,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:186,1
    - Dst: ok
      Src: /src/h2o/deps/quicly/t/sentmap.c:187,1
    - Dst: quicly_sentmap_dispose
      Src: /src/h2o/deps/quicly/t/sentmap.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sent->packet_number == 1)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    - condition: (sent->packet_number == 2)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    - condition: (sent->packet_number == 1)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/h2o/deps/quicly/t/sentmap.c
    constantsTouched: []
    func_position:
      end: 190
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 190
    functionName: test_pto
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_allocate
    - quicly_sentmap_init
    - quicly_sentmap_dispose
    - quicly_sentmap_prepare
    - quicly_sentmap_get
    - quicly_sentmap_init_iter
    - quicly_sentmap_update
    - quicly_sentmap_commit
    - ok
    - assert
    linkageType: ''
    returnType: void
    signature: void test_pto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/sentmap.c:194,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/sentmap.c:195,1
    - Dst: subtest
      Src: /src/h2o/deps/quicly/t/sentmap.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: test_sentmap
    functionSourceFile: /src/h2o/deps/quicly/t/sentmap.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_sentmap(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:58,1
    - Dst: fputs
      Src: /src/h2o/deps/quicly/src/cli.c:62,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:64,1
    - Dst: fputc
      Src: /src/h2o/deps/quicly/src/cli.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - title
    - p
    - l
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: hexdump
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 1
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hexdump(const char *title, const uint8_t *p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/src/cli.c:148,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - conn
    argTypes:
    - FILE*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 174
    functionName: dump_stats
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_get_stats
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_stats(FILE *fp, quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/quicly/src/cli.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: validate_path
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int validate_path(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - input
    - path
    - is_http1
    argTypes:
    - ptls_iovec_t
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: parse_request
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_request(ptls_iovec_t input, char **path, int *is_http1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/src/cli.c:212,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - s
    argTypes:
    - quicly_stream_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: send_str
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - strlen
    - quicly_streambuf_egress_write
    linkageType: ''
    returnType: void
    signature: void send_str(quicly_stream_t *stream, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/src/cli.c:222,1
    - Dst: send_str
      Src: /src/h2o/deps/quicly/src/cli.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - stream
    - is_http1
    - status
    - mime_type
    argTypes:
    - quicly_stream_t*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: send_header
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - send_str
    - sprintf
    linkageType: ''
    returnType: void
    signature: void send_header(quicly_stream_t *stream, int is_http1, int status,
      const char *mime_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/h2o/deps/quicly/src/cli.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - vec
    - dst
    - 'off'
    - len
    argTypes:
    - quicly_sendbuf_vec_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: flatten_file_vec
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - pread
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t flatten_file_vec(quicly_sendbuf_vec_t *vec, void *dst,
      size_t off, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/deps/quicly/src/cli.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - quicly_sendbuf_vec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: discard_file_vec
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void discard_file_vec(quicly_sendbuf_vec_t *vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/h2o/deps/quicly/src/cli.c:250,1
    - Dst: fstat
      Src: /src/h2o/deps/quicly/src/cli.c:252,1
    - Dst: S_ISDIR
      Src: /src/h2o/deps/quicly/src/cli.c:252,1
    - Dst: close
      Src: /src/h2o/deps/quicly/src/cli.c:253,1
    - Dst: send_header
      Src: /src/h2o/deps/quicly/src/cli.c:257,1
    - Dst: quicly_streambuf_egress_write_vec
      Src: /src/h2o/deps/quicly/src/cli.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - stream
    - is_http1
    - fn
    - mime_type
    argTypes:
    - quicly_stream_t*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: send_file
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - close
    - S_ISDIR
    - open
    - fstat
    - quicly_streambuf_egress_write_vec
    - send_header
    linkageType: ''
    returnType: int
    signature: int send_file(quicly_stream_t *stream, int is_http1, const char *fn,
      const char *mime_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:290,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - vec
    - dst
    - 'off'
    - len
    argTypes:
    - quicly_sendbuf_vec_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: flatten_sized_text
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t flatten_sized_text(quicly_sendbuf_vec_t *vec, void *dst,
      size_t off, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:308,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:310,1
    - Dst: send_header
      Src: /src/h2o/deps/quicly/src/cli.c:313,1
    - Dst: quicly_streambuf_egress_write_vec
      Src: /src/h2o/deps/quicly/src/cli.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - stream
    - path
    - is_http1
    argTypes:
    - quicly_stream_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: send_sized_text
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - send_header
    - sscanf
    - strlen
    - quicly_streambuf_egress_write_vec
    linkageType: ''
    returnType: int
    signature: int send_sized_text(quicly_stream_t *stream, const char *path, int
      is_http1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:322,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/src/cli.c:322,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:323,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/src/cli.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: on_stop_sending
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_GET_ERROR_CODE
    - assert
    - fprintf
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void on_stop_sending(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:328,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/src/cli.c:328,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:329,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/src/cli.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: on_receive_reset
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_GET_ERROR_CODE
    - assert
    - fprintf
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void on_receive_reset(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/src/cli.c:337,1
    - Dst: quicly_streambuf_ingress_receive
      Src: /src/h2o/deps/quicly/src/cli.c:340,1
    - Dst: parse_request
      Src: /src/h2o/deps/quicly/src/cli.c:343,1
    - Dst: quicly_streambuf_ingress_get
      Src: /src/h2o/deps/quicly/src/cli.c:343,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/src/cli.c:344,1
    - Dst: send_header
      Src: /src/h2o/deps/quicly/src/cli.c:347,1
    - Dst: send_str
      Src: /src/h2o/deps/quicly/src/cli.c:348,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/src/cli.c:351,1
    - Dst: quicly_request_stop
      Src: /src/h2o/deps/quicly/src/cli.c:352,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/src/cli.c:352,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:354,1
    - Dst: send_file
      Src: /src/h2o/deps/quicly/src/cli.c:354,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:356,1
    - Dst: send_file
      Src: /src/h2o/deps/quicly/src/cli.c:356,1
    - Dst: send_sized_text
      Src: /src/h2o/deps/quicly/src/cli.c:358,1
    - Dst: validate_path
      Src: /src/h2o/deps/quicly/src/cli.c:360,1
    - Dst: send_file
      Src: /src/h2o/deps/quicly/src/cli.c:360,1
    - Dst: send_header
      Src: /src/h2o/deps/quicly/src/cli.c:363,1
    - Dst: send_str
      Src: /src/h2o/deps/quicly/src/cli.c:364,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/src/cli.c:366,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/src/cli.c:367,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 368
    functionName: server_on_receive
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - validate_path
    - quicly_streambuf_ingress_shift
    - quicly_recvstate_transfer_complete
    - quicly_streambuf_ingress_get
    - strcmp
    - parse_request
    - quicly_sendstate_is_open
    - send_str
    - send_sized_text
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - quicly_streambuf_egress_shutdown
    - send_file
    - quicly_request_stop
    - quicly_streambuf_ingress_receive
    - send_header
    linkageType: ''
    returnType: void
    signature: void server_on_receive(quicly_stream_t *stream, size_t off, const void
      *src, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_ingress_receive
      Src: /src/h2o/deps/quicly/src/cli.c:375,1
    - Dst: quicly_streambuf_ingress_get
      Src: /src/h2o/deps/quicly/src/cli.c:378,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/src/cli.c:381,1
    - Dst: fflush
      Src: /src/h2o/deps/quicly/src/cli.c:382,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/src/cli.c:384,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/src/cli.c:387,1
    - Dst: fclose
      Src: /src/h2o/deps/quicly/src/cli.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 391
    functionName: client_on_receive
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fflush
    - quicly_recvstate_transfer_complete
    - quicly_streambuf_ingress_get
    - quicly_streambuf_ingress_shift
    - fclose
    - quicly_streambuf_ingress_receive
    linkageType: ''
    returnType: void
    signature: void client_on_receive(quicly_stream_t *stream, size_t off, const void
      *src, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_create
      Src: /src/h2o/deps/quicly/src/cli.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: on_stream_open
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_streambuf_create
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_stream_open(quicly_stream_open_t *self, quicly_stream_t
      *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_close_reason
      Src: /src/h2o/deps/quicly/src/cli.c:410,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/src/cli.c:415,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:416,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/src/cli.c:416,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/src/cli.c:418,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:419,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/src/cli.c:419,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:421,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:423,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/quicly/src/cli.c:424,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:425,1
    - Dst: PTLS_ERROR_TO_ALERT
      Src: /src/h2o/deps/quicly/src/cli.c:425,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - conn
    argTypes:
    - quicly_closed_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 429
    functionName: on_closed
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - PTLS_ERROR_GET_CLASS
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - quicly_get_close_reason
    - PTLS_ERROR_TO_ALERT
    - QUICLY_ERROR_GET_ERROR_CODE
    - fprintf
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void on_closed(quicly_closed_t *self, quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encrypt_address_token
      Src: /src/h2o/deps/quicly/src/cli.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - conn
    - buf
    - token
    argTypes:
    - quicly_generate_resumption_token_t*
    - quicly_conn_t*
    - ptls_buffer_t*
    - quicly_address_token_plaintext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: on_generate_resumption_token
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_encrypt_address_token
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_generate_resumption_token(quicly_generate_resumption_token_t
      *self, quicly_conn_t *conn,\n                                                   ptls_buffer_t
      *buf, quicly_address_token_plaintext_t *token)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:445,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:445,1
    - Dst: getsockname
      Src: /src/h2o/deps/quicly/src/cli.c:458,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:459,1
    - Dst: recvmsg
      Src: /src/h2o/deps/quicly/src/cli.c:461,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/h2o/deps/quicly/src/cli.c:467,1
    - Dst: CMSG_NXTHDR
      Src: /src/h2o/deps/quicly/src/cli.c:467,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:471,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:471,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:478,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:478,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:485,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:485,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:498,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:498,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - fd
    - buf
    - dest
    - src
    - ecn
    argTypes:
    - int
    - void*
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t*
    assertStmts:
    - condition: ((char *)CMSG_DATA(cmsg) - (char *)cmsg + 1 == cmsg->cmsg_len)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 506
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 506
    functionName: receive_datagram
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - perror
    - CMSG_SPACE
    - CMSG_DATA
    - getsockname
    - memcpy
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - recvmsg
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t receive_datagram(int fd, void *buf, quicly_address_t *dest,
      quicly_address_t *src, uint8_t *ecn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/h2o/deps/quicly/src/cli.c:519,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:520,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:520,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:521,1
    - Dst: CMSG_LEN
      Src: /src/h2o/deps/quicly/src/cli.c:527,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:528,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:528,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:529,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:531,1
    - Dst: CMSG_LEN
      Src: /src/h2o/deps/quicly/src/cli.c:538,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:539,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:539,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:540,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - mess
    - addr
    argTypes:
    - struct msghdr*
    - quicly_address_t*
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (!"FIXME")
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 546
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 546
    functionName: set_srcaddr
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - CMSG_SPACE
    - CMSG_DATA
    - memcpy
    - assert
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: void set_srcaddr(struct msghdr *mess, quicly_address_t *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/h2o/deps/quicly/src/cli.c:557,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:558,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:558,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mess
    - ecn
    argTypes:
    - struct msghdr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 561
    functionName: set_ecn
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CMSG_SPACE
    - CMSG_DATA
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: void set_ecn(struct msghdr *mess, uint8_t ecn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:567,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:567,1
    - Dst: quicly_get_socklen
      Src: /src/h2o/deps/quicly/src/cli.c:570,1
    - Dst: set_srcaddr
      Src: /src/h2o/deps/quicly/src/cli.c:576,1
    - Dst: set_ecn
      Src: /src/h2o/deps/quicly/src/cli.c:577,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:578,1
    - Dst: hexdump
      Src: /src/h2o/deps/quicly/src/cli.c:582,1
    - Dst: sendmsg
      Src: /src/h2o/deps/quicly/src/cli.c:584,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:587,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 6
    argNames:
    - fd
    - dest
    - src
    - packets
    - num_packets
    - ecn
    argTypes:
    - int
    - quicly_address_t*
    - quicly_address_t*
    - struct iovec*
    - size_t
    - uint8_t
    assertStmts:
    - condition: (mess.msg_controllen <= sizeof(cmsgbuf))
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 589
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 589
    functionName: send_packets_default
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - set_srcaddr
    - perror
    - CMSG_SPACE
    - set_ecn
    - hexdump
    - sendmsg
    - assert
    - quicly_get_socklen
    linkageType: ''
    returnType: void
    signature: "void send_packets_default(int fd, quicly_address_t *dest, quicly_address_t
      *src, struct iovec *packets, size_t num_packets,\n                                 uint8_t
      ecn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:602,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:602,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:603,1
    - Dst: quicly_get_socklen
      Src: /src/h2o/deps/quicly/src/cli.c:606,1
    - Dst: set_srcaddr
      Src: /src/h2o/deps/quicly/src/cli.c:613,1
    - Dst: CMSG_LEN
      Src: /src/h2o/deps/quicly/src/cli.c:618,1
    - Dst: CMSG_DATA
      Src: /src/h2o/deps/quicly/src/cli.c:619,1
    - Dst: CMSG_SPACE
      Src: /src/h2o/deps/quicly/src/cli.c:620,1
    - Dst: set_ecn
      Src: /src/h2o/deps/quicly/src/cli.c:622,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:623,1
    - Dst: sendmsg
      Src: /src/h2o/deps/quicly/src/cli.c:628,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - fd
    - dest
    - src
    - packets
    - num_packets
    - ecn
    argTypes:
    - int
    - quicly_address_t*
    - quicly_address_t*
    - struct iovec*
    - size_t
    - uint8_t
    assertStmts:
    - condition: (mess.msg_controllen <= sizeof(cmsgbuf))
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 632
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 632
    functionName: send_packets_gso
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - set_srcaddr
    - perror
    - CMSG_DATA
    - CMSG_SPACE
    - CMSG_LEN
    - set_ecn
    - sendmsg
    - assert
    - quicly_get_socklen
    linkageType: ''
    returnType: void
    signature: "void send_packets_gso(int fd, quicly_address_t *dest, quicly_address_t
      *src, struct iovec *packets, size_t num_packets,\n                             uint8_t
      ecn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_packets
      Src: /src/h2o/deps/quicly/src/cli.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - dest
    - src
    - payload
    - payload_len
    argTypes:
    - int
    - quicly_address_t*
    - quicly_address_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: send_one_packet
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - send_packets
    linkageType: ''
    returnType: void
    signature: void send_one_packet(int fd, quicly_address_t *dest, quicly_address_t
      *src, const void *payload, size_t payload_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_context
      Src: /src/h2o/deps/quicly/src/cli.c:648,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/src/cli.c:652,1
    - Dst: send_packets
      Src: /src/h2o/deps/quicly/src/cli.c:653,1
    - Dst: quicly_send_get_ecn_bits
      Src: /src/h2o/deps/quicly/src/cli.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - conn
    argTypes:
    - int
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 656
    functionName: send_pending
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_get_context
    - quicly_send
    - quicly_send_get_ecn_bits
    - send_packets
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_pending(int fd, quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/src/cli.c:660,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/src/cli.c:662,1
    - Dst: quicly_send_datagram_frames
      Src: /src/h2o/deps/quicly/src/cli.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - conn
    - payload
    argTypes:
    - quicly_receive_datagram_frame_t*
    - quicly_conn_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: on_receive_datagram_frame
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - printf
    - quicly_send_datagram_frames
    linkageType: ''
    returnType: void
    signature: void on_receive_datagram_frame(quicly_receive_datagram_frame_t *self,
      quicly_conn_t *conn, ptls_iovec_t payload)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/src/cli.c:674,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:675,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/src/cli.c:676,1
    - Dst: send_str
      Src: /src/h2o/deps/quicly/src/cli.c:677,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/src/cli.c:678,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/src/cli.c:682,1
    - Dst: strrchr
      Src: /src/h2o/deps/quicly/src/cli.c:682,1
    - Dst: fopen
      Src: /src/h2o/deps/quicly/src/cli.c:683,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:685,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/src/cli.c:685,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 691
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 691
    functionName: enqueue_requests
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - strrchr
    - exit
    - send_str
    - sprintf
    - quicly_streambuf_egress_shutdown
    - fopen
    - fprintf
    - strerror
    - assert
    linkageType: ''
    returnType: void
    signature: void enqueue_requests(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: on_client_signal
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_client_signal(int signo)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/quicly/src/cli.c:706,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/src/cli.c:708,1
    - Dst: bind
      Src: /src/h2o/deps/quicly/src/cli.c:710,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:711,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/src/cli.c:714,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:715,1
    - Dst: enqueue_requests
      Src: /src/h2o/deps/quicly/src/cli.c:717,1
    - Dst: send_pending
      Src: /src/h2o/deps/quicly/src/cli.c:718,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/src/cli.c:724,1
    - Dst: quicly_get_context
      Src: /src/h2o/deps/quicly/src/cli.c:728,1
    - Dst: quicly_context_t*::now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:729,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/quicly/src/cli.c:741,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/src/cli.c:742,1
    - Dst: select
      Src: /src/h2o/deps/quicly/src/cli.c:743,1
    - Dst: quicly_context_t*::now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:744,1
    - Dst: enqueue_requests
      Src: /src/h2o/deps/quicly/src/cli.c:745,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/src/cli.c:746,1
    - Dst: receive_datagram
      Src: /src/h2o/deps/quicly/src/cli.c:750,1
    - Dst: hexdump
      Src: /src/h2o/deps/quicly/src/cli.c:754,1
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/src/cli.c:758,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/src/cli.c:761,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/deps/quicly/src/cli.c:762,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:764,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:764,1
    - Dst: quicly_send_datagram_frames
      Src: /src/h2o/deps/quicly/src/cli.c:765,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/src/cli.c:770,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:771,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/src/cli.c:773,1
    - Dst: quicly_context_t*::now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:776,1
    - Dst: dump_stats
      Src: /src/h2o/deps/quicly/src/cli.c:780,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/src/cli.c:781,1
    - Dst: send_pending
      Src: /src/h2o/deps/quicly/src/cli.c:791,1
    - Dst: ech_save_retry_configs
      Src: /src/h2o/deps/quicly/src/cli.c:793,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/src/cli.c:794,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:799,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 84
    argCount: 3
    argNames:
    - fd
    - sa
    - host
    argTypes:
    - int
    - struct sockaddr*
    - char*
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 805
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 805
    functionName: run_client
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_get_stats
    - FD_ZERO
    - quicly_num_streams
    - hexdump
    - assert
    - ech_save_retry_configs
    - ptls_iovec_init
    - dump_stats
    - enqueue_requests
    - select
    - send_pending
    - quicly_get_context
    - signal
    - fprintf
    - quicly_get_first_timeout
    - FD_SET
    - memset
    - quicly_free
    - perror
    - quicly_close
    - exit
    - quicly_receive
    - quicly_decode_packet
    - strlen
    - quicly_connect
    - quicly_connection_is_ready
    - FD_ISSET
    - receive_datagram
    - quicly_context_t*::now::cb
    - bind
    - quicly_send_datagram_frames
    linkageType: ''
    returnType: int
    signature: int run_client(int fd, struct sockaddr *sa, const char *host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_master_id
      Src: /src/h2o/deps/quicly/src/cli.c:814,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:815,1
    - Dst: dump_stats
      Src: /src/h2o/deps/quicly/src/cli.c:816,1
    - Dst: _exit
      Src: /src/h2o/deps/quicly/src/cli.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 820
    functionName: on_server_signal
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_get_master_id
    - dump_stats
    - _exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_server_signal(int signo)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:828,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/src/cli.c:836,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/src/cli.c:838,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:846,1
    - Dst: abort
      Src: /src/h2o/deps/quicly/src/cli.c:847,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/src/cli.c:864,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 5
    argNames:
    - remote
    - client_cid
    - server_cid
    - token
    - err_desc
    argTypes:
    - struct sockaddr*
    - ptls_iovec_t
    - ptls_iovec_t
    - quicly_address_token_plaintext_t*
    - char**
    assertStmts:
    - condition: (!"unexpected token type")
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 892
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 892
    functionName: validate_token
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 1
    functionsReached:
    - now::cb
    - memcmp
    - abort
    - quicly_cid_is_equal
    - assert
    linkageType: ''
    returnType: int
    signature: "int validate_token(struct sockaddr *remote, ptls_iovec_t client_cid,
      ptls_iovec_t server_cid,\n                          quicly_address_token_plaintext_t
      *token, const char **err_desc)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/quicly/src/cli.c:896,1
    - Dst: signal
      Src: /src/h2o/deps/quicly/src/cli.c:897,1
    - Dst: bind
      Src: /src/h2o/deps/quicly/src/cli.c:899,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:900,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/src/cli.c:911,1
    - Dst: now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:916,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/quicly/src/cli.c:928,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/src/cli.c:929,1
    - Dst: select
      Src: /src/h2o/deps/quicly/src/cli.c:930,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/src/cli.c:931,1
    - Dst: receive_datagram
      Src: /src/h2o/deps/quicly/src/cli.c:935,1
    - Dst: hexdump
      Src: /src/h2o/deps/quicly/src/cli.c:939,1
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/src/cli.c:943,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/src/cli.c:946,1
    - Dst: quicly_is_supported_version
      Src: /src/h2o/deps/quicly/src/cli.c:950,1
    - Dst: quicly_send_version_negotiation
      Src: /src/h2o/deps/quicly/src/cli.c:952,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:954,1
    - Dst: send_one_packet
      Src: /src/h2o/deps/quicly/src/cli.c:955,1
    - Dst: quicly_is_destination
      Src: /src/h2o/deps/quicly/src/cli.c:963,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/src/cli.c:970,1
    - Dst: QUICLY_PACKET_IS_INITIAL
      Src: /src/h2o/deps/quicly/src/cli.c:971,1
    - Dst: quicly_decrypt_address_token
      Src: /src/h2o/deps/quicly/src/cli.c:976,1
    - Dst: validate_token
      Src: /src/h2o/deps/quicly/src/cli.c:979,1
    - Dst: quicly_send_close_invalid_token
      Src: /src/h2o/deps/quicly/src/cli.c:986,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:988,1
    - Dst: send_one_packet
      Src: /src/h2o/deps/quicly/src/cli.c:989,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:997,1
    - Dst: quicly_send_retry
      Src: /src/h2o/deps/quicly/src/cli.c:999,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1001,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1002,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1002,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1003,1
    - Dst: send_one_packet
      Src: /src/h2o/deps/quicly/src/cli.c:1004,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/src/cli.c:1009,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1011,1
    - Dst: realloc
      Src: /src/h2o/deps/quicly/src/cli.c:1013,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1014,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1017,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/src/cli.c:1020,1
    - Dst: quicly_send_stateless_reset
      Src: /src/h2o/deps/quicly/src/cli.c:1026,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1027,1
    - Dst: send_one_packet
      Src: /src/h2o/deps/quicly/src/cli.c:1028,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/src/cli.c:1037,1
    - Dst: now::cb
      Src: /src/h2o/deps/quicly/src/cli.c:1037,1
    - Dst: send_pending
      Src: /src/h2o/deps/quicly/src/cli.c:1038,1
    - Dst: dump_stats
      Src: /src/h2o/deps/quicly/src/cli.c:1039,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/src/cli.c:1040,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/src/cli.c:1041,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 107
    argCount: 3
    argNames:
    - fd
    - sa
    - salen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    assertStmts:
    - condition: (payload_len != SIZE_MAX)
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (conn != NULL)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (payload_len != SIZE_MAX)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (conns != NULL)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (conn == NULL)
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (payload_len != SIZE_MAX)
      pos:
        line_end: 953
        line_start: 953
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (payload_len != SIZE_MAX)
      pos:
        line_end: 987
        line_start: 987
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 1049
    functionName: run_server
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_send_version_negotiation
    - quicly_is_destination
    - FD_ZERO
    - hexdump
    - memmove
    - assert
    - ptls_iovec_init
    - dump_stats
    - now::cb
    - select
    - quicly_send_close_invalid_token
    - send_pending
    - quicly_decrypt_address_token
    - signal
    - send_one_packet
    - quicly_get_first_timeout
    - FD_SET
    - quicly_free
    - quicly_send_stateless_reset
    - realloc
    - perror
    - quicly_accept
    - quicly_receive
    - quicly_decode_packet
    - memcpy
    - quicly_is_supported_version
    - validate_token
    - QUICLY_PACKET_IS_INITIAL
    - FD_ISSET
    - QUICLY_PACKET_IS_LONG_HEADER
    - receive_datagram
    - quicly_send_retry
    - bind
    linkageType: ''
    returnType: int
    signature: int run_server(int fd, struct sockaddr *sa, socklen_t salen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/quicly/src/cli.c:1059,1
    - Dst: fread
      Src: /src/h2o/deps/quicly/src/cli.c:1061,1
    - Dst: feof
      Src: /src/h2o/deps/quicly/src/cli.c:1062,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1063,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1064,1
    - Dst: fclose
      Src: /src/h2o/deps/quicly/src/cli.c:1066,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/src/cli.c:1072,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/src/cli.c:1074,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:1075,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/src/cli.c:1079,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1080,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/src/cli.c:1083,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/deps/quicly/src/cli.c:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1092
    functionName: load_session
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - feof
    - malloc
    - ptls_decode_open_block
    - fread
    - exit
    - memcpy
    - fopen
    - quicly_decode_transport_parameter_list
    - fprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void load_session(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/src/cli.c:1108,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/src/cli.c:1111,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/src/cli.c:1111,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/src/cli.c:1112,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/src/cli.c:1112,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/src/cli.c:1113,1
    - Dst: quicly_encode_transport_parameter_list
      Src: /src/h2o/deps/quicly/src/cli.c:1114,1
    - Dst: fopen
      Src: /src/h2o/deps/quicly/src/cli.c:1119,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1120,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/src/cli.c:1120,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/src/cli.c:1124,1
    - Dst: fclose
      Src: /src/h2o/deps/quicly/src/cli.c:1129,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/src/cli.c:1130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - transport_params
    argTypes:
    - quicly_transport_parameters_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1132
    functionName: save_session
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 2
    functionsReached:
    - fwrite
    - ptls_buffer_dispose
    - ptls_buffer_push_block
    - fopen
    - quicly_encode_transport_parameter_list
    - fprintf
    - fclose
    - strerror
    - ptls_buffer_pushv
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int save_session(const quicly_transport_parameters_t *transport_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/src/cli.c:1136,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1137,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/src/cli.c:1137,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:1138,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/quicly/src/cli.c:1140,1
    - Dst: save_session
      Src: /src/h2o/deps/quicly/src/cli.c:1141,1
    - Dst: quicly_get_remote_transport_parameters
      Src: /src/h2o/deps/quicly/src/cli.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - tls
    - src
    argTypes:
    - ptls_save_ticket_t*
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1142
    functionName: save_session_ticket_cb
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - save_session
    - free
    - ptls_get_data_ptr
    - memcpy
    - quicly_get_remote_transport_parameters
    linkageType: ''
    returnType: int
    signature: int save_session_ticket_cb(ptls_save_ticket_t *_self, ptls_t *tls,
      ptls_iovec_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/src/cli.c:1146,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1147,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/src/cli.c:1147,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/src/cli.c:1148,1
    - Dst: save_session
      Src: /src/h2o/deps/quicly/src/cli.c:1150,1
    - Dst: quicly_get_remote_transport_parameters
      Src: /src/h2o/deps/quicly/src/cli.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - conn
    - token
    argTypes:
    - quicly_save_resumption_token_t*
    - quicly_conn_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1151
    functionName: save_resumption_token_cb
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - save_session
    - free
    - memcpy
    - quicly_get_remote_transport_parameters
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t save_resumption_token_cb(quicly_save_resumption_token_t
      *_self, quicly_conn_t *conn, ptls_iovec_t token)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1166,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/quicly/src/cli.c:1172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - _self
    - tls
    - params
    argTypes:
    - ptls_on_client_hello_t*
    - ptls_t*
    - ptls_on_client_hello_parameters_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1177
    functionName: on_client_hello_cb
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - ptls_set_negotiated_protocol
    - memcmp
    linkageType: ''
    returnType: int
    signature: int on_client_hello_cb(ptls_on_client_hello_t *_self, ptls_t *tls,
      ptls_on_client_hello_parameters_t *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/deps/quicly/src/cli.c:1182,1
    - Dst: quicly_sendstate_is_fully_inflight
      Src: /src/h2o/deps/quicly/src/cli.c:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - unused
    - stream
    argTypes:
    - void*
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1184
    functionName: stream_has_more_to_send
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_stream_has_send_side
    - quicly_sendstate_is_fully_inflight
    linkageType: ''
    returnType: int64_t
    signature: int64_t stream_has_more_to_send(void *unused, quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_foreach_stream
      Src: /src/h2o/deps/quicly/src/cli.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1189
    functionName: conn_has_more_to_send
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_foreach_stream
    linkageType: ''
    returnType: int
    signature: int conn_has_more_to_send(quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_has_more_to_send
      Src: /src/h2o/deps/quicly/src/cli.c:1193,1
    - Dst: do_send
      Src: /src/h2o/deps/quicly/src/cli.c:1197,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/src/cli.c:1200,1
    - Dst: conn_has_more_to_send
      Src: /src/h2o/deps/quicly/src/cli.c:1200,1
    - Dst: quicly_send_resumption_token
      Src: /src/h2o/deps/quicly/src/cli.c:1201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - sched
    - conn
    - s
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1204
    functionName: scheduler_do_send
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - do_send
    - conn_has_more_to_send
    - quicly_send_resumption_token
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t scheduler_do_send(quicly_stream_scheduler_t *sched,
      quicly_conn_t *conn, quicly_send_context_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/src/cli.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1285
    functionName: usage
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1297
    functionName: decode_hex
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_hex(int ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:1302,1
    - Dst: decode_hex
      Src: /src/h2o/deps/quicly/src/cli.c:1310,1
    - Dst: decode_hex
      Src: /src/h2o/deps/quicly/src/cli.c:1310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - dst
    - capacity
    - src
    - srclen
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1316
    functionName: decode_hexstring
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - decode_hex
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t decode_hexstring(uint8_t *dst, size_t capacity, const char *src,
      size_t srclen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_hexstring
      Src: /src/h2o/deps/quicly/src/cli.c:1325,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1326,1
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/src/cli.c:1331,1
    - Dst: quicly_calc_initial_keys
      Src: /src/h2o/deps/quicly/src/cli.c:1332,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1332,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1333,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1334,1
    - Dst: printf
      Src: /src/h2o/deps/quicly/src/cli.c:1338,1
    - Dst: quicly_hexdump
      Src: /src/h2o/deps/quicly/src/cli.c:1338,1
    - Dst: quicly_hexdump
      Src: /src/h2o/deps/quicly/src/cli.c:1339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - dcid_hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1342
    functionName: cmd_calc_initial_secret
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_calc_initial_keys
    - decode_hexstring
    - quicly_get_salt
    - printf
    - fprintf
    - quicly_hexdump
    linkageType: ''
    returnType: int
    signature: int cmd_calc_initial_secret(const char *dcid_hex)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/src/cli.c:1367,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/src/cli.c:1374,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1394,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1398,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - input
    - packet_size
    - epoch
    - short_packet_dcid_len
    argTypes:
    - ptls_iovec_t
    - size_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1400
    functionName: determine_pn_offset
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - quicly_decodev
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t determine_pn_offset(ptls_iovec_t input, size_t *packet_size,
      size_t *epoch, size_t short_packet_dcid_len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/quicly/src/cli.c:1412,1
    - Dst: decode_hexstring
      Src: /src/h2o/deps/quicly/src/cli.c:1413,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:1414,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1415,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1419,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1420,1
    - Dst: fread
      Src: /src/h2o/deps/quicly/src/cli.c:1426,1
    - Dst: ferror
      Src: /src/h2o/deps/quicly/src/cli.c:1427,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1428,1
    - Dst: feof
      Src: /src/h2o/deps/quicly/src/cli.c:1430,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1431,1
    - Dst: determine_pn_offset
      Src: /src/h2o/deps/quicly/src/cli.c:1434,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1434,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1437,1
    - Dst: quicly_crypto_engine_t*::setup_cipher
      Src: /src/h2o/deps/quicly/src/cli.c:1442,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1443,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1451,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1455,1
    - Dst: quicly_crypto_engine_t*::encrypt_packet
      Src: /src/h2o/deps/quicly/src/cli.c:1458,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1458,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/src/cli.c:1460,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1463,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/quicly/src/cli.c:1468,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/src/cli.c:1469,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/src/cli.c:1470,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/quicly/src/cli.c:1478,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1480,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/src/cli.c:1484,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 2
    argNames:
    - is_enc
    - secret_dcid_len
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1402
    functionDepth: 2
    functionLinenumber: 1402
    functionLinenumberEnd: 1488
    functionName: cmd_encrypt_packet
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - feof
    - perror
    - decode_hexstring
    - fwrite
    - ferror
    - determine_pn_offset
    - fread
    - quicly_crypto_engine_t*::encrypt_packet
    - QUICLY_PACKET_IS_LONG_HEADER
    - ptls_cipher_encrypt
    - ptls_cipher_init
    - sscanf
    - fprintf
    - strchr
    - quicly_crypto_engine_t*::setup_cipher
    - strlen
    - ptls_aead_decrypt
    linkageType: ''
    returnType: int
    signature: int cmd_encrypt_packet(int is_enc, const char *secret_dcid_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/quicly/src/cli.c:1495,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/src/cli.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - to_file
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1499
    functionName: push_req
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - realloc
    - memset
    linkageType: ''
    returnType: void
    signature: void push_req(const char *path, int to_file)
  - BBCount: 112
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/h2o/deps/quicly/src/cli.c:1509,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/quicly/src/cli.c:1510,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/src/cli.c:1512,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/src/cli.c:1513,1
    - Dst: setup_session_cache
      Src: /src/h2o/deps/quicly/src/cli.c:1524,1
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/deps/quicly/src/cli.c:1525,1
    - Dst: tls::random_bytes
      Src: /src/h2o/deps/quicly/src/cli.c:1529,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/quicly/src/cli.c:1530,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/quicly/src/cli.c:1531,1
    - Dst: getopt_long
      Src: /src/h2o/deps/quicly/src/cli.c:1548,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1552,1
    - Dst: ech_setup_key
      Src: /src/h2o/deps/quicly/src/cli.c:1553,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1554,1
    - Dst: ech_setup_configs
      Src: /src/h2o/deps/quicly/src/cli.c:1555,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1556,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1558,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1560,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1561,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1562,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1563,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1565,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1566,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1567,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1568,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1570,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1571,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1572,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1573,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1575,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1577,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1578,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1579,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1580,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1582,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1584,1
    - Dst: cmd_calc_initial_secret
      Src: /src/h2o/deps/quicly/src/cli.c:1585,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1586,1
    - Dst: cmd_encrypt_packet
      Src: /src/h2o/deps/quicly/src/cli.c:1587,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1588,1
    - Dst: cmd_encrypt_packet
      Src: /src/h2o/deps/quicly/src/cli.c:1589,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1591,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/src/cli.c:1595,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/src/cli.c:1595,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1596,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:1596,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1599,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1600,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1601,1
    - Dst: alloca
      Src: /src/h2o/deps/quicly/src/cli.c:1612,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:1612,1
    - Dst: strcpy
      Src: /src/h2o/deps/quicly/src/cli.c:1613,1
    - Dst: strsep
      Src: /src/h2o/deps/quicly/src/cli.c:1615,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1617,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1622,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1623,1
    - Dst: strsep
      Src: /src/h2o/deps/quicly/src/cli.c:1626,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1627,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1628,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1629,1
    - Dst: strsep
      Src: /src/h2o/deps/quicly/src/cli.c:1633,1
    - Dst: strcmp
      Src: /src/h2o/deps/quicly/src/cli.c:1634,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1637,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1638,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1646,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1647,1
    - Dst: load_private_key
      Src: /src/h2o/deps/quicly/src/cli.c:1651,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1655,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1656,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1657,1
    - Dst: open
      Src: /src/h2o/deps/quicly/src/cli.c:1669,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1670,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/src/cli.c:1670,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1671,1
    - Dst: ptls_log_add_fd
      Src: /src/h2o/deps/quicly/src/cli.c:1673,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1678,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1679,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1680,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1685,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1686,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1687,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1691,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1692,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1693,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1696,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1697,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1698,1
    - Dst: setup_log_event
      Src: /src/h2o/deps/quicly/src/cli.c:1702,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1706,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1707,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1708,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1715,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1716,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1717,1
    - Dst: validate_path
      Src: /src/h2o/deps/quicly/src/cli.c:1731,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1732,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1733,1
    - Dst: push_req
      Src: /src/h2o/deps/quicly/src/cli.c:1735,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1741,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1742,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1743,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1747,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1748,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1749,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1756,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1757,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1758,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1762,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1763,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1764,1
    - Dst: setup_verify_certificate
      Src: /src/h2o/deps/quicly/src/cli.c:1768,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/quicly/src/cli.c:1779,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1782,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1783,1
    - Dst: sscanf
      Src: /src/h2o/deps/quicly/src/cli.c:1790,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1791,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1792,1
    - Dst: MATCH
      Src: /src/h2o/deps/quicly/src/cli.c:1803,1
    - Dst: MATCH
      Src: /src/h2o/deps/quicly/src/cli.c:1804,1
    - Dst: MATCH
      Src: /src/h2o/deps/quicly/src/cli.c:1806,1
    - Dst: MATCH
      Src: /src/h2o/deps/quicly/src/cli.c:1807,1
    - Dst: MATCH
      Src: /src/h2o/deps/quicly/src/cli.c:1809,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1813,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1814,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/src/cli.c:1818,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1819,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1827,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1828,1
    - Dst: push_req
      Src: /src/h2o/deps/quicly/src/cli.c:1832,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1858,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1874,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1875,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/src/cli.c:1878,1
    - Dst: load_raw_public_key
      Src: /src/h2o/deps/quicly/src/cli.c:1879,1
    - Dst: load_certificate_chain
      Src: /src/h2o/deps/quicly/src/cli.c:1883,1
    - Dst: load_raw_public_key
      Src: /src/h2o/deps/quicly/src/cli.c:1891,1
    - Dst: d2i_PUBKEY
      Src: /src/h2o/deps/quicly/src/cli.c:1892,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1894,1
    - Dst: setup_raw_pubkey_verify_certificate
      Src: /src/h2o/deps/quicly/src/cli.c:1897,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/quicly/src/cli.c:1898,1
    - Dst: load_session
      Src: /src/h2o/deps/quicly/src/cli.c:1904,1
    - Dst: random_bytes
      Src: /src/h2o/deps/quicly/src/cli.c:1912,1
    - Dst: ptls_fusion_is_supported_by_cpu
      Src: /src/h2o/deps/quicly/src/cli.c:1917,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/src/cli.c:1920,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/src/cli.c:1920,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/src/cli.c:1923,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1924,1
    - Dst: resolve_address
      Src: /src/h2o/deps/quicly/src/cli.c:1929,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/src/cli.c:1930,1
    - Dst: socket
      Src: /src/h2o/deps/quicly/src/cli.c:1932,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1933,1
    - Dst: fcntl
      Src: /src/h2o/deps/quicly/src/cli.c:1936,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1939,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1940,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1946,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1947,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1951,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1952,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1959,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1960,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1965,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1966,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1972,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1973,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1980,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1981,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1986,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1987,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/src/cli.c:1994,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/src/cli.c:1995,1
    - Dst: run_server
      Src: /src/h2o/deps/quicly/src/cli.c:2003,1
    - Dst: run_client
      Src: /src/h2o/deps/quicly/src/cli.c:2003,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 432
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (negotiated_protocols.count < PTLS_ELEMENTSOF(negotiated_protocols.list))
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/h2o/deps/quicly/src/cli.c
    - condition: (!"unexpected longname")
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/h2o/deps/quicly/src/cli.c
    constantsTouched: []
    func_position:
      end: 2004
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 2004
    functionName: main
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - ERR_load_crypto_strings
    - cmd_encrypt_packet
    - getopt_long
    - run_client
    - ptls_aead_new
    - setup_log_event
    - sscanf
    - load_certificate_chain
    - cmd_calc_initial_secret
    - ech_setup_key
    - assert
    - ptls_iovec_init
    - push_req
    - setsockopt
    - validate_path
    - setup_raw_pubkey_verify_certificate
    - fprintf
    - usage
    - load_raw_public_key
    - strerror
    - memset
    - setup_session_cache
    - ptls_log_add_fd
    - run_server
    - strcpy
    - EVP_PKEY_free
    - malloc
    - MATCH
    - perror
    - random_bytes
    - ptls_fusion_is_supported_by_cpu
    - setup_verify_certificate
    - exit
    - fcntl
    - OpenSSL_add_all_algorithms
    - alloca
    - load_private_key
    - strlen
    - ech_setup_configs
    - strsep
    - tls::random_bytes
    - d2i_PUBKEY
    - strcmp
    - quicly_amend_ptls_context
    - resolve_address
    - load_session
    - strcasecmp
    - socket
    - open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - engine
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1802
    functionName: MATCH
    functionSourceFile: /src/h2o/deps/quicly/src/cli.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH(name, engine)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - first_byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: QUICLY_PACKET_IS_LONG_HEADER
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PACKET_IS_LONG_HEADER(first_byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - first_byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: QUICLY_PACKET_IS_INITIAL
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PACKET_IS_INITIAL(first_byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ret
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: QUICLY_CALLBACK_TYPE0
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_CALLBACK_TYPE0(ret, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: QUICLY_CALLBACK_TYPE
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_CALLBACK_TYPE(ret, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 716
    functionName: token_sent
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "struct {                                                                                                                       \\\n
      \       /**                                                                                                                        \\\n
      \        * when sent, relative to the creation time of the connection                                                              \\\n
      \        */                                                                                                                        \\\n
      \       int64_t at;                                                                                                                \\\n
      \       /**                                                                                                                        \\\n
      \        * delivery rate                                                                                                           \\\n
      \        */                                                                                                                        \\\n
      \       uint64_t rate;                                                                                                             \\\n
      \       /**                                                                                                                        \\\n
      \        * rtt                                                                                                                     \\\n
      \        */                                                                                                                        \\\n
      \       uint32_t rtt;                                                                                                              \\\n
      \   }"
    signature: "struct {                                                                                                                       \\\n
      \       /**                                                                                                                        \\\n
      \        * when sent, relative to the creation time of the connection                                                              \\\n
      \        */                                                                                                                        \\\n
      \       int64_t at;                                                                                                                \\\n
      \       /**                                                                                                                        \\\n
      \        * delivery rate                                                                                                           \\\n
      \        */                                                                                                                        \\\n
      \       uint64_t rate;                                                                                                             \\\n
      \       /**                                                                                                                        \\\n
      \        * rtt                                                                                                                     \\\n
      \        */                                                                                                                        \\\n
      \       uint32_t rtt;                                                                                                              \\\n
      \   } token_sent"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 745
    functionName: QUICLY_STATS_FOREACH_NUM_PACKETS
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_NUM_PACKETS(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 753
    functionName: QUICLY_STATS_FOREACH_NUM_BYTES
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_NUM_BYTES(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - dir
    - ','
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: QUICLY_STATS__DO_FOREACH_NUM_FRAMES
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS__DO_FOREACH_NUM_FRAMES(name, dir, apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dir
    - ','
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 783
    functionName: QUICLY_STATS_FOREACH_NUM_FRAMES
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_NUM_FRAMES(dir, apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 800
    functionName: QUICLY_STATS_FOREACH_TRANSPORT_COUNTERS
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_TRANSPORT_COUNTERS(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 810
    functionName: QUICLY_STATS_FOREACH_COUNTERS
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_COUNTERS(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 845
    functionName: QUICLY_STATS_FOREACH_NON_COUNTERS
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH_NON_COUNTERS(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 849
    functionName: QUICLY_STATS_FOREACH
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_STATS_FOREACH(apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _conn
    - ','
    - _block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1624
    functionName: QUICLY_LOG_CONN
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_LOG_CONN(_name, _conn, _block)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1637
    functionName: quicly_is_supported_version
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_is_supported_version(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1643
    functionName: quicly_get_state
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: quicly_state_t
    signature: quicly_state_t quicly_get_state(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1649
    functionName: quicly_num_streams
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_num_streams(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1655
    functionName: quicly_get_context
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: quicly_context_t
    signature: quicly_context_t *quicly_get_context(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1661
    functionName: quicly_get_master_id
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: quicly_cid_plaintext_t
    signature: quicly_cid_plaintext_t *quicly_get_master_id(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    functionName: quicly_get_original_dcid
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: quicly_cid_t
    signature: quicly_cid_t *quicly_get_original_dcid(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    functionName: quicly_get_remote_cid
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_cid_t
    signature: quicly_cid_t *quicly_get_remote_cid(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1679
    functionName: quicly_get_remote_transport_parameters
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: quicly_transport_parameters_t
    signature: quicly_transport_parameters_t *quicly_get_remote_transport_parameters(quicly_conn_t
      *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1685
    functionName: quicly_is_client
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_is_client(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - uni
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1691
    functionName: quicly_get_local_next_stream_id
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_stream_id_t
    signature: quicly_stream_id_t quicly_get_local_next_stream_id(quicly_conn_t *conn,
      int uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - uni
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1697
    functionName: quicly_get_remote_next_stream_id
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_stream_id_t
    signature: quicly_stream_id_t quicly_get_remote_next_stream_id(quicly_conn_t *conn,
      int uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1703
    functionName: quicly_get_protocol_version
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_get_protocol_version(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    functionName: quicly_get_data
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void **quicly_get_data(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1715
    functionName: quicly_get_tracer
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_tracer_t
    signature: quicly_tracer_t *quicly_get_tracer(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1720
    functionName: quicly_stop_requested
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_stop_requested(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1722
    functionDepth: 0
    functionLinenumber: 1722
    functionLinenumberEnd: 1725
    functionName: quicly_stream_get_receive_window
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_stream_get_receive_window(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - window
    argTypes:
    - quicly_stream_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1730
    functionName: quicly_stream_set_receive_window
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_set_receive_window(quicly_stream_t *stream, uint32_t
      window)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream_id
    argTypes:
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1732
    functionDepth: 0
    functionLinenumber: 1732
    functionLinenumberEnd: 1737
    functionName: quicly_stream_is_client_initiated
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_stream_is_client_initiated(quicly_stream_id_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream_id
    argTypes:
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1744
    functionName: quicly_stream_is_unidirectional
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_stream_is_unidirectional(quicly_stream_id_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/include/quicly.h:1748,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/deps/quicly/include/quicly.h:1750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - is_client
    - stream_id
    argTypes:
    - int
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1751
    functionName: quicly_stream_has_send_side
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 1
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_stream_is_unidirectional
    linkageType: ''
    returnType: int
    signature: int quicly_stream_has_send_side(int is_client, quicly_stream_id_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/include/quicly.h:1755,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/deps/quicly/include/quicly.h:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - is_client
    - stream_id
    argTypes:
    - int
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1753
    functionDepth: 1
    functionLinenumber: 1753
    functionLinenumberEnd: 1758
    functionName: quicly_stream_has_receive_side
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_stream_is_unidirectional
    linkageType: ''
    returnType: int
    signature: int quicly_stream_has_receive_side(int is_client, quicly_stream_id_t
      stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/deps/quicly/include/quicly.h:1762,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/include/quicly.h:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1763
    functionName: quicly_stream_is_self_initiated
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_is_client
    linkageType: ''
    returnType: int
    signature: int quicly_stream_is_self_initiated(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - v
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1765
    functionDepth: 0
    functionLinenumber: 1765
    functionLinenumberEnd: 1769
    functionName: quicly_byte_to_hex
    functionSourceFile: /src/h2o/deps/quicly/include/quicly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_byte_to_hex(char *dst, uint8_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cc
    - lost_bytes
    - lost_pn
    argTypes:
    - quicly_cc_t*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: quicly_cc__update_ecn_episodes
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_cc__update_ecn_episodes(quicly_cc_t *cc, uint32_t lost_bytes,
      uint64_t lost_pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cc
    argTypes:
    - quicly_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: quicly_cc_jumpstart_reset
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_cc_jumpstart_reset(quicly_cc_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - quicly_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: quicly_cc_in_jumpstart
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_cc_in_jumpstart(quicly_cc_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - pn
    argTypes:
    - quicly_cc_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: quicly_cc_is_jumpstart_ack
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_cc_is_jumpstart_ack(quicly_cc_t *cc, uint64_t pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cc
    - jump_cwnd
    - next_pn
    argTypes:
    - quicly_cc_t*
    - uint32_t
    - uint64_t
    assertStmts:
    - condition: (cc->cwnd < jump_cwnd)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: quicly_cc_jumpstart_enter
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_cc_jumpstart_enter(quicly_cc_t *cc, uint32_t jump_cwnd,
      uint64_t next_pn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_is_jumpstart_ack
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:381,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - cc
    - in_recovery
    - bytes
    - largest_acked
    - inflight
    - next_pn
    argTypes:
    - quicly_cc_t*
    - int
    - uint32_t
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts:
    - condition: (cc->cwnd < cc->ssthresh)
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: quicly_cc_jumpstart_on_acked
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached:
    - assert
    - quicly_cc_is_jumpstart_ack
    linkageType: ''
    returnType: void
    signature: "void quicly_cc_jumpstart_on_acked(quicly_cc_t *cc, int in_recovery,
      uint32_t bytes, uint64_t largest_acked,\n                                         uint32_t
      inflight, uint64_t next_pn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - cc
    - lost_pn
    - skip_cwnd_adjust
    argTypes:
    - quicly_cc_t*
    - uint64_t
    - int
    assertStmts:
    - condition: (cc->cwnd < cc->ssthresh)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: quicly_cc_jumpstart_on_first_loss
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_cc_jumpstart_on_first_loss(quicly_cc_t *cc, uint64_t lost_pn,
      int skip_cwnd_adjust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rs
    - now
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: quicly_cc_init_rapid_start
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void quicly_cc_init_rapid_start(struct st_quicly_cc_rapid_start_t *rs,
      int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: quicly_cc_rapid_start_is_enabled
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_cc_rapid_start_is_enabled(struct st_quicly_cc_rapid_start_t
      *rs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:439,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:452,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:456,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - rs
    - rtt
    - now
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    - quicly_rtt_t*
    - int64_t
    assertStmts:
    - condition: (rs->newest_rtt_sample_until - sample_duration <= now && now < rs->newest_rtt_sample_until)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 463
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 463
    functionName: quicly_cc_rapid_start_update_rtt
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_cc_rapid_start_update_rtt(struct st_quicly_cc_rapid_start_t
      *rs, const quicly_rtt_t *rtt, int64_t now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - rs
    - rtt
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    - quicly_rtt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: quicly_cc_rapid_start_use_3x
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: int
    signature: int quicly_cc_rapid_start_use_3x(struct st_quicly_cc_rapid_start_t
      *rs, const quicly_rtt_t *rtt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - rs
    - cwnd
    - cwnd_floor
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    - uint32_t*
    - uint32_t
    assertStmts:
    - condition: (rs->newest_rtt_sample_until > 0)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 500
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 500
    functionName: quicly_cc_rapid_start_on_first_lost
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_cc_rapid_start_on_first_lost(struct st_quicly_cc_rapid_start_t
      *rs, uint32_t *cwnd, uint32_t cwnd_floor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cc.h:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - rs
    - cwnd
    - bytes_acked
    - bytes_lost
    argTypes:
    - struct st_quicly_cc_rapid_start_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (rs->newest_rtt_sample_until == -1)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    constantsTouched: []
    func_position:
      end: 513
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 513
    functionName: quicly_cc_rapid_start_on_recovery
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cc.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void quicly_cc_rapid_start_on_recovery(struct st_quicly_cc_rapid_start_t
      *rs, uint32_t *cwnd, uint32_t bytes_acked,\n                                              uint32_t
      bytes_lost)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rtt
    - conf
    - initial_rtt
    argTypes:
    - quicly_rtt_t*
    - quicly_loss_conf_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: quicly_rtt_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_rtt_init(quicly_rtt_t *rtt, const quicly_loss_conf_t *conf,
      uint32_t initial_rtt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:229,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - rtt
    - latest_rtt
    - ack_delay
    argTypes:
    - quicly_rtt_t*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (latest_rtt != UINT32_MAX)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    - condition: (rtt->smoothed != 0)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    constantsTouched: []
    func_position:
      end: 250
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 250
    functionName: quicly_rtt_update
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_rtt_update(quicly_rtt_t *rtt, uint32_t latest_rtt, uint32_t
      ack_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rtt
    - max_ack_delay
    - min_pto
    argTypes:
    - quicly_rtt_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: quicly_rtt_get_pto
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_rtt_get_pto(quicly_rtt_t *rtt, uint32_t max_ack_delay,
      uint32_t min_pto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_rtt_init
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:271,1
    - Dst: quicly_sentmap_init
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - r
    - conf
    - initial_rtt
    - max_ack_delay
    - ack_delay_exponent
    argTypes:
    - quicly_loss_t*
    - quicly_loss_conf_t*
    - uint32_t
    - uint16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 273
    functionName: quicly_loss_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 4
    functionsReached:
    - quicly_rtt_init
    - quicly_sentmap_init
    linkageType: ''
    returnType: void
    signature: "void quicly_loss_init(quicly_loss_t *r, const quicly_loss_conf_t *conf,
      uint32_t initial_rtt, const uint16_t *max_ack_delay,\n                             const
      uint8_t *ack_delay_exponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sentmap_dispose
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - quicly_loss_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: quicly_loss_dispose
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 4
    functionsReached:
    - quicly_sentmap_dispose
    linkageType: ''
    returnType: void
    signature: void quicly_loss_dispose(quicly_loss_t *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:290,1
    - Dst: SET_ALARM
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:305,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:311,1
    - Dst: quicly_rtt_get_pto
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:335,1
    - Dst: quicly_rtt_get_pto
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:342,1
    - Dst: SET_ALARM
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:345,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 8
    argNames:
    - r
    - now
    - last_retransmittable_sent_at
    - has_outstanding
    - can_send_stream_data
    - handshake_is_in_progress
    - total_bytes_sent
    - is_after_send
    argTypes:
    - quicly_loss_t*
    - int64_t
    - int64_t
    - int
    - int
    - int
    - uint64_t
    - int
    assertStmts:
    - condition: (last_retransmittable_sent_at != INT64_MAX)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    - condition: (r->pto_count < 63)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    constantsTouched: []
    func_position:
      end: 348
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 348
    functionName: quicly_loss_update_alarm
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 1
    functionsReached:
    - quicly_rtt_get_pto
    - assert
    - SET_ALARM
    linkageType: ''
    returnType: void
    signature: "void quicly_loss_update_alarm(quicly_loss_t *r, int64_t now, int64_t
      last_retransmittable_sent_at, int has_outstanding,\n                                     int
      can_send_stream_data, int handshake_is_in_progress, uint64_t total_bytes_sent,\n
      \                                    int is_after_send)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: SET_ALARM
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALARM(t)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: quicly_rtt_update
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:388,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 9
    argNames:
    - r
    - largest_newly_acked
    - largest_late_acked
    - next_pn
    - epoch
    - now
    - sent_at
    - ack_delay_encoded
    - kind
    argTypes:
    - quicly_loss_t*
    - uint64_t
    - uint64_t
    - uint64_t
    - size_t
    - int64_t
    - int64_t
    - uint64_t
    - quicly_loss_ack_received_kind_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 390
    functionName: quicly_loss_on_ack_received
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 2
    functionsReached:
    - quicly_rtt_update
    linkageType: ''
    returnType: void
    signature: "void quicly_loss_on_ack_received(quicly_loss_t *r, uint64_t largest_newly_acked,
      uint64_t largest_late_acked,\n                                        uint64_t
      next_pn, size_t epoch, int64_t now, int64_t sent_at, uint64_t ack_delay_encoded,\n
      \                                       quicly_loss_ack_received_kind_t kind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - r
    - now
    - max_ack_delay
    - is_1rtt_only
    - min_packets_to_send
    - restrict_sending
    - on_loss_detected
    argTypes:
    - quicly_loss_t*
    - int64_t
    - uint32_t
    - int
    - size_t*
    - int*
    - quicly_loss_on_detect_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: quicly_loss_on_alarm
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 1
    functionsReached:
    - quicly_loss_detect_loss
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_loss_on_alarm(quicly_loss_t *r, int64_t now,
      uint32_t max_ack_delay, int is_1rtt_only,\n                                           size_t
      *min_packets_to_send, int *restrict_sending,\n                                           quicly_loss_on_detect_cb
      on_loss_detected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_rtt_get_pto
      Src: /src/h2o/deps/quicly/include/quicly/loss.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - loss
    - max_ack_delay
    argTypes:
    - quicly_loss_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: quicly_loss_get_sentmap_expiration_time
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/loss.h
    functionUses: 0
    functionsReached:
    - quicly_rtt_get_pto
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_loss_get_sentmap_expiration_time(quicly_loss_t *loss,
      uint32_t max_ack_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - quicly_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: quicly_linklist_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/linklist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_linklist_init(quicly_linklist_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - quicly_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: quicly_linklist_is_linked
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/linklist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_linklist_is_linked(quicly_linklist_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/linklist.h:56,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/include/quicly/linklist.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - prev
    - n
    argTypes:
    - quicly_linklist_t*
    - quicly_linklist_t*
    assertStmts:
    - condition: (!quicly_linklist_is_linked(n))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly/linklist.h
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: quicly_linklist_insert
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/linklist.h
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_linklist_insert(quicly_linklist_t *prev, quicly_linklist_t
      *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/include/quicly/linklist.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - quicly_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: quicly_linklist_unlink
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/linklist.h
    functionUses: 0
    functionsReached:
    - quicly_linklist_init
    linkageType: ''
    returnType: void
    signature: void quicly_linklist_unlink(quicly_linklist_t *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/include/quicly/linklist.h:72,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/include/quicly/linklist.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - prev
    - l
    argTypes:
    - quicly_linklist_t*
    - quicly_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: quicly_linklist_insert_list
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/linklist.h
    functionUses: 0
    functionsReached:
    - quicly_linklist_init
    - quicly_linklist_is_linked
    linkageType: ''
    returnType: void
    signature: void quicly_linklist_insert_list(quicly_linklist_t *prev, quicly_linklist_t
      *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - quicly_sendbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: quicly_sendbuf_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void quicly_sendbuf_init(quicly_sendbuf_t *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_shift
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: quicly_streambuf_egress_shift
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 0
    functionsReached:
    - quicly_sendbuf_shift
    linkageType: ''
    returnType: void
    signature: void quicly_streambuf_egress_shift(quicly_stream_t *stream, size_t
      delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_write
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: quicly_streambuf_egress_write
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 10
    functionsReached:
    - quicly_sendbuf_write
    linkageType: ''
    returnType: int
    signature: int quicly_streambuf_egress_write(quicly_stream_t *stream, const void
      *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_write_vec
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - vec
    argTypes:
    - quicly_stream_t*
    - quicly_sendbuf_vec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: quicly_streambuf_egress_write_vec
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 2
    functionsReached:
    - quicly_sendbuf_write_vec
    linkageType: ''
    returnType: int
    signature: int quicly_streambuf_egress_write_vec(quicly_stream_t *stream, quicly_sendbuf_vec_t
      *vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvbuf_shift
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: quicly_streambuf_ingress_shift
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 8
    functionsReached:
    - quicly_recvbuf_shift
    linkageType: ''
    returnType: void
    signature: void quicly_streambuf_ingress_shift(quicly_stream_t *stream, size_t
      delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvbuf_get
      Src: /src/h2o/deps/quicly/include/quicly/streambuf.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: quicly_streambuf_ingress_get
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/streambuf.h
    functionUses: 3
    functionsReached:
    - quicly_recvbuf_get
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t quicly_streambuf_ingress_get(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - quicly_sentmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: quicly_sentmap_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_sentmap_init(quicly_sentmap_t *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - quicly_sentmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: quicly_sentmap_is_open
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_sentmap_is_open(quicly_sentmap_t *map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:305,1
    - Dst: quicly_sentmap_is_open
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - map
    - bytes_in_flight
    - cc_limited
    - promoted_path
    argTypes:
    - quicly_sentmap_t*
    - uint16_t
    - int
    - int
    assertStmts:
    - condition: (quicly_sentmap_is_open(map))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    constantsTouched: []
    func_position:
      end: 321
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 321
    functionName: quicly_sentmap_commit
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 6
    functionsReached:
    - quicly_sentmap_is_open
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_sentmap_commit(quicly_sentmap_t *map, uint16_t bytes_in_flight,
      int cc_limited, int promoted_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:327,1
    - Dst: quicly_sentmap__new_block
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - map
    - acked
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_acked_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: quicly_sentmap_allocate
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 3
    functionsReached:
    - PTLS_ELEMENTSOF
    - quicly_sentmap__new_block
    linkageType: ''
    returnType: quicly_sent_t
    signature: quicly_sent_t *quicly_sentmap_allocate(quicly_sentmap_t *map, quicly_sent_acked_cb
      acked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:345,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - quicly_sentmap_t*
    - quicly_sentmap_iter_t*
    assertStmts:
    - condition: (map->head->num_entries != 0)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - condition: (iter->p->acked == quicly_sentmap__type_packet)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    constantsTouched: []
    func_position:
      end: 354
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 354
    functionName: quicly_sentmap_init_iter
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_sentmap_init_iter(quicly_sentmap_t *map, quicly_sentmap_iter_t
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/sentmap.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - quicly_sentmap_iter_t*
    assertStmts:
    - condition: (iter->p->acked == quicly_sentmap__type_packet)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: quicly_sentmap_get
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sentmap.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_sent_packet_t
    signature: quicly_sent_packet_t *quicly_sentmap_get(quicly_sentmap_iter_t *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - quicly_ranges_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: quicly_ranges_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/ranges.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_ranges_init(quicly_ranges_t *ranges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/include/quicly/ranges.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - quicly_ranges_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: quicly_ranges_clear
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/ranges.h
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void quicly_ranges_clear(quicly_ranges_t *ranges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - m
    - initial_value
    argTypes:
    - quicly_maxsender_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: quicly_maxsender_init
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_init(quicly_maxsender_t *m, int64_t initial_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - quicly_maxsender_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: quicly_maxsender_dispose
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_dispose(quicly_maxsender_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - quicly_maxsender_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: quicly_maxsender_request_transmit
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_request_transmit(quicly_maxsender_t *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - m
    - buffered_from
    - window_size
    - update_ratio
    argTypes:
    - quicly_maxsender_t*
    - int64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: quicly_maxsender_should_send_max
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quicly_maxsender_should_send_max(quicly_maxsender_t *m, int64_t
      buffered_from, uint32_t window_size,\n                                            uint32_t
      update_ratio)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - local_max
    argTypes:
    - quicly_maxsender_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: quicly_maxsender_should_send_blocked
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_maxsender_should_send_blocked(quicly_maxsender_t *m, int64_t
      local_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/maxsender.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - m
    - value
    - sent
    argTypes:
    - quicly_maxsender_t*
    - int64_t
    - quicly_maxsender_sent_t*
    assertStmts:
    - condition: (value >= m->max_committed)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: quicly_maxsender_record
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_record(quicly_maxsender_t *m, int64_t value,
      quicly_maxsender_sent_t *sent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/maxsender.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - m
    - sent
    argTypes:
    - quicly_maxsender_t*
    - quicly_maxsender_sent_t*
    assertStmts:
    - condition: (m->num_inflight != 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: quicly_maxsender_acked
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_acked(quicly_maxsender_t *m, quicly_maxsender_sent_t
      *sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/maxsender.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - m
    - sent
    argTypes:
    - quicly_maxsender_t*
    - quicly_maxsender_sent_t*
    assertStmts:
    - condition: (m->num_inflight != 0)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: quicly_maxsender_lost
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/maxsender.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_maxsender_lost(quicly_maxsender_t *m, quicly_maxsender_sent_t
      *sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pacer
    argTypes:
    - quicly_pacer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: quicly_pacer_reset
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/pacer.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_pacer_reset(quicly_pacer_t *pacer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/pacer.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pacer
    - bytes_per_msec
    - mtu
    argTypes:
    - quicly_pacer_t*
    - uint32_t
    - uint16_t
    assertStmts:
    - condition: (delay > 0)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: quicly_pacer_can_send_at
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/pacer.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_pacer_can_send_at(quicly_pacer_t *pacer, uint32_t bytes_per_msec,
      uint16_t mtu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/pacer.h:97,1
    - Dst: quicly_pacer_can_send_at
      Src: /src/h2o/deps/quicly/include/quicly/pacer.h:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pacer
    - now
    - bytes_per_msec
    - mtu
    argTypes:
    - quicly_pacer_t*
    - int64_t
    - uint32_t
    - uint16_t
    assertStmts:
    - condition: (pacer->at <= now)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
    constantsTouched: []
    func_position:
      end: 132
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 132
    functionName: quicly_pacer_get_window
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/pacer.h
    functionUses: 1
    functionsReached:
    - quicly_pacer_can_send_at
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quicly_pacer_get_window(quicly_pacer_t *pacer, int64_t now,
      uint32_t bytes_per_msec, uint16_t mtu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pacer
    - delta
    argTypes:
    - quicly_pacer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: quicly_pacer_consume_window
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/pacer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_pacer_consume_window(quicly_pacer_t *pacer, size_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - multiplier
    - cwnd
    - rtt
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: quicly_pacer_calc_send_rate
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/pacer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_pacer_calc_send_rate(uint32_t multiplier, uint32_t
      cwnd, uint32_t rtt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - quicly_ratemeter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: quicly_ratemeter_is_cc_limited
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/rate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_ratemeter_is_cc_limited(quicly_ratemeter_t *meter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_recvstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: quicly_recvstate_transfer_complete
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/recvstate.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_recvstate_transfer_complete(quicly_recvstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/include/quicly/recvstate.h:71,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/recvstate.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_recvstate_t*
    assertStmts:
    - condition: (state->data_off <= total)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/quicly/include/quicly/recvstate.h
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: quicly_recvstate_bytes_available
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/recvstate.h
    functionUses: 0
    functionsReached:
    - quicly_recvstate_transfer_complete
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_recvstate_bytes_available(quicly_recvstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - quicly_local_cid_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: quicly_local_cid_get_size
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/local_cid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_local_cid_get_size(const quicly_local_cid_set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: quicly_sendstate_transfer_complete
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sendstate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_transfer_complete(quicly_sendstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: quicly_sendstate_is_open
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sendstate.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_is_open(quicly_sendstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: quicly_sendstate_is_fully_inflight
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/sendstate.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_is_fully_inflight(quicly_sendstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/include/quicly/cid.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cid
    - vec
    argTypes:
    - quicly_cid_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: quicly_cid_is_equal
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cid.h
    functionUses: 3
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int quicly_cid_is_equal(const quicly_cid_t *cid, ptls_iovec_t vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/include/quicly/cid.h:110,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/include/quicly/cid.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - quicly_cid_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (src.len <= sizeof(dest->cid))
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/h2o/deps/quicly/include/quicly/cid.h
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: quicly_set_cid
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/cid.h
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_set_cid(quicly_cid_t *dest, ptls_iovec_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: QUICLY_ERROR_IS_QUIC
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_IS_QUIC(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: QUICLY_ERROR_IS_QUIC_TRANSPORT
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_IS_QUIC_TRANSPORT(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: QUICLY_ERROR_IS_QUIC_APPLICATION
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_IS_QUIC_APPLICATION(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: QUICLY_ERROR_GET_ERROR_CODE
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_GET_ERROR_CODE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: QUICLY_ERROR_IS_CONCEALED
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_ERROR_IS_CONCEALED(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tls_alert
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: QUICLY_TRANSPORT_ERROR_CRYPTO
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_TRANSPORT_ERROR_CRYPTO(tls_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: quicly_debug_printf
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: quicly_debug_printf(conn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/h2o/deps/quicly/include/quicly/constants.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: quicly_u32_add_saturating
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/constants.h
    functionUses: 0
    functionsReached:
    - __builtin_add_overflow
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_u32_add_saturating(uint32_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: quicly_decode16
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t quicly_decode16(const uint8_t **src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: quicly_decode24
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_decode24(const uint8_t **src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: quicly_decode32
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_decode32(const uint8_t **src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: quicly_decode64
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quicly_decode64(const uint8_t **src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: quicly_encode16
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode16(uint8_t *p, uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: quicly_encode32
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode32(uint8_t *p, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: quicly_encode64
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode64(uint8_t *p, uint64_t v)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: quicly_encodev_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_encodev_capacity(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:366,1
    - Dst: __builtin_clz
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: quicly_clz32
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - PTLS_BUILD_ASSERT
    - __builtin_clz
    linkageType: ''
    returnType: unsigned
    signature: unsigned quicly_clz32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:372,1
    - Dst: __builtin_clzll
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: quicly_clz64
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    - PTLS_BUILD_ASSERT
    linkageType: ''
    returnType: unsigned
    signature: unsigned quicly_clz64(uint64_t v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:380,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:385,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:394,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:398,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - type_flags
    - src
    - end
    - frame
    argTypes:
    - uint8_t
    - uint8_t**
    - uint8_t*
    - quicly_stream_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 411
    functionName: quicly_decode_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_stream_frame(uint8_t type_flags, const
      uint8_t **src, const uint8_t *end,\n                                                 quicly_stream_frame_t
      *frame)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:418,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - dst
    - dst_end
    - offset
    - data_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint64_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: quicly_encode_crypto_frame_header
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_crypto_frame_header(uint8_t *dst, uint8_t *dst_end,
      uint64_t offset, size_t *data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:444,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:446,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_stream_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 456
    functionName: quicly_decode_crypto_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_crypto_frame(const uint8_t **src, const
      uint8_t *end, quicly_stream_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:461,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:462,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dst
    - stream_id
    - app_error_code
    - final_size
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 465
    functionName: quicly_encode_reset_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_reset_stream_frame(uint8_t *dst, uint64_t stream_id,
      uint64_t app_error_code, uint64_t final_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:469,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:471,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_reset_stream_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: quicly_decode_reset_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_reset_stream_frame(const uint8_t **src,
      const uint8_t *end, quicly_reset_stream_frame_t *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:484,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:486,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_application_close_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: quicly_decode_application_close_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_application_close_frame(const uint8_t
      **src, const uint8_t *end,\n                                                            quicly_application_close_frame_t
      *frame)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:502,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:504,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:506,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_transport_close_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 515
    functionName: quicly_decode_transport_close_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_transport_close_frame(const uint8_t **src,
      const uint8_t *end,\n                                                          quicly_transport_close_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encode_close_frame
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - error_code
    - offending_frame_type
    - reason_phrase
    argTypes:
    - uint64_t
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: quicly_close_frame_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encode_close_frame
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_close_frame_capacity(uint64_t error_code, uint64_t offending_frame_type,
      const char *reason_phrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - max_data
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: quicly_encode_max_data_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_max_data_frame(uint8_t *dst, uint64_t max_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_max_data_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: quicly_decode_max_data_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_max_data_frame(const uint8_t **src, const
      uint8_t *end, quicly_max_data_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:539,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - stream_id
    - max_stream_data
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 542
    functionName: quicly_encode_max_stream_data_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_max_stream_data_frame(uint8_t *dst, uint64_t
      stream_id, uint64_t max_stream_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:547,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_max_stream_data_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 554
    functionName: quicly_decode_max_stream_data_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_max_stream_data_frame(const uint8_t **src,
      const uint8_t *end,\n                                                          quicly_max_stream_data_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - uni
    - count
    argTypes:
    - uint8_t*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: quicly_encode_max_streams_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_max_streams_frame(uint8_t *dst, int uni, uint64_t
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_max_streams_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: quicly_decode_max_streams_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_max_streams_frame(const uint8_t **src,
      const uint8_t *end, quicly_max_streams_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_path_challenge_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 584
    functionName: quicly_decode_path_challenge_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_path_challenge_frame(const uint8_t **src,
      const uint8_t *end,\n                                                         quicly_path_challenge_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - offset
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: quicly_encode_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_data_blocked_frame(uint8_t *dst, uint64_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_data_blocked_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: quicly_decode_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_data_blocked_frame(const uint8_t **src,
      const uint8_t *end, quicly_data_blocked_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:603,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - stream_id
    - offset
    argTypes:
    - uint8_t*
    - quicly_stream_id_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 606
    functionName: quicly_encode_stream_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_stream_data_blocked_frame(uint8_t *dst, quicly_stream_id_t
      stream_id, uint64_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:611,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_stream_data_blocked_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: quicly_decode_stream_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_stream_data_blocked_frame(const uint8_t
      **src, const uint8_t *end,\n                                                              quicly_stream_data_blocked_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - uni
    - count
    argTypes:
    - uint8_t*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 625
    functionName: quicly_encode_streams_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_streams_blocked_frame(uint8_t *dst, int uni,
      uint64_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_streams_blocked_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 635
    functionName: quicly_decode_streams_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_streams_blocked_frame(const uint8_t **src,
      const uint8_t *end,\n                                                          quicly_streams_blocked_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:641,1
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sequence
    - retire_prior_to
    - cid_len
    argTypes:
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: quicly_new_connection_id_frame_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_new_connection_id_frame_capacity(uint64_t sequence, uint64_t
      retire_prior_to, uint8_t cid_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:649,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:650,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:652,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - dst
    - sequence
    - retire_prior_to
    - cid
    - cid_len
    - stateless_reset_token
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 658
    functionName: quicly_encode_new_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - memcpy
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *quicly_encode_new_connection_id_frame(uint8_t *dst, uint64_t
      sequence, uint64_t retire_prior_to, const uint8_t *cid,\n                                                      uint8_t
      cid_len, const uint8_t *stateless_reset_token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: quicly_retire_connection_id_frame_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_retire_connection_id_frame_capacity(uint64_t sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - sequence
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: quicly_encode_retire_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_retire_connection_id_frame(uint8_t *dst, uint64_t
      sequence)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:677,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:679,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:691,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_new_connection_id_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 704
    functionName: quicly_decode_new_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_new_connection_id_frame(const uint8_t
      **src, const uint8_t *end,\n                                                            quicly_new_connection_id_frame_t
      *frame)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_retire_connection_id_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: quicly_decode_retire_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_retire_connection_id_frame(const uint8_t
      **src, const uint8_t *end,\n                                                               quicly_retire_connection_id_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:721,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - stream_id
    - app_error_code
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 724
    functionName: quicly_encode_stop_sending_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_stop_sending_frame(uint8_t *dst, uint64_t stream_id,
      uint64_t app_error_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:728,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_stop_sending_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 735
    functionName: quicly_decode_stop_sending_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_stop_sending_frame(const uint8_t **src,
      const uint8_t *end, quicly_stop_sending_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: quicly_new_token_frame_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_new_token_frame_capacity(ptls_iovec_t token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:745,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - token
    argTypes:
    - uint8_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: quicly_encode_new_token_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - memcpy
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_new_token_frame(uint8_t *dst, ptls_iovec_t token)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:754,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_new_token_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: quicly_decode_new_token_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_new_token_frame(const uint8_t **src, const
      uint8_t *end, quicly_new_token_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:769,1
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - payload
    argTypes:
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 770
    functionName: quicly_datagram_frame_capacity
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_datagram_frame_capacity(ptls_iovec_t payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:774,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:775,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - payload
    argTypes:
    - uint8_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 779
    functionName: quicly_encode_datagram_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - memcpy
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_datagram_frame(uint8_t *dst, ptls_iovec_t payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:786,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - frame_type
    - src
    - end
    - frame
    argTypes:
    - uint64_t
    - uint8_t**
    - uint8_t*
    - quicly_datagram_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 799
    functionName: quicly_decode_datagram_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_datagram_frame(uint64_t frame_type, const
      uint8_t **src, const uint8_t *end,\n                                                   quicly_datagram_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:804,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:805,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:806,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:807,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - sequence
    - packet_tolerance
    - max_ack_delay
    - reordering_threshold
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 810
    functionName: quicly_encode_ack_frequency_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *quicly_encode_ack_frequency_frame(uint8_t *dst, uint64_t
      sequence, uint64_t packet_tolerance,\n                                                  uint64_t
      max_ack_delay, uint64_t reordering_threshold)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:815,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:817,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:819,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/include/quicly/frame.h:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - src
    - end
    - frame
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_ack_frequency_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 827
    functionName: quicly_decode_ack_frequency_frame
    functionSourceFile: /src/h2o/deps/quicly/include/quicly/frame.h
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_ack_frequency_frame(const uint8_t **src,
      const uint8_t *end,\n                                                        quicly_ack_frequency_frame_t
      *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - conn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: QUICLY_TRACER
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_TRACER(label, conn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - conn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: QUICLY_PROBE
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE(label, conn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: QUICLY_PROBE_ENABLED
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE_ENABLED(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - conn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: QUICLY_PROBE
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE(label, conn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: QUICLY_PROBE_ENABLED
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE_ENABLED(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: QUICLY_PROBE_HEXDUMP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE_HEXDUMP(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: QUICLY_PROBE_ESCAPE_UNSAFE_STRING
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUICLY_PROBE_ESCAPE_UNSAFE_STRING(s, l)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - protocol_version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 601
    functionName: quicly_get_salt
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: quicly_salt_t
    signature: quicly_salt_t *quicly_get_salt(uint32_t protocol_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ratio
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 614
    functionName: enable_with_ratio255
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - random_bytes
    linkageType: ''
    returnType: int
    signature: int enable_with_ratio255(uint8_t ratio, void (*random_bytes)(void *,
      size_t))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:619,1
    - Dst: quicly_conn_t*::super::ctx::now::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:620,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:622,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - is_reentrant
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts:
    - condition: (conn->stash.lock_count == 0)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (is_reentrant && "caller must be reentrant")
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->stash.lock_count != 0)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 627
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 627
    functionName: lock_now
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - quicly_conn_t*::super::ctx::now::cb
    - assert
    linkageType: ''
    returnType: void
    signature: void lock_now(quicly_conn_t *conn, int is_reentrant)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (conn->stash.now != 0)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: unlock_now
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void unlock_now(quicly_conn_t *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:655,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - addr
    - sa
    argTypes:
    - quicly_address_t*
    - struct sockaddr*
    assertStmts:
    - condition: (!"unexpected address type")
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 659
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 659
    functionName: set_address
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void set_address(quicly_address_t *addr, struct sockaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - quicly_context_t*
    assertStmts:
    - condition: (cs != NULL)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 671
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 671
    functionName: get_aes128gcmsha256
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t *get_aes128gcmsha256(quicly_context_t *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:675,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - first_byte
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 688
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 688
    functionName: get_epoch
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    - QUICLY_PACKET_IS_LONG_HEADER
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_epoch(uint8_t first_byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/lib/quicly.c:692,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:693,1
    - Dst: get_aes128gcmsha256
      Src: /src/h2o/deps/quicly/lib/quicly.c:695,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/quicly/lib/quicly.c:696,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - protocol_version
    - is_enc
    argTypes:
    - quicly_context_t*
    - uint32_t
    - int
    assertStmts:
    - condition: (aead != NULL)
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (salt != NULL)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: create_retry_aead
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - ptls_aead_new_direct
    - get_aes128gcmsha256
    - assert
    - quicly_get_salt
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: ptls_aead_context_t *create_retry_aead(quicly_context_t *ctx, uint32_t
      protocol_version, int is_enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:703,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_quicly_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: dispose_cipher
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - ptls_cipher_free
    - ptls_aead_free
    linkageType: ''
    returnType: void
    signature: void dispose_cipher(struct st_quicly_cipher_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:710,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: clear_datagram_frame_payloads
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - free
    linkageType: ''
    returnType: void
    signature: void clear_datagram_frame_payloads(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADJUST
      Src: /src/h2o/deps/quicly/lib/quicly.c:731,1
    - Dst: ADJUST
      Src: /src/h2o/deps/quicly/lib/quicly.c:732,1
    - Dst: ADJUST
      Src: /src/h2o/deps/quicly/lib/quicly.c:733,1
    - Dst: ADJUST
      Src: /src/h2o/deps/quicly/lib/quicly.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - packet
    - octets
    argTypes:
    - quicly_decoded_packet_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 736
    functionName: adjust_pointers_of_decoded_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ADJUST
    linkageType: ''
    returnType: void
    signature: void adjust_pointers_of_decoded_packet(quicly_decoded_packet_t *packet,
      uint8_t *octets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - memb
    - ','
    - nullable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 731
    functionName: ADJUST
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST(memb, nullable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: is_retry
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_retry(quicly_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 752
    functionName: needs_cid_auth
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int needs_cid_auth(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_get_sentmap_expiration_time
      Src: /src/h2o/deps/quicly/lib/quicly.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: get_sentmap_expiration_time
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - quicly_loss_get_sentmap_expiration_time
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_sentmap_expiration_time(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (1 <= bits && bits <= 3)
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 766
    functionName: get_ecn_index_from_bits
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t get_ecn_index_from_bits(uint8_t bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:770,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:779,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:780,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - new_state
    argTypes:
    - quicly_conn_t*
    - enum en_quicly_ecn_state
    assertStmts:
    - condition: (new_state == QUICLY_ECN_ON || new_state == QUICLY_ECN_OFF)
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 781
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 781
    functionName: update_ecn_state
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - assert
    - QUICLY_PROBE
    linkageType: ''
    returnType: void
    signature: void update_ecn_state(quicly_conn_t *conn, enum en_quicly_ecn_state
      new_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sentmap_expiration_time
      Src: /src/h2o/deps/quicly/lib/quicly.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: ack_frequency_set_next_update_at
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - get_sentmap_expiration_time
    linkageType: ''
    returnType: void
    signature: void ack_frequency_set_next_update_at(quicly_conn_t *conn)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:794,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:796,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:801,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:808,1
    - Dst: quicly_decode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:813,1
    - Dst: quicly_context_t*::cid_encryptor::decrypt_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:828,1
    - Dst: quicly_context_t*::cid_encryptor::decrypt_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:837,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:857,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:865,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:869,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:872,1
    - Dst: quicly_context_t*::cid_encryptor::decrypt_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:892,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:895,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:898,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:902,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 117
    argCount: 5
    argNames:
    - ctx
    - packet
    - datagram
    - datagram_size
    - 'off'
    argTypes:
    - quicly_context_t*
    - quicly_decoded_packet_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts:
    - condition: (*off <= datagram_size)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 913
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 913
    functionName: quicly_decode_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 6
    functionsReached:
    - ptls_iovec_init
    - quicly_decode32
    - quicly_decodev
    - QUICLY_PACKET_IS_LONG_HEADER
    - quicly_context_t*::cid_encryptor::decrypt_cid
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_decode_packet(quicly_context_t *ctx, quicly_decoded_packet_t
      *packet, const uint8_t *datagram, size_t datagram_size,\n                            size_t
      *off)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - truncated
    - num_bits
    - expected
    argTypes:
    - uint32_t
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 924
    functionName: quicly_determine_packet_number
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quicly_determine_packet_number(uint32_t truncated, size_t
      num_bits, uint64_t expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:929,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:934,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:936,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - timer_must_be_in_future
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts:
    - condition: (!timer_must_be_in_future || conn->stash.now < conn->egress.send_ack_at)
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->egress.loss.alarm_at != INT64_MAX)
      pos:
        line_end: 933
        line_start: 933
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->stash.now < conn->egress.loss.alarm_at)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->egress.loss.loss_time == INT64_MAX)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 942
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 942
    functionName: assert_consistency
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_consistency(quicly_conn_t *conn, int timer_must_be_in_future)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 949
    functionName: on_invalid_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_invalid_ack(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_context_t*::random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:959,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - tlsctx
    - next_pn
    - cwnd
    - mtu
    argTypes:
    - ptls_context_t*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 969
    functionName: calc_next_pn_to_skip
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_context_t*::random_bytes
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_next_pn_to_skip(ptls_context_t *tlsctx, uint64_t next_pn,
      uint32_t cwnd, uint64_t mtu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct st_quicly_max_streams_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: init_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_init
    linkageType: ''
    returnType: void
    signature: void init_max_streams(struct st_quicly_max_streams_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - m
    - count
    argTypes:
    - struct st_quicly_max_streams_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 989
    functionName: update_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t update_max_streams(struct st_quicly_max_streams_t *m,
      uint64_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 994
    functionName: quicly_connection_is_ready
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_connection_is_ready(quicly_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - offending_frame_type
    - reason_phrase
    - is_remote
    argTypes:
    - quicly_conn_t*
    - uint64_t*
    - char**
    - int*
    assertStmts:
    - condition: (conn->super.state >= QUICLY_STATE_CLOSING)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1007
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1007
    functionName: quicly_get_close_reason
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_get_close_reason(quicly_conn_t *conn, uint64_t
      *offending_frame_type, const char **reason_phrase,\n                                       int
      *is_remote)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:1011,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:1013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1023
    functionName: stream_is_destroyable
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_recvstate_transfer_complete
    - quicly_sendstate_transfer_complete
    linkageType: ''
    returnType: int
    signature: int stream_is_destroyable(quicly_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1027,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:1029,1
    - Dst: quicly_linklist_insert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts:
    - condition: (stream->stream_id >= 0)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1031
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1031
    functionName: sched_stream_control
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - quicly_linklist_insert
    - assert
    linkageType: ''
    returnType: void
    signature: void sched_stream_control(quicly_stream_t *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1036,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1038,1
    - Dst: quicly_stream_scheduler_t*::update_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts:
    - condition: (-4 <= stream->stream_id)
      pos:
        line_end: 1035
        line_start: 1035
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: "((mask & (QUICLY_PENDING_FLOW_NEW_TOKEN_BIT | QUICLY_PENDING_FLOW_HANDSHAKE_DONE_BIT
        |\n                        QUICLY_PENDING_FLOW_OTHERS_BIT)) == 0)"
      pos:
        line_end: 1038
        line_start: 1037
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1054
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1054
    functionName: resched_stream_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_stream_scheduler_t*::update_state
    - assert
    linkageType: ''
    returnType: void
    signature: void resched_stream_data(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/lib/quicly.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1060
    functionName: should_send_max_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_should_send_max
    linkageType: ''
    returnType: int
    signature: int should_send_max_data(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/lib/quicly.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: should_send_max_stream_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_should_send_max
    linkageType: ''
    returnType: int
    signature: int should_send_max_stream_data(quicly_stream_t *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_activate
      Src: /src/h2o/deps/quicly/lib/quicly.c:1075,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:1079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - stream
    - activate
    argTypes:
    - quicly_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1081
    functionName: quicly_stream_sync_sendbuf
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - resched_stream_data
    - quicly_sendstate_activate
    linkageType: ''
    returnType: int
    signature: int quicly_stream_sync_sendbuf(quicly_stream_t *stream, int activate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: should_send_max_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:1089,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:1090,1
    - Dst: should_send_max_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - stream
    - shift_amount
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1096
    functionName: quicly_stream_sync_recvbuf
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - sched_stream_control
    - should_send_max_stream_data
    - should_send_max_data
    linkageType: ''
    returnType: void
    signature: void quicly_stream_sync_recvbuf(quicly_stream_t *stream, size_t shift_amount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/lib/quicly.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1113
    functionName: local_cid_size
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_BUILD_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t local_cid_size(const quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - sequence
    argTypes:
    - quicly_conn_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1127
    functionName: dissociate_cid
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void dissociate_cid(quicly_conn_t *conn, uint64_t sequence)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1141,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1142,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/lib/quicly.c:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - conn
    - tlsbuf
    - epoch_offsets
    argTypes:
    - quicly_conn_t*
    - ptls_buffer_t*
    - size_t[]
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: write_crypto_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - assert
    - quicly_streambuf_egress_write
    linkageType: ''
    returnType: int
    signature: int write_crypto_data(quicly_conn_t *conn, ptls_buffer_t *tlsbuf, size_t
      epoch_offsets[5])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/lib/quicly.c:1155,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1156,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1156,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1157,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - quicly_err
    argTypes:
    - quicly_error_t
    assertStmts:
    - condition: (0 <= quicly_err && quicly_err < INT_MAX)
      pos:
        line_end: 1158
        line_start: 1158
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (QUICLY_ERROR_GET_ERROR_CODE(quicly_err) <= INT32_MAX)
      pos:
        line_end: 1155
        line_start: 1155
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1162
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1162
    functionName: compress_handshake_result
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_GET_ERROR_CODE
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - assert
    linkageType: ''
    returnType: int
    signature: int compress_handshake_result(quicly_error_t quicly_err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - compressed_err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1171
    functionName: expand_handshake_result
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t expand_handshake_result(int compressed_err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1178,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1180,1
    - Dst: expand_handshake_result
      Src: /src/h2o/deps/quicly/lib/quicly.c:1182,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/quicly/lib/quicly.c:1182,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1184,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1185,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1185,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1191,1
    - Dst: quicly_conn_t*::super::ctx::async_handshake::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:1194,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:1197,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/lib/quicly.c:1198,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1199,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1207,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:1207,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1209,1
    - Dst: discard_sentmap_by_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:1213,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:1214,1
    - Dst: write_crypto_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:1220,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:1223,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - conn
    - in_epoch
    - input
    argTypes:
    - quicly_conn_t*
    - size_t
    - ptls_iovec_t
    assertStmts:
    - condition: (!conn->crypto.async_in_progress)
      pos:
        line_end: 1177
        line_start: 1177
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: "(conn->super.ctx->async_handshake != NULL &&\n               \"async
        handshake is used but the quicly_context_t::async_handshake is NULL\")"
      pos:
        line_end: 1191
        line_start: 1190
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (quicly_is_client(conn))
      pos:
        line_end: 1206
        line_start: 1206
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1224
      start: 1173
    functionDepth: 3
    functionLinenumber: 1173
    functionLinenumberEnd: 1224
    functionName: crypto_handshake
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_handle_message
    - PTLS_ERROR_GET_CLASS
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - quicly_is_client
    - write_crypto_data
    - ptls_buffer_dispose
    - expand_handshake_result
    - discard_sentmap_by_epoch
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - quicly_conn_t*::super::ctx::async_handshake::cb
    - QUICLY_PROBE
    - initiate_close
    - dispose_cipher
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void crypto_handshake(quicly_conn_t *conn, size_t in_epoch, ptls_iovec_t
      input)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_ingress_receive
      Src: /src/h2o/deps/quicly/lib/quicly.c:1232,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:1238,1
    - Dst: quicly_streambuf_ingress_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:1243,1
    - Dst: crypto_handshake
      Src: /src/h2o/deps/quicly/lib/quicly.c:1245,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/lib/quicly.c:1246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1226
    functionDepth: 4
    functionLinenumber: 1226
    functionLinenumberEnd: 1248
    functionName: crypto_stream_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - crypto_handshake
    - quicly_streambuf_ingress_get
    - quicly_streambuf_ingress_shift
    - initiate_close
    - quicly_streambuf_ingress_receive
    linkageType: ''
    returnType: void
    signature: void crypto_stream_receive(quicly_stream_t *stream, size_t off, const
      void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/quicly/lib/quicly.c:1254,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:1256,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1260,1
    - Dst: crypto_handshake
      Src: /src/h2o/deps/quicly/lib/quicly.c:1266,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts:
    - condition: (conn->crypto.async_in_progress)
      pos:
        line_end: 1259
        line_start: 1259
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1268
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1268
    functionName: quicly_resume_handshake
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - crypto_handshake
    - ptls_get_data_ptr
    - ptls_free
    - assert
    linkageType: ''
    returnType: quicly_conn_t
    signature: quicly_conn_t *quicly_resume_handshake(ptls_t *tls)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:1273,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:1275,1
    - Dst: quicly_sendstate_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1276,1
    - Dst: quicly_sendstate_init_closed
      Src: /src/h2o/deps/quicly/lib/quicly.c:1278,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:1280,1
    - Dst: quicly_recvstate_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1281,1
    - Dst: quicly_recvstate_init_closed
      Src: /src/h2o/deps/quicly/lib/quicly.c:1283,1
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1292,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1294,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - stream
    - initial_max_stream_data_local
    - initial_max_stream_data_remote
    argTypes:
    - quicly_stream_t*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1311
    functionName: init_stream_properties
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_sendstate_init
    - quicly_is_client
    - quicly_sendstate_init_closed
    - quicly_recvstate_init
    - quicly_recvstate_init_closed
    - quicly_stream_has_receive_side
    - quicly_maxsender_init
    - quicly_linklist_init
    - quicly_stream_has_send_side
    linkageType: ''
    returnType: void
    signature: "void init_stream_properties(quicly_stream_t *stream, uint32_t initial_max_stream_data_local,\n
      \                                  uint64_t initial_max_stream_data_remote)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:1315,1
    - Dst: quicly_recvstate_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:1316,1
    - Dst: quicly_maxsender_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:1317,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/quicly.c:1318,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/quicly.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1320
    functionName: dispose_stream_properties
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_recvstate_dispose
    - quicly_sendstate_dispose
    - quicly_linklist_unlink
    - quicly_maxsender_dispose
    linkageType: ''
    returnType: void
    signature: void dispose_stream_properties(quicly_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:1327,1
    - Dst: kh_put
      Src: /src/h2o/deps/quicly/lib/quicly.c:1335,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1336,1
    - Dst: kh_end
      Src: /src/h2o/deps/quicly/lib/quicly.c:1336,1
    - Dst: kh_val
      Src: /src/h2o/deps/quicly/lib/quicly.c:1337,1
    - Dst: init_stream_properties
      Src: /src/h2o/deps/quicly/lib/quicly.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - stream_id
    - initial_max_stream_data_local
    - initial_max_stream_data_remote
    argTypes:
    - quicly_conn_t*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts:
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 1335
        line_start: 1335
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1342
      start: 1322
    functionDepth: 3
    functionLinenumber: 1322
    functionLinenumberEnd: 1342
    functionName: open_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 12
    functionsReached:
    - kh_val
    - malloc
    - kh_end
    - init_stream_properties
    - kh_put
    - assert
    linkageType: ''
    returnType: quicly_stream_t
    signature: "quicly_stream_t *open_stream(quicly_conn_t *conn, uint64_t stream_id,
      uint32_t initial_max_stream_data_local,\n                                    uint64_t
      initial_max_stream_data_remote)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:1346,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/deps/quicly/lib/quicly.c:1346,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:1347,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1351
    functionName: get_streamgroup_state
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_is_client
    - quicly_stream_is_unidirectional
    linkageType: ''
    returnType: struct st_quicly_conn_streamgroup_state_t
    signature: struct st_quicly_conn_streamgroup_state_t *get_streamgroup_state(quicly_conn_t
      *conn, quicly_stream_id_t stream_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VARS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1366,1
    - Dst: INIT_VARS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1368,1
    - Dst: quicly_maxsender_should_send_max
      Src: /src/h2o/deps/quicly/lib/quicly.c:1375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - uni
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1379
    functionName: should_send_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_should_send_max
    - INIT_VARS
    linkageType: ''
    returnType: int
    signature: int should_send_max_streams(quicly_conn_t *conn, int uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1365
    functionName: INIT_VARS
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_VARS(type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1385,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1386,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1387,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1388,1
    - Dst: quicly_stream_t*::callbacks::on_destroy
      Src: /src/h2o/deps/quicly/lib/quicly.c:1392,1
    - Dst: kh_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:1394,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1395,1
    - Dst: kh_end
      Src: /src/h2o/deps/quicly/lib/quicly.c:1395,1
    - Dst: kh_del
      Src: /src/h2o/deps/quicly/lib/quicly.c:1396,1
    - Dst: get_streamgroup_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:1402,1
    - Dst: dispose_stream_properties
      Src: /src/h2o/deps/quicly/lib/quicly.c:1406,1
    - Dst: should_send_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:1408,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:1408,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:1411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 1394
        line_start: 1394
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1412
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1412
    functionName: destroy_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_stream_t*::callbacks::on_destroy
    - should_send_max_streams
    - assert
    - kh_del
    - kh_end
    - free
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - quicly_stream_is_unidirectional
    - QUICLY_PROBE
    - get_streamgroup_state
    - dispose_stream_properties
    - kh_get
    linkageType: ''
    returnType: void
    signature: void destroy_stream(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/deps/quicly/lib/quicly.c:1417,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1420,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1422,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - err
    - including_crypto_streams
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - int
    assertStmts:
    - condition: (quicly_num_streams(conn) == 0)
      pos:
        line_end: 1421
        line_start: 1421
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1423
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1423
    functionName: destroy_all_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_num_streams
    - kh_foreach_value
    - assert
    - destroy_stream
    linkageType: ''
    returnType: void
    signature: void destroy_all_streams(quicly_conn_t *conn, quicly_error_t err, int
      including_crypto_streams)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/deps/quicly/lib/quicly.c:1428,1
    - Dst: cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - thunk
    argTypes:
    - quicly_conn_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1436
    functionName: quicly_foreach_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - kh_foreach_value
    - cb
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_foreach_stream(quicly_conn_t *conn, void *thunk, int64_t
      (*cb)(void *thunk, quicly_stream_t *stream))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:1440,1
    - Dst: kh_end
      Src: /src/h2o/deps/quicly/lib/quicly.c:1441,1
    - Dst: kh_val
      Src: /src/h2o/deps/quicly/lib/quicly.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    functionName: quicly_get_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 11
    functionsReached:
    - kh_val
    - kh_end
    - kh_get
    linkageType: ''
    returnType: quicly_stream_t
    signature: quicly_stream_t *quicly_get_stream(quicly_conn_t *conn, quicly_stream_id_t
      stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1449
    functionName: quicly_get_tls
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *quicly_get_tls(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:1453,1
    - Dst: get_streamgroup_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - uni
    - locally_initiated
    argTypes:
    - quicly_conn_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1456
    functionName: quicly_num_streams_by_group
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - get_streamgroup_state
    - quicly_is_client
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_num_streams_by_group(quicly_conn_t *conn, int uni,
      int locally_initiated)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1461
    functionName: quicly_get_sockname
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *quicly_get_sockname(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1466
    functionName: quicly_get_peername
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *quicly_get_peername(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:1471,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1479,1
    - Dst: quicly_ratemeter_report
      Src: /src/h2o/deps/quicly/lib/quicly.c:1482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - stats
    argTypes:
    - quicly_conn_t*
    - quicly_stats_t*
    assertStmts:
    - condition: (stats->cc.exit_slow_start_at >= conn->created_at)
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1486
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1486
    functionName: quicly_get_stats
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 4
    functionsReached:
    - memcpy
    - assert
    - quicly_ratemeter_report
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_stats(quicly_conn_t *conn, quicly_stats_t
      *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ratemeter_report
      Src: /src/h2o/deps/quicly/lib/quicly.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - delivery_rate
    argTypes:
    - quicly_conn_t*
    - quicly_rate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1492
    functionName: quicly_get_delivery_rate
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_ratemeter_report
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_delivery_rate(quicly_conn_t *conn, quicly_rate_t
      *delivery_rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - uni
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1498
    functionName: quicly_get_ingress_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_stream_id_t
    signature: quicly_stream_id_t quicly_get_ingress_max_streams(quicly_conn_t *conn,
      int uni)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - conn
    - send_permitted
    - sent
    - consumed
    - shifted
    argTypes:
    - quicly_conn_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1510
    functionName: quicly_get_max_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_get_max_data(quicly_conn_t *conn, uint64_t *send_permitted,
      uint64_t *sent, uint64_t *consumed, uint64_t *shifted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_rtt_get_pto
      Src: /src/h2o/deps/quicly/lib/quicly.c:1527,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - is_in_receive
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1531
    functionName: update_idle_timeout
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_rtt_get_pto
    linkageType: ''
    returnType: void
    signature: void update_idle_timeout(quicly_conn_t *conn, int is_in_receive)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_conn_t*::super::ctx::stream_scheduler::can_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:1550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1551
    functionName: scheduler_can_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_conn_t*::super::ctx::stream_scheduler::can_send
    linkageType: ''
    returnType: int
    signature: int scheduler_can_send(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_update_alarm
      Src: /src/h2o/deps/quicly/lib/quicly.c:1557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - can_send_stream_data
    - is_after_send
    argTypes:
    - quicly_conn_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1559
    functionName: update_send_alarm
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_loss_update_alarm
    linkageType: ''
    returnType: void
    signature: void update_send_alarm(quicly_conn_t *conn, int can_send_stream_data,
      int is_after_send)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ratemeter_is_cc_limited
      Src: /src/h2o/deps/quicly/lib/quicly.c:1563,1
    - Dst: quicly_ratemeter_enter_cc_limited
      Src: /src/h2o/deps/quicly/lib/quicly.c:1565,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1566,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1567,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1567,1
    - Dst: quicly_ratemeter_exit_cc_limited
      Src: /src/h2o/deps/quicly/lib/quicly.c:1569,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1570,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1571,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - conn
    - is_cc_limited
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1574
    functionName: update_ratemeter
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_ratemeter_is_cc_limited
    - QUICLY_LOG_CONN
    - quicly_ratemeter_enter_cc_limited
    - quicly_ratemeter_exit_cc_limited
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: void
    signature: void update_ratemeter(quicly_conn_t *conn, int is_cc_limited)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scheduler_can_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:1582,1
    - Dst: update_send_alarm
      Src: /src/h2o/deps/quicly/lib/quicly.c:1584,1
    - Dst: update_ratemeter
      Src: /src/h2o/deps/quicly/lib/quicly.c:1588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1580
    functionDepth: 3
    functionLinenumber: 1580
    functionLinenumberEnd: 1589
    functionName: setup_next_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - update_ratemeter
    - scheduler_can_send
    - update_send_alarm
    linkageType: ''
    returnType: void
    signature: void setup_next_send(quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1596,1
    - Dst: quicly_streambuf_create
      Src: /src/h2o/deps/quicly/lib/quicly.c:1600,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - epoch
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1607
    functionName: create_handshake_flow
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_streambuf_create
    - destroy_stream
    - open_stream
    linkageType: ''
    returnType: int
    signature: int create_handshake_flow(quicly_conn_t *conn, size_t epoch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1611,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - epoch
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1614
    functionName: destroy_handshake_flow
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - destroy_stream
    linkageType: ''
    returnType: void
    signature: void destroy_handshake_flow(quicly_conn_t *conn, size_t epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:1620,1
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1623,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:1628,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:1635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - sz
    - packet_tolerance
    argTypes:
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1638
    functionName: alloc_pn_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - memset
    - quicly_ranges_init
    - malloc
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: struct st_quicly_pn_space_t
    signature: struct st_quicly_pn_space_t *alloc_pn_space(size_t sz, uint32_t packet_tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/quicly.c:1642,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - space
    argTypes:
    - struct st_quicly_pn_space_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1644
    functionName: do_free_pn_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - free
    - quicly_ranges_clear
    linkageType: ''
    returnType: void
    signature: void do_free_pn_space(struct st_quicly_pn_space_t *space)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1649,1
    - Dst: quicly_ranges_next_missing
      Src: /src/h2o/deps/quicly/lib/quicly.c:1663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ranges
    - largest_acked_unacked
    - smallest_unreported_missing
    - reordering_threshold
    argTypes:
    - quicly_ranges_t*
    - uint64_t*
    - uint64_t*
    - uint32_t
    assertStmts:
    - condition: (ranges->num_ranges != 0 && "on_send_ack is never called until the
        first packet is received")
      pos:
        line_end: 1648
        line_start: 1648
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1665
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1665
    functionName: update_smallest_unreported_missing_on_send_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - assert
    - quicly_ranges_next_missing
    linkageType: ''
    returnType: void
    signature: "void update_smallest_unreported_missing_on_send_ack(quicly_ranges_t
      *ranges, uint64_t *largest_acked_unacked,\n                                                           uint64_t
      *smallest_unreported_missing, uint32_t reordering_threshold)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1671,1
    - Dst: quicly_ranges_next_missing
      Src: /src/h2o/deps/quicly/lib/quicly.c:1688,1
    - Dst: quicly_ranges_next_missing
      Src: /src/h2o/deps/quicly/lib/quicly.c:1699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - ranges
    - largest_acked_unacked
    - smallest_unreported_missing
    - received_pn
    - reordering_threshold
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t*
    - uint64_t
    - uint32_t
    assertStmts:
    - condition: (ranges->num_ranges != 0)
      pos:
        line_end: 1670
        line_start: 1670
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1707
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1707
    functionName: change_outside_reorder_window
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    - quicly_ranges_next_missing
    linkageType: ''
    returnType: int
    signature: "int change_outside_reorder_window(quicly_ranges_t *ranges, uint64_t
      largest_acked_unacked,\n                                         uint64_t *smallest_unreported_missing,
      uint64_t received_pn, uint32_t reordering_threshold)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/quicly.c:1725,1
    - Dst: quicly_ranges_drop_by_range_indices
      Src: /src/h2o/deps/quicly/lib/quicly.c:1728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ranges
    - pn
    - is_out_of_order
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1731
    functionName: record_pn
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_drop_by_range_indices
    - quicly_ranges_add
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t record_pn(quicly_ranges_t *ranges, uint64_t pn, int
      *is_out_of_order)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: record_pn
      Src: /src/h2o/deps/quicly/lib/quicly.c:1739,1
    - Dst: change_outside_reorder_window
      Src: /src/h2o/deps/quicly/lib/quicly.c:1751,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/lib/quicly.c:1769,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 7
    argNames:
    - space
    - pn
    - ecn
    - is_ack_only
    - received_at
    - send_ack_at
    - received_out_of_order
    argTypes:
    - struct st_quicly_pn_space_t*
    - uint64_t
    - uint8_t
    - int
    - int64_t
    - int64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1788
    functionName: record_receipt
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - record_pn
    - get_ecn_index_from_bits
    - change_outside_reorder_window
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t record_receipt(struct st_quicly_pn_space_t *space,
      uint64_t pn, uint8_t ecn, int is_ack_only,\n                                     int64_t
      received_at, int64_t *send_ack_at, uint64_t *received_out_of_order)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1794,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1796,1
    - Dst: do_free_pn_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:1797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - space
    argTypes:
    - struct st_quicly_handshake_space_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1800
    functionName: free_handshake_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - dispose_cipher
    - do_free_pn_space
    linkageType: ''
    returnType: void
    signature: void free_handshake_space(struct st_quicly_handshake_space_t **space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_crypto_engine_t*::setup_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - conn
    - epoch
    - is_enc
    - hp_ctx
    - aead_ctx
    - aead
    - hash
    - secret
    argTypes:
    - quicly_conn_t*
    - size_t
    - int
    - ptls_cipher_context_t**
    - ptls_aead_context_t**
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1810
    functionName: setup_cipher
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - quicly_crypto_engine_t*::setup_cipher
    linkageType: ''
    returnType: int
    signature: "int setup_cipher(quicly_conn_t *conn, size_t epoch, int is_enc, ptls_cipher_context_t
      **hp_ctx,\n                        ptls_aead_context_t **aead_ctx, ptls_aead_algorithm_t
      *aead, ptls_hash_algorithm_t *hash,\n                        const void *secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pn_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:1815,1
    - Dst: create_handshake_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:1817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - epoch
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1818
    functionName: setup_handshake_space_and_flow
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - alloc_pn_space
    - create_handshake_flow
    linkageType: ''
    returnType: int
    signature: int setup_handshake_space_and_flow(quicly_conn_t *conn, size_t epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DISPOSE_INGRESS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1826,1
    - Dst: DISPOSE_INGRESS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1827,1
    - Dst: DISPOSE_INGRESS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1828,1
    - Dst: DISPOSE_INGRESS
      Src: /src/h2o/deps/quicly/lib/quicly.c:1829,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1832,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/quicly.c:1833,1
    - Dst: do_free_pn_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:1834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - space
    argTypes:
    - struct st_quicly_application_space_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1820
    functionDepth: 2
    functionLinenumber: 1820
    functionLinenumberEnd: 1837
    functionName: free_application_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - dispose_cipher
    - DISPOSE_INGRESS
    - ptls_clear_memory
    - do_free_pn_space
    linkageType: ''
    returnType: void
    signature: void free_application_space(struct st_quicly_application_space_t **space)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: DISPOSE_INGRESS
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPOSE_INGRESS(label, func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pn_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:1842,1
    - Dst: create_handshake_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:1849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1850
    functionName: setup_application_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - alloc_pn_space
    - create_handshake_flow
    linkageType: ''
    returnType: int
    signature: int setup_application_space(quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1856,1
    - Dst: discard_sentmap_by_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:1858,1
    - Dst: destroy_handshake_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:1860,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1862,1
    - Dst: free_handshake_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:1865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - epoch
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts:
    - condition: (epoch == QUICLY_EPOCH_INITIAL || epoch == QUICLY_EPOCH_HANDSHAKE)
      pos:
        line_end: 1855
        line_start: 1855
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->stash.now != 0)
      pos:
        line_end: 1861
        line_start: 1861
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1868
      start: 1852
    functionDepth: 3
    functionLinenumber: 1852
    functionLinenumberEnd: 1868
    functionName: discard_handshake_context
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - discard_sentmap_by_epoch
    - assert
    - free_handshake_space
    - destroy_handshake_flow
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t discard_handshake_context(quicly_conn_t *conn, size_t
      epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:1875,1
    - Dst: update_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:1877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1881
    functionName: apply_remote_transport_params
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - update_max_streams
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t apply_remote_transport_params(quicly_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/quicly/lib/quicly.c:1891,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1892,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:1892,1
    - Dst: setup_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1895,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:1900,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:1903,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:1908,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/quicly.c:1909,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - conn
    - cipher
    - is_enc
    - aead
    - secret
    argTypes:
    - quicly_conn_t*
    - ptls_cipher_suite_t*
    - int
    - ptls_aead_context_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1911
    functionName: update_1rtt_key
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - setup_cipher
    - ptls_hkdf_expand_label
    - ptls_aead_free
    - memcpy
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int update_1rtt_key(quicly_conn_t *conn, ptls_cipher_suite_t *cipher,
      int is_enc, ptls_aead_context_t **aead,\n                           uint8_t
      *secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1916,1
    - Dst: update_1rtt_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:1920,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1928,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:1929,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1930,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1931,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:1932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1913
    functionDepth: 3
    functionLinenumber: 1913
    functionLinenumberEnd: 1936
    functionName: update_1rtt_egress_key
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - QUICLY_PROBE_HEXDUMP
    - QUICLY_LOG_CONN
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - QUICLY_PROBE
    - update_1rtt_key
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: int
    signature: int update_1rtt_egress_key(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1942,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:1943,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:1947,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:1948,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1948,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:1949,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:1950,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:1951,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:1952,1
    - Dst: update_1rtt_egress_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:1956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - newly_decrypted_key_phase
    argTypes:
    - quicly_conn_t*
    - uint64_t
    assertStmts:
    - condition: (space->cipher.ingress.key_phase.decrypted < newly_decrypted_key_phase)
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (newly_decrypted_key_phase <= space->cipher.ingress.key_phase.prepared)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 1960
      start: 1938
    functionDepth: 4
    functionLinenumber: 1938
    functionLinenumberEnd: 1960
    functionName: received_key_update
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - update_1rtt_egress_key
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE_HEXDUMP
    - QUICLY_LOG_CONN
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - QUICLY_PROBE
    - assert
    linkageType: ''
    returnType: int
    signature: int received_key_update(quicly_conn_t *conn, uint64_t newly_decrypted_key_phase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ratemeter_report
      Src: /src/h2o/deps/quicly/lib/quicly.c:1966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - conn
    - rate
    - rtt
    argTypes:
    - quicly_conn_t*
    - uint64_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1962
    functionDepth: 1
    functionLinenumber: 1962
    functionLinenumberEnd: 1975
    functionName: calc_resume_sendrate
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_ratemeter_report
    linkageType: ''
    returnType: void
    signature: void calc_resume_sendrate(quicly_conn_t *conn, uint64_t *rate, uint32_t
      *rtt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_context_t*::update_open_count::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - delta
    argTypes:
    - quicly_context_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1981
    functionName: update_open_count
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_context_t*::update_open_count::cb
    linkageType: ''
    returnType: void
    signature: void update_open_count(quicly_context_t *ctx, ssize_t delta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/h2o/deps/quicly/lib/quicly.c:1992,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:1993,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:1994,1
    - Dst: inet_ntop
      Src: /src/h2o/deps/quicly/lib/quicly.c:1998,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:2000,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2003,1
    - Dst: sprintf
      Src: /src/h2o/deps/quicly/lib/quicly.c:2008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - sa
    argTypes:
    - char*
    - struct sockaddr*
    assertStmts:
    - condition: ("unexpected address family")
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2009
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 2009
    functionName: stringify_address
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - sprintf
    - assert
    - strlen
    - ntohs
    linkageType: ''
    returnType: void
    signature: void stringify_address(char *buf, struct sockaddr *sa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2015,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:2017,1
    - Dst: quicly_conn_t*::super::ctx::tls::random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:2034,1
    - Dst: set_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:2037,1
    - Dst: set_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:2038,1
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/deps/quicly/lib/quicly.c:2042,1
    - Dst: QUICLY_PROBE_ENABLED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2043,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:2044,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:2045,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:2045,1
    - Dst: ptls_log_getsni_ptls
      Src: /src/h2o/deps/quicly/lib/quicly.c:2045,1
    - Dst: stringify_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:2047,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2048,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2049,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2050,1
    - Dst: PTLS_LOG_ELEMENT_SAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:2051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - conn
    - path_index
    - remote_addr
    - local_addr
    argTypes:
    - quicly_conn_t*
    - size_t
    - struct sockaddr*
    - struct sockaddr*
    assertStmts:
    - condition: (conn->paths[path_index] == NULL)
      pos:
        line_end: 2014
        line_start: 2014
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2056
      start: 2011
    functionDepth: 2
    functionLinenumber: 2011
    functionLinenumberEnd: 2056
    functionName: new_path
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_log_getsni_ptls
    - ptls_get_log_state
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_LOG_CONN
    - set_address
    - quicly_conn_t*::super::ctx::tls::random_bytes
    - QUICLY_PROBE_ENABLED
    - stringify_address
    - ptls_log_conn_maybe_active
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_SAFESTR
    - ptls_log_point_maybe_active
    - assert
    - PTLS_LOG_DEFINE_POINT
    linkageType: ''
    returnType: int
    signature: int new_path(quicly_conn_t *conn, size_t path_index, struct sockaddr
      *remote_addr, struct sockaddr *local_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dissociate_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:2064,1
    - Dst: quicly_remote_cid_unregister
      Src: /src/h2o/deps/quicly/lib/quicly.c:2065,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2066,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - path
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_conn_path_t*
    assertStmts:
    - condition: (conn->super.remote.cid_set.retired.count != 0)
      pos:
        line_end: 2065
        line_start: 2065
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2073
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2073
    functionName: do_delete_path
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - free
    - dissociate_cid
    - quicly_remote_cid_unregister
    - assert
    linkageType: ''
    returnType: int
    signature: int do_delete_path(quicly_conn_t *conn, struct st_quicly_conn_path_t
      *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2077,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2078,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2078,1
    - Dst: do_delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - path_index
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2075
    functionDepth: 3
    functionLinenumber: 2075
    functionLinenumberEnd: 2086
    functionName: delete_path
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - QUICLY_LOG_CONN
    - do_delete_path
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE
    linkageType: ''
    returnType: int
    signature: int delete_path(quicly_conn_t *conn, size_t path_index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2095,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2096,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2096,1
    - Dst: quicly_loss_init_sentmap_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:2100,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:2104,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:2105,1
    - Dst: quicly_conn_t*::egress::cc::type::cc_init::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:2111,1
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:2113,1
    - Dst: quicly_conn_t*::egress::cc::type::enable_rapid_start
      Src: /src/h2o/deps/quicly/lib/quicly.c:2115,1
    - Dst: calc_resume_sendrate
      Src: /src/h2o/deps/quicly/lib/quicly.c:2118,1
    - Dst: quicly_rtt_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2121,1
    - Dst: quicly_ratemeter_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2127,1
    - Dst: do_delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2138,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:2141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - conn
    - path_index
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2091
    functionDepth: 4
    functionLinenumber: 2091
    functionLinenumberEnd: 2144
    functionName: promote_path
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_conn_t*::egress::cc::type::cc_init::cb
    - calc_resume_sendrate
    - quicly_rtt_init
    - quicly_loss_init_sentmap_iter
    - quicly_sentmap_get
    - quicly_cc_calc_initial_cwnd
    - do_delete_path
    - quicly_conn_t*::egress::cc::type::enable_rapid_start
    - QUICLY_LOG_CONN
    - quicly_sentmap_update
    - QUICLY_PROBE
    - setup_next_send
    - quicly_ratemeter_init
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t promote_path(quicly_conn_t *conn, size_t path_index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:2152,1
    - Dst: delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2167,1
    - Dst: new_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2171,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - conn
    - path_index
    - remote_addr
    - local_addr
    argTypes:
    - quicly_conn_t*
    - size_t*
    - struct sockaddr*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2146
    functionDepth: 4
    functionLinenumber: 2146
    functionLinenumberEnd: 2178
    functionName: open_path
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - new_path
    - delete_path
    linkageType: ''
    returnType: int
    signature: int open_path(quicly_conn_t *conn, size_t *path_index, struct sockaddr
      *remote_addr, struct sockaddr *local_addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:2184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2194
    functionName: recalc_send_probe_at
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void recalc_send_probe_at(quicly_conn_t *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:2198,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2200,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2201,1
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/deps/quicly/lib/quicly.c:2203,1
    - Dst: QUICLY_PROBE_ENABLED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2204,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:2205,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:2206,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:2206,1
    - Dst: ptls_log_getsni_ptls
      Src: /src/h2o/deps/quicly/lib/quicly.c:2206,1
    - Dst: quicly_get_stats
      Src: /src/h2o/deps/quicly/lib/quicly.c:2208,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2209,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2211,1
    - Dst: QUICLY_STATS_FOREACH
      Src: /src/h2o/deps/quicly/lib/quicly.c:2211,1
    - Dst: destroy_all_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:2216,1
    - Dst: update_open_count
      Src: /src/h2o/deps/quicly/lib/quicly.c:2217,1
    - Dst: clear_datagram_frame_payloads
      Src: /src/h2o/deps/quicly/lib/quicly.c:2218,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:2220,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2224,1
    - Dst: quicly_maxsender_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:2228,1
    - Dst: quicly_maxsender_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:2229,1
    - Dst: quicly_maxsender_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:2230,1
    - Dst: quicly_loss_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:2231,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/quicly/lib/quicly.c:2233,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2235,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:2235,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2236,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:2236,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2237,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:2237,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2238,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:2238,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2239,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:2239,1
    - Dst: free_handshake_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:2241,1
    - Dst: free_handshake_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:2242,1
    - Dst: free_application_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:2243,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:2245,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:2247,1
    - Dst: delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2249,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/quicly/lib/quicly.c:2255,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2257,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:2260,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2263,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2265,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2266,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2267,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (!quicly_linklist_is_linked(&conn->super._default_scheduler.blocked))
      pos:
        line_end: 2238
        line_start: 2238
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_linklist_is_linked(&conn->egress.pending_streams.blocked.uni))
      pos:
        line_end: 2234
        line_start: 2234
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_linklist_is_linked(&conn->super._default_scheduler.active))
      pos:
        line_end: 2237
        line_start: 2237
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_linklist_is_linked(&conn->egress.pending_streams.control))
      pos:
        line_end: 2236
        line_start: 2236
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_linklist_is_linked(&conn->egress.pending_streams.blocked.bidi))
      pos:
        line_end: 2235
        line_start: 2235
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2268
      start: 2196
    functionDepth: 4
    functionLinenumber: 2196
    functionLinenumberEnd: 2268
    functionName: quicly_free
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 7
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_log_getsni_ptls
    - quicly_get_stats
    - QUICLY_STATS_FOREACH
    - QUICLY_PROBE_ENABLED
    - ptls_log_conn_maybe_active
    - free_handshake_space
    - assert
    - PTLS_LOG_DEFINE_POINT
    - delete_path
    - free
    - ptls_get_data_ptr
    - quicly_linklist_is_linked
    - free_application_space
    - update_open_count
    - unlock_now
    - clear_datagram_frame_payloads
    - destroy_all_streams
    - ptls_buffer_dispose
    - lock_now
    - ptls_get_log_state
    - ptls_free
    - QUICLY_LOG_CONN
    - quicly_loss_dispose
    - QUICLY_PROBE
    - ptls_log_point_maybe_active
    - quicly_maxsender_dispose
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void quicly_free(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2211
    functionName: EMIT_FIELD
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_FIELD(fld, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/quicly/lib/quicly.c:2272,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2273,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cs
    - traffic_secret
    - master_secret
    - label
    argTypes:
    - ptls_cipher_suite_t*
    - uint8_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2274
    functionName: calc_initial_key
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    linkageType: ''
    returnType: int
    signature: int calc_initial_key(ptls_cipher_suite_t *cs, uint8_t *traffic_secret,
      const void *master_secret, const char *label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_extract
      Src: /src/h2o/deps/quicly/lib/quicly.c:2284,1
    - Dst: calc_initial_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:2288,1
    - Dst: calc_initial_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:2290,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/quicly.c:2294,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 6
    argNames:
    - cs
    - ingress
    - egress
    - cid
    - is_client
    - salt
    argTypes:
    - ptls_cipher_suite_t*
    - uint8_t*
    - uint8_t*
    - ptls_iovec_t
    - int
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2296
    functionName: quicly_calc_initial_keys
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - ptls_hkdf_extract
    - calc_initial_key
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int quicly_calc_initial_keys(ptls_cipher_suite_t *cs, uint8_t *ingress,
      uint8_t *egress, ptls_iovec_t cid, int is_client,\n                             ptls_iovec_t
      salt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_calc_initial_keys
      Src: /src/h2o/deps/quicly/lib/quicly.c:2311,1
    - Dst: setup_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:2315,1
    - Dst: setup_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:2318,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/quicly.c:2323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 7
    argNames:
    - cs
    - ingress
    - egress
    - cid
    - is_client
    - salt
    - conn
    argTypes:
    - ptls_cipher_suite_t*
    - struct st_quicly_cipher_context_t*
    - struct st_quicly_cipher_context_t*
    - ptls_iovec_t
    - int
    - ptls_iovec_t
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2301
    functionDepth: 3
    functionLinenumber: 2301
    functionLinenumberEnd: 2325
    functionName: setup_initial_encryption
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - setup_cipher
    - quicly_calc_initial_keys
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int setup_initial_encryption(ptls_cipher_suite_t *cs, struct st_quicly_cipher_context_t
      *ingress,\n                                    struct st_quicly_cipher_context_t
      *egress, ptls_iovec_t cid, int is_client, ptls_iovec_t salt,\n                                    quicly_conn_t
      *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/lib/quicly.c:2332,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:2336,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:2337,1
    - Dst: setup_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:2340,1
    - Dst: get_aes128gcmsha256
      Src: /src/h2o/deps/quicly/lib/quicly.c:2341,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2342,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - err_code_if_unknown_version
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2327
    functionDepth: 4
    functionLinenumber: 2327
    functionLinenumberEnd: 2344
    functionName: reinstall_initial_encryption
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - get_aes128gcmsha256
    - setup_initial_encryption
    - quicly_get_salt
    - dispose_cipher
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t reinstall_initial_encryption(quicly_conn_t *conn, quicly_error_t
      err_code_if_unknown_version)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2350,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2352,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2353,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2354,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2355,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:2356,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:2359,1
    - Dst: quicly_recvstate_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:2385,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:2389,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2392,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2393,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2394,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2395,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2396,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2397,1
    - Dst: quicly_stream_t*::callbacks::on_receive
      Src: /src/h2o/deps/quicly/lib/quicly.c:2399,1
    - Dst: should_send_max_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:2404,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:2405,1
    - Dst: stream_is_destroyable
      Src: /src/h2o/deps/quicly/lib/quicly.c:2407,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:2408,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - stream
    - frame
    argTypes:
    - quicly_stream_t*
    - quicly_stream_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2346
    functionDepth: 3
    functionLinenumber: 2346
    functionLinenumberEnd: 2411
    functionName: apply_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - destroy_stream
    - quicly_recvstate_update
    - quicly_recvstate_transfer_complete
    - PTLS_LOG_ELEMENT_BOOL
    - QUICLY_LOG_CONN
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - quicly_stream_t*::callbacks::on_receive
    - PTLS_LOG_ELEMENT_SIGNED
    - should_send_max_stream_data
    - sched_stream_control
    - QUICLY_PROBE
    - stream_is_destroyable
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t apply_stream_frame(quicly_stream_t *stream, quicly_stream_frame_t
      *frame)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2425,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2426,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2428,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2429,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2431,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2432,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2434,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2435,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2437,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2437,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2439,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2439,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2441,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:2442,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2444,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:2445,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2447,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:2448,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2450,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:2451,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2453,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2454,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2456,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2457,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2459,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2460,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2462,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2462,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2465,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2466,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2469,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2471,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2472,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2474,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2475,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2478,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/quicly/lib/quicly.c:2479,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:2481,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 84
    argCount: 7
    argNames:
    - buf
    - params
    - original_dcid
    - initial_scid
    - retry_scid
    - stateless_reset_token
    - expand_by
    argTypes:
    - ptls_buffer_t*
    - quicly_transport_parameters_t*
    - quicly_cid_t*
    - quicly_cid_t*
    - quicly_cid_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2491
    functionName: quicly_encode_transport_parameter_list
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - ptls_buffer_pushv
    - PUSH_TP
    - ptls_buffer_reserve
    - memset
    - ptls_buffer_push_quicint
    linkageType: ''
    returnType: int
    signature: "int quicly_encode_transport_parameter_list(ptls_buffer_t *buf, const
      quicly_transport_parameters_t *params,\n                                           const
      quicly_cid_t *original_dcid, const quicly_cid_t *initial_scid,\n                                           const
      quicly_cid_t *retry_scid, const void *stateless_reset_token, size_t expand_by)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - id
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2424
    functionName: PUSH_TP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_TP(buf, id, block)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:2554,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:2559,1
    - Dst: DECODE_CID_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2560,1
    - Dst: DECODE_CID_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2561,1
    - Dst: DECODE_CID_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2562,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2563,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2565,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2577,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2578,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2583,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2584,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2589,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2590,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2595,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2596,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2601,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:2606,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2609,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2610,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2615,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2616,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2621,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2622,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2627,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2629,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2639,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2641,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2651,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2652,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2657,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2659,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2669,1
    - Dst: DECODE_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:2670,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:2672,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 172
    argCount: 7
    argNames:
    - params
    - original_dcid
    - initial_scid
    - retry_scid
    - stateless_reset_token
    - src
    - end
    argTypes:
    - quicly_transport_parameters_t*
    - quicly_cid_t*
    - quicly_cid_t*
    - quicly_cid_t*
    - void*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2709
    functionName: quicly_decode_transport_parameter_list
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - ptls_decode_open_block
    - ptls_decode_quicint
    - DECODE_CID_TP
    - quicly_decodev
    - memcpy
    - DECODE_TP
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decode_transport_parameter_list(quicly_transport_parameters_t
      *params, quicly_cid_t *original_dcid,\n                                                      quicly_cid_t
      *initial_scid, quicly_cid_t *retry_scid,\n                                                      void
      *stateless_reset_token, const uint8_t *src, const uint8_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _id
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2521
    functionName: DECODE_TP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_TP(_id, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _id
    - ','
    - dest
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2536
    functionName: DECODE_CID_TP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_CID_TP(_id, dest)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - quic_version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2720
    functionName: get_transport_parameters_extension_id
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_transport_parameters_extension_id(uint32_t quic_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_transport_parameters_extension_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tls
    - properties
    - type
    argTypes:
    - ptls_t*
    - struct st_ptls_handshake_properties_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2726
    functionName: collect_transport_parameters
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - get_transport_parameters_extension_id
    linkageType: ''
    returnType: int
    signature: int collect_transport_parameters(ptls_t *tls, struct st_ptls_handshake_properties_t
      *properties, uint16_t type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2739,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2741,1
    - Dst: ptls_log_init_conn_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:2745,1
    - Dst: ptls_new
      Src: /src/h2o/deps/quicly/lib/quicly.c:2750,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/quicly/lib/quicly.c:2758,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:2758,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2759,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:2764,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2765,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/lib/quicly.c:2768,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:2768,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2769,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2770,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:2773,1
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:2776,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/lib/quicly.c:2781,1
    - Dst: new_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:2783,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:2784,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2786,1
    - Dst: ptls_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2787,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:2788,1
    - Dst: quicly_local_cid_init_set
      Src: /src/h2o/deps/quicly/lib/quicly.c:2791,1
    - Dst: quicly_remote_cid_init_set
      Src: /src/h2o/deps/quicly/lib/quicly.c:2793,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2794,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2810,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2811,1
    - Dst: kh_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2812,1
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2813,1
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2814,1
    - Dst: quicly_maxsender_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2815,1
    - Dst: quicly_loss_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2816,1
    - Dst: init_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:2820,1
    - Dst: init_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:2821,1
    - Dst: quicly_conn_t*::super::ctx::init_cc::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:2825,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/lib/quicly.c:2827,1
    - Dst: quicly_conn_t*::egress::cc::type::enable_rapid_start
      Src: /src/h2o/deps/quicly/lib/quicly.c:2828,1
    - Dst: quicly_pacer_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:2833,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/lib/quicly.c:2835,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2838,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2839,1
    - Dst: quicly_linklist_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2840,1
    - Dst: quicly_ratemeter_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2841,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2844,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2845,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2846,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:2855,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/quicly/lib/quicly.c:2859,1
    - Dst: update_open_count
      Src: /src/h2o/deps/quicly/lib/quicly.c:2861,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 107
    argCount: 10
    argNames:
    - ctx
    - protocol_version
    - server_name
    - remote_addr
    - local_addr
    - remote_cid
    - local_cid
    - handshake_properties
    - appdata
    - initcwnd
    argTypes:
    - quicly_context_t*
    - uint32_t
    - char*
    - struct sockaddr*
    - struct sockaddr*
    - ptls_iovec_t*
    - quicly_cid_plaintext_t*
    - ptls_handshake_properties_t*
    - void*
    - uint32_t
    assertStmts:
    - condition: (ctx->receive_datagram_frame != NULL)
      pos:
        line_end: 2740
        line_start: 2740
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (handshake_properties->additional_extensions == NULL)
      pos:
        line_end: 2843
        line_start: 2843
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (handshake_properties->collected_extensions == NULL)
      pos:
        line_end: 2845
        line_start: 2845
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (handshake_properties->collect_extension == NULL)
      pos:
        line_end: 2844
        line_start: 2844
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: "(conn->paths[0]->dcid == 0 && conn->super.remote.cid_set.cids[0].sequence
        == 0 &&\n           conn->super.remote.cid_set.cids[0].state == QUICLY_REMOTE_CID_IN_USE
        && \"paths[0].dcid uses cids[0]\")"
      pos:
        line_end: 2794
        line_start: 2793
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (remote_addr != NULL && remote_addr->sa_family != AF_UNSPEC)
      pos:
        line_end: 2738
        line_start: 2738
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2864
      start: 2728
    functionDepth: 3
    functionLinenumber: 2728
    functionLinenumberEnd: 2864
    functionName: create_connection
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - quicly_conn_t*::egress::cc::type::enable_rapid_start
    - ptls_log_init_conn_state
    - quicly_loss_init
    - assert
    - free
    - ptls_get_data_ptr
    - quicly_local_cid_init_set
    - memset
    - quicly_pacer_reset
    - ptls_set_server_name
    - malloc
    - init_max_streams
    - update_open_count
    - unlock_now
    - new_path
    - strlen
    - lock_now
    - kh_init
    - quicly_remote_cid_init_set
    - enable_with_ratio255
    - quicly_conn_t*::super::ctx::init_cc::cb
    - ptls_free
    - quicly_maxsender_init
    - quicly_linklist_init
    - quicly_ratemeter_init
    - ptls_new
    linkageType: ''
    returnType: quicly_conn_t
    signature: "quicly_conn_t *create_connection(quicly_context_t *ctx, uint32_t protocol_version,
      const char *server_name,\n                                        struct sockaddr
      *remote_addr, struct sockaddr *local_addr, ptls_iovec_t *remote_cid,\n                                        const
      quicly_cid_plaintext_t *local_cid, ptls_handshake_properties_t *handshake_properties,\n
      \                                       void *appdata, uint32_t initcwnd)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2871,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2877,1
    - Dst: get_transport_parameters_extension_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:2877,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2878,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:2887,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/deps/quicly/lib/quicly.c:2890,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:2890,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:2890,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:2891,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:2892,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:2892,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:2897,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:2897,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:2898,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2898,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:2903,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:2904,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2904,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:2908,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:2909,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2909,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2922,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2923,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2924,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2925,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2926,1
    - Dst: ZERORTT_VALIDATE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2927,1
    - Dst: ack_frequency_set_next_update_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:2933,1
    - Dst: compress_handshake_result
      Src: /src/h2o/deps/quicly/lib/quicly.c:2936,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - tls
    - properties
    - slots
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - ptls_raw_extension_t*
    assertStmts:
    - condition: (slots[1].type == UINT16_MAX)
      pos:
        line_end: 2877
        line_start: 2877
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (remote_cid->sequence == 0)
      pos:
        line_end: 2886
        line_start: 2886
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (slots[0].type == get_transport_parameters_extension_id(conn->super.version))
      pos:
        line_end: 2876
        line_start: 2876
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (properties->client.early_data_acceptance != PTLS_EARLY_DATA_ACCEPTANCE_UNKNOWN)
      pos:
        line_end: 2870
        line_start: 2870
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 2937
      start: 2866
    functionDepth: 4
    functionLinenumber: 2866
    functionLinenumberEnd: 2937
    functionName: client_collected_extensions
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - needs_cid_auth
    - ZERORTT_VALIDATE
    - compress_handshake_result
    - ack_frequency_set_next_update_at
    - quicly_cid_is_equal
    - quicly_decode_transport_parameter_list
    - is_retry
    - assert
    - get_transport_parameters_extension_id
    linkageType: ''
    returnType: int
    signature: int client_collected_extensions(ptls_t *tls, ptls_handshake_properties_t
      *properties, ptls_raw_extension_t *slots)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2922
    functionName: ZERORTT_VALIDATE
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZERORTT_VALIDATE(x)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/lib/quicly.c:2952,1
    - Dst: create_connection
      Src: /src/h2o/deps/quicly/lib/quicly.c:2964,1
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:2966,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:2973,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:2977,1
    - Dst: quicly_get_remote_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:2980,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:2983,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:2984,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:2984,1
    - Dst: setup_handshake_space_and_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:2986,1
    - Dst: setup_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:2988,1
    - Dst: get_aes128gcmsha256
      Src: /src/h2o/deps/quicly/lib/quicly.c:2988,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2989,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2990,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:2994,1
    - Dst: quicly_encode_transport_parameter_list
      Src: /src/h2o/deps/quicly/lib/quicly.c:2995,1
    - Dst: get_transport_parameters_extension_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:3000,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3006,1
    - Dst: expand_handshake_result
      Src: /src/h2o/deps/quicly/lib/quicly.c:3009,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/quicly/lib/quicly.c:3010,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3013,1
    - Dst: write_crypto_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:3016,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:3017,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3022,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3023,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3024,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3025,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3026,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3027,1
    - Dst: APPLY
      Src: /src/h2o/deps/quicly/lib/quicly.c:3028,1
    - Dst: apply_remote_transport_params
      Src: /src/h2o/deps/quicly/lib/quicly.c:3030,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:3039,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:3042,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 10
    argNames:
    - _conn
    - ctx
    - server_name
    - dest_addr
    - src_addr
    - new_cid
    - address_token
    - handshake_properties
    - resumed_transport_params
    - appdata
    argTypes:
    - quicly_conn_t**
    - quicly_context_t*
    - char*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_cid_plaintext_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    - quicly_transport_parameters_t*
    - void*
    assertStmts:
    - condition: (ret > 0)
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3045
      start: 2939
    functionDepth: 4
    functionLinenumber: 2939
    functionLinenumberEnd: 3045
    functionName: quicly_connect
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 11
    functionsReached:
    - ptls_handle_message
    - get_aes128gcmsha256
    - quicly_get_salt
    - APPLY
    - assert
    - PTLS_LOG_ELEMENT_UNSIGNED
    - get_transport_parameters_extension_id
    - ptls_iovec_init
    - setup_initial_encryption
    - quicly_free
    - apply_remote_transport_params
    - malloc
    - write_crypto_data
    - memcpy
    - quicly_encode_transport_parameter_list
    - unlock_now
    - ptls_buffer_init
    - ptls_buffer_dispose
    - quicly_cc_calc_initial_cwnd
    - quicly_get_remote_cid
    - expand_handshake_result
    - QUICLY_LOG_CONN
    - create_connection
    - QUICLY_PROBE
    - setup_handshake_space_and_flow
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_connect(quicly_conn_t **_conn, quicly_context_t
      *ctx, const char *server_name, struct sockaddr *dest_addr,\n                              struct
      sockaddr *src_addr, const quicly_cid_plaintext_t *new_cid, ptls_iovec_t address_token,\n
      \                             ptls_handshake_properties_t *handshake_properties,\n
      \                             const quicly_transport_parameters_t *resumed_transport_params,
      void *appdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3022
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3057,1
    - Dst: get_transport_parameters_extension_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:3057,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3058,1
    - Dst: quicly_decode_transport_parameter_list
      Src: /src/h2o/deps/quicly/lib/quicly.c:3062,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3063,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3064,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3065,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3067,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:3068,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3068,1
    - Dst: ack_frequency_set_next_update_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:3075,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3079,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3090,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3091,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3092,1
    - Dst: quicly_encode_transport_parameter_list
      Src: /src/h2o/deps/quicly/lib/quicly.c:3093,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3095,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:3095,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3096,1
    - Dst: needs_cid_auth
      Src: /src/h2o/deps/quicly/lib/quicly.c:3097,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:3097,1
    - Dst: get_transport_parameters_extension_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:3102,1
    - Dst: compress_handshake_result
      Src: /src/h2o/deps/quicly/lib/quicly.c:3110,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - tls
    - properties
    - slots
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - ptls_raw_extension_t*
    assertStmts:
    - condition: (conn->super.local.cid_set.cids[0].sequence == 0 && "make sure that
        local_cid is in expected state before sending SRT")
      pos:
        line_end: 3091
        line_start: 3091
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (slots[0].type == get_transport_parameters_extension_id(conn->super.version))
      pos:
        line_end: 3056
        line_start: 3056
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (slots[1].type == UINT16_MAX)
      pos:
        line_end: 3057
        line_start: 3057
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (properties->additional_extensions == NULL)
      pos:
        line_end: 3089
        line_start: 3089
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->initial != NULL)
      pos:
        line_end: 3078
        line_start: 3078
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3111
      start: 3047
    functionDepth: 4
    functionLinenumber: 3047
    functionLinenumberEnd: 3111
    functionName: server_collected_extensions
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - needs_cid_auth
    - compress_handshake_result
    - ack_frequency_set_next_update_at
    - quicly_cid_is_equal
    - quicly_decode_transport_parameter_list
    - quicly_encode_transport_parameter_list
    - is_retry
    - assert
    - ptls_buffer_init
    - get_transport_parameters_extension_id
    linkageType: ''
    returnType: int
    signature: int server_collected_extensions(ptls_t *tls, ptls_handshake_properties_t
      *properties, ptls_raw_extension_t *slots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:3115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aead
    - pn
    - packet
    - aead_off
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - quicly_decoded_packet_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3113
    functionDepth: 1
    functionLinenumber: 3113
    functionLinenumberEnd: 3117
    functionName: aead_decrypt_core
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_aead_decrypt
    linkageType: ''
    returnType: size_t
    signature: size_t aead_decrypt_core(ptls_aead_context_t *aead, uint64_t pn, quicly_decoded_packet_t
      *packet, size_t aead_off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead_decrypt_core
      Src: /src/h2o/deps/quicly/lib/quicly.c:3123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - pn
    - packet
    - aead_off
    - ptlen
    argTypes:
    - void*
    - uint64_t
    - quicly_decoded_packet_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3119
    functionDepth: 2
    functionLinenumber: 3119
    functionLinenumberEnd: 3126
    functionName: aead_decrypt_fixed_key
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - aead_decrypt_core
    linkageType: ''
    returnType: int
    signature: int aead_decrypt_fixed_key(void *ctx, uint64_t pn, quicly_decoded_packet_t
      *packet, size_t aead_off, size_t *ptlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:3141,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:3144,1
    - Dst: update_1rtt_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:3145,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3148,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:3149,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3150,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3151,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:3152,1
    - Dst: aead_decrypt_core
      Src: /src/h2o/deps/quicly/lib/quicly.c:3159,1
    - Dst: aead_decrypt_core
      Src: /src/h2o/deps/quicly/lib/quicly.c:3164,1
    - Dst: received_key_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:3174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - pn
    - packet
    - aead_off
    - ptlen
    argTypes:
    - void*
    - uint64_t
    - quicly_decoded_packet_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3128
    functionDepth: 5
    functionLinenumber: 3128
    functionLinenumberEnd: 3179
    functionName: aead_decrypt_1rtt
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - QUICLY_PROBE_HEXDUMP
    - ptls_cipher_free
    - QUICLY_LOG_CONN
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - QUICLY_PROBE
    - update_1rtt_key
    - received_key_update
    - PTLS_LOG_ELEMENT_UNSIGNED
    - aead_decrypt_core
    linkageType: ''
    returnType: int
    signature: int aead_decrypt_1rtt(void *ctx, uint64_t pn, quicly_decoded_packet_t
      *packet, size_t aead_off, size_t *ptlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3196,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:3197,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:3198,1
    - Dst: quicly_determine_packet_number
      Src: /src/h2o/deps/quicly/lib/quicly.c:3206,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - header_protection
    - aead_ctx
    - next_expected_pn
    - packet
    - pn
    - payload
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - uint64_t*
    - quicly_decoded_packet_t*
    - uint64_t*
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3181
    functionDepth: 1
    functionLinenumber: 3181
    functionLinenumberEnd: 3218
    functionName: do_decrypt_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_determine_packet_number
    - QUICLY_PACKET_IS_LONG_HEADER
    - ptls_cipher_encrypt
    - ptls_cipher_init
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t do_decrypt_packet(ptls_cipher_context_t *header_protection,\n
      \                                       int (*aead_cb)(void *, uint64_t, quicly_decoded_packet_t
      *, size_t, size_t *),\n                                        void *aead_ctx,
      uint64_t *next_expected_pn, quicly_decoded_packet_t *packet, uint64_t *pn,\n
      \                                       ptls_iovec_t *payload)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: do_decrypt_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:3229,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3232,1
    - Dst: received_key_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:3237,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:3246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - header_protection
    - aead_ctx
    - next_expected_pn
    - packet
    - pn
    - payload
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - uint64_t*
    - quicly_decoded_packet_t*
    - uint64_t*
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3220
    functionDepth: 5
    functionLinenumber: 3220
    functionLinenumberEnd: 3256
    functionName: decrypt_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - do_decrypt_packet
    - received_key_update
    - QUICLY_PACKET_IS_LONG_HEADER
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t decrypt_packet(ptls_cipher_context_t *header_protection,\n
      \                                    int (*aead_cb)(void *, uint64_t, quicly_decoded_packet_t
      *, size_t, size_t *), void *aead_ctx,\n                                     uint64_t
      *next_expected_pn, quicly_decoded_packet_t *packet, uint64_t *pn,\n                                     ptls_iovec_t
      *payload)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3274,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/lib/quicly.c:3281,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/lib/quicly.c:3286,1
    - Dst: quicly_ranges_drop_by_range_indices
      Src: /src/h2o/deps/quicly/lib/quicly.c:3295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - conn
    - packet
    - start
    - start_length
    - additional
    - additional_capacity
    argTypes:
    - quicly_conn_t*
    - quicly_sent_packet_t*
    - uint64_t
    - uint64_t
    - struct st_quicly_sent_ack_additional_t*
    - size_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 3273
        line_start: 3273
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3300
      start: 3258
    functionDepth: 1
    functionLinenumber: 3258
    functionLinenumberEnd: 3300
    functionName: do_on_ack_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_drop_by_range_indices
    - quicly_ranges_subtract
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t do_on_ack_ack(quicly_conn_t *conn, const quicly_sent_packet_t
      *packet, uint64_t start, uint64_t start_length,\n                                    struct
      st_quicly_sent_ack_additional_t *additional, size_t additional_capacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_on_ack_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:3308,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:3309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3302
    functionDepth: 2
    functionLinenumber: 3302
    functionLinenumberEnd: 3311
    functionName: on_ack_ack_ranges64
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - do_on_ack_ack
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_ack_ranges64(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_on_ack_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:3319,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:3320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3313
    functionDepth: 2
    functionLinenumber: 3313
    functionLinenumberEnd: 3322
    functionName: on_ack_ack_ranges8
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - do_on_ack_ack
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_ack_ranges8(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3328,1
    - Dst: quicly_sendstate_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3333,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3336,1
    - Dst: quicly_stream_t*::callbacks::on_send_shift
      Src: /src/h2o/deps/quicly/lib/quicly.c:3337,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3338,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3339,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3340,1
    - Dst: stream_is_destroyable
      Src: /src/h2o/deps/quicly/lib/quicly.c:3343,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3344,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:3346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - conn
    - stream_id
    - sent
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    - quicly_sendstate_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3324
    functionDepth: 2
    functionLinenumber: 3324
    functionLinenumberEnd: 3350
    functionName: on_ack_stream_ack_one
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - destroy_stream
    - quicly_stream_t*::callbacks::on_send_shift
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - quicly_sendstate_acked
    - QUICLY_PROBE
    - resched_stream_data
    - stream_is_destroyable
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_stream_ack_one(quicly_conn_t *conn, quicly_stream_id_t
      stream_id, quicly_sendstate_sent_t *sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_ack_stream_ack_one
      Src: /src/h2o/deps/quicly/lib/quicly.c:3356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3352
    functionDepth: 3
    functionLinenumber: 3352
    functionLinenumberEnd: 3360
    functionName: on_ack_stream_ack_cached
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - on_ack_stream_ack_one
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_stream_ack_cached(quicly_conn_t *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3369,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3371,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3372,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3373,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3374,1
    - Dst: on_ack_stream_ack_cached
      Src: /src/h2o/deps/quicly/lib/quicly.c:3384,1
    - Dst: on_ack_stream_ack_one
      Src: /src/h2o/deps/quicly/lib/quicly.c:3390,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3397,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3399,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3400,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3401,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3402,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3406,1
    - Dst: quicly_sendstate_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3409,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:3412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3362
    functionDepth: 4
    functionLinenumber: 3362
    functionLinenumberEnd: 3416
    functionName: on_ack_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - on_ack_stream_ack_one
    - quicly_get_stream
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - on_ack_stream_ack_cached
    - QUICLY_PROBE
    - resched_stream_data
    - PTLS_LOG_ELEMENT_UNSIGNED
    - quicly_sendstate_lost
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_stream(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3424,1
    - Dst: quicly_maxsender_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3426,1
    - Dst: quicly_maxsender_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3428,1
    - Dst: should_send_max_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:3429,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:3430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3418
    functionDepth: 3
    functionLinenumber: 3418
    functionLinenumberEnd: 3435
    functionName: on_ack_max_stream_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_maxsender_acked
    - sched_stream_control
    - should_send_max_stream_data
    - quicly_maxsender_lost
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_max_stream_data(quicly_sentmap_t *map, const
      quicly_sent_packet_t *packet, int acked,\n                                             quicly_sent_t
      *sent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3442,1
    - Dst: quicly_maxsender_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3448
    functionName: on_ack_max_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_acked
    - quicly_maxsender_lost
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_max_data(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3454,1
    - Dst: quicly_maxsender_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3457,1
    - Dst: quicly_maxsender_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts:
    - condition: (maxsender != NULL)
      pos:
        line_end: 3453
        line_start: 3453
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3463
      start: 3450
    functionDepth: 1
    functionLinenumber: 3450
    functionLinenumberEnd: 3463
    functionName: on_ack_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    - quicly_maxsender_acked
    - quicly_maxsender_lost
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_max_streams(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sender_state
    - acked
    argTypes:
    - quicly_sender_state_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3468
    functionName: on_ack_stream_state_sender
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_ack_stream_state_sender(quicly_sender_state_t *sender_state,
      int acked)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3475,1
    - Dst: on_ack_stream_state_sender
      Src: /src/h2o/deps/quicly/lib/quicly.c:3476,1
    - Dst: stream_is_destroyable
      Src: /src/h2o/deps/quicly/lib/quicly.c:3477,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3470
    functionDepth: 2
    functionLinenumber: 3470
    functionLinenumberEnd: 3482
    functionName: on_ack_reset_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - stream_is_destroyable
    - quicly_get_stream
    - destroy_stream
    - on_ack_stream_state_sender
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_reset_stream(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3489,1
    - Dst: on_ack_stream_state_sender
      Src: /src/h2o/deps/quicly/lib/quicly.c:3490,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:3492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3484
    functionDepth: 3
    functionLinenumber: 3484
    functionLinenumberEnd: 3496
    functionName: on_ack_stop_sending
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - sched_stream_control
    - on_ack_stream_state_sender
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_stop_sending(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_maxsender_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3506,1
    - Dst: quicly_maxsender_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3498
    functionDepth: 1
    functionLinenumber: 3498
    functionLinenumberEnd: 3512
    functionName: on_ack_streams_blocked
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_maxsender_acked
    - quicly_maxsender_lost
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_streams_blocked(quicly_sentmap_t *map, const
      quicly_sent_packet_t *packet, int acked,\n                                             quicly_sent_t
      *sent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3514
    functionDepth: 0
    functionLinenumber: 3514
    functionLinenumberEnd: 3526
    functionName: on_ack_handshake_done
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_handshake_done(quicly_sentmap_t *map, const
      quicly_sent_packet_t *packet, int acked,\n                                            quicly_sent_t
      *sent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3528
    functionDepth: 0
    functionLinenumber: 3528
    functionLinenumberEnd: 3542
    functionName: on_ack_data_blocked
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_data_blocked(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3550,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:3558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3563
      start: 3544
    functionDepth: 3
    functionLinenumber: 3544
    functionLinenumberEnd: 3563
    functionName: on_ack_stream_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - sched_stream_control
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_stream_data_blocked_frame(quicly_sentmap_t *map,
      const quicly_sent_packet_t *packet, int acked,\n                                                       quicly_sent_t
      *sent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3574,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3575,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3584
      start: 3565
    functionDepth: 1
    functionLinenumber: 3565
    functionLinenumberEnd: 3584
    functionName: on_ack_new_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_ack_new_token(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_local_cid_on_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3593,1
    - Dst: quicly_local_cid_on_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:3595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3586
    functionDepth: 1
    functionLinenumber: 3586
    functionLinenumberEnd: 3600
    functionName: on_ack_new_connection_id
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_local_cid_on_lost
    - quicly_local_cid_on_acked
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_new_connection_id(quicly_sentmap_t *map, const
      quicly_sent_packet_t *packet, int acked,\n                                               quicly_sent_t
      *sent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_remote_cid_push_retired
      Src: /src/h2o/deps/quicly/lib/quicly.c:3610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3616
      start: 3602
    functionDepth: 1
    functionLinenumber: 3602
    functionLinenumberEnd: 3616
    functionName: on_ack_retire_connection_id
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_remote_cid_push_retired
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_ack_retire_connection_id(quicly_sentmap_t *map,
      const quicly_sent_packet_t *packet, int acked,\n                                                  quicly_sent_t
      *sent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/lib/quicly.c:3623,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/lib/quicly.c:3626,1
    - Dst: quicly_pacer_calc_send_rate
      Src: /src/h2o/deps/quicly/lib/quicly.c:3638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3618
    functionDepth: 2
    functionLinenumber: 3618
    functionLinenumberEnd: 3639
    functionName: calc_pacer_send_rate
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_cc_in_jumpstart
    - quicly_cc_rapid_start_use_3x
    - quicly_pacer_calc_send_rate
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_pacer_send_rate(quicly_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3641
    functionDepth: 0
    functionLinenumber: 3641
    functionLinenumberEnd: 3650
    functionName: should_send_datagram_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_send_datagram_frame(quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3652
    functionDepth: 0
    functionLinenumber: 3652
    functionLinenumberEnd: 3660
    functionName: calc_amplification_limit_allowance
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_amplification_limit_allowance(quicly_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - conn
    - min_bytes_to_send
    - amp_window
    - pacer_window
    - restrict_sending
    argTypes:
    - quicly_conn_t*
    - size_t
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3668
    functionDepth: 0
    functionLinenumber: 3668
    functionLinenumberEnd: 3690
    functionName: calc_send_window
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t calc_send_window(quicly_conn_t *conn, size_t min_bytes_to_send,
      uint64_t amp_window, uint64_t pacer_window,\n                               int
      restrict_sending)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:3699,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:3701,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 3701
        line_start: 3701
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3704
      start: 3696
    functionDepth: 1
    functionLinenumber: 3696
    functionLinenumberEnd: 3704
    functionName: is_point5rtt_with_no_handshake_data_to_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_is_client
    - assert
    linkageType: ''
    returnType: int
    signature: int is_point5rtt_with_no_handshake_data_to_send(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_pacer_send_rate
      Src: /src/h2o/deps/quicly/lib/quicly.c:3711,1
    - Dst: quicly_pacer_can_send_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:3712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3713
      start: 3706
    functionDepth: 3
    functionLinenumber: 3706
    functionLinenumberEnd: 3713
    functionName: pacer_can_send_at
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - calc_pacer_send_rate
    - quicly_pacer_can_send_at
    linkageType: ''
    returnType: int64_t
    signature: int64_t pacer_can_send_at(quicly_conn_t *conn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: should_send_datagram_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:3720,1
    - Dst: calc_amplification_limit_allowance
      Src: /src/h2o/deps/quicly/lib/quicly.c:3723,1
    - Dst: pacer_can_send_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:3724,1
    - Dst: calc_send_window
      Src: /src/h2o/deps/quicly/lib/quicly.c:3727,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:3735,1
    - Dst: scheduler_can_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:3735,1
    - Dst: is_point5rtt_with_no_handshake_data_to_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:3741,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3750
      start: 3715
    functionDepth: 4
    functionLinenumber: 3715
    functionLinenumberEnd: 3750
    functionName: quicly_get_first_timeout
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 9
    functionsReached:
    - quicly_linklist_is_linked
    - is_point5rtt_with_no_handshake_data_to_send
    - should_send_datagram_frame
    - scheduler_can_send
    - calc_amplification_limit_allowance
    - calc_send_window
    - pacer_can_send_at
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_get_first_timeout(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3758
      start: 3752
    functionDepth: 0
    functionLinenumber: 3752
    functionLinenumberEnd: 3758
    functionName: quicly_get_next_expected_packet_number
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quicly_get_next_expected_packet_number(quicly_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3766,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:3773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - path_index
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts:
    - condition: (path->dcid == UINT64_MAX)
      pos:
        line_end: 3765
        line_start: 3765
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3787
      start: 3760
    functionDepth: 1
    functionLinenumber: 3760
    functionLinenumberEnd: 3787
    functionName: setup_path_dcid
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - assert
    linkageType: ''
    returnType: int
    signature: int setup_path_dcid(quicly_conn_t *conn, size_t path_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3793,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:3796,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - path_index
    argTypes:
    - quicly_conn_t*
    - size_t
    assertStmts:
    - condition: (path->dcid != UINT64_MAX)
      pos:
        line_end: 3792
        line_start: 3792
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!"CID lookup failure")
      pos:
        line_end: 3799
        line_start: 3799
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 3802
      start: 3789
    functionDepth: 1
    functionLinenumber: 3789
    functionLinenumberEnd: 3802
    functionName: get_dcid
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    - assert
    linkageType: ''
    returnType: quicly_cid_t
    signature: quicly_cid_t *get_dcid(quicly_conn_t *conn, size_t path_index)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3894,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3896,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3903,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3905,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:3906,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:3911,1
    - Dst: quicly_encode16
      Src: /src/h2o/deps/quicly/lib/quicly.c:3915,1
    - Dst: update_1rtt_egress_key
      Src: /src/h2o/deps/quicly/lib/quicly.c:3930,1
    - Dst: quicly_encode16
      Src: /src/h2o/deps/quicly/lib/quicly.c:3936,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3941,1
    - Dst: quicly_conn_t*::super::ctx::crypto_engine::encrypt_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:3943,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:3945,1
    - Dst: quicly_sentmap_is_open
      Src: /src/h2o/deps/quicly/lib/quicly.c:3956,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/lib/quicly.c:3959,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:3963,1
    - Dst: quicly_conn_t*::egress::cc::type::cc_on_sent
      Src: /src/h2o/deps/quicly/lib/quicly.c:3964,1
    - Dst: quicly_pacer_consume_window
      Src: /src/h2o/deps/quicly/lib/quicly.c:3966,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:3969,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:3970,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:3971,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3972,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3973,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:3974,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:3974,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:3975,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:3994,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/lib/quicly.c:3997,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/lib/quicly.c:4000,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/lib/quicly.c:4002,1
    - Dst: calc_next_pn_to_skip
      Src: /src/h2o/deps/quicly/lib/quicly.c:4004,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - conn
    - s
    - coalesced
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - int
    assertStmts:
    - condition: (s->dst != s->dst_payload_from)
      pos:
        line_end: 3895
        line_start: 3895
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (datagram_size <= conn->egress.max_udp_payload_size)
      pos:
        line_end: 3940
        line_start: 3940
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->path_index == 0 && "CC governs path 0 and data is sent only on
        that path")
      pos:
        line_end: 3962
        line_start: 3962
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->num_datagrams == 0 || s->datagrams[s->num_datagrams - 1].iov_len
        == conn->egress.max_udp_payload_size)
      pos:
        line_end: 3902
        line_start: 3902
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->dst - s->payload_buf.datagram <= max_size)
      pos:
        line_end: 3904
        line_start: 3904
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->target.cipher->aead != NULL)
      pos:
        line_end: 3893
        line_start: 3893
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4009
      start: 3890
    functionDepth: 4
    functionLinenumber: 3890
    functionLinenumberEnd: 4009
    functionName: commit_send_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - quicly_sentmap_prepare
    - quicly_conn_t*::egress::cc::type::cc_on_sent
    - quicly_pacer_consume_window
    - calc_next_pn_to_skip
    - quicly_sentmap_is_open
    - assert
    - PTLS_LOG_ELEMENT_UNSIGNED
    - ptls_iovec_init
    - update_1rtt_egress_key
    - PTLS_LOG_ELEMENT_BOOL
    - quicly_conn_t*::super::ctx::crypto_engine::encrypt_packet
    - memset
    - get_epoch
    - quicly_encode16
    - quicly_sentmap_allocate
    - QUICLY_PACKET_IS_LONG_HEADER
    - QUICLY_LOG_CONN
    - quicly_sentmap_commit
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t commit_send_packet(quicly_conn_t *conn, quicly_send_context_t
      *s, int coalesced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:4014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - cid
    argTypes:
    - uint8_t*
    - quicly_cid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 4011
    functionDepth: 1
    functionLinenumber: 4011
    functionLinenumberEnd: 4018
    functionName: emit_cid
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *emit_cid(uint8_t *dst, const quicly_cid_t *cid)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4032,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:4038,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:4050,1
    - Dst: commit_send_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:4063,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4088,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:4088,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4089,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4090,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:4091,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:4097,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:4098,1
    - Dst: emit_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:4100,1
    - Dst: emit_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:4102,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:4105,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4107,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:4108,1
    - Dst: emit_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:4116,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4120,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4122,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:4126,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/lib/quicly.c:4129,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4134,1
    - Dst: quicly_encode_ack_frequency_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4148,1
    - Dst: ack_frequency_set_next_update_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:4153,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 4
    argNames:
    - conn
    - s
    - min_space
    - frame_type
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - size_t
    - enum allocate_frame_type
    assertStmts:
    - condition: (conn->super.remote.transport_params.min_ack_delay_usec != UINT64_MAX)
      pos:
        line_end: 4133
        line_start: 4133
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: ((s->current.first_byte & QUICLY_QUIC_BIT) != 0)
      pos:
        line_end: 4031
        line_start: 4031
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->dst_end - s->dst >= QUICLY_MAX_PN_SIZE - QUICLY_SEND_PN_SIZE)
      pos:
        line_end: 4121
        line_start: 4121
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->dst_end - s->dst > conn->token.len)
      pos:
        line_end: 4106
        line_start: 4106
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->target.cipher->aead != NULL)
      pos:
        line_end: 4119
        line_start: 4119
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4163
      start: 4026
    functionDepth: 5
    functionLinenumber: 4026
    functionLinenumberEnd: 4163
    functionName: do_allocate_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - commit_send_packet
    - quicly_encodev
    - get_epoch
    - quicly_sentmap_prepare
    - PTLS_LOG_ELEMENT_UNSIGNED
    - quicly_encode_ack_frequency_frame
    - QUICLY_PROBE_HEXDUMP
    - PTLS_LOG_ELEMENT_HEXDUMP
    - QUICLY_PACKET_IS_LONG_HEADER
    - quicly_encode32
    - ack_frequency_set_next_update_at
    - QUICLY_LOG_CONN
    - memcpy
    - emit_cid
    - QUICLY_PROBE
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context_t
      *s, size_t min_space,\n                                        enum allocate_frame_type
      frame_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4170,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/lib/quicly.c:4172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - conn
    - s
    - min_space
    - sent
    - acked
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - size_t
    - quicly_sent_t**
    - quicly_sent_acked_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4165
    functionDepth: 6
    functionLinenumber: 4165
    functionLinenumberEnd: 4176
    functionName: allocate_ack_eliciting_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_allocate
    - do_allocate_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t allocate_ack_eliciting_frame(quicly_conn_t *conn, quicly_send_context_t
      *s, size_t min_space,\n                                                   quicly_sent_t
      **sent, quicly_sent_acked_cb acked)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4196,1
    - Dst: quicly_encode_ack_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4199,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4206,1
    - Dst: commit_send_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:4210,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4216,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4217,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4218,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4219,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4227,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4228,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/lib/quicly.c:4239,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:4247,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:4252,1
    - Dst: update_smallest_unreported_missing_on_send_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:4271,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - conn
    - space
    - s
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_pn_space_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (s->target.first_byte_at != s->payload_buf.datagram)
      pos:
        line_end: 4205
        line_start: 4205
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4274
      start: 4178
    functionDepth: 6
    functionLinenumber: 4178
    functionLinenumberEnd: 4274
    functionName: send_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - update_smallest_unreported_missing_on_send_ack
    - quicly_encode_ack_frame
    - quicly_sentmap_allocate
    - PTLS_ELEMENTSOF
    - commit_send_packet
    - PTLS_LOG_ELEMENT_UNSIGNED
    - do_allocate_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_ack(quicly_conn_t *conn, struct st_quicly_pn_space_t
      *space, quicly_send_context_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - stream
    - sender
    - s
    - min_space
    - ack_cb
    argTypes:
    - quicly_stream_t*
    - quicly_sender_state_t*
    - quicly_send_context_t*
    - size_t
    - quicly_sent_acked_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4276
    functionDepth: 7
    functionLinenumber: 4276
    functionLinenumberEnd: 4288
    functionName: prepare_stream_state_sender
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - allocate_ack_eliciting_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t prepare_stream_state_sender(quicly_stream_t *stream,
      quicly_sender_state_t *sender, quicly_send_context_t *s,\n                                                  size_t
      min_space, quicly_sent_acked_cb ack_cb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: prepare_stream_state_sender
      Src: /src/h2o/deps/quicly/lib/quicly.c:4297,1
    - Dst: quicly_encode_stop_sending_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4300,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4302,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4304,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4305,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4306,1
    - Dst: should_send_max_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:4311,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4315,1
    - Dst: quicly_encode_max_stream_data_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4319,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/lib/quicly.c:4322,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4325,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4326,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4327,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4328,1
    - Dst: prepare_stream_state_sender
      Src: /src/h2o/deps/quicly/lib/quicly.c:4334,1
    - Dst: quicly_encode_reset_stream_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4337,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4340,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4342,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4343,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4344,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4345,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4352,1
    - Dst: quicly_encode_stream_data_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4358,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4361,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4362,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4363,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - stream
    - s
    argTypes:
    - quicly_stream_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4290
    functionDepth: 8
    functionLinenumber: 4290
    functionLinenumberEnd: 4369
    functionName: send_control_frames_of_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - allocate_ack_eliciting_frame
    - quicly_encode_stop_sending_frame
    - quicly_maxsender_record
    - prepare_stream_state_sender
    - QUICLY_LOG_CONN
    - quicly_encode_max_stream_data_frame
    - PTLS_LOG_ELEMENT_SIGNED
    - should_send_max_stream_data
    - quicly_encode_stream_data_blocked_frame
    - QUICLY_PROBE
    - quicly_encode_reset_stream_frame
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_control_frames_of_stream(quicly_stream_t *stream,
      quicly_send_context_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:4375,1
    - Dst: send_control_frames_of_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:4378,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/quicly.c:4380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4385
      start: 4371
    functionDepth: 9
    functionLinenumber: 4371
    functionLinenumberEnd: 4385
    functionName: send_stream_control_frames
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - send_control_frames_of_stream
    - quicly_linklist_unlink
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_stream_control_frames(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4387
    functionDepth: 0
    functionLinenumber: 4387
    functionLinenumberEnd: 4399
    functionName: quicly_is_blocked
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_is_blocked(quicly_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4414,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:4421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - stream
    - at_stream_level
    argTypes:
    - quicly_stream_t*
    - int
    assertStmts:
    - condition: (stream->sendstate.pending.ranges[0].start == stream->sendstate.final_size)
      pos:
        line_end: 4413
        line_start: 4413
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4425
      start: 4401
    functionDepth: 3
    functionLinenumber: 4401
    functionLinenumberEnd: 4425
    functionName: quicly_stream_can_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - sched_stream_control
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_stream_can_send(quicly_stream_t *stream, int at_stream_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: quicly_can_send_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_can_send_data(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:4440,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/lib/quicly.c:4453,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/quicly.c:4454,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/lib/quicly.c:4465,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:4466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - dst
    - dst_end
    - len
    - wrote_all
    - frame_at
    argTypes:
    - uint8_t**
    - uint8_t*
    - size_t*
    - int*
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4437
    functionDepth: 1
    functionLinenumber: 4437
    functionLinenumberEnd: 4468
    functionName: adjust_stream_frame_layout
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    - memset
    - memmove
    - quicly_encodev
    linkageType: ''
    returnType: void
    signature: "void adjust_stream_frame_layout(uint8_t **dst, uint8_t *const dst_end,
      size_t *len, int *wrote_all,\n                                              uint8_t
      **frame_at)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4482,1
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:4483,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:4488,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:4492,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:4495,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4500,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/quicly.c:4500,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4503,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:4509,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4516,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:4519,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4538,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/quicly.c:4538,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4539,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4549,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4551,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4552,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4553,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4554,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4555,1
    - Dst: quicly_stream_t*::callbacks::on_send_emit
      Src: /src/h2o/deps/quicly/lib/quicly.c:4557,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4563,1
    - Dst: adjust_stream_frame_layout
      Src: /src/h2o/deps/quicly/lib/quicly.c:4565,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4569,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/quicly.c:4569,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4570,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4590,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4591,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4592,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4593,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:4594,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:4595,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:4596,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4599,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/lib/quicly.c:4606,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/lib/quicly.c:4609,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 114
    argCount: 2
    argNames:
    - stream
    - s
    argTypes:
    - quicly_stream_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (!quicly_sendstate_is_open(&stream->sendstate))
      pos:
        line_end: 4499
        line_start: 4499
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_sendstate_is_open(&stream->sendstate))
      pos:
        line_end: 4537
        line_start: 4537
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (range_capacity > 1)
      pos:
        line_end: 4538
        line_start: 4538
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (len != 0)
      pos:
        line_end: 4548
        line_start: 4548
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_sendstate_is_open(&stream->sendstate))
      pos:
        line_end: 4568
        line_start: 4568
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (len != 0)
      pos:
        line_end: 4562
        line_start: 4562
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (s->dst != NULL)
      pos:
        line_end: 4569
        line_start: 4569
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4619
      start: 4470
    functionDepth: 7
    functionLinenumber: 4470
    functionLinenumberEnd: 4619
    functionName: quicly_send_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - adjust_stream_frame_layout
    - quicly_ranges_subtract
    - allocate_ack_eliciting_frame
    - quicly_encodev
    - quicly_encodev_capacity
    - PTLS_LOG_ELEMENT_UNSIGNED
    - quicly_stream_t*::callbacks::on_send_emit
    - PTLS_LOG_ELEMENT_BOOL
    - quicly_sendstate_is_open
    - memcpy
    - QUICLY_LOG_CONN
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - PTLS_LOG_ELEMENT_SIGNED
    - QUICLY_PROBE
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_send_stream(quicly_stream_t *stream, quicly_send_context_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init_sentmap_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:4623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - iter
    argTypes:
    - quicly_conn_t*
    - quicly_sentmap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4621
    functionDepth: 1
    functionLinenumber: 4621
    functionLinenumberEnd: 4626
    functionName: init_acks_iter
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_loss_init_sentmap_iter
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t init_acks_iter(quicly_conn_t *conn, quicly_sentmap_iter_t
      *iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_acks_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:4634,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:4637,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:4639,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/quicly.c:4642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - ack_epochs
    argTypes:
    - quicly_conn_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4647
      start: 4628
    functionDepth: 2
    functionLinenumber: 4628
    functionLinenumberEnd: 4647
    functionName: discard_sentmap_by_epoch
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - quicly_sentmap_get
    - quicly_sentmap_update
    - quicly_sentmap_skip
    - init_acks_iter
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t discard_sentmap_by_epoch(quicly_conn_t *conn, unsigned
      ack_epochs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_acks_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:4658,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:4661,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:4664,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4666,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/quicly.c:4670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - ack_epoch
    - bytes_to_mark
    argTypes:
    - quicly_conn_t*
    - uint8_t
    - size_t*
    assertStmts:
    - condition: (!sent->frames_in_flight)
      pos:
        line_end: 4665
        line_start: 4665
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4675
      start: 4652
    functionDepth: 2
    functionLinenumber: 4652
    functionLinenumberEnd: 4675
    functionName: mark_frames_on_pto
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_get
    - init_acks_iter
    - quicly_sentmap_update
    - quicly_sentmap_skip
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t mark_frames_on_pto(quicly_conn_t *conn, uint8_t ack_epoch,
      size_t *bytes_to_mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_conn_t*::egress::cc::type::cc_on_lost
      Src: /src/h2o/deps/quicly/lib/quicly.c:4680,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4682,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4684,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4685,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4686,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - lost_bytes
    - lost_pn
    argTypes:
    - quicly_conn_t*
    - uint16_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4677
    functionDepth: 1
    functionLinenumber: 4677
    functionLinenumberEnd: 4690
    functionName: notify_congestion_to_cc
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_LOG_CONN
    - quicly_conn_t*::egress::cc::type::cc_on_lost
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE
    linkageType: ''
    returnType: void
    signature: void notify_congestion_to_cc(quicly_conn_t *conn, uint16_t lost_bytes,
      uint64_t lost_pn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4696,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4702,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4703,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4704,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4705,1
    - Dst: notify_congestion_to_cc
      Src: /src/h2o/deps/quicly/lib/quicly.c:4707,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - loss
    - lost_packet
    - is_time_threshold
    argTypes:
    - quicly_loss_t*
    - quicly_sent_packet_t*
    - int
    assertStmts:
    - condition: (lost_packet->cc_bytes_in_flight != 0)
      pos:
        line_end: 4695
        line_start: 4695
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4710
      start: 4692
    functionDepth: 2
    functionLinenumber: 4692
    functionLinenumberEnd: 4710
    functionName: on_loss_detected
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    - notify_congestion_to_cc
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: void
    signature: void on_loss_detected(quicly_loss_t *loss, const quicly_sent_packet_t
      *lost_packet, int is_time_threshold)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: should_send_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:4714,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4727,1
    - Dst: quicly_encode_max_streams_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4729,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/lib/quicly.c:4731,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4738,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4739,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4740,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:4741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - uni
    - s
    argTypes:
    - quicly_conn_t*
    - int
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4712
    functionDepth: 7
    functionLinenumber: 4712
    functionLinenumberEnd: 4745
    functionName: send_max_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - should_send_max_streams
    - allocate_ack_eliciting_frame
    - quicly_maxsender_record
    - PTLS_LOG_ELEMENT_BOOL
    - quicly_encode_max_streams_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_max_streams(quicly_conn_t *conn, int uni, quicly_send_context_t
      *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:4752,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4758,1
    - Dst: quicly_maxsender_should_send_blocked
      Src: /src/h2o/deps/quicly/lib/quicly.c:4760,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4764,1
    - Dst: quicly_encode_streams_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4766,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/lib/quicly.c:4768,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4771,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4772,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4773,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:4774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - conn
    - uni
    - s
    argTypes:
    - quicly_conn_t*
    - int
    - quicly_send_context_t*
    assertStmts:
    - condition: (max_streams->count == oldest_blocked_stream->stream_id / 4)
      pos:
        line_end: 4757
        line_start: 4757
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4778
      start: 4747
    functionDepth: 7
    functionLinenumber: 4747
    functionLinenumberEnd: 4778
    functionName: send_streams_blocked
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - allocate_ack_eliciting_frame
    - quicly_maxsender_record
    - quicly_maxsender_should_send_blocked
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_ELEMENT_BOOL
    - QUICLY_LOG_CONN
    - quicly_encode_streams_blocked_frame
    - QUICLY_PROBE
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_streams_blocked(quicly_conn_t *conn, int uni, quicly_send_context_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:4793,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4797,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/quicly.c:4798,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:4800,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:4804,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:4805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - uni
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts:
    - condition: (stream->streams_blocked)
      pos:
        line_end: 4796
        line_start: 4796
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4807
      start: 4780
    functionDepth: 3
    functionLinenumber: 4780
    functionLinenumberEnd: 4807
    functionName: open_blocked_streams
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - quicly_linklist_unlink
    - sched_stream_control
    - quicly_stream_is_unidirectional
    - resched_stream_data
    - assert
    linkageType: ''
    returnType: void
    signature: void open_blocked_streams(quicly_conn_t *conn, int uni)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4814,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4819,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4809
    functionDepth: 7
    functionLinenumber: 4809
    functionLinenumberEnd: 4825
    functionName: send_handshake_done
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_LOG_CONN
    - allocate_ack_eliciting_frame
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_handshake_done(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4833,1
    - Dst: quicly_encode_data_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4836,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4840,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4841,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4827
    functionDepth: 7
    functionLinenumber: 4827
    functionLinenumberEnd: 4846
    functionName: send_data_blocked
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - allocate_ack_eliciting_frame
    - QUICLY_LOG_CONN
    - quicly_encode_data_blocked_frame
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_data_blocked(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:4864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - new_rtt
    - prev_rate
    - prev_rtt
    argTypes:
    - quicly_context_t*
    - uint32_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4869
      start: 4853
    functionDepth: 1
    functionLinenumber: 4853
    functionLinenumberEnd: 4869
    functionName: derive_jumpstart_cwnd
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - quicly_cc_calc_initial_cwnd
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t derive_jumpstart_cwnd(quicly_context_t *ctx, uint32_t new_rtt,
      uint64_t prev_rate, uint32_t prev_rtt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:4880,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:4884,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:4887,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:4892,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - src
    - len
    - rate
    - min_rtt
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4871
    functionDepth: 1
    functionLinenumber: 4871
    functionLinenumberEnd: 4908
    functionName: decode_resumption_info
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_decode_open_block
    - ptls_decode_quicint
    linkageType: ''
    returnType: int
    signature: int decode_resumption_info(const uint8_t *src, size_t len, uint64_t
      *rate, uint32_t *min_rtt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:4915,1
    - Dst: PUSH_ENTRY
      Src: /src/h2o/deps/quicly/lib/quicly.c:4925,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:4926,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:4927,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - dst
    - capacity
    argTypes:
    - quicly_conn_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (!buf.is_allocated)
      pos:
        line_end: 4933
        line_start: 4933
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4936
      start: 4910
    functionDepth: 1
    functionLinenumber: 4910
    functionLinenumberEnd: 4936
    functionName: encode_resumption_info
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    - ptls_buffer_push_quicint
    - PUSH_ENTRY
    - ptls_buffer_init
    linkageType: ''
    returnType: size_t
    signature: size_t encode_resumption_info(quicly_conn_t *conn, uint8_t *dst, size_t
      capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4922
      start: 4917
    functionDepth: 0
    functionLinenumber: 4917
    functionLinenumberEnd: 4922
    functionName: PUSH_ENTRY
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_ENTRY(id, block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calc_resume_sendrate
      Src: /src/h2o/deps/quicly/lib/quicly.c:4941,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:4949,1
    - Dst: quicly_conn_t*::super::ctx::now::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:4953,1
    - Dst: encode_resumption_info
      Src: /src/h2o/deps/quicly/lib/quicly.c:4955,1
    - Dst: quicly_conn_t*::super::ctx::generate_resumption_token::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:4958,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:4961,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4964,1
    - Dst: quicly_new_token_frame_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:4964,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:4964,1
    - Dst: quicly_encode_new_token_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:4970,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:4970,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:4974,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:4975,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:4976,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:4977,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/lib/quicly.c:4981,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (tokenbuf.off < QUICLY_MIN_CLIENT_INITIAL_SIZE / 2 && "this is a
        ballpark figure, but tokens ought to be small")
      pos:
        line_end: 4960
        line_start: 4960
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 4983
      start: 4938
    functionDepth: 7
    functionLinenumber: 4938
    functionLinenumberEnd: 4983
    functionName: send_resumption_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - calc_resume_sendrate
    - quicly_conn_t*::super::ctx::now::cb
    - allocate_ack_eliciting_frame
    - ptls_buffer_dispose
    - PTLS_LOG_ELEMENT_UNSIGNED
    - quicly_new_token_frame_capacity
    - PTLS_LOG_ELEMENT_HEXDUMP
    - quicly_encode_new_token_frame
    - QUICLY_LOG_CONN
    - encode_resumption_info
    - QUICLY_PROBE
    - quicly_conn_t*::super::ctx::generate_resumption_token::cb
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_resumption_token(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_context_t*::tls::random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:4991,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:4995,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:4999,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5004,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:5009,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5013,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:5015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - dest_cid
    - src_cid
    - versions
    - payload
    argTypes:
    - quicly_context_t*
    - ptls_iovec_t
    - ptls_iovec_t
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 4985
    functionDepth: 1
    functionLinenumber: 4985
    functionLinenumberEnd: 5018
    functionName: quicly_send_version_negotiation
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - memcpy
    - quicly_context_t*::tls::random_bytes
    - quicly_encode32
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_send_version_negotiation(quicly_context_t *ctx, ptls_iovec_t
      dest_cid, ptls_iovec_t src_cid, const uint32_t *versions,\n                                       void
      *payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5027,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5030,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/quicly/lib/quicly.c:5033,1
    - Dst: quicly_decode64
      Src: /src/h2o/deps/quicly/lib/quicly.c:5036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - sha256
    - client_cid
    - server_cid
    - value
    argTypes:
    - ptls_hash_algorithm_t*
    - ptls_iovec_t
    - ptls_iovec_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5020
    functionDepth: 1
    functionLinenumber: 5020
    functionLinenumberEnd: 5039
    functionName: quicly_retry_calc_cidpair_hash
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_calc_hash
    - quicly_decode64
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_retry_calc_cidpair_hash(ptls_hash_algorithm_t
      *sha256, ptls_iovec_t client_cid, ptls_iovec_t server_cid,\n                                              uint64_t
      *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5050,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/lib/quicly.c:5050,1
    - Dst: quicly_context_t*::now::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:5053,1
    - Dst: set_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:5054,1
    - Dst: set_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:5055,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5057,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5058,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5059,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5061,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5062,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:5067,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:5070,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:5070,1
    - Dst: quicly_context_t*::tls::random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:5071,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/quicly/lib/quicly.c:5074,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:5075,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:5075,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:5076,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:5076,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5078,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5079,1
    - Dst: quicly_encrypt_address_token
      Src: /src/h2o/deps/quicly/lib/quicly.c:5082,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/quicly/lib/quicly.c:5087,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5088,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5089,1
    - Dst: create_retry_aead
      Src: /src/h2o/deps/quicly/lib/quicly.c:5092,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:5093,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:5097,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/lib/quicly.c:5103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 12
    argNames:
    - ctx
    - token_encrypt_ctx
    - protocol_version
    - dest_addr
    - dest_cid
    - src_addr
    - src_cid
    - odcid
    - token_prefix
    - appdata
    - retry_aead_cache
    - datagram
    argTypes:
    - quicly_context_t*
    - ptls_aead_context_t*
    - uint32_t
    - struct sockaddr*
    - ptls_iovec_t
    - struct sockaddr*
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_aead_context_t**
    - uint8_t*
    assertStmts:
    - condition: (!buf.is_allocated && "retry packet is too large")
      pos:
        line_end: 5088
        line_start: 5088
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (appdata.len <= sizeof(token.appdata.bytes))
      pos:
        line_end: 5060
        line_start: 5060
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (ret == 0)
      pos:
        line_end: 5087
        line_start: 5087
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!(src_cid.len == odcid.len && memcmp(src_cid.base, odcid.base, src_cid.len)
        == 0))
      pos:
        line_end: 5049
        line_start: 5049
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (token_prefix.len <= buf.capacity - buf.off)
      pos:
        line_end: 5077
        line_start: 5077
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5110
      start: 5041
    functionDepth: 2
    functionLinenumber: 5041
    functionLinenumberEnd: 5110
    functionName: quicly_send_retry
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - ptls_buffer_pushv
    - ptls_aead_encrypt
    - memcmp
    - ptls_buffer_push_block
    - quicly_context_t*::tls::random_bytes
    - create_retry_aead
    - ptls_buffer_reserve
    - ptls_aead_free
    - memcpy
    - set_address
    - ptls_buffer_push32
    - quicly_context_t*::now::cb
    - memmove
    - quicly_set_cid
    - quicly_encrypt_address_token
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_send_retry(quicly_context_t *ctx, ptls_aead_context_t
      *token_encrypt_ctx, uint32_t protocol_version,\n                         struct
      sockaddr *dest_addr, ptls_iovec_t dest_cid, struct sockaddr *src_addr, ptls_iovec_t
      src_cid,\n                         ptls_iovec_t odcid, ptls_iovec_t token_prefix,
      ptls_iovec_t appdata,\n                         ptls_aead_context_t **retry_aead_cache,
      uint8_t *datagram)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5140,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - conn
    - epoch
    - s
    argTypes:
    - quicly_conn_t*
    - size_t
    - quicly_send_context_t*
    assertStmts:
    - condition: (!"logic flaw")
      pos:
        line_end: 5139
        line_start: 5139
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5145
      start: 5112
    functionDepth: 0
    functionLinenumber: 5112
    functionLinenumberEnd: 5145
    functionName: setup_send_space
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: struct st_quicly_pn_space_t
    signature: struct st_quicly_pn_space_t *setup_send_space(quicly_conn_t *conn,
      size_t epoch, quicly_send_context_t *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setup_send_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5153,1
    - Dst: send_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:5158,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:5164,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5165,1
    - Dst: quicly_send_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:5166,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:5168,1
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5174,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5179,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5180,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - conn
    - epoch
    - s
    - ack_only
    - send_probe
    argTypes:
    - quicly_conn_t*
    - size_t
    - quicly_send_context_t*
    - int
    - int
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 5164
        line_start: 5164
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5186
      start: 5147
    functionDepth: 7
    functionLinenumber: 5147
    functionLinenumberEnd: 5186
    functionName: send_handshake_flow
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_send_stream
    - do_allocate_frame
    - QUICLY_LOG_CONN
    - setup_send_space
    - QUICLY_PROBE
    - send_ack
    - resched_stream_data
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_handshake_flow(quicly_conn_t *conn, size_t epoch,
      quicly_send_context_t *s, int ack_only, int send_probe)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5192,1
    - Dst: setup_send_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5195,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5209,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5210,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5213,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5214,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5215,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/quicly.c:5216,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5218,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:5219,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5222,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5227,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/quicly/lib/quicly.c:5230,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5231,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5232,1
    - Dst: QUICLY_TRANSPORT_ERROR_CRYPTO
      Src: /src/h2o/deps/quicly/lib/quicly.c:5232,1
    - Dst: PTLS_ERROR_TO_ALERT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5232,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5234,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5235,1
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5239,1
    - Dst: quicly_close_frame_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:5239,1
    - Dst: quicly_encode_close_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5242,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5247,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5248,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5249,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5250,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:5251,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:5251,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5255,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5256,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5257,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:5258,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:5258,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 3
    argNames:
    - conn
    - epoch
    - s
    argTypes:
    - quicly_conn_t*
    - size_t
    - quicly_send_context_t*
    assertStmts:
    - condition: (!conn->connection_close.is_remote)
      pos:
        line_end: 5191
        line_start: 5191
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (offending_frame_type == UINT64_MAX)
      pos:
        line_end: 5217
        line_start: 5217
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (offending_frame_type != UINT64_MAX)
      pos:
        line_end: 5208
        line_start: 5208
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (offending_frame_type != UINT64_MAX)
      pos:
        line_end: 5213
        line_start: 5213
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (offending_frame_type != UINT64_MAX)
      pos:
        line_end: 5233
        line_start: 5233
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (offending_frame_type != UINT64_MAX)
      pos:
        line_end: 5230
        line_start: 5230
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5263
      start: 5188
    functionDepth: 6
    functionLinenumber: 5188
    functionLinenumberEnd: 5263
    functionName: send_connection_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ERROR_GET_CLASS
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - get_epoch
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_ERROR_TO_ALERT
    - do_allocate_frame
    - QUICLY_TRANSPORT_ERROR_CRYPTO
    - QUICLY_ERROR_GET_ERROR_CODE
    - setup_send_space
    - quicly_close_frame_capacity
    - quicly_encode_close_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSAFESTR
    - assert
    - strlen
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_connection_close(quicly_conn_t *conn, size_t epoch,
      quicly_send_context_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5271,1
    - Dst: quicly_new_connection_id_frame_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:5272,1
    - Dst: quicly_encode_new_connection_id_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5277,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5281,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5282,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5283,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5284,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5285,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5286,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5287,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - conn
    - s
    - new_cid
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - struct st_quicly_local_cid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5265
    functionDepth: 7
    functionLinenumber: 5265
    functionLinenumberEnd: 5292
    functionName: send_new_connection_id
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - allocate_ack_eliciting_frame
    - QUICLY_PROBE_HEXDUMP
    - PTLS_LOG_ELEMENT_HEXDUMP
    - quicly_new_connection_id_frame_capacity
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_encode_new_connection_id_frame
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_new_connection_id(quicly_conn_t *conn, quicly_send_context_t
      *s, struct st_quicly_local_cid_t *new_cid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5299,1
    - Dst: quicly_retire_connection_id_frame_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:5299,1
    - Dst: quicly_encode_retire_connection_id_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5304,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5307,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5308,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - conn
    - s
    - sequence
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5311
      start: 5294
    functionDepth: 7
    functionLinenumber: 5294
    functionLinenumberEnd: 5311
    functionName: send_retire_connection_id
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - allocate_ack_eliciting_frame
    - quicly_encode_retire_connection_id_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_retire_connection_id_frame_capacity
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_retire_connection_id(quicly_conn_t *conn, quicly_send_context_t
      *s, uint64_t sequence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5317,1
    - Dst: quicly_encode_path_challenge_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5320,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5325,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5326,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5326,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5329,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5330,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - conn
    - s
    - is_response
    - data
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5334
      start: 5313
    functionDepth: 6
    functionLinenumber: 5313
    functionLinenumberEnd: 5334
    functionName: send_path_challenge
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - do_allocate_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_encode_path_challenge_frame
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_path_challenge(quicly_conn_t *conn, quicly_send_context_t
      *s, int is_response, const uint8_t *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/quicly/lib/quicly.c:5338,1
    - Dst: ptls_get_context
      Src: /src/h2o/deps/quicly/lib/quicly.c:5339,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:5340,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/quicly/lib/quicly.c:5347,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5349,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5350,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5351,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:5352,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5353,1
    - Dst: PTLS_LOG_ELEMENT_SAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:5354,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5355,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/quicly/lib/quicly.c:5360,1
    - Dst: ptls_context_t*::log_event::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:5361,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5372,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:5372,1
    - Dst: setup_application_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5373,1
    - Dst: SELECT_CIPHER_CONTEXT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5376,1
    - Dst: setup_handshake_space_and_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:5385,1
    - Dst: SELECT_CIPHER_CONTEXT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5387,1
    - Dst: compress_handshake_result
      Src: /src/h2o/deps/quicly/lib/quicly.c:5394,1
    - Dst: apply_remote_transport_params
      Src: /src/h2o/deps/quicly/lib/quicly.c:5394,1
    - Dst: setup_application_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5396,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:5401,1
    - Dst: SELECT_CIPHER_CONTEXT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5402,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5410,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5413,1
    - Dst: setup_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:5419,1
    - Dst: open_blocked_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5425,1
    - Dst: open_blocked_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5426,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:5427,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/quicly.c:5428,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:5431,1
    - Dst: quicly_send_resumption_token
      Src: /src/h2o/deps/quicly/lib/quicly.c:5432,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5433,1
    - Dst: local_cid_size
      Src: /src/h2o/deps/quicly/lib/quicly.c:5437,1
    - Dst: quicly_local_cid_set_size
      Src: /src/h2o/deps/quicly/lib/quicly.c:5438,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 5
    argNames:
    - self
    - tls
    - is_enc
    - epoch
    - secret
    argTypes:
    - ptls_update_traffic_key_t*
    - ptls_t*
    - int
    - size_t
    - void*
    assertStmts:
    - condition: (is_enc == quicly_is_client(conn))
      pos:
        line_end: 5371
        line_start: 5371
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!"logic flaw")
      pos:
        line_end: 5412
        line_start: 5412
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (ret64 == 0)
      pos:
        line_end: 5432
        line_start: 5432
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5443
      start: 5336
    functionDepth: 4
    functionLinenumber: 5336
    functionLinenumberEnd: 5443
    functionName: update_traffic_key_cb
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_is_server
    - ptls_hexdump
    - compress_handshake_result
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - assert
    - PTLS_LOG_ELEMENT_UNSIGNED
    - ptls_get_cipher
    - quicly_is_client
    - ptls_get_context
    - ptls_get_data_ptr
    - PTLS_LOG_ELEMENT_BOOL
    - PTLS_LOG_ELEMENT_SAFESTR
    - SELECT_CIPHER_CONTEXT
    - quicly_local_cid_set_size
    - apply_remote_transport_params
    - quicly_linklist_is_linked
    - setup_cipher
    - local_cid_size
    - QUICLY_PROBE_HEXDUMP
    - memcpy
    - open_blocked_streams
    - dispose_cipher
    - quicly_send_resumption_token
    - setup_application_space
    - QUICLY_LOG_CONN
    - ptls_context_t*::log_event::cb
    - QUICLY_PROBE
    - setup_handshake_space_and_flow
    linkageType: ''
    returnType: int
    signature: int update_traffic_key_cb(ptls_update_traffic_key_t *self, ptls_t *tls,
      int is_enc, size_t epoch, const void *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5369
      start: 5364
    functionDepth: 0
    functionLinenumber: 5364
    functionLinenumberEnd: 5369
    functionName: SELECT_CIPHER_CONTEXT
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_CIPHER_CONTEXT(p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: send_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5450,1
    - Dst: send_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5452,1
    - Dst: should_send_max_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:5456,1
    - Dst: allocate_ack_eliciting_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5458,1
    - Dst: quicly_encode_max_data_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5461,1
    - Dst: quicly_maxsender_record
      Src: /src/h2o/deps/quicly/lib/quicly.c:5462,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5464,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5465,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5465,1
    - Dst: send_data_blocked
      Src: /src/h2o/deps/quicly/lib/quicly.c:5469,1
    - Dst: send_streams_blocked
      Src: /src/h2o/deps/quicly/lib/quicly.c:5473,1
    - Dst: send_streams_blocked
      Src: /src/h2o/deps/quicly/lib/quicly.c:5475,1
    - Dst: quicly_local_cid_get_size
      Src: /src/h2o/deps/quicly/lib/quicly.c:5479,1
    - Dst: send_new_connection_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:5485,1
    - Dst: quicly_local_cid_on_sent
      Src: /src/h2o/deps/quicly/lib/quicly.c:5488,1
    - Dst: send_retire_connection_id
      Src: /src/h2o/deps/quicly/lib/quicly.c:5497,1
    - Dst: quicly_remote_cid_shift_retired
      Src: /src/h2o/deps/quicly/lib/quicly.c:5500,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5445
    functionDepth: 8
    functionLinenumber: 5445
    functionLinenumberEnd: 5506
    functionName: send_other_control_frames
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_remote_cid_shift_retired
    - send_max_streams
    - allocate_ack_eliciting_frame
    - send_streams_blocked
    - quicly_maxsender_record
    - quicly_local_cid_get_size
    - quicly_local_cid_on_sent
    - QUICLY_LOG_CONN
    - send_new_connection_id
    - send_data_blocked
    - send_retire_connection_id
    - QUICLY_PROBE
    - quicly_encode_max_data_frame
    - PTLS_LOG_ELEMENT_UNSIGNED
    - should_send_max_data
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t send_other_control_frames(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5516,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5517,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5524,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5525,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5526,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5527,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5534,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5535,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5535,1
    - Dst: quicly_loss_on_alarm
      Src: /src/h2o/deps/quicly/lib/quicly.c:5540,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5544,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5545,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5551,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5553,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5554,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5555,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5556,1
    - Dst: mark_frames_on_pto
      Src: /src/h2o/deps/quicly/lib/quicly.c:5560,1
    - Dst: mark_frames_on_pto
      Src: /src/h2o/deps/quicly/lib/quicly.c:5563,1
    - Dst: scheduler_can_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:5566,1
    - Dst: mark_frames_on_pto
      Src: /src/h2o/deps/quicly/lib/quicly.c:5567,1
    - Dst: update_ecn_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:5574,1
    - Dst: calc_pacer_send_rate
      Src: /src/h2o/deps/quicly/lib/quicly.c:5581,1
    - Dst: quicly_pacer_get_window
      Src: /src/h2o/deps/quicly/lib/quicly.c:5583,1
    - Dst: calc_send_window
      Src: /src/h2o/deps/quicly/lib/quicly.c:5585,1
    - Dst: calc_amplification_limit_allowance
      Src: /src/h2o/deps/quicly/lib/quicly.c:5586,1
    - Dst: get_dcid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5594,1
    - Dst: send_handshake_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:5601,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:5602,1
    - Dst: send_handshake_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:5604,1
    - Dst: setup_send_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5610,1
    - Dst: setup_send_space
      Src: /src/h2o/deps/quicly/lib/quicly.c:5610,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5613,1
    - Dst: send_path_challenge
      Src: /src/h2o/deps/quicly/lib/quicly.c:5616,1
    - Dst: send_path_challenge
      Src: /src/h2o/deps/quicly/lib/quicly.c:5624,1
    - Dst: send_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:5635,1
    - Dst: should_send_datagram_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5643,1
    - Dst: quicly_datagram_frame_capacity
      Src: /src/h2o/deps/quicly/lib/quicly.c:5646,1
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5647,1
    - Dst: quicly_encode_datagram_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5650,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5651,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5652,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5653,1
    - Dst: do_allocate_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:5664,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:5666,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5670,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5671,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5675,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5676,1
    - Dst: send_handshake_done
      Src: /src/h2o/deps/quicly/lib/quicly.c:5683,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:5687,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5688,1
    - Dst: quicly_send_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:5689,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:5691,1
    - Dst: send_other_control_frames
      Src: /src/h2o/deps/quicly/lib/quicly.c:5695,1
    - Dst: send_resumption_token
      Src: /src/h2o/deps/quicly/lib/quicly.c:5700,1
    - Dst: send_stream_control_frames
      Src: /src/h2o/deps/quicly/lib/quicly.c:5704,1
    - Dst: quicly_conn_t*::super::ctx::stream_scheduler::do_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:5707,1
    - Dst: send_stream_control_frames
      Src: /src/h2o/deps/quicly/lib/quicly.c:5710,1
    - Dst: send_other_control_frames
      Src: /src/h2o/deps/quicly/lib/quicly.c:5713,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5720,1
    - Dst: send_resumption_token
      Src: /src/h2o/deps/quicly/lib/quicly.c:5721,1
    - Dst: derive_jumpstart_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:5745,1
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:5749,1
    - Dst: enable_with_ratio255
      Src: /src/h2o/deps/quicly/lib/quicly.c:5764,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5766,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5768,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5769,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5770,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5771,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5772,1
    - Dst: quicly_conn_t*::egress::cc::type::cc_jumpstart
      Src: /src/h2o/deps/quicly/lib/quicly.c:5776,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:5782,1
    - Dst: commit_send_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:5784,1
    - Dst: scheduler_can_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:5790,1
    - Dst: update_send_alarm
      Src: /src/h2o/deps/quicly/lib/quicly.c:5791,1
    - Dst: update_ratemeter
      Src: /src/h2o/deps/quicly/lib/quicly.c:5792,1
    - Dst: pacer_can_send_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:5795,1
    - Dst: update_idle_timeout
      Src: /src/h2o/deps/quicly/lib/quicly.c:5797,1
    - Dst: destroy_all_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5803,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 225
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 5687
        line_start: 5687
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->application->one_rtt_writable)
      pos:
        line_end: 5719
        line_start: 5719
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (path != NULL)
      pos:
        line_end: 5612
        line_start: 5612
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (min_packets_to_send > 0)
      pos:
        line_end: 5543
        line_start: 5543
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (min_packets_to_send <= s->max_datagrams)
      pos:
        line_end: 5544
        line_start: 5544
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5805
      start: 5508
    functionDepth: 10
    functionLinenumber: 5508
    functionLinenumberEnd: 5805
    functionName: do_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - send_handshake_done
    - should_send_datagram_frame
    - scheduler_can_send
    - quicly_pacer_get_window
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - mark_frames_on_pto
    - update_ratemeter
    - QUICLY_PROBE
    - resched_stream_data
    - assert
    - PTLS_LOG_ELEMENT_UNSIGNED
    - pacer_can_send_at
    - quicly_get_stream
    - quicly_is_client
    - quicly_conn_t*::egress::cc::type::cc_jumpstart
    - quicly_send_stream
    - quicly_datagram_frame_capacity
    - quicly_conn_t*::super::ctx::stream_scheduler::do_send
    - send_stream_control_frames
    - send_other_control_frames
    - do_allocate_frame
    - get_dcid
    - send_ack
    - send_handshake_flow
    - get_epoch
    - update_send_alarm
    - send_resumption_token
    - quicly_loss_on_alarm
    - derive_jumpstart_cwnd
    - setup_send_space
    - PTLS_LOG_ELEMENT_SIGNED
    - calc_pacer_send_rate
    - update_idle_timeout
    - destroy_all_streams
    - commit_send_packet
    - update_ecn_state
    - quicly_cc_calc_initial_cwnd
    - quicly_encode_datagram_frame
    - enable_with_ratio255
    - QUICLY_LOG_CONN
    - send_path_challenge
    - calc_amplification_limit_allowance
    - calc_send_window
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t do_send(quicly_conn_t *conn, quicly_send_context_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:5810,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:5813,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5815,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:5817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - conn
    - datagrams
    - num_datagrams
    argTypes:
    - quicly_conn_t*
    - ptls_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5819
      start: 5807
    functionDepth: 1
    functionLinenumber: 5807
    functionLinenumberEnd: 5819
    functionName: quicly_send_datagram_frames
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - memcpy
    - PTLS_ELEMENTSOF
    - malloc
    - ptls_iovec_init
    linkageType: ''
    returnType: void
    signature: void quicly_send_datagram_frames(quicly_conn_t *conn, ptls_iovec_t
      *datagrams, size_t num_datagrams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_type_t*::cc_switch
      Src: /src/h2o/deps/quicly/lib/quicly.c:5823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - cc
    argTypes:
    - quicly_conn_t*
    - quicly_cc_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5824
      start: 5821
    functionDepth: 0
    functionLinenumber: 5821
    functionLinenumberEnd: 5824
    functionName: quicly_set_cc
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - quicly_cc_type_t*::cc_switch
    linkageType: ''
    returnType: int
    signature: int quicly_set_cc(quicly_conn_t *conn, quicly_cc_type_t *cc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5828,1
    - Dst: init_acks_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:5833,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:5839,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5840,1
    - Dst: quicly_num_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5840,1
    - Dst: destroy_all_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:5849,1
    - Dst: get_dcid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5851,1
    - Dst: send_connection_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:5853,1
    - Dst: commit_send_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:5856,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:5861,1
    - Dst: get_sentmap_expiration_time
      Src: /src/h2o/deps/quicly/lib/quicly.c:5861,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (s->path_index == 0)
      pos:
        line_end: 5827
        line_start: 5827
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (quicly_num_streams(conn) == 0)
      pos:
        line_end: 5839
        line_start: 5839
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5868
      start: 5826
    functionDepth: 7
    functionLinenumber: 5826
    functionLinenumberEnd: 5868
    functionName: do_send_closed
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - commit_send_packet
    - quicly_sentmap_get
    - send_connection_close
    - quicly_num_streams
    - init_acks_iter
    - get_dcid
    - get_sentmap_expiration_time
    - assert
    - destroy_all_streams
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t do_send_closed(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:5879,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/lib/quicly.c:5882,1
    - Dst: setup_path_dcid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5890,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5891,1
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5894,1
    - Dst: QUICLY_PROBE_ENABLED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5895,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:5896,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:5897,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:5897,1
    - Dst: ptls_log_getsni_ptls
      Src: /src/h2o/deps/quicly/lib/quicly.c:5897,1
    - Dst: get_dcid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5898,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:5899,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5899,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:5900,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:5901,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:5902,1
    - Dst: do_send_closed
      Src: /src/h2o/deps/quicly/lib/quicly.c:5907,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:5914,1
    - Dst: delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:5919,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:5920,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5921,1
    - Dst: do_send_closed
      Src: /src/h2o/deps/quicly/lib/quicly.c:5923,1
    - Dst: setup_path_dcid
      Src: /src/h2o/deps/quicly/lib/quicly.c:5930,1
    - Dst: delete_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:5931,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5932,1
    - Dst: do_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:5937,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:5939,1
    - Dst: do_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:5947,1
    - Dst: assert_consistency
      Src: /src/h2o/deps/quicly/lib/quicly.c:5953,1
    - Dst: clear_datagram_frame_payloads
      Src: /src/h2o/deps/quicly/lib/quicly.c:5957,1
    - Dst: recalc_send_probe_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:5959,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:5965,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 7
    argNames:
    - conn
    - dest
    - src
    - datagrams
    - num_datagrams
    - buf
    - bufsize
    argTypes:
    - quicly_conn_t*
    - quicly_address_t*
    - quicly_address_t*
    - struct iovec*
    - size_t*
    - void*
    - size_t
    assertStmts:
    - condition: (success)
      pos:
        line_end: 5890
        line_start: 5890
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->super.state >= QUICLY_STATE_CLOSING)
      pos:
        line_end: 5920
        line_start: 5920
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (ret == 0 && "path->dcid is UINT64_MAX and therefore does not trigger
        an error")
      pos:
        line_end: 5931
        line_start: 5931
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->stash.now < conn->paths[s.path_index]->path_challenge.send_at)
      pos:
        line_end: 5938
        line_start: 5938
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 5967
      start: 5870
    functionDepth: 8
    functionLinenumber: 5870
    functionLinenumberEnd: 5967
    functionName: quicly_send
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 15
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_log_getsni_ptls
    - QUICLY_PROBE_ENABLED
    - ptls_log_conn_maybe_active
    - assert
    - delete_path
    - PTLS_LOG_DEFINE_POINT
    - get_dcid
    - quicly_get_first_timeout
    - setup_path_dcid
    - do_send
    - QUICLY_PROBE_HEXDUMP
    - PTLS_LOG_ELEMENT_SIGNED
    - assert_consistency
    - unlock_now
    - initiate_close
    - clear_datagram_frame_payloads
    - do_send_closed
    - lock_now
    - ptls_get_log_state
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - recalc_send_probe_at
    - ptls_log_point_maybe_active
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_send(quicly_conn_t *conn, quicly_address_t *dest,
      quicly_address_t *src, struct iovec *datagrams,\n                           size_t
      *num_datagrams, void *buf, size_t bufsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5972
      start: 5969
    functionDepth: 0
    functionLinenumber: 5969
    functionLinenumberEnd: 5972
    functionName: quicly_send_get_ecn_bits
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t quicly_send_get_ecn_bits(quicly_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/lib/quicly.c:5981,1
    - Dst: setup_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:5983,1
    - Dst: get_aes128gcmsha256
      Src: /src/h2o/deps/quicly/lib/quicly.c:5983,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:5984,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/lib/quicly.c:5990,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:5992,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5994,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:5997,1
    - Dst: quicly_encode_close_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6004,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6004,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6009,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6010,1
    - Dst: encrypt_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:6015,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:6016,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:6019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 6
    argNames:
    - ctx
    - protocol_version
    - dest_cid
    - src_cid
    - err_desc
    - datagram
    argTypes:
    - quicly_context_t*
    - uint32_t
    - ptls_iovec_t
    - ptls_iovec_t
    - char*
    - void*
    assertStmts:
    - condition: (dst - (uint8_t *)datagram <= QUICLY_MIN_CLIENT_INITIAL_SIZE)
      pos:
        line_end: 6008
        line_start: 6008
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (dst - length_at - 1 < 64)
      pos:
        line_end: 6009
        line_start: 6009
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6021
      start: 5974
    functionDepth: 4
    functionLinenumber: 5974
    functionLinenumberEnd: 6021
    functionName: quicly_send_close_invalid_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - get_aes128gcmsha256
    - setup_initial_encryption
    - quicly_get_salt
    - quicly_encode32
    - memcpy
    - quicly_encode_close_frame
    - QUICLY_ERROR_GET_ERROR_CODE
    - encrypt_packet
    - PTLS_BUILD_ASSERT
    - dispose_cipher
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_send_close_invalid_token(quicly_context_t *ctx, uint32_t
      protocol_version, ptls_iovec_t dest_cid,\n                                       ptls_iovec_t
      src_cid, const char *err_desc, void *datagram)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_context_t*::tls::random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:6028,1
    - Dst: quicly_context_t*::cid_encryptor::generate_stateless_reset_token
      Src: /src/h2o/deps/quicly/lib/quicly.c:6030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - src_cid
    - payload
    argTypes:
    - quicly_context_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6023
    functionDepth: 4
    functionLinenumber: 6023
    functionLinenumberEnd: 6035
    functionName: quicly_send_stateless_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - quicly_context_t*::cid_encryptor::generate_stateless_reset_token
    - quicly_context_t*::tls::random_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_send_stateless_reset(quicly_context_t *ctx, const void
      *src_cid, void *payload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6039,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (!quicly_is_client(conn))
      pos:
        line_end: 6038
        line_start: 6038
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6046
      start: 6037
    functionDepth: 1
    functionLinenumber: 6037
    functionLinenumberEnd: 6046
    functionName: quicly_send_resumption_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - quicly_is_client
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_send_resumption_token(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts:
    - condition: (!acked)
      pos:
        line_end: 6050
        line_start: 6050
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6053
      start: 6048
    functionDepth: 0
    functionLinenumber: 6048
    functionLinenumberEnd: 6053
    functionName: on_end_closing
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_end_closing(quicly_sentmap_t *map, const quicly_sent_packet_t
      *packet, int acked, quicly_sent_t *sent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6059,1
    - Dst: discard_sentmap_by_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:6062,1
    - Dst: quicly_sentmap_prepare
      Src: /src/h2o/deps/quicly/lib/quicly.c:6064,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/lib/quicly.c:6067,1
    - Dst: quicly_sentmap_commit
      Src: /src/h2o/deps/quicly/lib/quicly.c:6069,1
    - Dst: get_sentmap_expiration_time
      Src: /src/h2o/deps/quicly/lib/quicly.c:6077,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:6080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - local_is_initiating
    - wait_draining
    argTypes:
    - quicly_conn_t*
    - int
    - int
    assertStmts:
    - condition: (conn->super.state < QUICLY_STATE_CLOSING)
      pos:
        line_end: 6058
        line_start: 6058
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6083
      start: 6055
    functionDepth: 4
    functionLinenumber: 6055
    functionLinenumberEnd: 6083
    functionName: enter_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_sentmap_allocate
    - quicly_sentmap_prepare
    - discard_sentmap_by_epoch
    - get_sentmap_expiration_time
    - quicly_sentmap_commit
    - setup_next_send
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t enter_close(quicly_conn_t *conn, int local_is_initiating,
      int wait_draining)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6088,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/quicly.c:6090,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6094,1
    - Dst: QUICLY_TRANSPORT_ERROR_CRYPTO
      Src: /src/h2o/deps/quicly/lib/quicly.c:6095,1
    - Dst: QUICLY_TRANSPORT_ERROR_CRYPTO
      Src: /src/h2o/deps/quicly/lib/quicly.c:6095,1
    - Dst: QUICLY_TRANSPORT_ERROR_CRYPTO
      Src: /src/h2o/deps/quicly/lib/quicly.c:6097,1
    - Dst: PTLS_ALERT_TO_PEER_ERROR
      Src: /src/h2o/deps/quicly/lib/quicly.c:6098,1
    - Dst: PTLS_ALERT_TO_SELF_ERROR
      Src: /src/h2o/deps/quicly/lib/quicly.c:6098,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:6104,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:6106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - conn
    - err
    - frame_type
    - reason_phrase
    - reason_phrase_len
    - is_remote
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - uint64_t
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (conn->connection_close.reason_phrase == NULL && "never called twice")
      pos:
        line_end: 6087
        line_start: 6087
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (frame_type != UINT64_MAX)
      pos:
        line_end: 6093
        line_start: 6093
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6111
      start: 6085
    functionDepth: 1
    functionLinenumber: 6085
    functionLinenumberEnd: 6111
    functionName: set_connection_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ALERT_TO_PEER_ERROR
    - malloc
    - QUICLY_TRANSPORT_ERROR_CRYPTO
    - memcpy
    - PTLS_ALERT_TO_SELF_ERROR
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: int
    signature: "int set_connection_close(quicly_conn_t *conn, quicly_error_t err,
      uint64_t frame_type, const char *reason_phrase,\n                                size_t
      reason_phrase_len, int is_remote)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: enter_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6123,1
    - Dst: set_connection_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6124,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:6124,1
    - Dst: quicly_conn_t*::super::ctx::closed::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:6127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - conn
    - err
    - frame_type
    - reason_phrase
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6129
      start: 6113
    functionDepth: 5
    functionLinenumber: 6113
    functionLinenumberEnd: 6129
    functionName: initiate_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - enter_close
    - quicly_conn_t*::super::ctx::closed::cb
    - set_connection_close
    - strlen
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t initiate_close(quicly_conn_t *conn, quicly_error_t err,
      uint64_t frame_type, const char *reason_phrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6135,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/quicly.c:6135,1
    - Dst: QUICLY_ERROR_IS_CONCEALED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6135,1
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:6137,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6138,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:6139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - err
    - reason_phrase
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - char*
    assertStmts:
    - condition: (err == 0 || QUICLY_ERROR_IS_QUIC_APPLICATION(err) || QUICLY_ERROR_IS_CONCEALED(err))
      pos:
        line_end: 6134
        line_start: 6134
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6142
      start: 6131
    functionDepth: 6
    functionLinenumber: 6131
    functionLinenumberEnd: 6142
    functionName: quicly_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 3
    functionsReached:
    - QUICLY_ERROR_IS_CONCEALED
    - lock_now
    - unlock_now
    - initiate_close
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_close(quicly_conn_t *conn, quicly_error_t err,
      const char *reason_phrase)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6148,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/deps/quicly/lib/quicly.c:6151,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6151,1
    - Dst: quicly_get_ingress_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:6153,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:6153,1
    - Dst: get_streamgroup_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:6158,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/deps/quicly/lib/quicly.c:6161,1
    - Dst: open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6169,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6174,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6175,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6175,1
    - Dst: quicly_conn_t*::super::ctx::stream_open::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:6176,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - conn
    - stream_id
    - stream
    argTypes:
    - quicly_conn_t*
    - uint64_t
    - quicly_stream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6144
    functionDepth: 1
    functionLinenumber: 6144
    functionLinenumberEnd: 6188
    functionName: quicly_get_or_open_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_is_client
    - quicly_stream_is_client_initiated
    - open_stream
    - quicly_get_ingress_max_streams
    - QUICLY_LOG_CONN
    - quicly_stream_is_unidirectional
    - PTLS_LOG_ELEMENT_SIGNED
    - QUICLY_PROBE
    - get_streamgroup_state
    - quicly_conn_t*::super::ctx::stream_open::cb
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_or_open_stream(quicly_conn_t *conn, uint64_t
      stream_id, quicly_stream_t **stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_crypto_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6196,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6198,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6199,1
    - Dst: apply_stream_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 6198
        line_start: 6198
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6201
      start: 6190
    functionDepth: 4
    functionLinenumber: 6190
    functionLinenumberEnd: 6201
    functionName: handle_crypto_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - apply_stream_frame
    - assert
    - quicly_decode_crypto_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_crypto_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_stream_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6209,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6211,1
    - Dst: quicly_get_or_open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6212,1
    - Dst: apply_stream_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6215
      start: 6203
    functionDepth: 4
    functionLinenumber: 6203
    functionLinenumberEnd: 6215
    functionName: handle_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_or_open_stream
    - quicly_decode_stream_frame
    - apply_stream_frame
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_stream_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_reset_stream_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6223,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6225,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6226,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6227,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6228,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6229,1
    - Dst: quicly_get_or_open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6232,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:6238,1
    - Dst: quicly_recvstate_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:6240,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6243,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6244,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6245,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6246,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6247,1
    - Dst: quicly_stream_t*::callbacks::on_receive_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:6249,1
    - Dst: stream_is_destroyable
      Src: /src/h2o/deps/quicly/lib/quicly.c:6252,1
    - Dst: destroy_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6257
      start: 6217
    functionDepth: 2
    functionLinenumber: 6217
    functionLinenumberEnd: 6257
    functionName: handle_reset_stream_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_stream_t*::callbacks::on_receive_reset
    - quicly_get_or_open_stream
    - destroy_stream
    - quicly_recvstate_reset
    - quicly_recvstate_transfer_complete
    - QUICLY_LOG_CONN
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - PTLS_LOG_ELEMENT_SIGNED
    - QUICLY_PROBE
    - quicly_decode_reset_stream_frame
    - stream_is_destroyable
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_reset_stream_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6279,1
    - Dst: init_acks_iter
      Src: /src/h2o/deps/quicly/lib/quicly.c:6298,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6305,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6309,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6310,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6311,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6312,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:6314,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/quicly.c:6315,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/quicly.c:6317,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6319,1
    - Dst: quicly_conn_t*::egress::cc::type::cc_on_late_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:6341,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6351,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6352,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6353,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:6354,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/quicly.c:6364,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6371,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6372,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6373,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6378,1
    - Dst: on_ack_stream_ack_cached
      Src: /src/h2o/deps/quicly/lib/quicly.c:6384,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6387,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6388,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6388,1
    - Dst: quicly_ratemeter_on_ack
      Src: /src/h2o/deps/quicly/lib/quicly.c:6391,1
    - Dst: quicly_loss_on_ack_received
      Src: /src/h2o/deps/quicly/lib/quicly.c:6396,1
    - Dst: quicly_conn_t*::egress::cc::type::cc_on_acked
      Src: /src/h2o/deps/quicly/lib/quicly.c:6404,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6407,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6411,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6413,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6414,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6415,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6416,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6417,1
    - Dst: quicly_loss_detect_loss
      Src: /src/h2o/deps/quicly/lib/quicly.c:6421,1
    - Dst: update_ecn_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:6429,1
    - Dst: update_ecn_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:6434,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:6441,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6450,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6451,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6452,1
    - Dst: notify_congestion_to_cc
      Src: /src/h2o/deps/quicly/lib/quicly.c:6453,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:6457,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 130
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts:
    - condition: (frame.ack_block_lengths[gap_index] != 0)
      pos:
        line_end: 6304
        line_start: 6304
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (pn_acked <= pn_sent)
      pos:
        line_end: 6318
        line_start: 6318
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (pn_acked == pn_block_max + 1)
      pos:
        line_end: 6377
        line_start: 6377
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6460
      start: 6259
    functionDepth: 4
    functionLinenumber: 6259
    functionLinenumberEnd: 6460
    functionName: handle_ack_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - notify_congestion_to_cc
    - init_acks_iter
    - setup_next_send
    - PTLS_LOG_ELEMENT_UNSIGNED
    - assert
    - quicly_loss_on_ack_received
    - PTLS_LOG_ELEMENT_BOOL
    - quicly_decode_ack_frame
    - quicly_sentmap_skip
    - quicly_loss_detect_loss
    - quicly_sentmap_get
    - quicly_sentmap_update
    - quicly_conn_t*::egress::cc::type::cc_on_late_ack
    - update_ecn_state
    - quicly_ratemeter_on_ack
    - QUICLY_LOG_CONN
    - on_ack_stream_ack_cached
    - QUICLY_PROBE
    - quicly_conn_t*::egress::cc::type::cc_on_acked
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_ack_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_max_stream_data_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6468,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6471,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6472,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6473,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6474,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:6477,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6477,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6480,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:6489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6492
      start: 6462
    functionDepth: 2
    functionLinenumber: 6462
    functionLinenumberEnd: 6492
    functionName: handle_max_stream_data_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_is_client
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - QUICLY_PROBE
    - quicly_stream_has_send_side
    - quicly_decode_max_stream_data_frame
    - resched_stream_data
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_max_stream_data_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_data_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6499,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6502,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6503,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6503,1
    - Dst: quicly_maxsender_request_transmit
      Src: /src/h2o/deps/quicly/lib/quicly.c:6505,1
    - Dst: should_send_max_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:6506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6510
      start: 6494
    functionDepth: 2
    functionLinenumber: 6494
    functionLinenumberEnd: 6510
    functionName: handle_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode_data_blocked_frame
    - QUICLY_LOG_CONN
    - quicly_maxsender_request_transmit
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    - should_send_max_data
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_data_blocked_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_stream_data_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6518,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6521,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6522,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6523,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6524,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:6527,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6527,1
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6530,1
    - Dst: quicly_maxsender_request_transmit
      Src: /src/h2o/deps/quicly/lib/quicly.c:6531,1
    - Dst: should_send_max_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:6532,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:6533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6537
      start: 6512
    functionDepth: 3
    functionLinenumber: 6512
    functionLinenumberEnd: 6537
    functionName: handle_stream_data_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - quicly_is_client
    - quicly_decode_stream_data_blocked_frame
    - QUICLY_LOG_CONN
    - quicly_maxsender_request_transmit
    - quicly_stream_has_receive_side
    - PTLS_LOG_ELEMENT_SIGNED
    - should_send_max_stream_data
    - sched_stream_control
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_stream_data_blocked_frame(quicly_conn_t *conn,
      struct st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_streams_blocked_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6545,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6548,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6549,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6550,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:6551,1
    - Dst: should_send_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:6554,1
    - Dst: quicly_maxsender_request_transmit
      Src: /src/h2o/deps/quicly/lib/quicly.c:6556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6539
    functionDepth: 2
    functionLinenumber: 6539
    functionLinenumberEnd: 6561
    functionName: handle_streams_blocked_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - should_send_max_streams
    - quicly_decode_streams_blocked_frame
    - PTLS_LOG_ELEMENT_BOOL
    - QUICLY_LOG_CONN
    - quicly_maxsender_request_transmit
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_streams_blocked_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_max_streams_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6568,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6571,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6572,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6573,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:6574,1
    - Dst: update_max_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:6577,1
    - Dst: open_blocked_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:6580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - state
    - uni
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6583
      start: 6563
    functionDepth: 4
    functionLinenumber: 6563
    functionLinenumberEnd: 6583
    functionName: handle_max_streams_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_LOG_ELEMENT_BOOL
    - QUICLY_LOG_CONN
    - update_max_streams
    - QUICLY_PROBE
    - quicly_decode_max_streams_frame
    - open_blocked_streams
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_max_streams_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state, int uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_max_streams_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6588
      start: 6585
    functionDepth: 5
    functionLinenumber: 6585
    functionLinenumberEnd: 6588
    functionName: handle_max_streams_bidi_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - handle_max_streams_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_max_streams_bidi_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_max_streams_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6593
      start: 6590
    functionDepth: 5
    functionLinenumber: 6590
    functionLinenumberEnd: 6593
    functionName: handle_max_streams_uni_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - handle_max_streams_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_max_streams_uni_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_path_challenge_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6600,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6603,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6604,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6604,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:6608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6613
      start: 6595
    functionDepth: 1
    functionLinenumber: 6595
    functionLinenumberEnd: 6613
    functionName: handle_path_challenge_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - memcpy
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_decode_path_challenge_frame
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_path_challenge_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_path_challenge_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6620,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6623,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6624,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6624,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:6628,1
    - Dst: recalc_send_probe_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:6631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6636
      start: 6615
    functionDepth: 2
    functionLinenumber: 6615
    functionLinenumberEnd: 6636
    functionName: handle_path_response_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - recalc_send_probe_at
    - ptls_mem_equal
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_decode_path_challenge_frame
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_path_response_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6643,1
    - Dst: quicly_decode_new_token_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6645,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6647,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6648,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6648,1
    - Dst: quicly_conn_t*::super::ctx::save_resumption_token::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:6651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6652
      start: 6638
    functionDepth: 2
    functionLinenumber: 6638
    functionLinenumberEnd: 6652
    functionName: handle_new_token_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - quicly_conn_t*::super::ctx::save_resumption_token::cb
    - QUICLY_LOG_CONN
    - quicly_decode_new_token_frame
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_new_token_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_stop_sending_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6660,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6662,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6663,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6664,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6665,1
    - Dst: quicly_get_or_open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6668,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/quicly.c:6671,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6673,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:6674,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6675,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6676,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6677,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6678,1
    - Dst: quicly_stream_t*::callbacks::on_send_stop
      Src: /src/h2o/deps/quicly/lib/quicly.c:6680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6686
      start: 6654
    functionDepth: 1
    functionLinenumber: 6654
    functionLinenumberEnd: 6686
    functionName: handle_stop_sending_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_reset_stream
    - quicly_decode_stop_sending_frame
    - quicly_sendstate_is_open
    - QUICLY_LOG_CONN
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - PTLS_LOG_ELEMENT_SIGNED
    - quicly_stream_t*::callbacks::on_send_stop
    - QUICLY_PROBE
    - quicly_get_or_open_stream
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_stop_sending_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_max_data_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6693,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6696,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6697,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6705
      start: 6688
    functionDepth: 1
    functionLinenumber: 6688
    functionLinenumberEnd: 6705
    functionName: handle_max_data_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode_max_data_frame
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_max_data_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6713,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6714,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6714,1
    - Dst: reinstall_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:6717,1
    - Dst: discard_sentmap_by_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:6721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - version
    argTypes:
    - quicly_conn_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6707
    functionDepth: 5
    functionLinenumber: 6707
    functionLinenumberEnd: 6725
    functionName: negotiate_using_version
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - discard_sentmap_by_epoch
    - QUICLY_LOG_CONN
    - reinstall_initial_encryption
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t negotiate_using_version(quicly_conn_t *conn, uint32_t
      version)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:6737,1
    - Dst: handle_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6753,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:6753,1
    - Dst: negotiate_using_version
      Src: /src/h2o/deps/quicly/lib/quicly.c:6755,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - conn
    - packet
    argTypes:
    - quicly_conn_t*
    - quicly_decoded_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6756
      start: 6727
    functionDepth: 6
    functionLinenumber: 6727
    functionLinenumberEnd: 6756
    functionName: handle_version_negotiation_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode32
    - ptls_iovec_init
    - handle_close
    - negotiate_using_version
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_version_negotiation_packet(quicly_conn_t *conn,
      quicly_decoded_packet_t *packet)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6764,1
    - Dst: CMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6768,1
    - Dst: ntohl
      Src: /src/h2o/deps/quicly/lib/quicly.c:6768,1
    - Dst: ntohl
      Src: /src/h2o/deps/quicly/lib/quicly.c:6768,1
    - Dst: CMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6769,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:6769,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:6769,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/lib/quicly.c:6772,1
    - Dst: CMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6775,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:6775,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:6775,1
    - Dst: CMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6776,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - struct sockaddr*
    - struct sockaddr*
    assertStmts:
    - condition: (!"unknown sa_family")
      pos:
        line_end: 6779
        line_start: 6779
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 6785
      start: 6758
    functionDepth: 0
    functionLinenumber: 6758
    functionLinenumberEnd: 6785
    functionName: compare_socket_address
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ntohl
    - CMP
    - assert
    - ntohs
    linkageType: ''
    returnType: int
    signature: int compare_socket_address(struct sockaddr *x, struct sockaddr *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6763
      start: 6760
    functionDepth: 0
    functionLinenumber: 6760
    functionLinenumberEnd: 6763
    functionName: CMP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(a, b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:6801,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/lib/quicly.c:6804,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - decoded
    argTypes:
    - quicly_conn_t*
    - quicly_decoded_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6810
      start: 6787
    functionDepth: 1
    functionLinenumber: 6787
    functionLinenumberEnd: 6810
    functionName: is_stateless_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_stateless_reset(quicly_conn_t *conn, quicly_decoded_packet_t
      *decoded)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:6815,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:6817,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:6820,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6823,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:6824,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:6825,1
    - Dst: is_stateless_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:6840,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:6843,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:6846,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 4
    argNames:
    - conn
    - dest_addr
    - src_addr
    - decoded
    argTypes:
    - quicly_conn_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6860
      start: 6812
    functionDepth: 2
    functionLinenumber: 6812
    functionLinenumberEnd: 6860
    functionName: quicly_is_destination
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - is_stateless_reset
    - quicly_is_client
    - compare_socket_address
    - QUICLY_PACKET_IS_LONG_HEADER
    - quicly_cid_is_equal
    - is_retry
    linkageType: ''
    returnType: int
    signature: "int quicly_is_destination(quicly_conn_t *conn, struct sockaddr *dest_addr,
      struct sockaddr *src_addr,\n                          quicly_decoded_packet_t
      *decoded)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: enter_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6870,1
    - Dst: set_connection_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6872,1
    - Dst: quicly_conn_t*::super::ctx::closed::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:6875,1
    - Dst: destroy_all_streams
      Src: /src/h2o/deps/quicly/lib/quicly.c:6876,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - err
    - frame_type
    - reason_phrase
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - uint64_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6879
      start: 6862
    functionDepth: 5
    functionLinenumber: 6862
    functionLinenumberEnd: 6879
    functionName: handle_close
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - enter_close
    - quicly_conn_t*::super::ctx::closed::cb
    - set_connection_close
    - destroy_all_streams
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_close(quicly_conn_t *conn, quicly_error_t err,
      uint64_t frame_type, ptls_iovec_t reason_phrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_transport_close_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6886,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6889,1
    - Dst: QUICLY_PROBE_ESCAPE_UNSAFE_STRING
      Src: /src/h2o/deps/quicly/lib/quicly.c:6890,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6891,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6892,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6893,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:6894,1
    - Dst: handle_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6896,1
    - Dst: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6897
      start: 6881
    functionDepth: 6
    functionLinenumber: 6881
    functionLinenumberEnd: 6897
    functionName: handle_transport_close_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_PROBE_ESCAPE_UNSAFE_STRING
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSAFESTR
    - QUICLY_PROBE
    - QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
    - quicly_decode_transport_close_frame
    - PTLS_LOG_ELEMENT_UNSIGNED
    - handle_close
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_transport_close_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_application_close_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6904,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6907,1
    - Dst: QUICLY_PROBE_ESCAPE_UNSAFE_STRING
      Src: /src/h2o/deps/quicly/lib/quicly.c:6908,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6909,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6910,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:6911,1
    - Dst: handle_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:6913,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6914
      start: 6899
    functionDepth: 6
    functionLinenumber: 6899
    functionLinenumberEnd: 6914
    functionName: handle_application_close_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode_application_close_frame
    - QUICLY_PROBE_ESCAPE_UNSAFE_STRING
    - QUICLY_LOG_CONN
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - PTLS_LOG_ELEMENT_UNSAFESTR
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    - handle_close
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_application_close_frame(quicly_conn_t *conn,
      struct st_quicly_handle_payload_state_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6919
      start: 6916
    functionDepth: 0
    functionLinenumber: 6916
    functionLinenumberEnd: 6919
    functionName: handle_padding_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_padding_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6923,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6927
      start: 6921
    functionDepth: 1
    functionLinenumber: 6921
    functionLinenumberEnd: 6927
    functionName: handle_ping_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_ping_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_new_connection_id_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6936,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6939,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6940,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6941,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6942,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6943,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6944,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6945,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:6946,1
    - Dst: quicly_remote_cid_register
      Src: /src/h2o/deps/quicly/lib/quicly.c:6950,1
    - Dst: dissociate_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:6955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6960
      start: 6929
    functionDepth: 2
    functionLinenumber: 6929
    functionLinenumberEnd: 6960
    functionName: handle_new_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - dissociate_cid
    - QUICLY_PROBE_HEXDUMP
    - PTLS_LOG_ELEMENT_HEXDUMP
    - QUICLY_LOG_CONN
    - quicly_decode_new_connection_id_frame
    - QUICLY_PROBE
    - quicly_remote_cid_register
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_new_connection_id_frame(quicly_conn_t *conn,
      struct st_quicly_handle_payload_state_t *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_retire_connection_id_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:6968,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6971,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6972,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:6972,1
    - Dst: quicly_local_cid_retire
      Src: /src/h2o/deps/quicly/lib/quicly.c:6980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6986
      start: 6962
    functionDepth: 1
    functionLinenumber: 6962
    functionLinenumberEnd: 6986
    functionName: handle_retire_connection_id_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode_retire_connection_id_frame
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - quicly_local_cid_retire
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_retire_connection_id_frame(quicly_conn_t *conn,
      struct st_quicly_handle_payload_state_t *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:6992,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:6993,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:6995,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:6998,1
    - Dst: discard_handshake_context
      Src: /src/h2o/deps/quicly/lib/quicly.c:7003,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:7005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts:
    - condition: (conn->initial == NULL)
      pos:
        line_end: 6997
        line_start: 6997
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7007
      start: 6988
    functionDepth: 4
    functionLinenumber: 6988
    functionLinenumberEnd: 7007
    functionName: handle_handshake_done_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - setup_next_send
    - assert
    - discard_handshake_context
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_handshake_done_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_datagram_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:7019,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7021,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7022,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7022,1
    - Dst: quicly_conn_t*::super::ctx::receive_datagram_frame::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:7025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7028
      start: 7009
    functionDepth: 1
    functionLinenumber: 7009
    functionLinenumberEnd: 7028
    functionName: handle_datagram_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_conn_t*::super::ctx::receive_datagram_frame::cb
    - quicly_decode_datagram_frame
    - QUICLY_LOG_CONN
    - QUICLY_PROBE
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_datagram_frame(quicly_conn_t *conn, struct st_quicly_handle_payload_state_t
      *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_ack_frequency_frame
      Src: /src/h2o/deps/quicly/lib/quicly.c:7039,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7042,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7044,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7045,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7046,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7047,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7066
      start: 7030
    functionDepth: 1
    functionLinenumber: 7030
    functionLinenumberEnd: 7066
    functionName: handle_ack_frequency_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_decode_ack_frequency_frame
    - QUICLY_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSIGNED
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_ack_frequency_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - quicly_conn_t*
    - struct st_quicly_handle_payload_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7075
      start: 7068
    functionDepth: 0
    functionLinenumber: 7068
    functionLinenumberEnd: 7075
    functionName: handle_immediate_ack_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_immediate_ack_frame(quicly_conn_t *conn, struct
      st_quicly_handle_payload_state_t *state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7091,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7104,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7105,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7106,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7107,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7108,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7109,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7110,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7111,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7112,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7113,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7114,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7115,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7116,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7117,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7118,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7119,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7120,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7121,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7122,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7123,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7124,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7125,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7126,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7127,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7128,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7129,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7130,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7131,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7132,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7133,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7134,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7135,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7143,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7159,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7160,1
    - Dst: FRAME
      Src: /src/h2o/deps/quicly/lib/quicly.c:7161,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:7176,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/quicly.c:7181,1
    - Dst: struct st_quicly_frame_handler_t*::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:7206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 8
    argNames:
    - conn
    - epoch
    - path_index
    - _src
    - _len
    - offending_frame_type
    - is_ack_only
    - is_probe_only
    argTypes:
    - quicly_conn_t*
    - size_t
    - size_t
    - uint8_t*
    - size_t
    - uint64_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7077
    functionDepth: 1
    functionLinenumber: 7077
    functionLinenumberEnd: 7215
    functionName: handle_payload
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - FRAME
    - PTLS_ELEMENTSOF
    - quicly_decodev
    - struct st_quicly_frame_handler_t*::cb
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_payload(quicly_conn_t *conn, size_t epoch, size_t
      path_index, const uint8_t *_src, size_t _len,\n                                     uint64_t
      *offending_frame_type, int *is_ack_only, int *is_probe_only)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7219,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7220,1
    - Dst: handle_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:7221,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:7221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7222
      start: 7217
    functionDepth: 6
    functionLinenumber: 7217
    functionLinenumberEnd: 7222
    functionName: handle_stateless_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - QUICLY_LOG_CONN
    - handle_close
    - QUICLY_PROBE
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t handle_stateless_reset(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:7229,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:7230,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:7231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - packet
    - odcid
    - retry_aead
    argTypes:
    - quicly_decoded_packet_t*
    - quicly_cid_t*
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7233
      start: 7224
    functionDepth: 1
    functionLinenumber: 7224
    functionLinenumberEnd: 7233
    functionName: validate_retry_tag
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ptls_aead_decrypt
    linkageType: ''
    returnType: int
    signature: int validate_retry_tag(quicly_decoded_packet_t *packet, quicly_cid_t
      *odcid, ptls_aead_context_t *retry_aead)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_salt
      Src: /src/h2o/deps/quicly/lib/quicly.c:7257,1
    - Dst: setup_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:7269,1
    - Dst: get_aes128gcmsha256
      Src: /src/h2o/deps/quicly/lib/quicly.c:7269,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/quicly.c:7270,1
    - Dst: decrypt_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:7274,1
    - Dst: create_connection
      Src: /src/h2o/deps/quicly/lib/quicly.c:7281,1
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/deps/quicly/lib/quicly.c:7283,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:7288,1
    - Dst: decode_resumption_info
      Src: /src/h2o/deps/quicly/lib/quicly.c:7299,1
    - Dst: setup_handshake_space_and_flow
      Src: /src/h2o/deps/quicly/lib/quicly.c:7311,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7320,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7321,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7322,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7323,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7325,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7326,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/quicly/lib/quicly.c:7327,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7330,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7332,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7333,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7336,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7337,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7342,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:7342,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7343,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7344,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7345,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7346,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:7346,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/lib/quicly.c:7353,1
    - Dst: handle_payload
      Src: /src/h2o/deps/quicly/lib/quicly.c:7355,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/lib/quicly.c:7358,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:7369,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:7372,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:7375,1
    - Dst: dispose_cipher
      Src: /src/h2o/deps/quicly/lib/quicly.c:7376,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 121
    argCount: 9
    argNames:
    - conn
    - ctx
    - dest_addr
    - src_addr
    - packet
    - address_token
    - new_cid
    - handshake_properties
    - appdata
    argTypes:
    - quicly_conn_t**
    - quicly_context_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    - quicly_address_token_plaintext_t*
    - quicly_cid_plaintext_t*
    - ptls_handshake_properties_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7379
      start: 7235
    functionDepth: 6
    functionLinenumber: 7235
    functionLinenumberEnd: 7379
    functionName: quicly_accept
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 11
    functionsReached:
    - get_aes128gcmsha256
    - quicly_get_salt
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - get_ecn_index_from_bits
    - PTLS_LOG_ELEMENT_UNSIGNED
    - record_receipt
    - ptls_iovec_init
    - handle_payload
    - setup_initial_encryption
    - PTLS_LOG_ELEMENT_BOOL
    - decode_resumption_info
    - get_epoch
    - QUICLY_PROBE_HEXDUMP
    - decrypt_packet
    - unlock_now
    - initiate_close
    - quicly_set_cid
    - dispose_cipher
    - quicly_cc_calc_initial_cwnd
    - QUICLY_LOG_CONN
    - create_connection
    - QUICLY_PROBE
    - setup_handshake_space_and_flow
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_accept(quicly_conn_t **conn, quicly_context_t
      *ctx, struct sockaddr *dest_addr, struct sockaddr *src_addr,\n                             quicly_decoded_packet_t
      *packet, quicly_address_token_plaintext_t *address_token,\n                             const
      quicly_cid_plaintext_t *new_cid, ptls_handshake_properties_t *handshake_properties,\n
      \                            void *appdata)"
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7400,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7404,1
    - Dst: QUICLY_PROBE_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7405,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7407,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7408,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/quicly/lib/quicly.c:7409,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7410,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7415,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:7416,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7421,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:7422,1
    - Dst: is_stateless_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:7428,1
    - Dst: handle_stateless_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:7429,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:7435,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:7436,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7438,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:7439,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:7443,1
    - Dst: __builtin_popcountl
      Src: /src/h2o/deps/quicly/lib/quicly.c:7457,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:7468,1
    - Dst: handle_version_negotiation_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:7471,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7481,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7483,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/quicly.c:7488,1
    - Dst: is_retry
      Src: /src/h2o/deps/quicly/lib/quicly.c:7493,1
    - Dst: create_retry_aead
      Src: /src/h2o/deps/quicly/lib/quicly.c:7497,1
    - Dst: validate_retry_tag
      Src: /src/h2o/deps/quicly/lib/quicly.c:7498,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/quicly.c:7499,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:7510,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:7511,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:7515,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:7518,1
    - Dst: reinstall_initial_encryption
      Src: /src/h2o/deps/quicly/lib/quicly.c:7521,1
    - Dst: discard_sentmap_by_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:7524,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7532,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/quicly.c:7535,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7561,1
    - Dst: decrypt_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:7596,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7599,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7603,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:7603,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7604,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7605,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7606,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7607,1
    - Dst: get_epoch
      Src: /src/h2o/deps/quicly/lib/quicly.c:7607,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/quicly.c:7611,1
    - Dst: open_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:7611,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:7620,1
    - Dst: get_ecn_index_from_bits
      Src: /src/h2o/deps/quicly/lib/quicly.c:7634,1
    - Dst: discard_handshake_context
      Src: /src/h2o/deps/quicly/lib/quicly.c:7647,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:7649,1
    - Dst: handle_payload
      Src: /src/h2o/deps/quicly/lib/quicly.c:7658,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7662,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7665,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7666,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:7666,1
    - Dst: record_receipt
      Src: /src/h2o/deps/quicly/lib/quicly.c:7669,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7677,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7678,1
    - Dst: discard_handshake_context
      Src: /src/h2o/deps/quicly/lib/quicly.c:7679,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:7681,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7685,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:7689,1
    - Dst: set_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:7690,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:7694,1
    - Dst: discard_handshake_context
      Src: /src/h2o/deps/quicly/lib/quicly.c:7695,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7697,1
    - Dst: setup_next_send
      Src: /src/h2o/deps/quicly/lib/quicly.c:7699,1
    - Dst: should_send_max_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:7704,1
    - Dst: promote_path
      Src: /src/h2o/deps/quicly/lib/quicly.c:7709,1
    - Dst: recalc_send_probe_at
      Src: /src/h2o/deps/quicly/lib/quicly.c:7711,1
    - Dst: update_idle_timeout
      Src: /src/h2o/deps/quicly/lib/quicly.c:7718,1
    - Dst: assert_consistency
      Src: /src/h2o/deps/quicly/lib/quicly.c:7729,1
    - Dst: initiate_close
      Src: /src/h2o/deps/quicly/lib/quicly.c:7736,1
    CyclomaticComplexity: 136
    EdgeCount: 136
    ICount: 314
    argCount: 6
    argNames:
    - conn
    - dest_addr
    - src_addr
    - packet
    - receive_delay
    - might_be_reorder
    argTypes:
    - quicly_conn_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    - int64_t
    - int*
    assertStmts:
    - condition: (conn->paths[0]->address.local.sa.sa_family != AF_UNSPEC)
      pos:
        line_end: 7420
        line_start: 7420
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->handshake == NULL)
      pos:
        line_end: 7696
        line_start: 7696
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (src_addr->sa_family == AF_INET || src_addr->sa_family == AF_INET6)
      pos:
        line_end: 7399
        line_start: 7399
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (packet->encrypted_off + PTLS_AESGCM_TAG_SIZE == packet->octets.len)
      pos:
        line_end: 7480
        line_start: 7480
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (conn->initial != NULL)
      pos:
        line_end: 7676
        line_start: 7676
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (path_index != 0)
      pos:
        line_end: 7661
        line_start: 7661
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7741
      start: 7385
    functionDepth: 7
    functionLinenumber: 7385
    functionLinenumberEnd: 7741
    functionName: do_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - is_stateless_reset
    - PTLS_ELEMENTSOF
    - open_path
    - compare_socket_address
    - ptls_handshake_is_complete
    - __builtin_popcountl
    - reinstall_initial_encryption
    - promote_path
    - setup_next_send
    - assert
    - PTLS_LOG_ELEMENT_UNSIGNED
    - get_ecn_index_from_bits
    - record_receipt
    - handle_payload
    - quicly_is_client
    - handle_stateless_reset
    - free
    - discard_sentmap_by_epoch
    - quicly_cid_is_equal
    - is_retry
    - discard_handshake_context
    - should_send_max_data
    - malloc
    - get_epoch
    - QUICLY_PROBE_HEXDUMP
    - ptls_aead_free
    - memcpy
    - decrypt_packet
    - PTLS_LOG_ELEMENT_SIGNED
    - assert_consistency
    - initiate_close
    - quicly_set_cid
    - update_idle_timeout
    - handle_version_negotiation_packet
    - validate_retry_tag
    - create_retry_aead
    - QUICLY_PACKET_IS_LONG_HEADER
    - QUICLY_LOG_CONN
    - set_address
    - QUICLY_PROBE
    - recalc_send_probe_at
    - PTLS_LOG_ELEMENT_HEXDUMP
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t do_receive(quicly_conn_t *conn, struct sockaddr *dest_addr,
      struct sockaddr *src_addr,\n                                 quicly_decoded_packet_t
      *packet, int64_t receive_delay, int *might_be_reorder)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:7746,1
    - Dst: do_receive
      Src: /src/h2o/deps/quicly/lib/quicly.c:7749,1
    - Dst: compare_socket_address
      Src: /src/h2o/deps/quicly/lib/quicly.c:7754,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:7757,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:7764,1
    - Dst: adjust_pointers_of_decoded_packet
      Src: /src/h2o/deps/quicly/lib/quicly.c:7765,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7773,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/quicly.c:7773,1
    - Dst: do_receive
      Src: /src/h2o/deps/quicly/lib/quicly.c:7799,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/quicly.c:7801,1
    - Dst: unlock_now
      Src: /src/h2o/deps/quicly/lib/quicly.c:7817,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 4
    argNames:
    - conn
    - dest_addr
    - src_addr
    - packet
    argTypes:
    - quicly_conn_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    assertStmts:
    - condition: (!QUICLY_PACKET_IS_LONG_HEADER(delayed->packet.octets.base[0]))
      pos:
        line_end: 7772
        line_start: 7772
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7819
      start: 7743
    functionDepth: 8
    functionLinenumber: 7743
    functionLinenumberEnd: 7819
    functionName: quicly_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 10
    functionsReached:
    - malloc
    - lock_now
    - free
    - compare_socket_address
    - QUICLY_PACKET_IS_LONG_HEADER
    - memcpy
    - unlock_now
    - do_receive
    - assert
    - adjust_pointers_of_decoded_packet
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_receive(quicly_conn_t *conn, struct sockaddr
      *dest_addr, struct sockaddr *src_addr,\n                              quicly_decoded_packet_t
      *packet)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open_stream
      Src: /src/h2o/deps/quicly/lib/quicly.c:7844,1
    - Dst: quicly_linklist_insert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7852,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7861,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:7862,1
    - Dst: quicly_conn_t*::super::ctx::stream_open::cb
      Src: /src/h2o/deps/quicly/lib/quicly.c:7864,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - conn
    - _stream
    - uni
    argTypes:
    - quicly_conn_t*
    - quicly_stream_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7869
      start: 7821
    functionDepth: 2
    functionLinenumber: 7821
    functionLinenumberEnd: 7869
    functionName: quicly_open_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 12
    functionsReached:
    - open_stream
    - QUICLY_LOG_CONN
    - quicly_linklist_insert
    - QUICLY_PROBE
    - quicly_conn_t*::super::ctx::stream_open::cb
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_open_stream(quicly_conn_t *conn, quicly_stream_t
      **_stream, int uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7873,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:7873,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7873,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7874,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/quicly.c:7874,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7875,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7876,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/quicly.c:7876,1
    - Dst: quicly_sendstate_reset
      Src: /src/h2o/deps/quicly/lib/quicly.c:7879,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7883,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:7886,1
    - Dst: resched_stream_data
      Src: /src/h2o/deps/quicly/lib/quicly.c:7887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (quicly_stream_has_send_side(quicly_is_client(stream->conn), stream->stream_id))
      pos:
        line_end: 7872
        line_start: 7872
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 7873
        line_start: 7873
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (stream->_send_aux.reset_stream.sender_state == QUICLY_SENDER_STATE_NONE)
      pos:
        line_end: 7874
        line_start: 7874
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!quicly_sendstate_transfer_complete(&stream->sendstate))
      pos:
        line_end: 7875
        line_start: 7875
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7888
      start: 7871
    functionDepth: 3
    functionLinenumber: 7871
    functionLinenumberEnd: 7888
    functionName: quicly_reset_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 5
    functionsReached:
    - quicly_is_client
    - quicly_sendstate_reset
    - quicly_sendstate_transfer_complete
    - sched_stream_control
    - QUICLY_ERROR_GET_ERROR_CODE
    - quicly_stream_has_send_side
    - resched_stream_data
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void quicly_reset_stream(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7892,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/deps/quicly/lib/quicly.c:7892,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/quicly.c:7892,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7893,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/quicly.c:7893,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/lib/quicly.c:7898,1
    - Dst: sched_stream_control
      Src: /src/h2o/deps/quicly/lib/quicly.c:7899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (quicly_stream_has_receive_side(quicly_is_client(stream->conn), stream->stream_id))
      pos:
        line_end: 7891
        line_start: 7891
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (QUICLY_ERROR_IS_QUIC_APPLICATION(err))
      pos:
        line_end: 7892
        line_start: 7892
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7901
      start: 7890
    functionDepth: 3
    functionLinenumber: 7890
    functionLinenumberEnd: 7901
    functionName: quicly_request_stop
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 4
    functionsReached:
    - quicly_is_client
    - sched_stream_control
    - QUICLY_ERROR_GET_ERROR_CODE
    - quicly_stream_has_receive_side
    - assert
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void quicly_request_stop(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts:
    - condition: (!"unexpected socket type")
      pos:
        line_end: 7910
        line_start: 7910
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7914
      start: 7903
    functionDepth: 0
    functionLinenumber: 7903
    functionLinenumberEnd: 7914
    functionName: quicly_get_socklen
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t quicly_get_socklen(struct sockaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_byte_to_hex
      Src: /src/h2o/deps/quicly/lib/quicly.c:7927,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - bytes
    - len
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7934
      start: 7916
    functionDepth: 1
    functionLinenumber: 7916
    functionLinenumberEnd: 7934
    functionName: quicly_escape_unsafe_string
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - quicly_byte_to_hex
    linkageType: ''
    returnType: char
    signature: char *quicly_escape_unsafe_string(char *buf, const void *bytes, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/quicly.c:7941,1
    - Dst: quicly_byte_to_hex
      Src: /src/h2o/deps/quicly/lib/quicly.c:7946,1
    - Dst: quicly_byte_to_hex
      Src: /src/h2o/deps/quicly/lib/quicly.c:7953,1
    - Dst: quicly_byte_to_hex
      Src: /src/h2o/deps/quicly/lib/quicly.c:7955,1
    - Dst: quicly_byte_to_hex
      Src: /src/h2o/deps/quicly/lib/quicly.c:7961,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:7983,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - bytes
    - len
    - indent
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (p - buf <= bufsize)
      pos:
        line_end: 7982
        line_start: 7982
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 7986
      start: 7936
    functionDepth: 1
    functionLinenumber: 7936
    functionLinenumberEnd: 7986
    functionName: quicly_hexdump
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - malloc
    - quicly_byte_to_hex
    - assert
    linkageType: ''
    returnType: char
    signature: char *quicly_hexdump(const uint8_t *bytes, size_t len, size_t indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptls
    argTypes:
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7998
      start: 7988
    functionDepth: 0
    functionLinenumber: 7988
    functionLinenumberEnd: 7998
    functionName: quicly_amend_ptls_context
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_amend_ptls_context(ptls_context_t *ptls)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/quicly/lib/quicly.c:8006,1
    - Dst: random_bytes
      Src: /src/h2o/deps/quicly/lib/quicly.c:8009,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/quicly/lib/quicly.c:8015,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8018,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8021,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:8022,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8025,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/quicly/lib/quicly.c:8026,1
    - Dst: ntohs
      Src: /src/h2o/deps/quicly/lib/quicly.c:8027,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:8030,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/quicly/lib/quicly.c:8034,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8038,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8039,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8040,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8041,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8042,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8043,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8046,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8046,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:8049,1
    - Dst: abort
      Src: /src/h2o/deps/quicly/lib/quicly.c:8050,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8052,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8052,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/quicly/lib/quicly.c:8055,1
    - Dst: ptls_aead_set_iv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8057,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:8058,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 4
    argNames:
    - aead
    - buf
    - start_off
    - plaintext
    argTypes:
    - ptls_aead_context_t*
    - ptls_buffer_t*
    - size_t
    - quicly_address_token_plaintext_t*
    assertStmts:
    - condition: (!"unsupported address type")
      pos:
        line_end: 8029
        line_start: 8029
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - condition: (!"unexpected token type")
      pos:
        line_end: 8048
        line_start: 8048
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 8064
      start: 8000
    functionDepth: 1
    functionLinenumber: 8000
    functionLinenumberEnd: 8064
    functionName: quicly_encrypt_address_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 4
    functionsReached:
    - ptls_buffer_push64
    - ptls_aead_set_iv
    - ptls_aead_encrypt
    - random_bytes
    - abort
    - ptls_buffer_push_block
    - ptls_buffer_reserve
    - ptls_buffer_push16
    - ptls_buffer_push32
    - ptls_buffer_pushv
    - assert
    - ntohs
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_encrypt_address_token(void (*random_bytes)(void
      *, size_t), ptls_aead_context_t *aead, ptls_buffer_t *buf,\n                                            size_t
      start_off, const quicly_address_token_plaintext_t *plaintext)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_set_iv
      Src: /src/h2o/deps/quicly/lib/quicly.c:8102,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/quicly/lib/quicly.c:8103,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/quicly/lib/quicly.c:8113,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8117,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:8121,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:8126,1
    - Dst: ptls_decode32
      Src: /src/h2o/deps/quicly/lib/quicly.c:8127,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/quicly/lib/quicly.c:8138,1
    - Dst: htons
      Src: /src/h2o/deps/quicly/lib/quicly.c:8140,1
    - Dst: DECODE_CID
      Src: /src/h2o/deps/quicly/lib/quicly.c:8155,1
    - Dst: DECODE_CID
      Src: /src/h2o/deps/quicly/lib/quicly.c:8156,1
    - Dst: DECODE_CID
      Src: /src/h2o/deps/quicly/lib/quicly.c:8157,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8161,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/lib/quicly.c:8162,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:8164,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/quicly.c:8169,1
    - Dst: abort
      Src: /src/h2o/deps/quicly/lib/quicly.c:8170,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8172,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/lib/quicly.c:8173,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/quicly.c:8175,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 92
    argCount: 6
    argNames:
    - aead
    - plaintext
    - _token
    - len
    - prefix_len
    - err_desc
    argTypes:
    - ptls_aead_context_t*
    - quicly_address_token_plaintext_t*
    - void*
    - size_t
    - size_t
    - char**
    assertStmts:
    - condition: (!"unexpected token type")
      pos:
        line_end: 8168
        line_start: 8168
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    constantsTouched: []
    func_position:
      end: 8189
      start: 8066
    functionDepth: 1
    functionLinenumber: 8066
    functionLinenumberEnd: 8189
    functionName: quicly_decrypt_address_token
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 4
    functionsReached:
    - ptls_aead_set_iv
    - ptls_decode_open_block
    - ptls_decode64
    - htons
    - abort
    - ptls_decode_block
    - ptls_decode16
    - ptls_decode32
    - DECODE_CID
    - memcpy
    - PTLS_BUILD_ASSERT
    - assert
    - ptls_aead_decrypt
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_decrypt_address_token(ptls_aead_context_t *aead,
      quicly_address_token_plaintext_t *plaintext,\n                                            const
      void *_token, size_t len, size_t prefix_len, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8155
      start: 8144
    functionDepth: 0
    functionLinenumber: 8144
    functionLinenumberEnd: 8155
    functionName: DECODE_CID
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_CID(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/quicly/lib/quicly.c:8201,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8202,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8203,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8204,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8205,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8206,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8207,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8208,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8209,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8210,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8211,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8212,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8213,1
    - Dst: PUSH_TP
      Src: /src/h2o/deps/quicly/lib/quicly.c:8214,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/deps/quicly/lib/quicly.c:8215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - auth_data
    - ctx
    argTypes:
    - ptls_buffer_t*
    - quicly_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8223
      start: 8191
    functionDepth: 1
    functionLinenumber: 8191
    functionLinenumberEnd: 8223
    functionName: quicly_build_session_ticket_auth_data
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 1
    functionsReached:
    - PUSH_TP
    - ptls_buffer_push_block
    - ptls_buffer_push_quicint
    linkageType: ''
    returnType: int
    signature: int quicly_build_session_ticket_auth_data(ptls_buffer_t *auth_data,
      const quicly_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8195
    functionDepth: 0
    functionLinenumber: 8195
    functionLinenumberEnd: 8200
    functionName: PUSH_TP
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_TP(id, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8227
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8227
    functionName: quicly_stream_noop_on_destroy
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_destroy(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8231
      start: 8229
    functionDepth: 0
    functionLinenumber: 8229
    functionLinenumberEnd: 8231
    functionName: quicly_stream_noop_on_send_shift
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_shift(quicly_stream_t *stream, size_t
      delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - stream
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8233
    functionDepth: 0
    functionLinenumber: 8233
    functionLinenumberEnd: 8235
    functionName: quicly_stream_noop_on_send_emit
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_emit(quicly_stream_t *stream, size_t
      off, void *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8239
      start: 8237
    functionDepth: 0
    functionLinenumber: 8237
    functionLinenumberEnd: 8239
    functionName: quicly_stream_noop_on_send_stop
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_stop(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8243
      start: 8241
    functionDepth: 0
    functionLinenumber: 8241
    functionLinenumberEnd: 8243
    functionName: quicly_stream_noop_on_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_receive(quicly_stream_t *stream, size_t
      off, const void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8247
      start: 8245
    functionDepth: 0
    functionLinenumber: 8245
    functionLinenumberEnd: 8247
    functionName: quicly_stream_noop_on_receive_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_receive_reset(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/deps/quicly/lib/quicly.c:8255,1
    - Dst: QUICLY_PROBE_ENABLED
      Src: /src/h2o/deps/quicly/lib/quicly.c:8256,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:8257,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/deps/quicly/lib/quicly.c:8258,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/deps/quicly/lib/quicly.c:8258,1
    - Dst: ptls_log_getsni_ptls
      Src: /src/h2o/deps/quicly/lib/quicly.c:8258,1
    - Dst: va_start
      Src: /src/h2o/deps/quicly/lib/quicly.c:8262,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/quicly/lib/quicly.c:8263,1
    - Dst: va_end
      Src: /src/h2o/deps/quicly/lib/quicly.c:8264,1
    - Dst: QUICLY_PROBE
      Src: /src/h2o/deps/quicly/lib/quicly.c:8266,1
    - Dst: QUICLY_LOG_CONN
      Src: /src/h2o/deps/quicly/lib/quicly.c:8267,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:8268,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:8268,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/quicly/lib/quicly.c:8269,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/deps/quicly/lib/quicly.c:8270,1
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/quicly.c:8270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - conn
    - function
    - line
    - fmt
    argTypes:
    - quicly_conn_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8273
      start: 8253
    functionDepth: 1
    functionLinenumber: 8253
    functionLinenumberEnd: 8273
    functionName: quicly__debug_printf
    functionSourceFile: /src/h2o/deps/quicly/lib/quicly.c
    functionUses: 0
    functionsReached:
    - ptls_log_getsni_ptls
    - va_start
    - ptls_get_log_state
    - vsnprintf
    - QUICLY_LOG_CONN
    - QUICLY_PROBE_ENABLED
    - PTLS_LOG_ELEMENT_SIGNED
    - ptls_log_conn_maybe_active
    - QUICLY_PROBE
    - va_end
    - ptls_log_point_maybe_active
    - PTLS_LOG_ELEMENT_UNSAFESTR
    - strlen
    - PTLS_LOG_DEFINE_POINT
    linkageType: ''
    returnType: void
    signature: void quicly__debug_printf(quicly_conn_t *conn, const char *function,
      int line, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:29,1
    - Dst: QUICLY_ERROR_IS_QUIC_APPLICATION
      Src: /src/h2o/deps/quicly/lib/streambuf.c:30,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/deps/quicly/lib/streambuf.c:31,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/streambuf.c:31,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/streambuf.c:32,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/deps/quicly/lib/streambuf.c:33,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/deps/quicly/lib/streambuf.c:34,1
    - Dst: quicly_is_client
      Src: /src/h2o/deps/quicly/lib/streambuf.c:34,1
    - Dst: quicly_request_stop
      Src: /src/h2o/deps/quicly/lib/streambuf.c:35,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/lib/streambuf.c:37,1
    - Dst: QUICLY_ERROR_IS_QUIC_TRANSPORT
      Src: /src/h2o/deps/quicly/lib/streambuf.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (err != 0)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: convert_error
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - QUICLY_ERROR_IS_QUIC_TRANSPORT
    - quicly_close
    - quicly_reset_stream
    - quicly_sendstate_is_open
    - quicly_stream_has_receive_side
    - quicly_stream_has_send_side
    - assert
    - quicly_request_stop
    - QUICLY_ERROR_IS_QUIC_APPLICATION
    linkageType: ''
    returnType: void
    signature: void convert_error(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_vec_t*::cb::discard_vec
      Src: /src/h2o/deps/quicly/lib/streambuf.c:48,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/streambuf.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sb
    argTypes:
    - quicly_sendbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: quicly_sendbuf_dispose
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - free
    - quicly_sendbuf_vec_t*::cb::discard_vec
    linkageType: ''
    returnType: void
    signature: void quicly_sendbuf_dispose(quicly_sendbuf_t *sb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:58,1
    - Dst: quicly_sendbuf_vec_t*::cb::discard_vec
      Src: /src/h2o/deps/quicly/lib/streambuf.c:67,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/lib/streambuf.c:72,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/streambuf.c:75,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/deps/quicly/lib/streambuf.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - stream
    - sb
    - delta
    argTypes:
    - quicly_stream_t*
    - quicly_sendbuf_t*
    - size_t
    assertStmts:
    - condition: (i < sb->vecs.size)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: quicly_sendbuf_shift
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 1
    functionsReached:
    - quicly_stream_sync_sendbuf
    - free
    - quicly_sendbuf_vec_t*::cb::discard_vec
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_sendbuf_shift(quicly_stream_t *stream, quicly_sendbuf_t
      *sb, size_t delta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_vec_t*::cb::flatten_vec
      Src: /src/h2o/deps/quicly/lib/streambuf.c:99,1
    - Dst: convert_error
      Src: /src/h2o/deps/quicly/lib/streambuf.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 6
    argNames:
    - stream
    - sb
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - quicly_sendbuf_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: quicly_sendbuf_emit
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - quicly_sendbuf_vec_t*::cb::flatten_vec
    - convert_error
    linkageType: ''
    returnType: void
    signature: void quicly_sendbuf_emit(quicly_stream_t *stream, quicly_sendbuf_t
      *sb, size_t off, void *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/streambuf.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - vec
    - dst
    - 'off'
    - len
    argTypes:
    - quicly_sendbuf_vec_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: flatten_raw
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t flatten_raw(quicly_sendbuf_vec_t *vec, void *dst, size_t
      off, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/streambuf.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - quicly_sendbuf_vec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: discard_raw
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void discard_raw(quicly_sendbuf_vec_t *vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:138,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/streambuf.c:138,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/streambuf.c:140,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/streambuf.c:144,1
    - Dst: quicly_sendbuf_write_vec
      Src: /src/h2o/deps/quicly/lib/streambuf.c:145,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/streambuf.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - stream
    - sb
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - quicly_sendbuf_t*
    - void*
    - size_t
    assertStmts:
    - condition: (quicly_sendstate_is_open(&stream->sendstate))
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: quicly_sendbuf_write
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 1
    functionsReached:
    - malloc
    - free
    - quicly_sendbuf_write_vec
    - quicly_sendstate_is_open
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_sendbuf_write(quicly_stream_t *stream, quicly_sendbuf_t
      *sb, const void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:156,1
    - Dst: realloc
      Src: /src/h2o/deps/quicly/lib/streambuf.c:161,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/deps/quicly/lib/streambuf.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - stream
    - sb
    - vec
    argTypes:
    - quicly_stream_t*
    - quicly_sendbuf_t*
    - quicly_sendbuf_vec_t*
    assertStmts:
    - condition: (sb->vecs.size <= sb->vecs.capacity)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: quicly_sendbuf_write_vec
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 2
    functionsReached:
    - realloc
    - quicly_stream_sync_sendbuf
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_sendbuf_write_vec(quicly_stream_t *stream, quicly_sendbuf_t
      *sb, quicly_sendbuf_vec_t *vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:174,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/lib/streambuf.c:176,1
    - Dst: quicly_stream_sync_recvbuf
      Src: /src/h2o/deps/quicly/lib/streambuf.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - stream
    - rb
    - delta
    argTypes:
    - quicly_stream_t*
    - ptls_buffer_t*
    - size_t
    assertStmts:
    - condition: (delta <= rb->off)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: quicly_recvbuf_shift
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 1
    functionsReached:
    - memmove
    - quicly_stream_sync_recvbuf
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_recvbuf_shift(quicly_stream_t *stream, ptls_buffer_t *rb,
      size_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/streambuf.c:185,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/streambuf.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - stream
    - rb
    argTypes:
    - quicly_stream_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: quicly_recvbuf_get
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - quicly_recvstate_transfer_complete
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t quicly_recvbuf_get(quicly_stream_t *stream, ptls_buffer_t
      *rb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/quicly/lib/streambuf.c:200,1
    - Dst: convert_error
      Src: /src/h2o/deps/quicly/lib/streambuf.c:201,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/streambuf.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - stream
    - rb
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - ptls_buffer_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: quicly_recvbuf_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - convert_error
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int quicly_recvbuf_receive(quicly_stream_t *stream, ptls_buffer_t *rb,
      size_t off, const void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:215,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/streambuf.c:216,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/streambuf.c:218,1
    - Dst: quicly_sendbuf_init
      Src: /src/h2o/deps/quicly/lib/streambuf.c:220,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/quicly/lib/streambuf.c:221,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/streambuf.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - stream
    - sz
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts:
    - condition: (sz >= sizeof(*sbuf))
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    - condition: (stream->data == NULL)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/h2o/deps/quicly/lib/streambuf.c
    constantsTouched: []
    func_position:
      end: 227
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 227
    functionName: quicly_streambuf_create
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 3
    functionsReached:
    - malloc
    - quicly_sendbuf_init
    - memset
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int quicly_streambuf_create(quicly_stream_t *stream, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_dispose
      Src: /src/h2o/deps/quicly/lib/streambuf.c:233,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/quicly/lib/streambuf.c:234,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/streambuf.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: quicly_streambuf_destroy
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - quicly_sendbuf_dispose
    - free
    - ptls_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void quicly_streambuf_destroy(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendbuf_emit
      Src: /src/h2o/deps/quicly/lib/streambuf.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - stream
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: quicly_streambuf_egress_emit
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 0
    functionsReached:
    - quicly_sendbuf_emit
    linkageType: ''
    returnType: void
    signature: void quicly_streambuf_egress_emit(quicly_stream_t *stream, size_t off,
      void *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_shutdown
      Src: /src/h2o/deps/quicly/lib/streambuf.c:248,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/deps/quicly/lib/streambuf.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: quicly_streambuf_egress_shutdown
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 7
    functionsReached:
    - quicly_sendstate_shutdown
    - quicly_stream_sync_sendbuf
    linkageType: ''
    returnType: int
    signature: int quicly_streambuf_egress_shutdown(quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvbuf_receive
      Src: /src/h2o/deps/quicly/lib/streambuf.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: quicly_streambuf_ingress_receive
    functionSourceFile: /src/h2o/deps/quicly/lib/streambuf.c
    functionUses: 4
    functionsReached:
    - quicly_recvbuf_receive
    linkageType: ''
    returnType: int
    signature: int quicly_streambuf_ingress_receive(quicly_stream_t *stream, size_t
      off, const void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/frame.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - is_response
    - data
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: quicly_encode_path_challenge_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_path_challenge_frame(uint8_t *dst, int is_response,
      const uint8_t *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/frame.c:49,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/frame.c:53,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/frame.c:54,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/quicly/lib/frame.c:55,1
    - Dst: WRITE_BLOCK
      Src: /src/h2o/deps/quicly/lib/frame.c:59,1
    - Dst: WRITE_BLOCK
      Src: /src/h2o/deps/quicly/lib/frame.c:62,1
    - Dst: quicly_encodev
      Src: /src/h2o/deps/quicly/lib/frame.c:68,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/frame.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - dst
    - dst_end
    - ranges
    - ecn_counts
    - ack_delay
    argTypes:
    - uint8_t*
    - uint8_t*
    - quicly_ranges_t*
    - uint64_t*
    - uint64_t
    assertStmts:
    - condition: (ranges->num_ranges != 0)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/deps/quicly/lib/frame.c
    constantsTouched: []
    func_position:
      end: 79
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 79
    functionName: quicly_encode_ack_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 2
    functionsReached:
    - WRITE_BLOCK
    - quicly_encodev
    - memcpy
    - PTLS_BUILD_ASSERT
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *quicly_encode_ack_frame(uint8_t *dst, uint8_t *dst_end, quicly_ranges_t
      *ranges, uint64_t *ecn_counts, uint64_t ack_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: WRITE_BLOCK
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BLOCK(start, end)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:85,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:87,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:89,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:92,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:101,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:103,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/frame.c:116,1
    - Dst: quicly_decodev
      Src: /src/h2o/deps/quicly/lib/frame.c:117,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/frame.c:120,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 4
    argNames:
    - src
    - end
    - frame
    - is_ack_ecn
    argTypes:
    - uint8_t**
    - uint8_t*
    - quicly_ack_frame_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 127
    functionName: quicly_decode_ack_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 4
    functionsReached:
    - PTLS_ELEMENTSOF
    - quicly_decodev
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_decode_ack_frame(const uint8_t **src, const uint8_t
      *end, quicly_ack_frame_t *frame, int is_ack_ecn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/quicly/lib/frame.c:132,1
    - Dst: PUSHV
      Src: /src/h2o/deps/quicly/lib/frame.c:143,1
    - Dst: PUSHV
      Src: /src/h2o/deps/quicly/lib/frame.c:144,1
    - Dst: PUSHV
      Src: /src/h2o/deps/quicly/lib/frame.c:146,1
    - Dst: PUSHV
      Src: /src/h2o/deps/quicly/lib/frame.c:147,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/frame.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - base
    - error_code
    - offending_frame_type
    - reason_phrase
    argTypes:
    - uint8_t*
    - uint64_t
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 155
    functionName: quicly_encode_close_frame
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 3
    functionsReached:
    - memcpy
    - PUSHV
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *quicly_encode_close_frame(uint8_t *const base, uint64_t error_code,
      uint64_t offending_frame_type,\n                                   const char
      *reason_phrase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: PUSHV
    functionSourceFile: /src/h2o/deps/quicly/lib/frame.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSHV(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbrt
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cwnd
    - rtt
    - mtu
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: calc_bytes_per_mtu_increase
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - cbrt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_bytes_per_mtu_increase(uint32_t cwnd, uint32_t rtt, uint32_t
      mtu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:67,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:71,1
    - Dst: quicly_cc_rapid_start_on_recovery
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:73,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:75,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:80,1
    - Dst: quicly_cc_rapid_start_update_rtt
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:91,1
    - Dst: quicly_cc_rapid_start_use_3x
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:93,1
    - Dst: quicly_u32_add_saturating
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 9
    argNames:
    - cc
    - loss
    - bytes
    - largest_acked
    - inflight
    - cc_limited
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint32_t
    - int
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts:
    - condition: (inflight >= bytes)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/quicly/lib/cc-pico.c
    constantsTouched: []
    func_position:
      end: 109
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 109
    functionName: pico_on_acked
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - assert
    - quicly_cc_rapid_start_update_rtt
    - quicly_cc_rapid_start_use_3x
    - quicly_cc_jumpstart_on_acked
    - quicly_u32_add_saturating
    - quicly_cc_rapid_start_on_recovery
    - quicly_cc_rapid_start_is_enabled
    linkageType: ''
    returnType: void
    signature: "void pico_on_acked(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, uint64_t largest_acked, uint32_t inflight,\n                          int
      cc_limited, uint64_t next_pn, int64_t now, uint32_t max_udp_payload_size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc__update_ecn_episodes
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:114,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:121,1
    - Dst: quicly_cc_rapid_start_on_recovery
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:122,1
    - Dst: quicly_cc_in_jumpstart
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:134,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:150,1
    - Dst: quicly_cc_jumpstart_on_first_loss
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:152,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:152,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:161,1
    - Dst: quicly_cc_is_jumpstart_ack
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:162,1
    - Dst: calc_bytes_per_mtu_increase
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:170,1
    - Dst: quicly_cc_rapid_start_is_enabled
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:182,1
    - Dst: quicly_cc_rapid_start_on_first_lost
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:186,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 7
    argNames:
    - cc
    - loss
    - bytes
    - lost_pn
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts:
    - condition: (cc->ssthresh == UINT32_MAX)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/h2o/deps/quicly/lib/cc-pico.c
    constantsTouched: []
    func_position:
      end: 202
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 202
    functionName: pico_on_lost
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - quicly_cc_in_jumpstart
    - quicly_cc_rapid_start_is_enabled
    - quicly_cc__update_ecn_episodes
    - quicly_cc_is_jumpstart_ack
    - quicly_cc_rapid_start_on_first_lost
    - calc_bytes_per_mtu_increase
    - quicly_cc_rapid_start_on_recovery
    - assert
    - quicly_cc_jumpstart_on_first_loss
    linkageType: ''
    returnType: void
    signature: "void pico_on_lost(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, uint64_t lost_pn, uint64_t next_pn,\n                         int64_t
      now, uint32_t max_udp_payload_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_jumpstart_reset
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cc
    - pn
    - now
    argTypes:
    - quicly_cc_t*
    - uint64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 229
    functionName: pico_on_late_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - quicly_cc_jumpstart_reset
    linkageType: ''
    returnType: void
    signature: void pico_on_late_ack(quicly_cc_t *cc, uint64_t pn, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - cc
    - loss
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: pico_on_persistent_congestion
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pico_on_persistent_congestion(quicly_cc_t *cc, const quicly_loss_t
      *loss, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - cc
    - loss
    - bytes
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: pico_on_sent
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pico_on_sent(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - stash
    argTypes:
    - quicly_cc_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: pico_init_pico_state
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pico_init_pico_state(quicly_cc_t *cc, uint32_t stash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pico_init_pico_state
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:258,1
    - Dst: quicly_cc_jumpstart_reset
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - initcwnd
    argTypes:
    - quicly_cc_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: pico_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - pico_init_pico_state
    - quicly_cc_jumpstart_reset
    linkageType: ''
    returnType: void
    signature: void pico_reset(quicly_cc_t *cc, uint32_t initcwnd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pico_init_pico_state
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:269,1
    - Dst: pico_init_pico_state
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:275,1
    - Dst: pico_reset
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - cc
    argTypes:
    - quicly_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 283
    functionName: pico_on_switch
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - pico_init_pico_state
    - pico_reset
    linkageType: ''
    returnType: int
    signature: int pico_on_switch(quicly_cc_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc_init_rapid_start
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - now
    argTypes:
    - quicly_cc_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: pico_enable_rapid_start
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - quicly_cc_init_rapid_start
    linkageType: ''
    returnType: void
    signature: void pico_enable_rapid_start(quicly_cc_t *cc, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pico_reset
      Src: /src/h2o/deps/quicly/lib/cc-pico.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cc
    - initcwnd
    - now
    argTypes:
    - quicly_init_cc_t*
    - quicly_cc_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pico_init
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-pico.c
    functionUses: 0
    functionsReached:
    - pico_reset
    linkageType: ''
    returnType: void
    signature: void pico_init(quicly_init_cc_t *self, quicly_cc_t *cc, uint32_t initcwnd,
      int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: COPY
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(dst, src, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: MOVE
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOVE(dst, src, n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/ranges.c:46,1
    - Dst: COPY
      Src: /src/h2o/deps/quicly/lib/ranges.c:49,1
    - Dst: COPY
      Src: /src/h2o/deps/quicly/lib/ranges.c:50,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/ranges.c:52,1
    - Dst: MOVE
      Src: /src/h2o/deps/quicly/lib/ranges.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ranges
    - start
    - end
    - slot
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: insert_at
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - COPY
    - MOVE
    linkageType: ''
    returnType: int
    signature: int insert_at(quicly_ranges_t *ranges, uint64_t start, uint64_t end,
      size_t slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/ranges.c:65,1
    - Dst: MOVE
      Src: /src/h2o/deps/quicly/lib/ranges.c:67,1
    - Dst: realloc
      Src: /src/h2o/deps/quicly/lib/ranges.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ranges
    - begin_range_index
    - end_range_index
    argTypes:
    - quicly_ranges_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (begin_range_index < end_range_index)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/h2o/deps/quicly/lib/ranges.c
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: quicly_ranges_drop_by_range_indices
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 2
    functionsReached:
    - realloc
    - assert
    - MOVE
    linkageType: ''
    returnType: void
    signature: void quicly_ranges_drop_by_range_indices(quicly_ranges_t *ranges, size_t
      begin_range_index, size_t end_range_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_drop_by_range_indices
      Src: /src/h2o/deps/quicly/lib/ranges.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ranges
    - start
    - end
    - slot
    - end_slot
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: merge_update
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_drop_by_range_indices
    linkageType: ''
    returnType: int
    signature: int merge_update(quicly_ranges_t *ranges, uint64_t start, uint64_t
      end, size_t slot, size_t end_slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/lib/ranges.c:93,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ranges
    - start
    - end
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: quicly_ranges_init_with_range
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 0
    functionsReached:
    - quicly_ranges_init
    - insert_at
    linkageType: ''
    returnType: int
    signature: int quicly_ranges_init_with_range(quicly_ranges_t *ranges, uint64_t
      start, uint64_t end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/ranges.c:101,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:107,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:109,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:117,1
    - Dst: merge_update
      Src: /src/h2o/deps/quicly/lib/ranges.c:124,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:127,1
    - Dst: merge_update
      Src: /src/h2o/deps/quicly/lib/ranges.c:129,1
    - Dst: merge_update
      Src: /src/h2o/deps/quicly/lib/ranges.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - ranges
    - start
    - end
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t
    assertStmts:
    - condition: (start <= end)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/deps/quicly/lib/ranges.c
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: quicly_ranges_add
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 5
    functionsReached:
    - insert_at
    - assert
    - merge_update
    linkageType: ''
    returnType: int
    signature: int quicly_ranges_add(quicly_ranges_t *ranges, uint64_t start, uint64_t
      end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/ranges.c:141,1
    - Dst: insert_at
      Src: /src/h2o/deps/quicly/lib/ranges.c:169,1
    - Dst: quicly_ranges_drop_by_range_indices
      Src: /src/h2o/deps/quicly/lib/ranges.c:176,1
    - Dst: quicly_ranges_drop_by_range_indices
      Src: /src/h2o/deps/quicly/lib/ranges.c:200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - ranges
    - start
    - end
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - uint64_t
    assertStmts:
    - condition: (start <= end)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/deps/quicly/lib/ranges.c
    constantsTouched: []
    func_position:
      end: 203
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 203
    functionName: quicly_ranges_subtract
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 3
    functionsReached:
    - quicly_ranges_drop_by_range_indices
    - insert_at
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_ranges_subtract(quicly_ranges_t *ranges, uint64_t start,
      uint64_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ranges
    - lower_bound
    - slots_traversed
    argTypes:
    - quicly_ranges_t*
    - uint64_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: quicly_ranges_next_missing
    functionSourceFile: /src/h2o/deps/quicly/lib/ranges.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quicly_ranges_next_missing(quicly_ranges_t *ranges, uint64_t
      lower_bound, size_t *slots_traversed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:34,1
    - Dst: random_bytes
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:36,1
    - Dst: random_bytes
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:39,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:41,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:47,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - set
    - initial_cid
    argTypes:
    - quicly_remote_cid_set_t*
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 49
    functionName: quicly_remote_cid_init_set
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 2
    functionsReached:
    - memset
    - PTLS_ELEMENTSOF
    - quicly_set_cid
    - random_bytes
    linkageType: ''
    returnType: void
    signature: void quicly_remote_cid_init_set(quicly_remote_cid_set_t *set, ptls_iovec_t
      *initial_cid, void (*random_bytes)(void *, size_t))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:59,1
    - Dst: quicly_cid_is_equal
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:68,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:68,1
    - Dst: memcmp
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:70,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:82,1
    - Dst: quicly_set_cid
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:84,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:84,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - set
    - sequence
    - cid
    - cid_len
    - srt
    argTypes:
    - quicly_remote_cid_set_t*
    - uint64_t
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts:
    - condition: (!was_stored)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/h2o/deps/quicly/lib/remote_cid.c
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: do_register
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - memcmp
    - quicly_cid_is_equal
    - memcpy
    - quicly_set_cid
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t do_register(quicly_remote_cid_set_t *set, uint64_t
      sequence, const uint8_t *cid, size_t cid_len,\n                                  const
      uint8_t srt[QUICLY_STATELESS_RESET_TOKEN_LEN])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_remote_cid_push_retired
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - set
    - idx_to_unreg
    argTypes:
    - quicly_remote_cid_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: do_unregister
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 0
    functionsReached:
    - quicly_remote_cid_push_retired
    linkageType: ''
    returnType: int
    signature: int do_unregister(quicly_remote_cid_set_t *set, size_t idx_to_unreg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:108,1
    - Dst: do_unregister
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:110,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set
    - sequence
    argTypes:
    - quicly_remote_cid_set_t*
    - uint64_t
    assertStmts:
    - condition: (!"invalid CID sequence number")
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/h2o/deps/quicly/lib/remote_cid.c
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: quicly_remote_cid_unregister
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - do_unregister
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_remote_cid_unregister(quicly_remote_cid_set_t *set, uint64_t
      sequence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:119,1
    - Dst: do_unregister
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - set
    - seq_unreg_prior_to
    argTypes:
    - quicly_remote_cid_set_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: unregister_prior_to
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - do_unregister
    linkageType: ''
    returnType: int
    signature: int unregister_prior_to(quicly_remote_cid_set_t *set, uint64_t seq_unreg_prior_to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:135,1
    - Dst: unregister_prior_to
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:140,1
    - Dst: do_register
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - set
    - sequence
    - cid
    - cid_len
    - srt
    - retire_prior_to
    argTypes:
    - quicly_remote_cid_set_t*
    - uint64_t
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint64_t
    assertStmts:
    - condition: (sequence >= retire_prior_to)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/h2o/deps/quicly/lib/remote_cid.c
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: quicly_remote_cid_register
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 2
    functionsReached:
    - do_register
    - unregister_prior_to
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_remote_cid_register(quicly_remote_cid_set_t
      *set, uint64_t sequence, const uint8_t *cid, size_t cid_len,\n                                          const
      uint8_t srt[QUICLY_STATELESS_RESET_TOKEN_LEN], uint64_t retire_prior_to)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - set
    - sequence
    argTypes:
    - quicly_remote_cid_set_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: quicly_remote_cid_push_retired
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: int
    signature: int quicly_remote_cid_push_retired(quicly_remote_cid_set_t *set, uint64_t
      sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/remote_cid.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - set
    - count
    argTypes:
    - quicly_remote_cid_set_t*
    - size_t
    assertStmts:
    - condition: (count <= set->retired.count)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/h2o/deps/quicly/lib/remote_cid.c
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: quicly_remote_cid_shift_retired
    functionSourceFile: /src/h2o/deps/quicly/lib/remote_cid.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_remote_cid_shift_retired(quicly_remote_cid_set_t *set,
      size_t count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:29,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:33,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:37,1
    - Dst: quicly_u32_add_saturating
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:42,1
    - Dst: quicly_u32_add_saturating
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 9
    argNames:
    - cc
    - loss
    - bytes
    - largest_acked
    - inflight
    - cc_limited
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint32_t
    - int
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts:
    - condition: (inflight >= bytes)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/deps/quicly/lib/cc-reno.c
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: reno_on_acked
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached:
    - quicly_cc_jumpstart_on_acked
    - assert
    - quicly_u32_add_saturating
    linkageType: ''
    returnType: void
    signature: "void reno_on_acked(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, uint64_t largest_acked, uint32_t inflight,\n                          int
      cc_limited, uint64_t next_pn, int64_t now, uint32_t max_udp_payload_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc__update_ecn_episodes
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:65,1
    - Dst: quicly_cc_jumpstart_on_first_loss
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - cc
    - loss
    - bytes
    - lost_pn
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 90
    functionName: quicly_cc_reno_on_lost
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached:
    - quicly_cc__update_ecn_episodes
    - quicly_cc_jumpstart_on_first_loss
    linkageType: ''
    returnType: void
    signature: "void quicly_cc_reno_on_lost(quicly_cc_t *cc, const quicly_loss_t *loss,
      uint32_t bytes, uint64_t lost_pn, uint64_t next_pn,\n                            int64_t
      now, uint32_t max_udp_payload_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - cc
    - loss
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: quicly_cc_reno_on_persistent_congestion
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_cc_reno_on_persistent_congestion(quicly_cc_t *cc, const
      quicly_loss_t *loss, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - cc
    - loss
    - bytes
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: quicly_cc_reno_on_sent
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_cc_reno_on_sent(quicly_cc_t *cc, const quicly_loss_t *loss,
      uint32_t bytes, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:104,1
    - Dst: quicly_cc_jumpstart_reset
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cc
    - initcwnd
    argTypes:
    - quicly_cc_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: reno_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached:
    - memset
    - quicly_cc_jumpstart_reset
    linkageType: ''
    returnType: void
    signature: void reno_reset(quicly_cc_t *cc, uint32_t initcwnd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reno_reset
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cc
    argTypes:
    - quicly_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: reno_on_switch
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached:
    - reno_reset
    linkageType: ''
    returnType: int
    signature: int reno_on_switch(quicly_cc_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reno_reset
      Src: /src/h2o/deps/quicly/lib/cc-reno.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cc
    - initcwnd
    - now
    argTypes:
    - quicly_init_cc_t*
    - quicly_cc_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: reno_init
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 0
    functionsReached:
    - reno_reset
    linkageType: ''
    returnType: void
    signature: void reno_init(quicly_init_cc_t *self, quicly_cc_t *cc, uint32_t initcwnd,
      int64_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - max_packets
    - max_udp_payload_size
    argTypes:
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: quicly_cc_calc_initial_cwnd
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-reno.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_cc_calc_initial_cwnd(uint32_t max_packets, uint16_t
      max_udp_payload_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init_with_range
      Src: /src/h2o/deps/quicly/lib/sendstate.c:31,1
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/lib/sendstate.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: quicly_sendstate_init
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_init
    - quicly_ranges_init_with_range
    linkageType: ''
    returnType: void
    signature: void quicly_sendstate_init(quicly_sendstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_init
      Src: /src/h2o/deps/quicly/lib/sendstate.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: quicly_sendstate_init_closed
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_sendstate_init
    linkageType: ''
    returnType: void
    signature: void quicly_sendstate_init_closed(quicly_sendstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/sendstate.c:46,1
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/sendstate.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: quicly_sendstate_dispose
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_clear
    linkageType: ''
    returnType: void
    signature: void quicly_sendstate_dispose(quicly_sendstate_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: quicly_sendstate_activate
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_add
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_activate(quicly_sendstate_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:71,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/lib/sendstate.c:71,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:72,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - state
    - final_size
    argTypes:
    - quicly_sendstate_t*
    - uint64_t
    assertStmts:
    - condition: (quicly_sendstate_is_open(state))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    - condition: (state->size_inflight <= final_size)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: quicly_sendstate_shutdown
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_sendstate_is_open
    - quicly_ranges_add
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_shutdown(quicly_sendstate_t *state, uint64_t final_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:92,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:93,1
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/sendstate.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts:
    - condition: (ret == 0 && "guaranteed to succeed, because the number of ranges
        never increases")
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: quicly_sendstate_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_add
    - quicly_ranges_clear
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_sendstate_reset(quicly_sendstate_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/quicly/lib/sendstate.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_sendstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: check_amount_of_state
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 0
    functionsReached:
    - PTLS_LIKELY
    linkageType: ''
    returnType: int
    signature: int check_amount_of_state(quicly_sendstate_t *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:126,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/deps/quicly/lib/sendstate.c:128,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:130,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:137,1
    - Dst: check_amount_of_state
      Src: /src/h2o/deps/quicly/lib/sendstate.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - state
    - args
    - bytes_to_shift
    argTypes:
    - quicly_sendstate_t*
    - quicly_sendstate_sent_t*
    - size_t*
    assertStmts:
    - condition: (sent_upto == state->final_size + 1)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    - condition: (state->pending.num_ranges == 0 || state->acked.ranges[0].end <=
        state->pending.ranges[0].start)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    constantsTouched: []
    func_position:
      end: 146
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 146
    functionName: quicly_sendstate_acked
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - check_amount_of_state
    - quicly_ranges_add
    - assert
    - quicly_ranges_subtract
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_acked(quicly_sendstate_t *state, quicly_sendstate_sent_t
      *args, size_t *bytes_to_shift)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:160,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/sendstate.c:166,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sendstate.c:172,1
    - Dst: check_amount_of_state
      Src: /src/h2o/deps/quicly/lib/sendstate.c:173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - state
    - args
    argTypes:
    - quicly_sendstate_t*
    - quicly_sendstate_sent_t*
    assertStmts:
    - condition: (state->pending.num_ranges == 0 || state->acked.ranges[0].end <=
        state->pending.ranges[0].start)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/h2o/deps/quicly/lib/sendstate.c
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: quicly_sendstate_lost
    functionSourceFile: /src/h2o/deps/quicly/lib/sendstate.c
    functionUses: 1
    functionsReached:
    - check_amount_of_state
    - quicly_ranges_add
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_sendstate_lost(quicly_sendstate_t *state, quicly_sendstate_sent_t
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/lib/loss.c:27,1
    - Dst: quicly_loss_get_sentmap_expiration_time
      Src: /src/h2o/deps/quicly/lib/loss.c:29,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/loss.c:35,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/loss.c:40,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/loss.c:44,1
    - Dst: quicly_sentmap_init_iter
      Src: /src/h2o/deps/quicly/lib/loss.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - loss
    - iter
    - now
    - max_ack_delay
    - is_closing
    argTypes:
    - quicly_loss_t*
    - quicly_sentmap_iter_t*
    - int64_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 52
    functionName: quicly_loss_init_sentmap_iter
    functionSourceFile: /src/h2o/deps/quicly/lib/loss.c
    functionUses: 3
    functionsReached:
    - quicly_sentmap_get
    - quicly_sentmap_init_iter
    - quicly_loss_get_sentmap_expiration_time
    - quicly_sentmap_update
    - quicly_sentmap_skip
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_loss_init_sentmap_iter(quicly_loss_t *loss,
      quicly_sentmap_iter_t *iter, int64_t now, uint32_t max_ack_delay,\n                                             int
      is_closing)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: quicly_loss_init_sentmap_iter
      Src: /src/h2o/deps/quicly/lib/loss.c:75,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/loss.c:80,1
    - Dst: CHECK_TIME_THRESHOLD
      Src: /src/h2o/deps/quicly/lib/loss.c:82,1
    - Dst: CHECK_PACKET_THRESHOLD
      Src: /src/h2o/deps/quicly/lib/loss.c:82,1
    - Dst: on_loss_detected
      Src: /src/h2o/deps/quicly/lib/loss.c:84,1
    - Dst: CHECK_PACKET_THRESHOLD
      Src: /src/h2o/deps/quicly/lib/loss.c:84,1
    - Dst: quicly_sentmap_update
      Src: /src/h2o/deps/quicly/lib/loss.c:85,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/loss.c:88,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/loss.c:95,1
    - Dst: quicly_loss_init_sentmap_iter
      Src: /src/h2o/deps/quicly/lib/loss.c:103,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/loss.c:105,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/loss.c:111,1
    - Dst: quicly_sentmap_skip
      Src: /src/h2o/deps/quicly/lib/loss.c:115,1
    - Dst: quicly_sentmap_get
      Src: /src/h2o/deps/quicly/lib/loss.c:116,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 5
    argNames:
    - loss
    - now
    - max_ack_delay
    - is_1rtt_only
    - on_loss_detected
    argTypes:
    - quicly_loss_t*
    - int64_t
    - uint32_t
    - int
    - quicly_loss_on_detect_cb
    assertStmts:
    - condition: (now < sent->sent_at + delay_until_lost)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/h2o/deps/quicly/lib/loss.c
    constantsTouched: []
    func_position:
      end: 120
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 120
    functionName: quicly_loss_detect_loss
    functionSourceFile: /src/h2o/deps/quicly/lib/loss.c
    functionUses: 5
    functionsReached:
    - quicly_loss_init_sentmap_iter
    - quicly_sentmap_get
    - CHECK_PACKET_THRESHOLD
    - on_loss_detected
    - CHECK_TIME_THRESHOLD
    - quicly_sentmap_update
    - quicly_sentmap_skip
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_loss_detect_loss(quicly_loss_t *loss, int64_t
      now, uint32_t max_ack_delay, int is_1rtt_only,\n                                       quicly_loss_on_detect_cb
      on_loss_detected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: CHECK_TIME_THRESHOLD
    functionSourceFile: /src/h2o/deps/quicly/lib/loss.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TIME_THRESHOLD(sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: CHECK_PACKET_THRESHOLD
    functionSourceFile: /src/h2o/deps/quicly/lib/loss.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PACKET_THRESHOLD(sent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - now
    argTypes:
    - quicly_cc_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: calc_cubic_t
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cubic_float_t
    signature: cubic_float_t calc_cubic_t(const quicly_cc_t *cc, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cc
    - t_sec
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - cubic_float_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: calc_w_cubic
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_w_cubic(const quicly_cc_t *cc, cubic_float_t t_sec, uint32_t
      max_udp_payload_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbrt
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: update_cubic_k
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - cbrt
    linkageType: ''
    returnType: void
    signature: void update_cubic_k(quicly_cc_t *cc, uint32_t max_udp_payload_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cc
    - t_sec
    - rtt_sec
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - cubic_float_t
    - cubic_float_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: calc_w_est
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_w_est(const quicly_cc_t *cc, cubic_float_t t_sec, cubic_float_t
      rtt_sec, uint32_t max_udp_payload_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:67,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:70,1
    - Dst: quicly_cc_jumpstart_on_acked
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:74,1
    - Dst: quicly_u32_add_saturating
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:80,1
    - Dst: calc_cubic_t
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:87,1
    - Dst: calc_w_cubic
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:90,1
    - Dst: calc_w_est
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:91,1
    - Dst: calc_w_cubic
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:100,1
    - Dst: quicly_u32_add_saturating
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 9
    argNames:
    - cc
    - loss
    - bytes
    - largest_acked
    - inflight
    - cc_limited
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint32_t
    - int
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts:
    - condition: (inflight >= bytes)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
    constantsTouched: []
    func_position:
      end: 110
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 110
    functionName: cubic_on_acked
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - calc_w_est
    - quicly_cc_jumpstart_on_acked
    - quicly_u32_add_saturating
    - calc_cubic_t
    - calc_w_cubic
    - assert
    linkageType: ''
    returnType: void
    signature: "void cubic_on_acked(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, uint64_t largest_acked, uint32_t inflight,\n                           int
      cc_limited, uint64_t next_pn, int64_t now, uint32_t max_udp_payload_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_cc__update_ecn_episodes
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:115,1
    - Dst: quicly_cc_jumpstart_on_first_loss
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:124,1
    - Dst: update_cubic_k
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - cc
    - loss
    - bytes
    - lost_pn
    - next_pn
    - now
    - max_udp_payload_size
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - uint64_t
    - uint64_t
    - int64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 153
    functionName: cubic_on_lost
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - update_cubic_k
    - quicly_cc__update_ecn_episodes
    - quicly_cc_jumpstart_on_first_loss
    linkageType: ''
    returnType: void
    signature: "void cubic_on_lost(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, uint64_t lost_pn, uint64_t next_pn,\n                          int64_t
      now, uint32_t max_udp_payload_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - cc
    - loss
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: cubic_on_persistent_congestion
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cubic_on_persistent_congestion(quicly_cc_t *cc, const quicly_loss_t
      *loss, int64_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - cc
    - loss
    - bytes
    - now
    argTypes:
    - quicly_cc_t*
    - quicly_loss_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: cubic_on_sent
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cubic_on_sent(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
      bytes, int64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:177,1
    - Dst: quicly_cc_jumpstart_reset
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cc
    - initcwnd
    argTypes:
    - quicly_cc_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: cubic_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - memset
    - quicly_cc_jumpstart_reset
    linkageType: ''
    returnType: void
    signature: void cubic_reset(quicly_cc_t *cc, uint32_t initcwnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cubic_reset
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cc
    argTypes:
    - quicly_cc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: cubic_on_switch
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - cubic_reset
    linkageType: ''
    returnType: int
    signature: int cubic_on_switch(quicly_cc_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cubic_reset
      Src: /src/h2o/deps/quicly/lib/cc-cubic.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cc
    - initcwnd
    - now
    argTypes:
    - quicly_init_cc_t*
    - quicly_cc_t*
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: cubic_init
    functionSourceFile: /src/h2o/deps/quicly/lib/cc-cubic.c
    functionUses: 0
    functionsReached:
    - cubic_reset
    linkageType: ''
    returnType: void
    signature: void cubic_init(quicly_init_cc_t *self, quicly_cc_t *cc, uint32_t initcwnd,
      int64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:127,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:131,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/lib/defaults.c:132,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/lib/defaults.c:133,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/lib/defaults.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - token
    - cid
    argTypes:
    - struct st_quicly_default_encrypt_cid_t*
    - void*
    - void*
    assertStmts:
    - condition: (self->reset_token_ctx->algo->block_size == QUICLY_STATELESS_RESET_TOKEN_LEN)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    - condition: (self->cid_encrypt_ctx->algo->block_size < QUICLY_STATELESS_RESET_TOKEN_LEN)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: generate_reset_token
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - assert
    - ptls_cipher_encrypt
    linkageType: ''
    returnType: void
    signature: void generate_reset_token(struct st_quicly_default_encrypt_cid_t *self,
      void *token, const void *cid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encode64
      Src: /src/h2o/deps/quicly/lib/defaults.c:153,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:156,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/defaults.c:159,1
    - Dst: quicly_encode32
      Src: /src/h2o/deps/quicly/lib/defaults.c:160,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:161,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/lib/defaults.c:164,1
    - Dst: generate_reset_token
      Src: /src/h2o/deps/quicly/lib/defaults.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - _self
    - encrypted
    - reset_token
    - plaintext
    argTypes:
    - quicly_cid_encryptor_t*
    - quicly_cid_t*
    - void*
    - quicly_cid_plaintext_t*
    assertStmts:
    - condition: (p - buf == self->cid_encrypt_ctx->algo->block_size)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    - condition: (!"unexpected block size")
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: default_encrypt_cid
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_encode64
    - ptls_cipher_encrypt
    - quicly_encode32
    - generate_reset_token
    - assert
    linkageType: ''
    returnType: void
    signature: "void default_encrypt_cid(quicly_cid_encryptor_t *_self, quicly_cid_t
      *encrypted, void *reset_token,\n                                const quicly_cid_plaintext_t
      *plaintext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/quicly/lib/defaults.c:189,1
    - Dst: quicly_decode64
      Src: /src/h2o/deps/quicly/lib/defaults.c:194,1
    - Dst: quicly_decode32
      Src: /src/h2o/deps/quicly/lib/defaults.c:198,1
    - Dst: quicly_decode24
      Src: /src/h2o/deps/quicly/lib/defaults.c:199,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - _self
    - plaintext
    - encrypted
    - len
    argTypes:
    - quicly_cid_encryptor_t*
    - quicly_cid_plaintext_t*
    - void*
    - size_t
    assertStmts:
    - condition: (p - ptbuf == len)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: default_decrypt_cid
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_decode24
    - quicly_decode32
    - quicly_decode64
    - ptls_cipher_encrypt
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t default_decrypt_cid(quicly_cid_encryptor_t *_self, quicly_cid_plaintext_t
      *plaintext, const void *encrypted,\n                                  size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_reset_token
      Src: /src/h2o/deps/quicly/lib/defaults.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _self
    - token
    - cid
    argTypes:
    - quicly_cid_encryptor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: default_generate_reset_token
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - generate_reset_token
    linkageType: ''
    returnType: int
    signature: int default_generate_reset_token(quicly_cid_encryptor_t *_self, void
      *token, const void *cid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:220,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:221,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/quicly/lib/defaults.c:224,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/defaults.c:225,1
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/defaults.c:228,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/quicly/lib/defaults.c:232,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/defaults.c:232,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/quicly/lib/defaults.c:234,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/quicly/lib/defaults.c:236,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/quicly/lib/defaults.c:238,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/defaults.c:238,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/quicly/lib/defaults.c:240,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/defaults.c:243,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/defaults.c:244,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:250,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:252,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:254,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/defaults.c:255,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/defaults.c:257,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/defaults.c:258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - cid_cipher
    - reset_token_cipher
    - hash
    - key
    argTypes:
    - ptls_cipher_algorithm_t*
    - ptls_cipher_algorithm_t*
    - ptls_hash_algorithm_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (reset_token_cipher->block_size == 16)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    - condition: (cid_cipher->block_size == 8 || cid_cipher->block_size == 16)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    constantsTouched: []
    func_position:
      end: 260
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 260
    functionName: quicly_new_default_cid_encryptor
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - malloc
    - ptls_hkdf_expand_label
    - ptls_cipher_new
    - free
    - ptls_cipher_free
    - ptls_clear_memory
    - ptls_calc_hash
    - assert
    linkageType: ''
    returnType: quicly_cid_encryptor_t
    signature: "quicly_cid_encryptor_t *quicly_new_default_cid_encryptor(ptls_cipher_algorithm_t
      *cid_cipher,\n                                                         ptls_cipher_algorithm_t
      *reset_token_cipher, ptls_hash_algorithm_t *hash,\n                                                         ptls_iovec_t
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:266,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:267,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:268,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/defaults.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - quicly_cid_encryptor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 270
    functionName: quicly_free_default_cid_encryptor
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 1
    functionsReached:
    - ptls_cipher_free
    - free
    linkageType: ''
    returnType: void
    signature: void quicly_free_default_cid_encryptor(quicly_cid_encryptor_t *_self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_insert_list
      Src: /src/h2o/deps/quicly/lib/defaults.c:281,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/defaults.c:289,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:292,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/defaults.c:294,1
    - Dst: quicly_linklist_insert
      Src: /src/h2o/deps/quicly/lib/defaults.c:295,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/defaults.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - conn
    - conn_is_saturated
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 301
    functionName: default_stream_scheduler_can_send
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - quicly_linklist_insert_list
    - quicly_linklist_unlink
    - quicly_stream_can_send
    - quicly_linklist_insert
    linkageType: ''
    returnType: int
    signature: int default_stream_scheduler_can_send(quicly_stream_scheduler_t *self,
      quicly_conn_t *conn, int conn_is_saturated)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/defaults.c:305,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:307,1
    - Dst: quicly_linklist_insert
      Src: /src/h2o/deps/quicly/lib/defaults.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - sched
    - stream
    - conn_is_blocked
    argTypes:
    - struct st_quicly_default_scheduler_state_t*
    - quicly_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: link_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_stream_can_send
    - quicly_linklist_is_linked
    - quicly_linklist_insert
    linkageType: ''
    returnType: void
    signature: void link_stream(struct st_quicly_default_scheduler_state_t *sched,
      quicly_stream_t *stream, int conn_is_blocked)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_blocked
      Src: /src/h2o/deps/quicly/lib/defaults.c:320,1
    - Dst: quicly_linklist_insert_list
      Src: /src/h2o/deps/quicly/lib/defaults.c:324,1
    - Dst: quicly_can_send_data
      Src: /src/h2o/deps/quicly/lib/defaults.c:326,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/defaults.c:326,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/defaults.c:330,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:332,1
    - Dst: quicly_linklist_insert
      Src: /src/h2o/deps/quicly/lib/defaults.c:333,1
    - Dst: quicly_send_stream
      Src: /src/h2o/deps/quicly/lib/defaults.c:337,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/defaults.c:341,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:341,1
    - Dst: link_stream
      Src: /src/h2o/deps/quicly/lib/defaults.c:342,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/deps/quicly/lib/defaults.c:347,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:348,1
    - Dst: link_stream
      Src: /src/h2o/deps/quicly/lib/defaults.c:349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - self
    - conn
    - s
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (quicly_stream_can_send(stream, 1))
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    constantsTouched: []
    func_position:
      end: 353
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 353
    functionName: default_stream_scheduler_do_send
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - quicly_is_blocked
    - link_stream
    - quicly_linklist_insert_list
    - quicly_send_stream
    - quicly_linklist_unlink
    - quicly_stream_can_send
    - quicly_can_send_data
    - quicly_linklist_insert
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t default_stream_scheduler_do_send(quicly_stream_scheduler_t
      *self, quicly_conn_t *conn,\n                                                       quicly_send_context_t
      *s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_can_send
      Src: /src/h2o/deps/quicly/lib/defaults.c:362,1
    - Dst: link_stream
      Src: /src/h2o/deps/quicly/lib/defaults.c:364,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/deps/quicly/lib/defaults.c:364,1
    - Dst: quicly_linklist_is_linked
      Src: /src/h2o/deps/quicly/lib/defaults.c:367,1
    - Dst: quicly_linklist_unlink
      Src: /src/h2o/deps/quicly/lib/defaults.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: default_stream_scheduler_update_state
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - quicly_linklist_is_linked
    - link_stream
    - quicly_is_blocked
    - quicly_linklist_unlink
    - quicly_stream_can_send
    linkageType: ''
    returnType: void
    signature: void default_stream_scheduler_update_state(quicly_stream_scheduler_t
      *self, quicly_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/defaults.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - quicly_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: quicly_default_alloc_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: quicly_stream_t
    signature: quicly_stream_t *quicly_default_alloc_stream(quicly_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/defaults.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: quicly_default_free_stream
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void quicly_default_free_stream(quicly_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/quicly/lib/defaults.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - quicly_now_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: default_now
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: int64_t
    signature: int64_t default_now(quicly_now_t *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/quicly/lib/defaults.c:413,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/defaults.c:413,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/lib/defaults.c:414,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/quicly/lib/defaults.c:416,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/quicly/lib/defaults.c:423,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:432,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/quicly/lib/defaults.c:436,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/quicly/lib/defaults.c:440,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 9
    argNames:
    - engine
    - conn
    - epoch
    - is_enc
    - hp_ctx
    - aead_ctx
    - aead
    - hash
    - secret
    argTypes:
    - quicly_crypto_engine_t*
    - quicly_conn_t*
    - size_t
    - int
    - ptls_cipher_context_t**
    - ptls_aead_context_t**
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 442
    functionName: default_setup_cipher
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    - ptls_cipher_new
    - ptls_aead_free
    - ptls_cipher_free
    - ptls_aead_new
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int default_setup_cipher(quicly_crypto_engine_t *engine, quicly_conn_t
      *conn, size_t epoch, int is_enc,\n                                ptls_cipher_context_t
      **hp_ctx, ptls_aead_context_t **aead_ctx, ptls_aead_algorithm_t *aead,\n                                ptls_hash_algorithm_t
      *hash, const void *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_encrypt_s
      Src: /src/h2o/deps/quicly/lib/defaults.c:452,1
    - Dst: QUICLY_PACKET_IS_LONG_HEADER
      Src: /src/h2o/deps/quicly/lib/defaults.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - engine
    - conn
    - header_protect_ctx
    - packet_protect_ctx
    - datagram
    - first_byte_at
    - payload_from
    - packet_number
    - coalesced
    argTypes:
    - quicly_crypto_engine_t*
    - quicly_conn_t*
    - ptls_cipher_context_t*
    - ptls_aead_context_t*
    - ptls_iovec_t
    - size_t
    - size_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: default_finalize_send_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/defaults.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt_s
    - QUICLY_PACKET_IS_LONG_HEADER
    linkageType: ''
    returnType: void
    signature: "void default_finalize_send_packet(quicly_crypto_engine_t *engine,
      quicly_conn_t *conn,\n                                         ptls_cipher_context_t
      *header_protect_ctx, ptls_aead_context_t *packet_protect_ctx,\n                                         ptls_iovec_t
      datagram, size_t first_byte_at, size_t payload_from, uint64_t packet_number,\n
      \                                        int coalesced)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - quicly_local_cid_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: has_pending
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_pending(quicly_local_cid_set_t *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_local_cid_set_t*::_encryptor::encrypt_cid
      Src: /src/h2o/deps/quicly/lib/local_cid.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set
    - idx
    argTypes:
    - quicly_local_cid_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: generate_cid
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached:
    - quicly_local_cid_set_t*::_encryptor::encrypt_cid
    linkageType: ''
    returnType: int
    signature: int generate_cid(quicly_local_cid_set_t *set, size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - quicly_local_cid_t*
    - quicly_local_cid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: swap_cids
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_cids(quicly_local_cid_t *a, quicly_local_cid_t *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap_cids
      Src: /src/h2o/deps/quicly/lib/local_cid.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - set
    - idx
    argTypes:
    - quicly_local_cid_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: do_mark_pending
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached:
    - swap_cids
    linkageType: ''
    returnType: void
    signature: void do_mark_pending(quicly_local_cid_set_t *set, size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap_cids
      Src: /src/h2o/deps/quicly/lib/local_cid.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - set
    - idx
    argTypes:
    - quicly_local_cid_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: do_mark_delivered
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached:
    - swap_cids
    linkageType: ''
    returnType: void
    signature: void do_mark_delivered(quicly_local_cid_set_t *set, size_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:86,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:92,1
    - Dst: generate_cid
      Src: /src/h2o/deps/quicly/lib/local_cid.c:93,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/local_cid.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - set
    - encryptor
    - new_cid
    argTypes:
    - quicly_local_cid_set_t*
    - quicly_cid_encryptor_t*
    - quicly_cid_plaintext_t*
    assertStmts:
    - condition: (new_cid->path_id == 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    - condition: (new_cid != NULL && "master CID must be specified when a non-zero
        length CID is to be used")
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    constantsTouched: []
    func_position:
      end: 100
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 100
    functionName: quicly_local_cid_init_set
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - generate_cid
    - PTLS_ELEMENTSOF
    - assert
    linkageType: ''
    returnType: void
    signature: "void quicly_local_cid_init_set(quicly_local_cid_set_t *set, quicly_cid_encryptor_t
      *encryptor,\n                               const quicly_cid_plaintext_t *new_cid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:106,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/local_cid.c:106,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:107,1
    - Dst: generate_cid
      Src: /src/h2o/deps/quicly/lib/local_cid.c:121,1
    - Dst: do_mark_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - set
    - size
    argTypes:
    - quicly_local_cid_set_t*
    - size_t
    assertStmts:
    - condition: (size <= PTLS_ELEMENTSOF(set->cids))
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    - condition: (set->_size <= size)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    constantsTouched: []
    func_position:
      end: 128
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 128
    functionName: quicly_local_cid_set_size
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - do_mark_pending
    - assert
    - generate_cid
    linkageType: ''
    returnType: int
    signature: int quicly_local_cid_set_size(quicly_local_cid_set_t *set, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:132,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:136,1
    - Dst: swap_cids
      Src: /src/h2o/deps/quicly/lib/local_cid.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - set
    - num_sent
    argTypes:
    - quicly_local_cid_set_t*
    - size_t
    assertStmts:
    - condition: (num_sent <= set->_size)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    - condition: (set->cids[i].state == QUICLY_LOCAL_CID_STATE_PENDING)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: quicly_local_cid_on_sent
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - swap_cids
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_local_cid_on_sent(quicly_local_cid_set_t *set, size_t num_sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set
    - sequence
    argTypes:
    - quicly_local_cid_set_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: find_index
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t find_index(const quicly_local_cid_set_t *set, uint64_t sequence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_index
      Src: /src/h2o/deps/quicly/lib/local_cid.c:160,1
    - Dst: do_mark_delivered
      Src: /src/h2o/deps/quicly/lib/local_cid.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - set
    - sequence
    argTypes:
    - quicly_local_cid_set_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: quicly_local_cid_on_acked
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - find_index
    - do_mark_delivered
    linkageType: ''
    returnType: void
    signature: void quicly_local_cid_on_acked(quicly_local_cid_set_t *set, uint64_t
      sequence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_index
      Src: /src/h2o/deps/quicly/lib/local_cid.c:169,1
    - Dst: has_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:171,1
    - Dst: has_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:175,1
    - Dst: do_mark_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - set
    - sequence
    argTypes:
    - quicly_local_cid_set_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: quicly_local_cid_on_lost
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - find_index
    - do_mark_pending
    - has_pending
    linkageType: ''
    returnType: int
    signature: int quicly_local_cid_on_lost(quicly_local_cid_set_t *set, uint64_t
      sequence)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/local_cid.c:191,1
    - Dst: has_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:200,1
    - Dst: swap_cids
      Src: /src/h2o/deps/quicly/lib/local_cid.c:216,1
    - Dst: generate_cid
      Src: /src/h2o/deps/quicly/lib/local_cid.c:221,1
    - Dst: do_mark_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:222,1
    - Dst: has_pending
      Src: /src/h2o/deps/quicly/lib/local_cid.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - set
    - sequence
    - _has_pending
    argTypes:
    - quicly_local_cid_set_t*
    - uint64_t
    - int*
    assertStmts:
    - condition: (retired_at == set->_size)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/h2o/deps/quicly/lib/local_cid.c
    constantsTouched: []
    func_position:
      end: 229
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 229
    functionName: quicly_local_cid_retire
    functionSourceFile: /src/h2o/deps/quicly/lib/local_cid.c
    functionUses: 2
    functionsReached:
    - swap_cids
    - do_mark_pending
    - generate_cid
    - assert
    - has_pending
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_local_cid_retire(quicly_local_cid_set_t *set,
      uint64_t sequence, int *_has_pending)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - meter
    - now
    - bytes_acked
    argTypes:
    - quicly_ratemeter_t*
    - int64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: start_sampling
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void start_sampling(quicly_ratemeter_t *meter, int64_t now, uint64_t
      bytes_acked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/rate.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - meter
    argTypes:
    - quicly_ratemeter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: commit_sample
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void commit_sample(quicly_ratemeter_t *meter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/lib/rate.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - quicly_ratemeter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: quicly_ratemeter_init
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 4
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void quicly_ratemeter_init(quicly_ratemeter_t *meter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/rate.c:55,1
    - Dst: quicly_ratemeter_is_cc_limited
      Src: /src/h2o/deps/quicly/lib/rate.c:55,1
    - Dst: commit_sample
      Src: /src/h2o/deps/quicly/lib/rate.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - meter
    - pn
    argTypes:
    - quicly_ratemeter_t*
    - uint64_t
    assertStmts:
    - condition: (!quicly_ratemeter_is_cc_limited(meter))
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/h2o/deps/quicly/lib/rate.c
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: quicly_ratemeter_enter_cc_limited
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 3
    functionsReached:
    - commit_sample
    - quicly_ratemeter_is_cc_limited
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_ratemeter_enter_cc_limited(quicly_ratemeter_t *meter, uint64_t
      pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/rate.c:67,1
    - Dst: quicly_ratemeter_is_cc_limited
      Src: /src/h2o/deps/quicly/lib/rate.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meter
    - pn
    argTypes:
    - quicly_ratemeter_t*
    - uint64_t
    assertStmts:
    - condition: (quicly_ratemeter_is_cc_limited(meter))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/quicly/lib/rate.c
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: quicly_ratemeter_exit_cc_limited
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 3
    functionsReached:
    - quicly_ratemeter_is_cc_limited
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_ratemeter_exit_cc_limited(quicly_ratemeter_t *meter, uint64_t
      pn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: start_sampling
      Src: /src/h2o/deps/quicly/lib/rate.c:77,1
    - Dst: commit_sample
      Src: /src/h2o/deps/quicly/lib/rate.c:86,1
    - Dst: start_sampling
      Src: /src/h2o/deps/quicly/lib/rate.c:87,1
    - Dst: commit_sample
      Src: /src/h2o/deps/quicly/lib/rate.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - meter
    - now
    - bytes_acked
    - pn
    argTypes:
    - quicly_ratemeter_t*
    - int64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 99
    functionName: quicly_ratemeter_on_ack
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 3
    functionsReached:
    - commit_sample
    - start_sampling
    linkageType: ''
    returnType: void
    signature: void quicly_ratemeter_on_ack(quicly_ratemeter_t *meter, int64_t now,
      uint64_t bytes_acked, uint64_t pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes_acked
    - elapsed
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: to_speed
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t to_speed(uint64_t bytes_acked, uint32_t elapsed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: to_speed
      Src: /src/h2o/deps/quicly/lib/rate.c:118,1
    - Dst: FOREACH_SAMPLE
      Src: /src/h2o/deps/quicly/lib/rate.c:137,1
    - Dst: to_speed
      Src: /src/h2o/deps/quicly/lib/rate.c:141,1
    - Dst: FOREACH_SAMPLE
      Src: /src/h2o/deps/quicly/lib/rate.c:147,1
    - Dst: to_speed
      Src: /src/h2o/deps/quicly/lib/rate.c:148,1
    - Dst: sqrt
      Src: /src/h2o/deps/quicly/lib/rate.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - meter
    - rate
    argTypes:
    - quicly_ratemeter_t*
    - quicly_rate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 156
    functionName: quicly_ratemeter_report
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 3
    functionsReached:
    - sqrt
    - to_speed
    - FOREACH_SAMPLE
    linkageType: ''
    returnType: void
    signature: void quicly_ratemeter_report(quicly_ratemeter_t *meter, quicly_rate_t
      *rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: FOREACH_SAMPLE
    functionSourceFile: /src/h2o/deps/quicly/lib/rate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_SAMPLE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init_with_range
      Src: /src/h2o/deps/quicly/lib/recvstate.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_recvstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: quicly_recvstate_init
    functionSourceFile: /src/h2o/deps/quicly/lib/recvstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_init_with_range
    linkageType: ''
    returnType: void
    signature: void quicly_recvstate_init(quicly_recvstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_init
      Src: /src/h2o/deps/quicly/lib/recvstate.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_recvstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: quicly_recvstate_init_closed
    functionSourceFile: /src/h2o/deps/quicly/lib/recvstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_init
    linkageType: ''
    returnType: void
    signature: void quicly_recvstate_init_closed(quicly_recvstate_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/recvstate.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - quicly_recvstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: quicly_recvstate_dispose
    functionSourceFile: /src/h2o/deps/quicly/lib/recvstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_clear
    linkageType: ''
    returnType: void
    signature: void quicly_recvstate_dispose(quicly_recvstate_t *state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/recvstate.c:46,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/recvstate.c:46,1
    - Dst: quicly_ranges_add
      Src: /src/h2o/deps/quicly/lib/recvstate.c:78,1
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/recvstate.c:89,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 5
    argNames:
    - state
    - 'off'
    - len
    - is_fin
    - max_ranges
    argTypes:
    - quicly_recvstate_t*
    - uint64_t
    - size_t*
    - int
    - size_t
    assertStmts:
    - condition: (!quicly_recvstate_transfer_complete(state))
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/deps/quicly/lib/recvstate.c
    constantsTouched: []
    func_position:
      end: 91
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 91
    functionName: quicly_recvstate_update
    functionSourceFile: /src/h2o/deps/quicly/lib/recvstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_clear
    - quicly_ranges_add
    - quicly_recvstate_transfer_complete
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_recvstate_update(quicly_recvstate_t *state, uint64_t
      off, size_t *len, int is_fin, size_t max_ranges)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/recvstate.c:95,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/lib/recvstate.c:95,1
    - Dst: quicly_ranges_clear
      Src: /src/h2o/deps/quicly/lib/recvstate.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - state
    - eos_at
    - bytes_missing
    argTypes:
    - quicly_recvstate_t*
    - uint64_t
    - uint64_t*
    assertStmts:
    - condition: (!quicly_recvstate_transfer_complete(state))
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/h2o/deps/quicly/lib/recvstate.c
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: quicly_recvstate_reset
    functionSourceFile: /src/h2o/deps/quicly/lib/recvstate.c
    functionUses: 1
    functionsReached:
    - quicly_ranges_clear
    - quicly_recvstate_transfer_complete
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_recvstate_reset(quicly_recvstate_t *state, uint64_t
      eos_at, uint64_t *bytes_missing)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - iter
    argTypes:
    - quicly_sentmap_iter_t*
    assertStmts:
    - condition: ((*iter->ref)->num_entries != 0)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: next_entry
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void next_entry(quicly_sentmap_iter_t *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:54,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:56,1
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/sentmap.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((*ref)->num_entries != 0)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    - condition: (block == map->tail)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: free_block
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 0
    functionsReached:
    - free
    - assert
    linkageType: ''
    returnType: struct st_quicly_sent_block_t
    signature: struct st_quicly_sent_block_t **free_block(quicly_sentmap_t *map, struct
      st_quicly_sent_block_t **ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:73,1
    - Dst: free_block
      Src: /src/h2o/deps/quicly/lib/sentmap.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - quicly_sentmap_t*
    - quicly_sentmap_iter_t*
    assertStmts:
    - condition: (iter->p->acked != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: discard_entry
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 0
    functionsReached:
    - free_block
    - assert
    linkageType: ''
    returnType: void
    signature: void discard_entry(quicly_sentmap_t *map, quicly_sentmap_iter_t *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/quicly/lib/sentmap.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - map
    argTypes:
    - quicly_sentmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: quicly_sentmap_dispose
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void quicly_sentmap_dispose(quicly_sentmap_t *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:97,1
    - Dst: quicly_sentmap_allocate
      Src: /src/h2o/deps/quicly/lib/sentmap.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - packet_number
    - now
    - ack_epoch
    argTypes:
    - quicly_sentmap_t*
    - uint64_t
    - int64_t
    - uint8_t
    assertStmts:
    - condition: (map->_pending_packet == NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: quicly_sentmap_prepare
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 9
    functionsReached:
    - quicly_sentmap_allocate
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_sentmap_prepare(quicly_sentmap_t *map, uint64_t
      packet_number, int64_t now, uint8_t ack_epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/quicly/lib/sentmap.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - map
    argTypes:
    - quicly_sentmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: quicly_sentmap__new_block
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct st_quicly_sent_block_t
    signature: struct st_quicly_sent_block_t *quicly_sentmap__new_block(quicly_sentmap_t
      *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/h2o/deps/quicly/lib/sentmap.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - quicly_sentmap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: quicly_sentmap_skip
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 7
    functionsReached:
    - next_entry
    linkageType: ''
    returnType: void
    signature: void quicly_sentmap_skip(quicly_sentmap_iter_t *iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:137,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:138,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:145,1
    - Dst: discard_entry
      Src: /src/h2o/deps/quicly/lib/sentmap.c:158,1
    - Dst: next_entry
      Src: /src/h2o/deps/quicly/lib/sentmap.c:161,1
    - Dst: next_entry
      Src: /src/h2o/deps/quicly/lib/sentmap.c:161,1
    - Dst: quicly_sentmap_iter_t*::p::acked
      Src: /src/h2o/deps/quicly/lib/sentmap.c:162,1
    - Dst: discard_entry
      Src: /src/h2o/deps/quicly/lib/sentmap.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - map
    - iter
    - event
    argTypes:
    - quicly_sentmap_t*
    - quicly_sentmap_iter_t*
    - quicly_sentmap_event_t
    assertStmts:
    - condition: (iter->p != &quicly_sentmap__end_iter)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    - condition: (map->bytes_in_flight >= packet.cc_bytes_in_flight)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    - condition: (iter->p->acked == quicly_sentmap__type_packet)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: quicly_sentmap_update
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 10
    functionsReached:
    - quicly_sentmap_iter_t*::p::acked
    - discard_entry
    - assert
    - next_entry
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_sentmap_update(quicly_sentmap_t *map, quicly_sentmap_iter_t
      *iter, quicly_sentmap_event_t event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/quicly/lib/sentmap.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - map
    - packet
    - acked
    - sent
    argTypes:
    - quicly_sentmap_t*
    - quicly_sent_packet_t*
    - int
    - quicly_sent_t*
    assertStmts:
    - condition: (!"quicly_sentmap__type_packet cannot be called")
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/h2o/deps/quicly/lib/sentmap.c
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: quicly_sentmap__type_packet
    functionSourceFile: /src/h2o/deps/quicly/lib/sentmap.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_sentmap__type_packet(quicly_sentmap_t *map,
      const quicly_sent_packet_t *packet, int acked,\n                                           quicly_sent_t
      *sent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: __sanitizer_cov_trace_pc
    functionSourceFile: /src/h2o/deps/quicly/fuzz/packet.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __sanitizer_cov_trace_pc(void)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:17,1
    - Dst: quicly_decode_stream_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:28,1
    - Dst: quicly_decode_transport_close_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:34,1
    - Dst: quicly_decode_application_close_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:39,1
    - Dst: quicly_decode_ack_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:45,1
    - Dst: quicly_decode_crypto_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:50,1
    - Dst: quicly_decode_reset_stream_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:55,1
    - Dst: quicly_decode_max_data_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:60,1
    - Dst: quicly_decode_max_stream_data_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:65,1
    - Dst: quicly_decode_max_streams_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:71,1
    - Dst: quicly_decode_data_blocked_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:79,1
    - Dst: quicly_decode_stream_data_blocked_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:84,1
    - Dst: quicly_decode_streams_blocked_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:90,1
    - Dst: quicly_decode_new_connection_id_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:95,1
    - Dst: quicly_decode_stop_sending_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:100,1
    - Dst: quicly_decode_path_challenge_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:105,1
    - Dst: quicly_decode_new_token_frame
      Src: /src/h2o/deps/quicly/fuzz/packet.cc:110,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 96
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 116
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/quicly/fuzz/packet.cc
    functionUses: 0
    functionsReached:
    - quicly_decode_max_stream_data_frame
    - quicly_decode_streams_blocked_frame
    - quicly_decode_application_close_frame
    - quicly_decode_max_data_frame
    - quicly_decode_data_blocked_frame
    - quicly_decode_stream_data_blocked_frame
    - quicly_decode_stop_sending_frame
    - quicly_decode_packet
    - quicly_decode_ack_frame
    - quicly_decode_new_connection_id_frame
    - quicly_decode_stream_frame
    - quicly_decode_new_token_frame
    - quicly_decode_crypto_frame
    - quicly_decode_reset_stream_frame
    - quicly_decode_transport_close_frame
    - quicly_decode_max_streams_frame
    - quicly_decode_path_challenge_frame
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/quicly/examples/echo.c:58,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/quicly/examples/echo.c:63,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:64,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/quicly/examples/echo.c:65,1
    - Dst: memcpy
      Src: /src/h2o/deps/quicly/examples/echo.c:69,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/quicly/examples/echo.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - sa
    - salen
    - host
    - port
    - family
    - type
    - proto
    argTypes:
    - struct sockaddr*
    - socklen_t*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: resolve_address
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 3
    functionsReached:
    - freeaddrinfo
    - getaddrinfo
    - gai_strerror
    - memcpy
    - fprintf
    - memset
    linkageType: ''
    returnType: int
    signature: "int resolve_address(struct sockaddr *sa, socklen_t *salen, const char
      *host, const char *port, int family, int type,\n                           int
      proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/quicly/examples/echo.c:78,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: usage
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 6
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: is_server
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_server(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stream
      Src: /src/h2o/deps/quicly/examples/echo.c:102,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/examples/echo.c:102,1
    - Dst: read
      Src: /src/h2o/deps/quicly/examples/echo.c:105,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/examples/echo.c:109,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/examples/echo.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 116
    functionName: forward_stdin
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - quicly_get_stream
    - read
    - quicly_sendstate_is_open
    - quicly_streambuf_egress_shutdown
    - quicly_streambuf_egress_write
    linkageType: ''
    returnType: int
    signature: int forward_stdin(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:120,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/examples/echo.c:120,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/examples/echo.c:121,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/examples/echo.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: on_stop_sending
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - QUICLY_ERROR_GET_ERROR_CODE
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - quicly_close
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_stop_sending(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:126,1
    - Dst: QUICLY_ERROR_GET_ERROR_CODE
      Src: /src/h2o/deps/quicly/examples/echo.c:126,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/examples/echo.c:127,1
    - Dst: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
      Src: /src/h2o/deps/quicly/examples/echo.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: on_receive_reset
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 1
    functionsReached:
    - QUICLY_ERROR_GET_ERROR_CODE
    - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
    - quicly_close
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_receive_reset(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_ingress_receive
      Src: /src/h2o/deps/quicly/examples/echo.c:133,1
    - Dst: quicly_streambuf_ingress_get
      Src: /src/h2o/deps/quicly/examples/echo.c:137,1
    - Dst: is_server
      Src: /src/h2o/deps/quicly/examples/echo.c:139,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/deps/quicly/examples/echo.c:141,1
    - Dst: quicly_streambuf_egress_write
      Src: /src/h2o/deps/quicly/examples/echo.c:142,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/examples/echo.c:144,1
    - Dst: quicly_streambuf_egress_shutdown
      Src: /src/h2o/deps/quicly/examples/echo.c:145,1
    - Dst: fwrite
      Src: /src/h2o/deps/quicly/examples/echo.c:149,1
    - Dst: fflush
      Src: /src/h2o/deps/quicly/examples/echo.c:150,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/deps/quicly/examples/echo.c:152,1
    - Dst: quicly_close
      Src: /src/h2o/deps/quicly/examples/echo.c:153,1
    - Dst: quicly_streambuf_ingress_shift
      Src: /src/h2o/deps/quicly/examples/echo.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 158
    functionName: on_receive
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 1
    functionsReached:
    - fwrite
    - quicly_close
    - fflush
    - quicly_recvstate_transfer_complete
    - quicly_streambuf_ingress_get
    - quicly_sendstate_is_open
    - quicly_streambuf_egress_shutdown
    - quicly_streambuf_egress_write
    - quicly_streambuf_ingress_shift
    - is_server
    - quicly_streambuf_ingress_receive
    linkageType: ''
    returnType: void
    signature: void on_receive(quicly_stream_t *stream, size_t off, const void *src,
      size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decode_packet
      Src: /src/h2o/deps/quicly/examples/echo.c:167,1
    - Dst: quicly_is_destination
      Src: /src/h2o/deps/quicly/examples/echo.c:171,1
    - Dst: quicly_receive
      Src: /src/h2o/deps/quicly/examples/echo.c:175,1
    - Dst: quicly_accept
      Src: /src/h2o/deps/quicly/examples/echo.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - is_client
    - conns
    - msg
    - dgram_len
    argTypes:
    - int
    - quicly_conn_t**
    - struct msghdr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: process_msg
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - quicly_accept
    - quicly_receive
    - quicly_is_destination
    - quicly_decode_packet
    linkageType: ''
    returnType: void
    signature: void process_msg(int is_client, quicly_conn_t **conns, struct msghdr
      *msg, size_t dgram_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_socklen
      Src: /src/h2o/deps/quicly/examples/echo.c:185,1
    - Dst: sendmsg
      Src: /src/h2o/deps/quicly/examples/echo.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - dest
    - vec
    argTypes:
    - int
    - struct sockaddr*
    - struct iovec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: send_one
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - quicly_get_socklen
    linkageType: ''
    returnType: int
    signature: int send_one(int fd, struct sockaddr *dest, struct iovec *vec)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: now::cb
      Src: /src/h2o/deps/quicly/examples/echo.c:205,1
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/deps/quicly/examples/echo.c:207,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/quicly/examples/echo.c:221,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/examples/echo.c:222,1
    - Dst: FD_SET
      Src: /src/h2o/deps/quicly/examples/echo.c:225,1
    - Dst: select
      Src: /src/h2o/deps/quicly/examples/echo.c:226,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/examples/echo.c:229,1
    - Dst: recvmsg
      Src: /src/h2o/deps/quicly/examples/echo.c:235,1
    - Dst: process_msg
      Src: /src/h2o/deps/quicly/examples/echo.c:238,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/quicly/examples/echo.c:242,1
    - Dst: assert
      Src: /src/h2o/deps/quicly/examples/echo.c:243,1
    - Dst: forward_stdin
      Src: /src/h2o/deps/quicly/examples/echo.c:244,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/examples/echo.c:252,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/quicly/examples/echo.c:253,1
    - Dst: quicly_send
      Src: /src/h2o/deps/quicly/examples/echo.c:254,1
    - Dst: send_one
      Src: /src/h2o/deps/quicly/examples/echo.c:259,1
    - Dst: quicly_free
      Src: /src/h2o/deps/quicly/examples/echo.c:264,1
    - Dst: memmove
      Src: /src/h2o/deps/quicly/examples/echo.c:265,1
    - Dst: is_server
      Src: /src/h2o/deps/quicly/examples/echo.c:267,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:271,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 2
    argNames:
    - fd
    - client
    argTypes:
    - int
    - quicly_conn_t*
    assertStmts:
    - condition: (client != NULL)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/h2o/deps/quicly/examples/echo.c
    constantsTouched: []
    func_position:
      end: 278
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 278
    functionName: run_loop
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 9
    functionsReached:
    - process_msg
    - PTLS_ELEMENTSOF
    - is_server
    - now::cb
    - select
    - forward_stdin
    - FD_ZERO
    - send_one
    - quicly_free
    - quicly_send
    - FD_ISSET
    - memmove
    - fprintf
    - quicly_get_first_timeout
    - FD_SET
    - recvmsg
    - assert
    linkageType: ''
    returnType: int
    signature: int run_loop(int fd, quicly_conn_t *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_streambuf_create
      Src: /src/h2o/deps/quicly/examples/echo.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: on_stream_open
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - quicly_streambuf_create
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t on_stream_open(quicly_stream_open_t *self, quicly_stream_t
      *stream)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: quicly_amend_ptls_context
      Src: /src/h2o/deps/quicly/examples/echo.c:311,1
    - Dst: getopt
      Src: /src/h2o/deps/quicly/examples/echo.c:315,1
    - Dst: ptls_load_certificates
      Src: /src/h2o/deps/quicly/examples/echo.c:319,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:320,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:321,1
    - Dst: fopen
      Src: /src/h2o/deps/quicly/examples/echo.c:326,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:327,1
    - Dst: strerror
      Src: /src/h2o/deps/quicly/examples/echo.c:327,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:328,1
    - Dst: PEM_read_PrivateKey
      Src: /src/h2o/deps/quicly/examples/echo.c:330,1
    - Dst: fclose
      Src: /src/h2o/deps/quicly/examples/echo.c:331,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:333,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:334,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/quicly/examples/echo.c:336,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/quicly/examples/echo.c:337,1
    - Dst: usage
      Src: /src/h2o/deps/quicly/examples/echo.c:344,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:347,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:352,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:353,1
    - Dst: resolve_address
      Src: /src/h2o/deps/quicly/examples/echo.c:359,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:360,1
    - Dst: socket
      Src: /src/h2o/deps/quicly/examples/echo.c:363,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/examples/echo.c:364,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:365,1
    - Dst: is_server
      Src: /src/h2o/deps/quicly/examples/echo.c:368,1
    - Dst: setsockopt
      Src: /src/h2o/deps/quicly/examples/echo.c:370,1
    - Dst: bind
      Src: /src/h2o/deps/quicly/examples/echo.c:371,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/examples/echo.c:372,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:373,1
    - Dst: memset
      Src: /src/h2o/deps/quicly/examples/echo.c:377,1
    - Dst: bind
      Src: /src/h2o/deps/quicly/examples/echo.c:378,1
    - Dst: perror
      Src: /src/h2o/deps/quicly/examples/echo.c:379,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:380,1
    - Dst: is_server
      Src: /src/h2o/deps/quicly/examples/echo.c:385,1
    - Dst: quicly_connect
      Src: /src/h2o/deps/quicly/examples/echo.c:388,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/quicly/examples/echo.c:388,1
    - Dst: fprintf
      Src: /src/h2o/deps/quicly/examples/echo.c:390,1
    - Dst: exit
      Src: /src/h2o/deps/quicly/examples/echo.c:391,1
    - Dst: quicly_open_stream
      Src: /src/h2o/deps/quicly/examples/echo.c:394,1
    - Dst: run_loop
      Src: /src/h2o/deps/quicly/examples/echo.c:398,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 399
    functionName: main
    functionSourceFile: /src/h2o/deps/quicly/examples/echo.c
    functionUses: 0
    functionsReached:
    - ptls_load_certificates
    - fopen
    - ptls_iovec_init
    - setsockopt
    - fprintf
    - usage
    - fclose
    - strerror
    - memset
    - getopt
    - EVP_PKEY_free
    - perror
    - PEM_read_PrivateKey
    - exit
    - is_server
    - quicly_connect
    - quicly_open_stream
    - ptls_openssl_init_sign_certificate
    - quicly_amend_ptls_context
    - resolve_address
    - bind
    - socket
    - run_loop
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/deps/cloexec/cloexec.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: set_cloexec
    functionSourceFile: /src/h2o/deps/cloexec/cloexec.c
    functionUses: 5
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int set_cloexec(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/cloexec/cloexec.c:38,1
    - Dst: accept
      Src: /src/h2o/deps/cloexec/cloexec.c:40,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/cloexec/cloexec.c:42,1
    - Dst: close
      Src: /src/h2o/deps/cloexec/cloexec.c:43,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/cloexec/cloexec.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - socket
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: cloexec_accept
    functionSourceFile: /src/h2o/deps/cloexec/cloexec.c
    functionUses: 0
    functionsReached:
    - close
    - set_cloexec
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - accept
    linkageType: ''
    returnType: int
    signature: int cloexec_accept(int socket, struct sockaddr *addr, socklen_t *addrlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/h2o/deps/cloexec/cloexec.c:59,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/cloexec/cloexec.c:62,1
    - Dst: pipe
      Src: /src/h2o/deps/cloexec/cloexec.c:64,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/cloexec/cloexec.c:66,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/cloexec/cloexec.c:66,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/cloexec/cloexec.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - fds
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: cloexec_pipe
    functionSourceFile: /src/h2o/deps/cloexec/cloexec.c
    functionUses: 1
    functionsReached:
    - set_cloexec
    - pipe
    - pthread_mutex_lock
    - pipe2
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int cloexec_pipe(int fds[2])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/cloexec/cloexec.c:79,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/cloexec/cloexec.c:82,1
    - Dst: socket
      Src: /src/h2o/deps/cloexec/cloexec.c:84,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/cloexec/cloexec.c:86,1
    - Dst: close
      Src: /src/h2o/deps/cloexec/cloexec.c:87,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/cloexec/cloexec.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: cloexec_socket
    functionSourceFile: /src/h2o/deps/cloexec/cloexec.c
    functionUses: 0
    functionsReached:
    - close
    - set_cloexec
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - socket
    linkageType: ''
    returnType: int
    signature: int cloexec_socket(int domain, int type, int protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: mrb_module_get
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_class_get
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      mrb_module_get(mrb_state *mrb, const char *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-errno/src/errno.c:28,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby-errno/src/errno.c:30,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-errno/src/errno.c:31,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:32,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:38,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:38,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:38,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:38,1
    - Dst: mrb_hash_fetch
      Src: /src/h2o/deps/mruby-errno/src/errno.c:39,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:39,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:39,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-errno/src/errno.c:40,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:41,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:41,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:42,1
    - Dst: strerror
      Src: /src/h2o/deps/mruby-errno/src/errno.c:42,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-errno/src/errno.c:44,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:44,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:44,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:45,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby-errno/src/errno.c:46,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby-errno/src/errno.c:47,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:50,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-errno/src/errno.c:52,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby-errno/src/errno.c:53,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby-errno/src/errno.c:54,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-errno/src/errno.c:56,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 58
    functionName: mrb_sce_init
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_intern_lit
    - mrb_class_ptr
    - mrb_type
    - mrb_fixnum_value
    - mrb_nil_p
    - mrb_basic_ptr
    - mrb_module_get
    - mrb_get_args
    - mrb_str_append
    - mrb_str_new_cstr
    - mrb_str_cat2
    - mrb_obj_value
    - strerror
    - snprintf
    - mrb_fixnum
    - mrb_nil_value
    - mrb_hash_fetch
    - mrb_iv_set
    - mrb_const_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_attr_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:83,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: mrb_sce_to_s
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_intern_lit
    - mrb_attr_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:95,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-errno/src/errno.c:96,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-errno/src/errno.c:98,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:98,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:98,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-errno/src/errno.c:100,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:100,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:100,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby-errno/src/errno.c:102,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby-errno/src/errno.c:103,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby-errno/src/errno.c:104,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:104,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-errno/src/errno.c:105,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:105,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:106,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby-errno/src/errno.c:108,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - cls
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: mrb_sce_sys_fail
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_define_const
    - mrb_obj_class
    - mrb_basic_ptr
    - mrb_module_get
    - mrb_funcall
    - mrb_exc_raise
    - mrb_get_args
    - snprintf
    - mrb_fixnum_value
    - mrb_obj_value
    - mrb_define_class_under
    - mrb_class_get
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_sys_fail(mrb_state *mrb, mrb_value cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:117,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:117,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby-errno/src/errno.c:117,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:117,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-errno/src/errno.c:118,1
    - Dst: strerror
      Src: /src/h2o/deps/mruby-errno/src/errno.c:118,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-errno/src/errno.c:118,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:120,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-errno/src/errno.c:121,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-errno/src/errno.c:122,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby-errno/src/errno.c:123,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby-errno/src/errno.c:124,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-errno/src/errno.c:126,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-errno/src/errno.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: mrb_exxx_init
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_iv_set
    - mrb_get_args
    - mrb_intern_lit
    - mrb_const_get
    - mrb_str_append
    - mrb_class
    - mrb_str_new_cstr
    - mrb_str_cat2
    - mrb_fixnum
    - mrb_obj_value
    - strerror
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exxx_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-errno/src/errno.c:136,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-errno/src/errno.c:138,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-errno/src/errno.c:139,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-errno/src/errno.c:139,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-errno/src/errno.c:140,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-errno/src/errno.c:140,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-errno/src/errno.c:141,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-errno/src/errno.c:141,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-errno/src/errno.c:142,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby-errno/src/errno.c:142,1
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby-errno/src/errno.c:144,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby-errno/src/errno.c:145,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-errno/src/errno.c:146,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby-errno/src/errno.c:148,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-errno/src/errno.c:149,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:149,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-errno/src/errno.c:150,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-errno/src/errno.c:150,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-errno/src/errno.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 170
    functionName: mrb_mruby_errno_gem_init
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_const
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - mrb_hash_new
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_fixnum_value
    - mrb_define_class
    - mrb_obj_value
    - mrb_define_class_under
    - mrb_class_get
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_errno_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: itsdefined
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsdefined(SYM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: itsnotdefined
    functionSourceFile: /src/h2o/deps/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsnotdefined(SYM)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: utf8len
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int utf8len(const char* p, const char* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: onig_free
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: onig_regexp_free
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - onig_free
    linkageType: ''
    returnType: void
    signature: void onig_regexp_free(mrb_state *mrb, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: ONIG_REGEXP_P
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONIG_REGEXP_P(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: onig_region_free
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: match_data_free
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - onig_region_free
    linkageType: ''
    returnType: void
    signature: void match_data_free(mrb_state* mrb, void* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:106,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:106,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:108,1
    - Dst: mrb_str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - str
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: str_substr
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 1
    functionsReached:
    - RSTRING_PTR
    - mrb_str_substr
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int
      len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:117,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:117,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:118,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:122,1
    - Dst: mrb_string_value_ptr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:123,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:124,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:124,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:128,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:129,1
    - Dst: mrb_fixnum_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:131,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:132,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:136,1
    - Dst: mrb_string_value_ptr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:137,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:138,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:139,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:140,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:142,1
    - Dst: onig_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:147,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:147,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:147,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:147,1
    - Dst: onig_error_code_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:151,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:152,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:153,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:155,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:155,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:157,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:158,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 161
    functionName: onig_regexp_initialize
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_intern_lit
    - mrb_string_value_ptr
    - mrb_type
    - mrb_nil_p
    - mrb_fixnum_p
    - RSTRING_PTR
    - mrb_get_args
    - mrb_str_new_cstr
    - strchr
    - DATA_TYPE
    - mrb_string_p
    - onig_error_code_to_str
    - onig_new
    - mrb_fixnum
    - mrb_nil_value
    - mrb_iv_set
    - RSTRING_LEN
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_initialize(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:165,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:165,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:166,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:166,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:166,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:167,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:167,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:168,1
    - Dst: onig_region_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:168,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:169,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:169,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:169,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:170,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - str
    - rex
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: create_onig_region
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_data_object_alloc
    - mrb_iv_set
    - mrb_intern_lit
    - mrb_type
    - onig_region_new
    - mrb_str_dup
    - mrb_obj_value
    - mrb_class_get
    - DATA_TYPE
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value create_onig_region(mrb_state* mrb, mrb_value const str, mrb_value
      rex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: MISMATCH_NIL_OR
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MISMATCH_NIL_OR(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:178,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:178,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:179,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:179,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:180,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:181,1
    - Dst: onig_search
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:182,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:182,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:183,1
    - Dst: onig_error_code_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:186,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:187,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:190,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:191,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:191,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:191,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:193,1
    - Dst: mrb_bool
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:194,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:194,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:194,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:196,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:196,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:197,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:198,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:198,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:199,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:199,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:199,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:200,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:200,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:201,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:201,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:202,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:202,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:203,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:203,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:204,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:204,1
    - Dst: MISMATCH_NIL_OR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:205,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:205,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:205,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:212,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:212,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:213,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:213,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:218,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - mrb
    - reg
    - match_value
    - str
    - pos
    argTypes:
    - mrb_state*
    - OnigRegex
    - mrb_value
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 223
    functionName: onig_match_common
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_intern_lit
    - mrb_bool
    - mrb_intern
    - mrb_fixnum_value
    - mrb_class_get
    - onig_search
    - mrb_assert
    - RSTRING_PTR
    - mrb_raise
    - mrb_obj_iv_set
    - DATA_TYPE
    - mrb_string_p
    - onig_error_code_to_str
    - mrb_gv_remove
    - mrb_funcall
    - RSTRING_LEN
    - mrb_gv_set
    - MISMATCH_NIL_OR
    - mrb_obj_iv_get
    linkageType: ''
    returnType: int
    signature: int onig_match_common(mrb_state* mrb, OnigRegex reg, mrb_value match_value,
      mrb_value str, int pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:229,1
    - Dst: mrb_sym2str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:230,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:230,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:231,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:232,1
    - Dst: mrb_string_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: reg_operand
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_sym2str
    - mrb_symbol_p
    - mrb_string_type
    - mrb_symbol
    - mrb_undef_p
    - mrb_bug
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value reg_operand(mrb_state *mrb, mrb_value obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:243,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:246,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:248,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:249,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:250,1
    - Dst: reg_operand
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:252,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:253,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:254,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:257,1
    - Dst: create_onig_region
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:259,1
    - Dst: onig_match_common
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:260,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:261,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:264,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: onig_regexp_match
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - create_onig_region
    - reg_operand
    - mrb_get_args
    - onig_match_common
    - RSTRING_LEN
    - Data_Get_Struct
    - mrb_yield
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_match(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:273,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:278,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:279,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:280,1
    - Dst: reg_operand
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:282,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:283,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:284,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:287,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:288,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:289,1
    - Dst: onig_search
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:289,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:290,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 292
    functionName: onig_regexp_match_p
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - reg_operand
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - Data_Get_Struct
    - mrb_nil_value
    - mrb_bool_value
    - mrb_nil_p
    - onig_search
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_match_p(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:301,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:302,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:303,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:306,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:307,1
    - Dst: mrb_string_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:309,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:311,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:312,1
    - Dst: onig_search
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:312,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:313,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: string_match_p
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_string_type
    - mrb_nil_value
    - mrb_bool_value
    - mrb_nil_p
    - onig_search
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value string_match_p(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:322,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:323,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:324,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:326,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:327,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:329,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:329,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:330,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:332,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:333,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:336,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:338,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:338,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:339,1
    - Dst: mrb_str_equal
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:341,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:341,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:341,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:341,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:341,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:342,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: onig_regexp_equal
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_str_equal
    - mrb_obj_is_kind_of
    - mrb_raise
    - onig_get_options
    - mrb_get_args
    - mrb_obj_equal
    - mrb_intern_lit
    - Data_Get_Struct
    - mrb_iv_get
    - mrb_false_value
    - mrb_nil_p
    - mrb_class_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_equal(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:349,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:350,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:350,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: onig_regexp_casefold_p
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - onig_get_options
    - mrb_false_value
    - Data_Get_Struct
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_casefold_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:356,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:357,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: onig_regexp_options
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - onig_get_options
    - mrb_fixnum_value
    - Data_Get_Struct
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_options(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - str
    - options
    argTypes:
    - char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: option_to_str
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      option_to_str(char str[4], int options)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:382,1
    - Dst: ISPRINT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:385,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:387,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:399,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:407,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - mrb
    - str
    - p
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 412
    functionName: regexp_expr_str
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - ISPRINT
    - mrb_str_cat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value regexp_expr_str(mrb_state *mrb, mrb_value str, const char
      *p, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:417,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:418,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:419,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:419,1
    - Dst: regexp_expr_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:420,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:420,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:420,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:421,1
    - Dst: option_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:423,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:423,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:424,1
    - Dst: onig_get_encoding
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:426,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 430
    functionName: onig_regexp_inspect
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_str_new_lit
    - onig_get_options
    - mrb_intern_lit
    - RSTRING_LEN
    - Data_Get_Struct
    - mrb_str_cat_cstr
    - mrb_iv_get
    - mrb_str_cat_lit
    - option_to_str
    - onig_get_encoding
    - regexp_expr_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_inspect(mrb_state *mrb, mrb_value self)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:438,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:442,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:443,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:444,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:444,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:445,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:446,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:454,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:455,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:456,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:464,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:465,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:466,1
    - Dst: onig_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:479,1
    - Dst: onig_free
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:481,1
    - Dst: onig_get_options
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:484,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:485,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:486,1
    - Dst: option_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:490,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:490,1
    - Dst: option_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:494,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:495,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:498,1
    - Dst: regexp_expr_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:499,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:500,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 502
    functionName: onig_regexp_to_s
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - onig_free
    - RSTRING_PTR
    - mrb_str_new_lit
    - onig_get_options
    - mrb_intern_lit
    - RSTRING_LEN
    - Data_Get_Struct
    - mrb_str_cat_cstr
    - mrb_iv_get
    - onig_new
    - option_to_str
    - strchr
    - regexp_expr_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:508,1
    - Dst: onig_version
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: onig_regexp_version
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_cstr
    - onig_version
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_version(mrb_state* mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:516,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:516,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:520,1
    - Dst: mrb_sym2name_len
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:522,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:522,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:524,1
    - Dst: mrb_string_value_ptr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:525,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:526,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:527,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:528,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:530,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:530,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:531,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:531,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:532,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:532,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:533,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:533,1
    - Dst: onig_name_to_backref_number
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:534,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:535,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:536,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - self
    - idx_value
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 541
    functionName: match_data_actual_index
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_fixnum_p
    - onig_name_to_backref_number
    - DATA_PTR
    - mrb_symbol_p
    - mrb_intern_lit
    - mrb_string_value_ptr
    - mrb_iv_get
    - mrb_symbol
    - mrb_raisef
    - mrb_fixnum
    - mrb_nil_p
    - mrb_sym2name_len
    - DATA_TYPE
    - strlen
    - mrb_string_p
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int match_data_actual_index(mrb_state* mrb, mrb_value self, mrb_value
      idx_value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:549,1
    - Dst: match_data_to_a
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:551,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:554,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:558,1
    - Dst: match_data_actual_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:558,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:563,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 564
    functionName: match_data_index
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - match_data_to_a
    - mrb_get_args
    - mrb_intern_lit
    - mrb_type
    - match_data_actual_index
    - mrb_funcall_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_index(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: match_data_check_index
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: match_data_check_index(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:574,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:576,1
    - Dst: match_data_actual_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:577,1
    - Dst: match_data_check_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:578,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: match_data_begin
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - match_data_check_index
    - mrb_get_args
    - Data_Get_Struct
    - mrb_fixnum_value
    - match_data_actual_index
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_begin(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_data_to_a
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:585,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:586,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:586,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: match_data_captures
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - match_data_to_a
    - RARRAY_LEN
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_captures(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:593,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:595,1
    - Dst: match_data_actual_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:596,1
    - Dst: match_data_check_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:597,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 599
    functionName: match_data_end
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - match_data_check_index
    - mrb_get_args
    - Data_Get_Struct
    - mrb_fixnum_value
    - match_data_actual_index
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_end(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:605,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:608,1
    - Dst: onig_region_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:610,1
    - Dst: onig_region_copy
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:611,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:613,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:614,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:615,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:615,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:615,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:615,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:616,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:616,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:616,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 618
    functionName: match_data_copy
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_iv_set
    - mrb_get_args
    - mrb_intern_lit
    - onig_region_copy
    - Data_Get_Struct
    - mrb_iv_get
    - onig_region_new
    - DATA_TYPE
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_copy(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:625,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: match_data_length
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_value
    - Data_Get_Struct
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_length(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:633,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:635,1
    - Dst: match_data_actual_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:636,1
    - Dst: match_data_check_index
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:637,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:638,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:639,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:639,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:640,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: match_data_offset
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - match_data_check_index
    - mrb_get_args
    - mrb_ary_push
    - Data_Get_Struct
    - mrb_ary_new_capa
    - mrb_fixnum_value
    - match_data_actual_index
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_offset(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:648,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:649,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:649,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:650,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: match_data_post_match
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_intern_lit
    - RSTRING_LEN
    - Data_Get_Struct
    - mrb_iv_get
    - str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_post_match(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:657,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:658,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:658,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: match_data_pre_match
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_intern_lit
    - Data_Get_Struct
    - str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_pre_match(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:665,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: match_data_string
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_intern_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_string(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:670,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: match_data_regexp
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_intern_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_regexp(mrb_state* mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:676,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:676,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:677,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:681,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:681,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:683,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:685,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:686,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:689,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:689,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:691,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:691,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 696
    functionName: match_data_to_a
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 2
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_intern_lit
    - mrb_ary_push
    - Data_Get_Struct
    - mrb_gc_arena_save
    - mrb_iv_get
    - str_substr
    - mrb_ary_new_capa
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_to_a(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:701,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:701,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:703,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 705
    functionName: match_data_to_s
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_intern_lit
    - Data_Get_Struct
    - str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value match_data_to_s(mrb_state* mrb, mrb_value self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:711,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:712,1
    - Dst: mrb_str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:712,1
    - Dst: mrb_str_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:713,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:714,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:718,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:718,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:720,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:720,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:721,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:723,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:732,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:733,1
    - Dst: onig_name_to_backref_number
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:734,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:737,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:738,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:738,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:740,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:740,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:744,1
    - Dst: isdigit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:748,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:751,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:751,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:755,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:764,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 6
    argNames:
    - mrb
    - result
    - replace
    - src
    - reg
    - match
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    - OnigRegex
    - OnigRegion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 765
    functionName: append_replace_str
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_str_cat
    - onig_name_to_backref_number
    - mrb_str_to_str
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_hash_get
    - mrb_hash_p
    - str_substr
    - mrb_str_cat_str
    - mrb_raisef
    - mrb_str_substr
    - isdigit
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: "void append_replace_str(mrb_state* mrb, mrb_value result, mrb_value
      replace,\n                   mrb_value src, OnigRegex reg, OnigRegion* match)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:770,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:771,1
    - Dst: ONIG_REGEXP_P
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:773,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:775,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:775,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:778,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:779,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:779,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:779,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:782,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:782,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:783,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:786,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:786,1
    - Dst: mrb_string_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:787,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:791,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:792,1
    - Dst: create_onig_region
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:793,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:794,1
    - Dst: onig_match_common
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:798,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:800,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:800,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:802,1
    - Dst: append_replace_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:803,1
    - Dst: mrb_str_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:805,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:805,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:805,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:807,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:807,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:808,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:817,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:818,1
    - Dst: utf8len
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:819,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:820,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:821,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:826,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:827,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:829,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:829,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:829,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 831
    functionName: string_gsub
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_funcall_with_block
    - DATA_PTR
    - mrb_intern_lit
    - mrb_str_concat
    - mrb_nil_p
    - mrb_assert
    - RSTRING_PTR
    - mrb_raise
    - mrb_get_args
    - Data_Get_Struct
    - mrb_string_type
    - utf8len
    - str_substr
    - mrb_string_p
    - mrb_str_cat
    - append_replace_str
    - ONIG_REGEXP_P
    - mrb_hash_p
    - mrb_nil_value
    - mrb_symbol_value
    - mrb_funcall
    - create_onig_region
    - mrb_str_to_str
    - onig_match_common
    - RSTRING_LEN
    - mrb_yield
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value string_gsub(mrb_state* mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:837,1
    - Dst: ONIG_REGEXP_P
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:839,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:840,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:840,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:845,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:846,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:846,1
    - Dst: create_onig_region
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:847,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:848,1
    - Dst: onig_match_common
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:853,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:855,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:856,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:856,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:858,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:858,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:860,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:862,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:862,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:864,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:867,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:867,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:869,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:869,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:871,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:873,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:873,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:875,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:883,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:884,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:885,1
    - Dst: utf8len
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:886,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 897
    functionName: string_scan
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_funcall_with_block
    - DATA_PTR
    - mrb_intern_lit
    - mrb_nil_p
    - mrb_ary_new
    - mrb_assert
    - RSTRING_PTR
    - mrb_get_args
    - Data_Get_Struct
    - utf8len
    - mrb_string_p
    - str_substr
    - mrb_array_p
    - ONIG_REGEXP_P
    - mrb_ary_new_capa
    - create_onig_region
    - onig_match_common
    - mrb_ary_push
    - RSTRING_LEN
    - mrb_yield
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value string_scan(mrb_state* mrb, mrb_value self)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:902,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:903,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:907,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:908,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:908,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:909,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:910,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:911,1
    - Dst: ONIG_REGEXP_P
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:911,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:912,1
    - Dst: ONIG_REGEXP_P
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:917,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:918,1
    - Dst: mrb_string_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:918,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:919,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:919,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:921,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:921,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:921,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:923,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:923,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:927,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:927,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:928,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:930,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:933,1
    - Dst: create_onig_region
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:934,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:935,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:936,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:937,1
    - Dst: onig_match_common
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:943,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:946,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:946,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:950,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:950,1
    - Dst: utf8len
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:950,1
    - Dst: utf8len
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:957,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:963,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:963,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:971,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:973,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:974,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:979,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:979,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:980,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:981,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:983,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:983,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:984,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:987,1
    - Dst: mrb_ary_ref
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:988,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:988,1
    - Dst: mrb_ary_pop
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:989,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 77
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 993
    functionName: string_split
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_ary_pop
    - mrb_intern_lit
    - mrb_fixnum_value
    - mrb_nil_p
    - mrb_class_get
    - mrb_ary_new
    - mrb_ary_new_from_values
    - mrb_raise
    - mrb_get_args
    - Data_Get_Struct
    - mrb_string_type
    - utf8len
    - RARRAY_LEN
    - mrb_obj_value
    - mrb_string_p
    - str_substr
    - ONIG_REGEXP_P
    - mrb_nil_value
    - mrb_ary_ref
    - mrb_funcall
    - create_onig_region
    - mrb_str_new_lit
    - mrb_str_to_cstr
    - onig_match_common
    - RSTRING_LEN
    - mrb_ary_push
    - mrb_gv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value string_split(mrb_state* mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:998,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:999,1
    - Dst: ONIG_REGEXP_P
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1001,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1003,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1003,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1006,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1007,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1010,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1010,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1011,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1014,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1014,1
    - Dst: mrb_string_type
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1015,1
    - Dst: Data_Get_Struct
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1019,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1020,1
    - Dst: create_onig_region
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1021,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1022,1
    - Dst: onig_match_common
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1024,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1027,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1027,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1029,1
    - Dst: append_replace_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1030,1
    - Dst: mrb_str_to_str
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1032,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1032,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1032,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1034,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1034,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1035,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1039,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1039,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1039,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1042
    functionName: string_sub
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_funcall_with_block
    - DATA_PTR
    - mrb_intern_lit
    - mrb_str_concat
    - mrb_nil_p
    - mrb_assert
    - mrb_raise
    - RSTRING_PTR
    - mrb_get_args
    - Data_Get_Struct
    - mrb_string_type
    - str_substr
    - mrb_string_p
    - mrb_str_cat
    - append_replace_str
    - ONIG_REGEXP_P
    - mrb_hash_p
    - mrb_nil_value
    - create_onig_region
    - mrb_str_to_str
    - onig_match_common
    - RSTRING_LEN
    - mrb_yield
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value string_sub(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1046,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1046,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1047,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1047,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1048,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1048,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1049,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1049,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1050,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1050,1
    - Dst: mrb_gv_remove
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1055,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1059
    functionName: onig_regexp_clear_global_variables
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_intern_lit
    - mrb_intern
    - mrb_gv_remove
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_clear_global_variables(mrb_state* mrb, mrb_value
      self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1064,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1064,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1066
    functionName: onig_regexp_does_set_global_variables
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_class_get
    - mrb_intern_lit
    - mrb_obj_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_does_set_global_variables(mrb_state* mrb, mrb_value
      self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1070,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1071,1
    - Dst: mrb_bool
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1071,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1072,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1072,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1073,1
    - Dst: onig_regexp_clear_global_variables
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1076
    functionName: onig_regexp_set_set_global_variables
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_intern_lit
    - onig_regexp_clear_global_variables
    - mrb_bool
    - mrb_obj_iv_set
    - mrb_bool_value
    - mrb_class_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_set_set_global_variables(mrb_state* mrb, mrb_value
      self)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1082,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1084,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1118,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1122,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1126
    functionName: onig_regexp_escape
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_str_cat
    - mrb_get_args
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value onig_regexp_escape(mrb_state* mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1132,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1133,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1136,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1136,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1136,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1138,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1138,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1139,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1139,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1140,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1140,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1141,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1141,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1142,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1142,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1143,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1143,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1144,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1144,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1145,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1145,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1146,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1146,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1147,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1147,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1148,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1148,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1150,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1150,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1153,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1153,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1156,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1156,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1159,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1159,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1162,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1162,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1165,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1165,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1168,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1168,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1171,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1171,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1171,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1172,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1172,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1173,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1173,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1173,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1174,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1174,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1174,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1175,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1175,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1177,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1177,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1178,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1178,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1179,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1179,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1181,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1181,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1182,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1182,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1183,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1183,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1184,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1184,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1185,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1185,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1186,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1186,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1188,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1189,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1190,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1193,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1193,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1194,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1194,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1195,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1195,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1196,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1196,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1199,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1199,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1201,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1201,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1203,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1203,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1204,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1204,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1205,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1205,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1206,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1206,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1207,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1207,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1208,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1208,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1209,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1209,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1210,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1210,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1213,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1213,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1213,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1213,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1214,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1214,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1214,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1214,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1215,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1215,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1216,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1216,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1216,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1217,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1217,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1218
    functionName: mrb_mruby_onig_regexp_gem_init
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached:
    - mrb_define_const
    - mrb_define_method
    - mrb_true_value
    - mrb_define_class
    - mrb_define_module_function
    - mrb_undef_class_method
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - mrb_intern_lit
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_fixnum_value
    - mrb_obj_iv_set
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_onig_regexp_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: mrb_mruby_onig_regexp_gem_final
    functionSourceFile: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_onig_regexp_gem_final(mrb_state* mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:10,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:11,1
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:13,1
    - Dst: mrb_load_string
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:14,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:15,1
    - Dst: free
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - Data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 18
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - mrb_close
    - mrb_load_string
    - memcpy
    - mrb_open
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t *Data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:17,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:21,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:24,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:27,1
    - Dst: std::ofstream::write
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:31,1
    - Dst: mrb_load_string
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:33,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:34,1
    - Dst: free
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - Data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 38
    functionName: FuzzRB
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - mrb_close
    - std::ofstream::write
    - mrb_load_string
    - memcpy
    - getenv
    - mrb_open
    linkageType: ''
    returnType: int
    signature: int FuzzRB(const uint8_t *Data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::FunctionToString
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:42,1
    - Dst: FuzzRB
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:43,1
    - Dst: auto::data
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:43,1
    - Dst: auto::size
      Src: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - function
    argTypes:
    - Function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: DEFINE_PROTO_FUZZER
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - FuzzRB
    - auto::size
    - auto::data
    - protoConverter::FunctionToString
    linkageType: ''
    returnType: void
    signature: void DEFINE_PROTO_FUZZER(const Function &function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: ruby_fuzzer::protoConverter::protoConverter
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void protoConverter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - protoConverter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ruby_fuzzer::protoConverter::protoConverter
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void protoConverter(protoConverter const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: ~protoConverter()
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~protoConverter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: ruby_fuzzer::protoConverter::protoConverter
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void protoConverter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - protoConverter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ruby_fuzzer::protoConverter::protoConverter
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void protoConverter(protoConverter const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: ~protoConverter()
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~protoConverter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:8,1
    - Dst: std::string::erase
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:9,1
    - Dst: std::remove_if
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:9,1
    - Dst: std::string::begin
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:9,1
    - Dst: std::string::end
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:9,1
    - Dst: std::isalpha
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:10,1
    - Dst: std::isdigit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:10,1
    - Dst: std::string::end
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:10,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: protoConverter::removeSpecial
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 0
    functionsReached:
    - std::string::erase
    - std::string::empty
    - std::string::begin
    - std::string::end
    - std::remove_if
    - std::isalpha
    - std::isdigit
    linkageType: ''
    returnType: std::string
    signature: std::string protoConverter::removeSpecial(const std::string &x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elements_size
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:16,1
    - Dst: elements_size
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:17,1
    - Dst: elements
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:19,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:22,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ArrType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 1
    functionsReached:
    - elements
    - protoConverter::visit
    - elements_size
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(ArrType const& x)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: arr_func
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:36,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:38,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:38,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:42,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:42,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:46,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:46,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:50,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:50,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:54,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:54,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:58,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:58,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:62,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:62,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:66,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:66,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:70,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:70,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:74,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:74,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:78,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:78,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:82,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:82,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:86,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:86,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:90,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:90,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:94,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:94,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:98,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:98,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:102,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:102,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:106,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:106,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:110,1
    - Dst: arr_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:110,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:115,1
    - Dst: val_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:115,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Array
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 117
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 2
    functionsReached:
    - arr_func
    - arr_arg
    - val_arg
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Array const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:122,1
    - Dst: rvalue
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:122,1
    - Dst: top
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - AssignmentStatement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 3
    functionsReached:
    - top
    - rvalue
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(AssignmentStatement const& x)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:131,1
    - Dst: left
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:131,1
    - Dst: op
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:132,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:149,1
    - Dst: right
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:149,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BinaryOp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 151
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 4
    functionsReached:
    - left
    - op
    - right
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(BinaryOp const& x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bifunc_oneof_case
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:155,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:157,1
    - Dst: os
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:157,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:160,1
    - Dst: time
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:160,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:163,1
    - Dst: arr
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:163,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:166,1
    - Dst: mops
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BuiltinFuncs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 5
    functionsReached:
    - time
    - mops
    - arr
    - os
    - bifunc_oneof_case
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(BuiltinFuncs const& x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: const_oneof_case
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:177,1
    - Dst: int_lit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:179,1
    - Dst: bool_val
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 5
    functionsReached:
    - bool_val
    - int_lit
    - const_oneof_case
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Const const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:193,1
    - Dst: statements
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 6
    functionsReached:
    - statements
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Function const& x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: keyval_size
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:200,1
    - Dst: keyval_size
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:201,1
    - Dst: keyval
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:203,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:206,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 7
    functionsReached:
    - keyval
    - protoConverter::visit
    - keyval_size
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(HashType const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:220,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:220,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:222,1
    - Dst: if_body
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:222,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:224,1
    - Dst: else_body
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - IfElse
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 8
    functionsReached:
    - cond
    - else_body
    - if_body
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(IfElse const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::removeSpecial
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:230,1
    - Dst: key
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:230,1
    - Dst: protoConverter::removeSpecial
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:232,1
    - Dst: val
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - KVPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 8
    functionsReached:
    - key
    - protoConverter::removeSpecial
    - val
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(KVPair const& x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: math_const
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - MathConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 8
    functionsReached:
    - math_const
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(MathConst const& x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: math_op
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:249,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:252,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:252,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:257,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:257,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:262,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:262,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:267,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:267,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:272,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:272,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:277,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:277,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:282,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:282,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:287,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:287,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:292,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:292,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:297,1
    - Dst: math_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - MathOps
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 301
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 9
    functionsReached:
    - math_arg
    - protoConverter::visit
    - math_op
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(MathOps const& x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: math_arg_oneof_case
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:305,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:307,1
    - Dst: math_rval
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:307,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:310,1
    - Dst: math_const
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - MathType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 316
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 10
    functionsReached:
    - math_arg_oneof_case
    - math_rval
    - protoConverter::visit
    - math_const
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(MathType const& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: os_func
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:320,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:326,1
    - Dst: os_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - ObjectSpace
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 11
    functionsReached:
    - os_func
    - os_arg
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(ObjectSpace const& x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rvalue_oneof_case
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:332,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:334,1
    - Dst: varref
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:334,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:337,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:337,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:340,1
    - Dst: binop
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Rvalue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 346
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 12
    functionsReached:
    - rvalue_oneof_case
    - binop
    - varref
    - cons
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Rvalue const& x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stmt_oneof_case
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:350,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:352,1
    - Dst: assignment
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:352,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:355,1
    - Dst: ifelse
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:355,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:358,1
    - Dst: ternary_stmt
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:358,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:361,1
    - Dst: builtins
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:361,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:364,1
    - Dst: blockstmt
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Statement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 370
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 13
    functionsReached:
    - assignment
    - ifelse
    - ternary_stmt
    - builtins
    - blockstmt
    - stmt_oneof_case
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Statement const& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: statements_size
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:374,1
    - Dst: push
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:375,1
    - Dst: statements
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:377,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:378,1
    - Dst: top
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:380,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - StatementSeq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 14
    functionsReached:
    - pop
    - push
    - top
    - statements
    - statements_size
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(StatementSeq const& x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::removeSpecial
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:387,1
    - Dst: str_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:387,1
    - Dst: str_op
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - StringExtNoArg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 420
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 14
    functionsReached:
    - str_op
    - str_arg
    - protoConverter::removeSpecial
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(StringExtNoArg const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:425,1
    - Dst: tern_cond
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:425,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:427,1
    - Dst: t_branch
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:427,1
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:429,1
    - Dst: f_branch
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Ternary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 15
    functionsReached:
    - t_branch
    - tern_cond
    - f_branch
    - protoConverter::visit
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Ternary const& x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: t_func
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:435,1
    - Dst: t_arg
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 444
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 15
    functionsReached:
    - t_arg
    - t_func
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(Time const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:448,1
    - Dst: varnum
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - VarRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: protoConverter::visit
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 15
    functionsReached:
    - static_cast<uint32_t>
    - varnum
    linkageType: ''
    returnType: void
    signature: void protoConverter::visit(VarRef const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protoConverter::visit
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:453,1
    - Dst: str
      Src: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: protoConverter::FunctionToString
    functionSourceFile: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
    functionUses: 1
    functionsReached:
    - str
    - protoConverter::visit
    linkageType: ''
    returnType: std::string
    signature: std::string protoConverter::FunctionToString(Function const& input)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: signbit
      Src: /src/h2o/deps/mruby/src/fmt_fp.c:100,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/fmt_fp.c:110,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/fmt_fp.c:115,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 218
    argCount: 6
    argNames:
    - f
    - buf
    - buf_size
    - fmt
    - prec
    - sign
    argTypes:
    - mrb_float
    - char*
    - size_t
    - char
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 362
    functionName: mrb_format_float
    functionSourceFile: /src/h2o/deps/mruby/src/fmt_fp.c
    functionUses: 0
    functionsReached:
    - isinf
    - isnan
    - signbit
    linkageType: ''
    returnType: int
    signature: int mrb_format_float(mrb_float f, char *buf, size_t buf_size, char
      fmt, int prec, char sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: IV_KEY_P
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IV_KEY_P(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/variable.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: iv_new
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: iv_tbl
    signature: 'iv_tbl *

      iv_new(mrb_state *mrb)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: khash_power2
      Src: /src/h2o/deps/mruby/src/variable.c:49,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/variable.c:52,1
    - Dst: IV_KEY_P
      Src: /src/h2o/deps/mruby/src/variable.c:60,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:61,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/variable.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - iv_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: iv_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_calloc
    - khash_power2
    - mrb_free
    - iv_put
    - IV_KEY_P
    linkageType: ''
    returnType: void
    signature: void iv_rehash(mrb_state *mrb, iv_tbl *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: iv_rehash
      Src: /src/h2o/deps/mruby/src/variable.c:75,1
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/variable.c:80,1
    - Dst: iv_rehash
      Src: /src/h2o/deps/mruby/src/variable.c:106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - mrb
    - t
    - sym
    - val
    argTypes:
    - mrb_state*
    - iv_tbl*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 112
    functionName: iv_put
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - iv_rehash
    - kh_int_hash_func
    linkageType: ''
    returnType: void
    signature: void iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/variable.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - mrb
    - t
    - sym
    - vp
    argTypes:
    - mrb_state*
    - iv_tbl*
    - mrb_sym
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 142
    functionName: iv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 13
    functionsReached:
    - kh_int_hash_func
    linkageType: ''
    returnType: int
    signature: int iv_get(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/variable.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mrb
    - t
    - sym
    - vp
    argTypes:
    - mrb_state*
    - iv_tbl*
    - mrb_sym
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: iv_del
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - kh_int_hash_func
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool iv_del(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IV_KEY_P
      Src: /src/h2o/deps/mruby/src/variable.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - t
    - func
    - p
    argTypes:
    - mrb_state*
    - iv_tbl*
    - mrb_iv_foreach_func*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: iv_foreach
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - IV_KEY_P
    linkageType: ''
    returnType: void
    signature: void iv_foreach(mrb_state *mrb, iv_tbl *t, mrb_iv_foreach_func *func,
      void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - iv_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: iv_size
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iv_size(mrb_state *mrb, iv_tbl *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iv_new
      Src: /src/h2o/deps/mruby/src/variable.c:220,1
    - Dst: IV_KEY_P
      Src: /src/h2o/deps/mruby/src/variable.c:222,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - iv_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 227
    functionName: iv_copy
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - IV_KEY_P
    - iv_put
    - iv_new
    linkageType: ''
    returnType: iv_tbl
    signature: 'iv_tbl *

      iv_copy(mrb_state *mrb, iv_tbl *t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/variable.c:233,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/variable.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - iv_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: iv_free
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void iv_free(mrb_state *mrb, iv_tbl *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/variable.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: iv_mark_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_gc_mark_value
    linkageType: ''
    returnType: int
    signature: int iv_mark_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - iv_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mark_tbl
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_foreach
    linkageType: ''
    returnType: void
    signature: void mark_tbl(mrb_state *mrb, iv_tbl *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_tbl
      Src: /src/h2o/deps/mruby/src/variable.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: mrb_gc_mark_gv
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mark_tbl
    linkageType: ''
    returnType: void
    signature: void mrb_gc_mark_gv(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_free
      Src: /src/h2o/deps/mruby/src/variable.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: mrb_gc_free_gv
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_free
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_gv(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_tbl
      Src: /src/h2o/deps/mruby/src/variable.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: mrb_gc_mark_iv
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mark_tbl
    linkageType: ''
    returnType: void
    signature: void mrb_gc_mark_iv(mrb_state *mrb, struct RObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_size
      Src: /src/h2o/deps/mruby/src/variable.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: mrb_gc_mark_iv_size
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_size
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_gc_mark_iv_size(mrb_state *mrb, struct RObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_free
      Src: /src/h2o/deps/mruby/src/variable.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: mrb_gc_free_iv
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_free
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_iv(mrb_state *mrb, struct RObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/variable.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - i
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: mrb_vm_special_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_vm_special_get(mrb_state *mrb, mrb_sym i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mrb
    - i
    - v
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: mrb_vm_special_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_vm_special_set(mrb_state *mrb, mrb_sym i, mrb_value v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: obj_iv_p
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_type
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool obj_iv_p(mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:316,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - obj
    - sym
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: mrb_obj_iv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 2
    functionsReached:
    - iv_get
    - mrb_nil_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_iv_get(mrb_state *mrb, struct RObject *obj, mrb_sym
      sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:324,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:325,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:325,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - obj
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: mrb_iv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 11
    functionsReached:
    - mrb_obj_ptr
    - mrb_obj_iv_get
    - mrb_nil_value
    - obj_iv_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_get(mrb_state *mrb, mrb_value obj, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign_class_name
      Src: /src/h2o/deps/mruby/src/variable.c:335,1
    - Dst: iv_new
      Src: /src/h2o/deps/mruby/src/variable.c:337,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:339,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/variable.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - obj
    - sym
    - v
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: mrb_obj_iv_set_force
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - assign_class_name
    - mrb_field_write_barrier_value
    - iv_put
    - iv_new
    linkageType: ''
    returnType: void
    signature: void mrb_obj_iv_set_force(mrb_state *mrb, struct RObject *obj, mrb_sym
      sym, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/variable.c:346,1
    - Dst: mrb_obj_iv_set_force
      Src: /src/h2o/deps/mruby/src/variable.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - obj
    - sym
    - v
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: mrb_obj_iv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 3
    functionsReached:
    - mrb_obj_iv_set_force
    - mrb_check_frozen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_iv_set(mrb_state *mrb, struct RObject *obj, mrb_sym
      sym, mrb_value v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:354,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:355,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - obj
    - func
    - p
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_iv_foreach_func*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: mrb_iv_foreach
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - iv_foreach
    - obj_iv_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_foreach(mrb_state *mrb, mrb_value obj, mrb_iv_foreach_func
      *func, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - enum mrb_vtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: namespace_p
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool namespace_p(enum mrb_vtype tt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: namespace_p
      Src: /src/h2o/deps/mruby/src/variable.c:367,1
    - Dst: namespace_p
      Src: /src/h2o/deps/mruby/src/variable.c:367,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:367,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:368,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/variable.c:369,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:369,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:370,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:371,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/variable.c:373,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:374,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:375,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/variable.c:377,1
    - Dst: mrb_obj_iv_set_force
      Src: /src/h2o/deps/mruby/src/variable.c:379,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:379,1
    - Dst: mrb_obj_iv_set_force
      Src: /src/h2o/deps/mruby/src/variable.c:382,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/variable.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - obj
    - sym
    - v
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: assign_class_name
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - mrb_obj_iv_set_force
    - mrb_obj_value
    - namespace_p
    - mrb_obj_ptr
    - mrb_type
    - mrb_sym_name_len
    - mrb_nil_p
    - mrb_symbol_value
    - mrb_obj_iv_get
    - ISUPPER
    linkageType: ''
    returnType: void
    signature: void assign_class_name(mrb_state *mrb, struct RObject *obj, mrb_sym
      sym, mrb_value v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:393,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/variable.c:394,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:394,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/variable.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - obj
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: mrb_iv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 5
    functionsReached:
    - mrb_obj_ptr
    - mrb_obj_iv_set
    - mrb_raise
    - obj_iv_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_set(mrb_state *mrb, mrb_value obj, mrb_sym sym, mrb_value
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - obj
    - sym
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: mrb_obj_iv_defined
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_iv_defined(mrb_state *mrb, struct RObject *obj, mrb_sym
      sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:414,1
    - Dst: mrb_obj_iv_defined
      Src: /src/h2o/deps/mruby/src/variable.c:415,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - obj
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: mrb_iv_defined
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - mrb_obj_iv_defined
    - obj_iv_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_defined(mrb_state *mrb, mrb_value obj, mrb_sym sym)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:424,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/variable.c:427,1
    - Dst: mrb_ident_p
      Src: /src/h2o/deps/mruby/src/variable.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - iv_name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 429
    functionName: mrb_iv_name_sym_p
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_ident_p
    - ISDIGIT
    - mrb_sym_name_len
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_name_sym_p(mrb_state *mrb, mrb_sym iv_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_name_sym_p
      Src: /src/h2o/deps/mruby/src/variable.c:434,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/variable.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - iv_name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: mrb_iv_name_sym_check
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_name_error
    - mrb_iv_name_sym_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_name_sym_check(mrb_state *mrb, mrb_sym iv_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:442,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:443,1
    - Dst: iv_free
      Src: /src/h2o/deps/mruby/src/variable.c:446,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/variable.c:450,1
    - Dst: iv_copy
      Src: /src/h2o/deps/mruby/src/variable.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - dest
    - src
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 453
    functionName: mrb_iv_copy
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - iv_copy
    - mrb_write_barrier
    - iv_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_copy(mrb_state *mrb, mrb_value dest, mrb_value src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/variable.c:462,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:467,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:470,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:472,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/variable.c:473,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:474,1
    - Dst: mrb_object_p
      Src: /src/h2o/deps/mruby/src/variable.c:475,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/src/variable.c:476,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/src/variable.c:479,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/variable.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 483
    functionName: inspect_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_object_p
    - mrb_inspect
    - mrb_str_cat
    - RSTRING_PTR
    - mrb_str_cat_str
    - mrb_any_to_s
    - mrb_str_cat_lit
    - mrb_sym_name_len
    linkageType: ''
    returnType: int
    signature: int inspect_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_size
      Src: /src/h2o/deps/mruby/src/variable.c:489,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/src/variable.c:492,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/variable.c:492,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/variable.c:493,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:495,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/variable.c:496,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:497,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/variable.c:498,1
    - Dst: mrb_ptr_to_str
      Src: /src/h2o/deps/mruby/src/variable.c:498,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:500,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/variable.c:501,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/src/variable.c:504,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/variable.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: mrb_obj_iv_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - mrb_ptr_to_str
    - mrb_obj_classname
    - mrb_str_cat_cstr
    - mrb_any_to_s
    - mrb_str_cat_lit
    - mrb_str_cat_str
    - mrb_obj_value
    - iv_size
    - iv_foreach
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_iv_inspect(mrb_state *mrb, struct RObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:510,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:511,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/variable.c:514,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:514,1
    - Dst: iv_del
      Src: /src/h2o/deps/mruby/src/variable.c:515,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/variable.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - obj
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 520
    functionName: mrb_iv_remove
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    - iv_del
    - mrb_obj_ptr
    - mrb_check_frozen
    - obj_iv_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_iv_remove(mrb_state *mrb, mrb_value obj, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:530,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/variable.c:532,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: iv_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_ary_push
    - mrb_sym_name_len
    linkageType: ''
    returnType: int
    signature: int iv_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/variable.c:559,1
    - Dst: obj_iv_p
      Src: /src/h2o/deps/mruby/src/variable.c:560,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:561,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: mrb_obj_instance_variables
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - mrb_ary_new
    - iv_foreach
    - obj_iv_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_instance_variables(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:574,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/variable.c:576,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 579
    functionName: cv_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_ary_push
    - mrb_sym_name_len
    linkageType: ''
    returnType: int
    signature: int cv_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/variable.c:604,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/variable.c:605,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:606,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 613
    functionName: mrb_mod_class_variables
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_foreach
    - mrb_ary_new
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_class_variables(mrb_state *mrb, mrb_value mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:623,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:632,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:632,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:633,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:637,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/variable.c:645,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:647,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - mrb
    - c
    - sym
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 648
    functionName: mrb_mod_cv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - iv_get
    - mrb_class_ptr
    - mrb_name_error
    - mrb_nil_value
    - mrb_obj_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_cv_get(mrb_state *mrb, struct RClass *c, mrb_sym
      sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_cv_get
      Src: /src/h2o/deps/mruby/src/variable.c:653,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - mod
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: mrb_cv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_mod_cv_get
    - mrb_class_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_cv_get(mrb_state *mrb, mrb_value mod, mrb_sym sym)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:663,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/variable.c:666,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/variable.c:668,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:677,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:677,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:678,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:682,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/variable.c:693,1
    - Dst: iv_new
      Src: /src/h2o/deps/mruby/src/variable.c:695,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:698,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/variable.c:699,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - mrb
    - c
    - sym
    - v
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 700
    functionName: mrb_mod_cv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - iv_get
    - mrb_field_write_barrier_value
    - mrb_class_ptr
    - iv_put
    - iv_new
    - mrb_check_frozen
    - mrb_type
    - mrb_obj_iv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_mod_cv_set(mrb_state *mrb, struct RClass *c, mrb_sym sym,
      mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_cv_set
      Src: /src/h2o/deps/mruby/src/variable.c:705,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - mod
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: mrb_cv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_mod_cv_set
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_cv_set(mrb_state *mrb, mrb_value mod, mrb_sym sym, mrb_value
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - c
    - sym
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: mrb_mod_cv_defined
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_get
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_mod_cv_defined(mrb_state *mrb, struct RClass * c, mrb_sym
      sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_cv_defined
      Src: /src/h2o/deps/mruby/src/variable.c:723,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - mod
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mrb_cv_defined
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_mod_cv_defined
    - mrb_class_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_cv_defined(mrb_state *mrb, mrb_value mod, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/variable.c:734,1
    - Dst: mrb_mod_cv_get
      Src: /src/h2o/deps/mruby/src/variable.c:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 739
    functionName: mrb_vm_cv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - mrb_mod_cv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_vm_cv_get(mrb_state *mrb, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/variable.c:748,1
    - Dst: mrb_mod_cv_set
      Src: /src/h2o/deps/mruby/src/variable.c:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: mrb_vm_cv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - mrb_mod_cv_set
    linkageType: ''
    returnType: void
    signature: void mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:758,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/variable.c:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 767
    functionName: mod_const_check
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_type
    linkageType: ''
    returnType: void
    signature: void mod_const_check(mrb_state *mrb, mrb_value mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MRB_FLAG_TEST
      Src: /src/h2o/deps/mruby/src/variable.c:781,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:782,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:793,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/variable.c:794,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/variable.c:794,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:794,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - mrb
    - base
    - sym
    - skip
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 795
    functionName: const_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 2
    functionsReached:
    - MRB_SYM
    - iv_get
    - MRB_FLAG_TEST
    - mrb_obj_value
    - mrb_symbol_value
    - mrb_funcall_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value const_get(mrb_state *mrb, struct RClass *base, mrb_sym sym,
      mrb_bool skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_const_check
      Src: /src/h2o/deps/mruby/src/variable.c:800,1
    - Dst: const_get
      Src: /src/h2o/deps/mruby/src/variable.c:801,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - mod
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 802
    functionName: mrb_const_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 2
    functionsReached:
    - mod_const_check
    - mrb_class_ptr
    - const_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_const_get(mrb_state *mrb, mrb_value mod, mrb_sym sym)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/variable.c:812,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:814,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:821,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:821,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:825,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/variable.c:830,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:832,1
    - Dst: const_get
      Src: /src/h2o/deps/mruby/src/variable.c:837,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 838
    functionName: mrb_vm_const_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - iv_get
    - mrb_class_ptr
    - const_get
    - MRB_PROC_TARGET_CLASS
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mod_const_check
      Src: /src/h2o/deps/mruby/src/variable.c:843,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:844,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:844,1
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/variable.c:845,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:845,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:845,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/variable.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - mod
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 840
    functionDepth: 6
    functionLinenumber: 840
    functionLinenumberEnd: 848
    functionName: mrb_const_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_class_name_class
    - mrb_iv_set
    - mrb_class_ptr
    - mod_const_check
    - mrb_type
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_const_set(mrb_state *mrb, mrb_value mod, mrb_sym sym, mrb_value
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/variable.c:855,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/variable.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 850
    functionDepth: 5
    functionLinenumber: 850
    functionLinenumberEnd: 858
    functionName: mrb_vm_const_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - mrb_obj_iv_set
    linkageType: ''
    returnType: void
    signature: void mrb_vm_const_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_const_check
      Src: /src/h2o/deps/mruby/src/variable.c:863,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/src/variable.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - mod
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: mrb_const_remove
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mod_const_check
    - mrb_iv_remove
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_const_remove(mrb_state *mrb, mrb_value mod, mrb_sym sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/variable.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - mod
    - name
    - v
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 867
    functionDepth: 5
    functionLinenumber: 867
    functionLinenumberEnd: 871
    functionName: mrb_define_const_id
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_iv_set
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_const_id(mrb_state *mrb, struct RClass *mod, mrb_sym
      name, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/variable.c:876,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/variable.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - mod
    - name
    - v
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 873
    functionDepth: 5
    functionLinenumber: 873
    functionLinenumberEnd: 877
    functionName: mrb_define_const
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 3
    functionsReached:
    - mrb_intern_cstr
    - mrb_obj_iv_set
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_const(mrb_state *mrb, struct RClass *mod, const
      char *name, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/src/variable.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - val
    argTypes:
    - mrb_state*
    - char*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: mrb_define_global_const
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_define_const
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_global_const(mrb_state *mrb, const char *name, mrb_value
      val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:893,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/variable.c:894,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/variable.c:895,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/variable.c:898,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/variable.c:898,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/variable.c:902,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:902,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 906
    functionName: const_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_push
    - mrb_sym_name_len
    - RARRAY_LEN
    - mrb_symbol
    - mrb_symbol_value
    - ISUPPER
    linkageType: ''
    returnType: int
    signature: int const_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:920,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/variable.c:922,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/variable.c:923,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:925,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 931
    functionName: mrb_mod_constants
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_foreach
    - mrb_ary_new
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_constants(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:938,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 941
    functionName: mrb_gv_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - iv_get
    - mrb_nil_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gv_get(mrb_state *mrb, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iv_new
      Src: /src/h2o/deps/mruby/src/variable.c:949,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - sym
    - v
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 953
    functionName: mrb_gv_set
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - iv_put
    - iv_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gv_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_del
      Src: /src/h2o/deps/mruby/src/variable.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: mrb_gv_remove
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 2
    functionsReached:
    - iv_del
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gv_remove(mrb_state *mrb, mrb_sym sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/variable.c:967,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/variable.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 969
    functionName: gv_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_ary_push
    linkageType: ''
    returnType: int
    signature: int gv_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/variable.c:985,1
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 989
    functionName: mrb_f_global_variables
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - iv_foreach
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_global_variables(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:994,1
    - Dst: iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:1001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - mrb
    - mod
    - id
    - exclude
    - recurse
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_bool
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1013
    functionName: const_defined_0
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_get
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool const_defined_0(mrb_state *mrb, mrb_value mod, mrb_sym id,
      mrb_bool exclude, mrb_bool recurse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_defined_0
      Src: /src/h2o/deps/mruby/src/variable.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - mod
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: mrb_const_defined
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - const_defined_0
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_const_defined(mrb_state *mrb, mrb_value mod, mrb_sym id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_defined_0
      Src: /src/h2o/deps/mruby/src/variable.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - mod
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1025
    functionName: mrb_const_defined_at
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - const_defined_0
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_const_defined_at(mrb_state *mrb, mrb_value mod, mrb_sym
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - obj
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1031
    functionName: mrb_attr_get
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - mrb_iv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_attr_get(mrb_state *mrb, mrb_value obj, mrb_sym id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:1044,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - sym
    - v
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1049
    functionName: csym_i
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_type
    linkageType: ''
    returnType: int
    signature: int csym_i(mrb_state *mrb, mrb_sym sym, mrb_value v, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iv_foreach
      Src: /src/h2o/deps/mruby/src/variable.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - outer
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: find_class_sym
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - iv_foreach
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym find_class_sym(mrb_state *mrb, struct RClass *outer, struct
      RClass *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/variable.c:1069,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:1069,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/variable.c:1070,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/variable.c:1071,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:1074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1079
    functionName: outer_class
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_class_ptr
    - mrb_type
    - mrb_nil_p
    - mrb_obj_iv_get
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      outer_class(mrb_state *mrb, struct RClass *c)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: outer_class
      Src: /src/h2o/deps/mruby/src/variable.c:1089,1
    - Dst: outer_class
      Src: /src/h2o/deps/mruby/src/variable.c:1091,1
    - Dst: outer_class
      Src: /src/h2o/deps/mruby/src/variable.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1095
    functionName: detect_outer_loop
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - outer_class
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool detect_outer_loop(mrb_state *mrb, struct RClass *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: detect_outer_loop
      Src: /src/h2o/deps/mruby/src/variable.c:1106,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:1106,1
    - Dst: outer_class
      Src: /src/h2o/deps/mruby/src/variable.c:1107,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:1108,1
    - Dst: find_class_sym
      Src: /src/h2o/deps/mruby/src/variable.c:1109,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/variable.c:1110,1
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/src/variable.c:1111,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/variable.c:1112,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/variable.c:1113,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/variable.c:1114,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/variable.c:1116,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/variable.c:1117,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/variable.c:1118,1
    - Dst: iv_del
      Src: /src/h2o/deps/mruby/src/variable.c:1119,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:1119,1
    - Dst: iv_put
      Src: /src/h2o/deps/mruby/src/variable.c:1120,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/variable.c:1120,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/variable.c:1121,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/variable.c:1122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1097
    functionDepth: 4
    functionLinenumber: 1097
    functionLinenumberEnd: 1125
    functionName: mrb_class_find_path
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_str_new_capa
    - mrb_str_cat
    - mrb_class_name
    - RSTRING_PTR
    - mrb_field_write_barrier_value
    - iv_del
    - iv_put
    - mrb_str_cat_cstr
    - detect_outer_loop
    - mrb_str_dup
    - mrb_sym_name_len
    - mrb_nil_value
    - find_class_sym
    - outer_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_find_path(mrb_state *mrb, struct RClass *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/variable.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1133
    functionName: mrb_obj_iv_tbl_memsize
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_obj_iv_tbl_memsize(mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1136
    functionName: identchar
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identchar(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: identchar
      Src: /src/h2o/deps/mruby/src/variable.c:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1146
    functionName: mrb_ident_p
    functionSourceFile: /src/h2o/deps/mruby/src/variable.c
    functionUses: 1
    functionsReached:
    - identchar
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_ident_p(const char *s, mrb_int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/symbol.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: presym_find
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym presym_find(const char *name, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sym
    - lenp
    argTypes:
    - mrb_sym
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: presym_sym2name
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      presym_sym2name(mrb_sym sym, mrb_int *lenp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/symbol.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - len
    argTypes:
    - mrb_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: sym_validate_len
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void sym_validate_len(mrb_state *mrb, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: SYMBOL_INLINE_P
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYMBOL_INLINE_P(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: sym_inline_pack
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_inline_pack(name, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sym
    - ','
    - buf
    - ','
    - lenp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: sym_inline_unpack
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_inline_unpack(sym, buf, lenp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: SYMBOL_INLINE_P
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYMBOL_INLINE_P(sym)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby/src/symbol.c:95,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/symbol.c:100,1
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: sym_inline_pack
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - strchr
    - mrb_assert
    - SYMBOL_INLINE_P
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym sym_inline_pack(const char *name, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/symbol.c:109,1
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - sym
    - buf
    - lenp
    argTypes:
    - mrb_sym
    - char*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: sym_inline_unpack
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - SYMBOL_INLINE_P
    linkageType: ''
    returnType: char
    signature: 'char *

      sym_inline_unpack(mrb_sym sym, char *buf, mrb_int *lenp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: symhash
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t symhash(const char *key, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: sym_lit_p
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_lit_p(mrb, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: sym_lit_set
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_lit_set(mrb, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: sym_flags_clear
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_flags_clear(mrb, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: sym_len
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_len(mrb, i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym_lit_p
      Src: /src/h2o/deps/mruby/src/symbol.c:149,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:150,1
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/src/symbol.c:154,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/symbol.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - name
    - len
    - i
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: sym_check
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_packed_int_decode
    - sym_lit_p
    - strlen
    - memcmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_check(mrb_state *mrb, const char *name, size_t len, mrb_sym
      i)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: presym_find
      Src: /src/h2o/deps/mruby/src/symbol.c:170,1
    - Dst: sym_inline_pack
      Src: /src/h2o/deps/mruby/src/symbol.c:175,1
    - Dst: symhash
      Src: /src/h2o/deps/mruby/src/symbol.c:178,1
    - Dst: sym_check
      Src: /src/h2o/deps/mruby/src/symbol.c:184,1
    - Dst: sym_check
      Src: /src/h2o/deps/mruby/src/symbol.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - mrb
    - name
    - len
    - hashp
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 202
    functionName: find_symbol
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - symhash
    - presym_find
    - sym_inline_pack
    - sym_check
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym find_symbol(mrb_state *mrb, const char *name, size_t len, uint8_t
      *hashp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sym_validate_len
      Src: /src/h2o/deps/mruby/src/symbol.c:210,1
    - Dst: find_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:211,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/symbol.c:220,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/symbol.c:221,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/src/symbol.c:222,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/symbol.c:223,1
    - Dst: sym_flags_clear
      Src: /src/h2o/deps/mruby/src/symbol.c:226,1
    - Dst: mrb_ro_data_p
      Src: /src/h2o/deps/mruby/src/symbol.c:227,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:227,1
    - Dst: sym_lit_set
      Src: /src/h2o/deps/mruby/src/symbol.c:228,1
    - Dst: mrb_packed_int_len
      Src: /src/h2o/deps/mruby/src/symbol.c:233,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/symbol.c:234,1
    - Dst: mrb_packed_int_encode
      Src: /src/h2o/deps/mruby/src/symbol.c:235,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/symbol.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - mrb
    - name
    - len
    - lit
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 253
    functionName: sym_intern
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_lit_set
    - mrb_packed_int_encode
    - sym_validate_len
    - mrb_realloc
    - mrb_ro_data_p
    - memcpy
    - sym_flags_clear
    - mrb_packed_int_len
    - memset
    - mrb_malloc
    - strlen
    - find_symbol
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool
      lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_intern
      Src: /src/h2o/deps/mruby/src/symbol.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mrb_intern
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 2
    functionsReached:
    - sym_intern
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern(mrb_state *mrb, const char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_intern
      Src: /src/h2o/deps/mruby/src/symbol.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: mrb_intern_static
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_intern
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_static(mrb_state *mrb, const char *name, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/symbol.c:270,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: mrb_intern_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 1
    functionsReached:
    - mrb_intern
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_cstr(mrb_state *mrb, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/symbol.c:276,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/symbol.c:276,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/symbol.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: mrb_intern_str
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_intern
    - RSTRING_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_str(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_validate_len
      Src: /src/h2o/deps/mruby/src/symbol.c:284,1
    - Dst: find_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: mrb_intern_check
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_validate_len
    - find_symbol
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_check(mrb_state *mrb, const char *name, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check
      Src: /src/h2o/deps/mruby/src/symbol.c:293,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/symbol.c:294,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/symbol.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: mrb_check_intern
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_intern_check
    - mrb_symbol_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_intern(mrb_state *mrb, const char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check
      Src: /src/h2o/deps/mruby/src/symbol.c:301,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: mrb_intern_check_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_intern_check
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_check_cstr(mrb_state *mrb, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check_cstr
      Src: /src/h2o/deps/mruby/src/symbol.c:307,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/symbol.c:308,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/symbol.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: mrb_check_intern_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_symbol_value
    - mrb_intern_check_cstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_intern_cstr(mrb_state *mrb, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check
      Src: /src/h2o/deps/mruby/src/symbol.c:315,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/symbol.c:315,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/symbol.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: mrb_intern_check_str
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_intern_check
    - RSTRING_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_intern_check_str(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check_str
      Src: /src/h2o/deps/mruby/src/symbol.c:321,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/symbol.c:322,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/symbol.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 5
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: mrb_check_intern_str
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_intern_check_str
    - mrb_symbol_value
    - mrb_nil_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_intern_str(mrb_state *mrb, mrb_value str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:330,1
    - Dst: sym_inline_unpack
      Src: /src/h2o/deps/mruby/src/symbol.c:330,1
    - Dst: presym_sym2name
      Src: /src/h2o/deps/mruby/src/symbol.c:334,1
    - Dst: sym_lit_p
      Src: /src/h2o/deps/mruby/src/symbol.c:347,1
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/src/symbol.c:348,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - mrb
    - sym
    - buf
    - lenp
    argTypes:
    - mrb_state*
    - mrb_sym
    - char*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 355
    functionName: sym2name_len
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 1
    functionsReached:
    - mrb_packed_int_decode
    - sym_lit_p
    - SYMBOL_INLINE_P
    - presym_sym2name
    - sym_inline_unpack
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym2name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:361,1
    - Dst: sym2name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - sym
    - lenp
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: mrb_sym_name_len
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 7
    functionsReached:
    - sym2name_len
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_sym_name_len(mrb_state *mrb, mrb_sym sym, mrb_int *lenp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_lit_p
      Src: /src/h2o/deps/mruby/src/symbol.c:373,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/symbol.c:374,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/symbol.c:377,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/symbol.c:378,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/symbol.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: mrb_free_symtbl
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_lit_p
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_free_symtbl(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: mrb_init_symtbl
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_init_symtbl(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_str
      Src: /src/h2o/deps/mruby/src/symbol.c:433,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: sym_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_sym_str
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sym_to_s(mrb_state *mrb, mrb_value sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:449,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:451,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/symbol.c:453,1
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:454,1
    - Dst: mrb_str_new_frozen
      Src: /src/h2o/deps/mruby/src/symbol.c:455,1
    - Dst: mrb_str_new_static_frozen
      Src: /src/h2o/deps/mruby/src/symbol.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - vsym
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: sym_name
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_str_new_static_frozen
    - mrb_str_new_frozen
    - SYMBOL_INLINE_P
    - mrb_sym_name_len
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sym_name(mrb_state *mrb, mrb_value vsym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: sym_to_sym
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sym_to_sym(mrb_state *mrb, mrb_value sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: SIGN_EXTEND_CHAR
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN_EXTEND_CHAR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: SIGN_EXTEND_CHAR
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN_EXTEND_CHAR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: is_identchar
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_identchar(c)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: is_identchar
      Src: /src/h2o/deps/mruby/src/symbol.c:508,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/symbol.c:511,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/symbol.c:512,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 516
    functionName: is_special_global_name
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - is_identchar
    - ISDIGIT
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool is_special_global_name(const char* m)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: is_special_global_name
      Src: /src/h2o/deps/mruby/src/symbol.c:530,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/symbol.c:588,1
    - Dst: ISALPHA
      Src: /src/h2o/deps/mruby/src/symbol.c:590,1
    - Dst: is_identchar
      Src: /src/h2o/deps/mruby/src/symbol.c:591,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 110
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 601
    functionName: symname_p
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - ISALPHA
    - is_identchar
    - is_special_global_name
    - ISUPPER
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool symname_p(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:609,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:612,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/symbol.c:613,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/symbol.c:614,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/symbol.c:616,1
    - Dst: symname_p
      Src: /src/h2o/deps/mruby/src/symbol.c:618,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:618,1
    - Dst: mrb_str_inspect
      Src: /src/h2o/deps/mruby/src/symbol.c:619,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/symbol.c:620,1
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:625,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/symbol.c:625,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/symbol.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 628
    functionName: sym_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - SYMBOL_INLINE_P
    - RSTR_SET_ASCII_FLAG
    - memcpy
    - symname_p
    - mrb_str_new
    - mrb_str_inspect
    - mrb_sym_name_len
    - mrb_str_ptr
    - mrb_symbol
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sym_inspect(mrb_state *mrb, mrb_value sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:634,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/symbol.c:636,1
    - Dst: SYMBOL_INLINE_P
      Src: /src/h2o/deps/mruby/src/symbol.c:637,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/symbol.c:638,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/symbol.c:639,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/symbol.c:639,1
    - Dst: mrb_str_new_static
      Src: /src/h2o/deps/mruby/src/symbol.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: mrb_sym_str
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 1
    functionsReached:
    - mrb_undef_value
    - SYMBOL_INLINE_P
    - RSTR_SET_ASCII_FLAG
    - mrb_str_new
    - mrb_sym_name_len
    - mrb_str_ptr
    - mrb_str_new_static
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_sym_str(mrb_state *mrb, mrb_sym sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:649,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/symbol.c:652,1
    - Dst: symname_p
      Src: /src/h2o/deps/mruby/src/symbol.c:652,1
    - Dst: mrb_str_new_static
      Src: /src/h2o/deps/mruby/src/symbol.c:656,1
    - Dst: mrb_str_dump
      Src: /src/h2o/deps/mruby/src/symbol.c:657,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/symbol.c:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - sym
    - dump
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: sym_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_str_dump
    - RSTRING_PTR
    - symname_p
    - mrb_sym_name_len
    - mrb_str_new_static
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      sym_cstr(mrb_state *mrb, mrb_sym sym, mrb_bool dump)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_cstr
      Src: /src/h2o/deps/mruby/src/symbol.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: mrb_sym_name
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_cstr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_sym_name(mrb_state *mrb, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_cstr
      Src: /src/h2o/deps/mruby/src/symbol.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 4
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: mrb_sym_dump
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - sym_cstr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_sym_dump(mrb_state *mrb, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 675
    functionName: lesser
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lesser(a,b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/symbol.c:679,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/symbol.c:682,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/symbol.c:682,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:683,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/symbol.c:684,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:685,1
    - Dst: sym2name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:692,1
    - Dst: sym2name_len
      Src: /src/h2o/deps/mruby/src/symbol.c:693,1
    - Dst: lesser
      Src: /src/h2o/deps/mruby/src/symbol.c:694,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/symbol.c:695,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:697,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:698,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:699,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:701,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/symbol.c:702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - s1
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 704
    functionName: sym_cmp
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - memcmp
    - sym2name_len
    - mrb_symbol_p
    - lesser
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sym_cmp(mrb_state *mrb, mrb_value s1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/symbol.c:711,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/symbol.c:712,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/symbol.c:713,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/symbol.c:715,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/symbol.c:715,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/symbol.c:716,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/symbol.c:716,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/symbol.c:717,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/symbol.c:717,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/symbol.c:718,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/symbol.c:718,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/symbol.c:719,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/symbol.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 720
    functionName: mrb_init_symbol
    functionSourceFile: /src/h2o/deps/mruby/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_symbol(mrb_state *mrb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:23,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:23,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:24,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/src/object.c:29,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/src/object.c:29,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/object.c:31,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/object.c:31,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/object.c:33,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/object.c:33,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/object.c:37,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/object.c:37,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/object.c:41,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/object.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - mrb
    - v1
    - v2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: mrb_obj_eq
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_ptr
    - mrb_type
    - mrb_fixnum
    - mrb_symbol
    - mrb_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_eq(mrb_state *mrb, mrb_value v1, mrb_value v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_eq
      Src: /src/h2o/deps/mruby/src/object.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - v1
    - v2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: mrb_obj_equal
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 1
    functionsReached:
    - mrb_obj_eq
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_equal(mrb_state *mrb, mrb_value v1, mrb_value v2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_eq
      Src: /src/h2o/deps/mruby/src/object.c:58,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/object.c:61,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/object.c:62,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/object.c:62,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/object.c:62,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/object.c:65,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/object.c:66,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/object.c:66,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/object.c:66,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/object.c:70,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/object.c:70,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/object.c:71,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - obj1
    - obj2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: mrb_equal
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_obj_eq
    - mrb_funcall_id
    - mrb_float_p
    - MRB_OPSYM
    - mrb_integer_p
    - mrb_test
    - mrb_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/object.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: mrb_true
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_true(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_frozen
      Src: /src/h2o/deps/mruby/src/object.c:106,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/object.c:107,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/object.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: nil_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - RSTR_SET_ASCII_FLAG
    - mrb_str_new_frozen
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_to_s(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit_frozen
      Src: /src/h2o/deps/mruby/src/object.c:114,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/object.c:115,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/object.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: nil_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit_frozen
    - RSTR_SET_ASCII_FLAG
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_inspect(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/object.c:142,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/object.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: true_and
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value true_and(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/object.c:162,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/object.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: true_xor
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value true_xor(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit_frozen
      Src: /src/h2o/deps/mruby/src/object.c:177,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/object.c:178,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/object.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: true_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit_frozen
    - RSTR_SET_ASCII_FLAG
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value true_to_s(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/object.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: true_or
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value true_or(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/object.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: false_and
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value false_and(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/object.c:251,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/object.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: false_xor
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value false_xor(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/object.c:271,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/object.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: false_or
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value false_or(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit_frozen
      Src: /src/h2o/deps/mruby/src/object.c:286,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/object.c:287,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/object.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: false_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit_frozen
    - RSTR_SET_ASCII_FLAG
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value false_to_s(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/object.c:298,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/object.c:299,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/object.c:300,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:301,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:301,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:302,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:302,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:303,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:303,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:304,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:304,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:305,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:305,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:306,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:306,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/object.c:308,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/object.c:309,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/object.c:310,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:311,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:311,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:312,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:312,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:313,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:313,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:314,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:314,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:315,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:315,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/object.c:317,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/object.c:318,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/object.c:319,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:320,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:320,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:321,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:321,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:322,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:322,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:323,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/object.c:323,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/object.c:324,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/object.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 325
    functionName: mrb_init_object
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_object(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_VTYPE_FOREACH
      Src: /src/h2o/deps/mruby/src/object.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum mrb_vtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: type_name
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - MRB_VTYPE_FOREACH
    linkageType: ''
    returnType: char
    signature: 'char *

      type_name(enum mrb_vtype t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tt
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: MRB_VTYPE_NAME
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_VTYPE_NAME(tt, type, name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/object.c:341,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:343,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:344,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/object.c:346,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/object.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - mrb
    - val
    - tname
    - method
    - raise
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - mrb_sym
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: convert_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_funcall_argv
    - mrb_nil_value
    - mrb_respond_to
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value convert_type(mrb_state *mrb, mrb_value val, const char *tname,
      mrb_sym method, mrb_bool raise)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:357,1
    - Dst: type_name
      Src: /src/h2o/deps/mruby/src/object.c:358,1
    - Dst: convert_type
      Src: /src/h2o/deps/mruby/src/object.c:359,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:360,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/src/object.c:361,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - val
    - type
    - method
    argTypes:
    - mrb_state*
    - mrb_value
    - enum mrb_vtype
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: mrb_type_convert
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - type_name
    - mrb_any_to_s
    - mrb_type
    - convert_type
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_type_convert(mrb_state *mrb, mrb_value val, enum mrb_vtype
      type, mrb_sym method)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:372,1
    - Dst: convert_type
      Src: /src/h2o/deps/mruby/src/object.c:373,1
    - Dst: type_name
      Src: /src/h2o/deps/mruby/src/object.c:373,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/object.c:374,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:374,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/object.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - val
    - type
    - method
    argTypes:
    - mrb_state*
    - mrb_value
    - enum mrb_vtype
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: mrb_type_convert_check
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - type_name
    - mrb_type
    - convert_type
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_type_convert_check(mrb_state *mrb, mrb_value val, enum
      mrb_vtype type, mrb_sym method)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:381,1
    - Dst: type_name
      Src: /src/h2o/deps/mruby/src/object.c:386,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/object.c:387,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/object.c:390,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/object.c:393,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/object.c:396,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/object.c:397,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/object.c:397,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/src/object.c:400,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:403,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - x
    - t
    argTypes:
    - mrb_state*
    - mrb_value
    - enum mrb_vtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 407
    functionName: mrb_check_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - type_name
    - mrb_obj_as_string
    - RSTRING_PTR
    - mrb_symbol_p
    - mrb_obj_classname
    - mrb_immediate_p
    - mrb_raisef
    - mrb_type
    - mrb_integer_p
    - mrb_nil_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype
      t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/object.c:423,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/src/object.c:424,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/object.c:426,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/object.c:427,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/object.c:428,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/object.c:429,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/object.c:430,1
    - Dst: mrb_ptr_to_str
      Src: /src/h2o/deps/mruby/src/object.c:430,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/object.c:430,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/object.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: mrb_any_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 3
    functionsReached:
    - mrb_str_new_capa
    - mrb_ptr_to_str
    - mrb_obj_classname
    - mrb_ptr
    - mrb_str_cat_cstr
    - mrb_immediate_p
    - mrb_str_cat_lit
    - mrb_str_cat_str
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_any_to_s(mrb_state *mrb, mrb_value obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/object.c:466,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/object.c:476,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/object.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - obj
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 486
    functionName: mrb_obj_is_kind_of
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 1
    functionsReached:
    - mrb_raise
    - MRB_CLASS_ORIGIN
    - mrb_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_is_kind_of(mrb_state *mrb, mrb_value obj, struct RClass
      *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/object.c:502,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/object.c:504,1
    - Dst: mrb_float_to_integer
      Src: /src/h2o/deps/mruby/src/object.c:505,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:508,1
    - Dst: mrb_rational_to_i
      Src: /src/h2o/deps/mruby/src/object.c:515,1
    - Dst: mrb_complex_to_i
      Src: /src/h2o/deps/mruby/src/object.c:519,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 529
    functionName: mrb_ensure_integer_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_complex_to_i
    - mrb_rational_to_i
    - mrb_float_p
    - mrb_float_to_integer
    - mrb_integer_p
    - mrb_type
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_integer_type(mrb_state *mrb, mrb_value val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_integer_type
      Src: /src/h2o/deps/mruby/src/object.c:534,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/object.c:536,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/object.c:537,1
    - Dst: mrb_bint_as_int
      Src: /src/h2o/deps/mruby/src/object.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: mrb_ensure_int_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_bint_as_int
    - mrb_int_value
    - mrb_bigint_p
    - mrb_ensure_integer_type
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_int_type(mrb_state *mrb, mrb_value val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/object.c:547,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/object.c:548,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/object.c:550,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/object.c:552,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/object.c:552,1
    - Dst: mrb_rational_to_f
      Src: /src/h2o/deps/mruby/src/object.c:559,1
    - Dst: mrb_complex_to_f
      Src: /src/h2o/deps/mruby/src/object.c:564,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/object.c:569,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/src/object.c:569,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 577
    functionName: mrb_ensure_float_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_raise
    - mrb_float_value
    - mrb_rational_to_f
    - mrb_type
    - mrb_raisef
    - mrb_complex_to_f
    - mrb_nil_p
    - mrb_bint_as_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_float_type(mrb_state *mrb, mrb_value val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/object.c:583,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: mrb_ensure_string_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_string_type(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/object.c:592,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/object.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: mrb_check_string_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_string_type(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/object.c:599,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 603
    functionName: mrb_ensure_array_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_array_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_array_type(mrb_state *mrb, mrb_value ary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/object.c:608,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/object.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: mrb_check_array_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_array_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_array_type(mrb_state *mrb, mrb_value ary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/object.c:615,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/object.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: mrb_ensure_hash_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_hash_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure_hash_type(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/object.c:624,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/object.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: mrb_check_hash_type
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_hash_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_check_hash_type(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/object.c:631,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/object.c:631,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/object.c:632,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/object.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 636
    functionName: mrb_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - mrb_funcall_id
    - mrb_obj_as_string
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_inspect(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_eq
      Src: /src/h2o/deps/mruby/src/object.c:641,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/object.c:642,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/object.c:642,1
    - Dst: MRB_SYM_Q
      Src: /src/h2o/deps/mruby/src/object.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - obj1
    - obj2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 643
    functionName: mrb_eql
    functionSourceFile: /src/h2o/deps/mruby/src/object.c
    functionUses: 0
    functionsReached:
    - MRB_SYM_Q
    - mrb_funcall_id
    - mrb_obj_eq
    - mrb_test
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_eql(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: trunc
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: fmod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmod(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/numeric.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - reason
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: mrb_int_overflow
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void mrb_int_overflow(mrb_state *mrb, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: mrb_int_zerodiv
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void mrb_int_zerodiv(mrb_state *mrb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:49,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:50,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:53,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:54,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:54,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:54,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:54,1
    - Dst: mrb_bint_pow
      Src: /src/h2o/deps/mruby/src/numeric.c:57,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:60,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:65,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:67,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:68,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:68,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:68,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:70,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:71,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:76,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:80,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:80,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:82,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:87,1
    - Dst: mrb_bint_pow
      Src: /src/h2o/deps/mruby/src/numeric.c:89,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:89,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:89,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:91,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:97,1
    - Dst: mrb_bint_pow
      Src: /src/h2o/deps/mruby/src/numeric.c:99,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:99,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:99,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:101,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 106
    functionName: mrb_int_pow
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_get_args
    - mrb_float_p
    - mrb_int_overflow
    - mrb_float_value
    - mrb_bint_pow
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_int_mul_overflow
    - mrb_bint_new_int
    - mrb_float
    - pow
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_int_pow(mrb_state *mrb, mrb_value x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/src/numeric.c:113,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: mrb_div_int
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_int_zerodiv
    - mrb_int_overflow
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_div_int(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:143,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:145,1
    - Dst: mrb_bint_div
      Src: /src/h2o/deps/mruby/src/numeric.c:146,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:149,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:151,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:152,1
    - Dst: mrb_bint_mul_ii
      Src: /src/h2o/deps/mruby/src/numeric.c:155,1
    - Dst: mrb_div_int
      Src: /src/h2o/deps/mruby/src/numeric.c:158,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:159,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:161,1
    - Dst: mrb_bint_div
      Src: /src/h2o/deps/mruby/src/numeric.c:164,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:164,1
    - Dst: mrb_rational_div
      Src: /src/h2o/deps/mruby/src/numeric.c:168,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/src/numeric.c:168,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/src/numeric.c:172,1
    - Dst: mrb_complex_div
      Src: /src/h2o/deps/mruby/src/numeric.c:173,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:177,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:179,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/src/numeric.c:179,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 182
    functionName: int_div
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_rational_div
    - mrb_get_arg1
    - mrb_complex_new
    - mrb_integer
    - mrb_div_int
    - mrb_raise
    - mrb_complex_div
    - mrb_float_value
    - mrb_div_float
    - mrb_int_value
    - mrb_bint_mul_ii
    - mrb_integer_p
    - mrb_bigint_p
    - mrb_bint_div
    - mrb_type
    - mrb_rational_new
    - mrb_as_float
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_div(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:202,1
    - Dst: mrb_bint_div
      Src: /src/h2o/deps/mruby/src/numeric.c:203,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:203,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:208,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:209,1
    - Dst: mrb_div_int
      Src: /src/h2o/deps/mruby/src/numeric.c:209,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: int_idiv
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_div_int
    - mrb_get_args
    - mrb_int_value
    - mrb_bigint_p
    - mrb_bint_div
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_idiv(mrb_state *mrb, mrb_value x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: int_idiv
      Src: /src/h2o/deps/mruby/src/numeric.c:217,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:221,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/src/numeric.c:223,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:226,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:227,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:227,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:230,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:230,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:233,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:234,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:235,1
    - Dst: mrb_class_defined_id
      Src: /src/h2o/deps/mruby/src/numeric.c:235,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/numeric.c:235,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/src/numeric.c:236,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:236,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:238,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/src/numeric.c:240,1
    - Dst: mrb_rational_div
      Src: /src/h2o/deps/mruby/src/numeric.c:241,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:244,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:246,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/src/numeric.c:246,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 250
    functionName: int_quo
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_rational_div
    - mrb_get_arg1
    - mrb_integer
    - mrb_raise
    - mrb_get_args
    - int_idiv
    - mrb_float_value
    - mrb_class_defined_id
    - mrb_div_float
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_type
    - mrb_int_zerodiv
    - mrb_rational_new
    - mrb_as_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_quo(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:257,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:261,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:261,1
    - Dst: mrb_ensure_float_type
      Src: /src/h2o/deps/mruby/src/numeric.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: coerce_step_counter
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_ensure_float_type
    - mrb_get_args
    - mrb_float_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value coerce_step_counter(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:282,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:283,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:283,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:283,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: flo_pow
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_arg1
    - pow
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_pow(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:292,1
    - Dst: mrb_div_int
      Src: /src/h2o/deps/mruby/src/numeric.c:293,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:293,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - xv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: flo_idiv
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_float
    - mrb_int_value
    - mrb_get_args
    - mrb_div_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_idiv(mrb_state *mrb, mrb_value xv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signbit
      Src: /src/h2o/deps/mruby/src/numeric.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mrb_float
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: mrb_div_float
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 2
    functionsReached:
    - signbit
    linkageType: ''
    returnType: mrb_float
    signature: mrb_float mrb_div_float(mrb_float x, mrb_float y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:314,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:315,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:317,1
    - Dst: mrb_complex_div
      Src: /src/h2o/deps/mruby/src/numeric.c:320,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/src/numeric.c:320,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/src/numeric.c:323,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:323,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:324,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/src/numeric.c:326,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:326,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:327,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 330
    functionName: flo_div
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_new
    - mrb_complex_div
    - mrb_float_value
    - mrb_div_float
    - mrb_type
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_div(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_format_float
      Src: /src/h2o/deps/mruby/src/numeric.c:343,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:343,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/numeric.c:347,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/numeric.c:347,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/numeric.c:348,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/src/numeric.c:352,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/numeric.c:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - flo
    - fmt
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 355
    functionName: mrb_float_to_str
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - strcat
    - memcpy
    - mrb_str_new_cstr
    - memmove
    - mrb_float
    - strlen
    - mrb_format_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value flo, const char
      *fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:375,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:378,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/numeric.c:379,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/numeric.c:380,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/numeric.c:382,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/numeric.c:383,1
    - Dst: mrb_float_to_str
      Src: /src/h2o/deps/mruby/src/numeric.c:386,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/numeric.c:389,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/numeric.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - flt
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: flo_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_float_to_str
    - mrb_str_new_lit
    - isnan
    - RSTR_SET_ASCII_FLAG
    - mrb_str_ptr
    - isinf
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_to_s(mrb_state *mrb, mrb_value flt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:404,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:405,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:407,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:409,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:409,1
    - Dst: mrb_complex_add
      Src: /src/h2o/deps/mruby/src/numeric.c:412,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:415,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: flo_add
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_float_value
    - mrb_type
    - mrb_complex_add
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_add(mrb_state *mrb, mrb_value x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:431,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:432,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:434,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:436,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:436,1
    - Dst: mrb_complex_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:439,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/src/numeric.c:439,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:442,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 444
    functionName: flo_sub
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_new
    - mrb_complex_sub
    - mrb_float_value
    - mrb_type
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_sub(mrb_state *mrb, mrb_value x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:458,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:459,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:461,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:463,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:463,1
    - Dst: mrb_complex_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:466,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:469,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 471
    functionName: flo_mul
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_mul
    - mrb_float_value
    - mrb_type
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_mul(mrb_state *mrb, mrb_value x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/numeric.c:478,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/src/numeric.c:484,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:486,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:486,1
    - Dst: fmod
      Src: /src/h2o/deps/mruby/src/numeric.c:490,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:492,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:492,1
    - Dst: round
      Src: /src/h2o/deps/mruby/src/numeric.c:497,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 5
    argNames:
    - mrb
    - x
    - y
    - divp
    - modp
    argTypes:
    - mrb_state*
    - double
    - double
    - mrb_float*
    - mrb_float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 508
    functionName: flodivmod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - round
    - fmod
    - isnan
    - mrb_int_zerodiv
    - isinf
    linkageType: ''
    returnType: void
    signature: void flodivmod(mrb_state *mrb, double x, double y, mrb_float *divp,
      mrb_float *modp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:525,1
    - Dst: flodivmod
      Src: /src/h2o/deps/mruby/src/numeric.c:528,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:528,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:528,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: flo_mod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - flodivmod
    - mrb_float_value
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_mod(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:548,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:551,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:552,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/src/numeric.c:552,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:555,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:555,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:556,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:556,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: int_eql
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_false_value
    - mrb_bint_cmp
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_eql(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:563,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:565,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:565,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:566,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:566,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: flo_eql
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_float_p
    - mrb_false_value
    - mrb_bool_value
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_eql(mrb_state *mrb, mrb_value x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:585,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:587,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:589,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:589,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:589,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:591,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:591,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:591,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:594,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:594,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:594,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:598,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/numeric.c:598,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: flo_eq
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_equal
    - mrb_type
    - mrb_false_value
    - mrb_bool_value
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_eq(mrb_state *mrb, mrb_value x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:608,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:610,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:613,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 624
    functionName: value_int64
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_float
    - mrb_integer
    - mrb_type
    linkageType: ''
    returnType: int64_t
    signature: int64_t value_int64(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TYPED_FIXABLE
      Src: /src/h2o/deps/mruby/src/numeric.c:629,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:630,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 633
    functionName: int64_value
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - TYPED_FIXABLE
    - mrb_fixnum_value
    - mrb_int_overflow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int64_value(mrb_state *mrb, int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:638,1
    - Dst: int64_value
      Src: /src/h2o/deps/mruby/src/numeric.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: flo_rev
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - int64_value
    - value_int64
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_rev(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:645,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:648,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:649,1
    - Dst: int64_value
      Src: /src/h2o/deps/mruby/src/numeric.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 651
    functionName: flo_and
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - int64_value
    - mrb_get_arg1
    - value_int64
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_and(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:656,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:659,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:660,1
    - Dst: int64_value
      Src: /src/h2o/deps/mruby/src/numeric.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 662
    functionName: flo_or
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - int64_value
    - mrb_get_arg1
    - value_int64
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_or(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:667,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:670,1
    - Dst: value_int64
      Src: /src/h2o/deps/mruby/src/numeric.c:671,1
    - Dst: int64_value
      Src: /src/h2o/deps/mruby/src/numeric.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 673
    functionName: flo_xor
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - int64_value
    - mrb_get_arg1
    - value_int64
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_xor(mrb_state *mrb, mrb_value x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:683,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:685,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:686,1
    - Dst: trunc
      Src: /src/h2o/deps/mruby/src/numeric.c:697,1
    - Dst: floor
      Src: /src/h2o/deps/mruby/src/numeric.c:700,1
    - Dst: ceil
      Src: /src/h2o/deps/mruby/src/numeric.c:702,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:705,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:706,1
    - Dst: FIXABLE_FLOAT
      Src: /src/h2o/deps/mruby/src/numeric.c:714,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:715,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - mrb
    - x
    - width
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 717
    functionName: flo_shift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - FIXABLE_FLOAT
    - trunc
    - mrb_float_value
    - mrb_int_value
    - ceil
    - mrb_fixnum_value
    - mrb_float
    - floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_shift(mrb_state *mrb, mrb_value x, mrb_int width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:724,1
    - Dst: flo_shift
      Src: /src/h2o/deps/mruby/src/numeric.c:725,1
    - Dst: flo_shift
      Src: /src/h2o/deps/mruby/src/numeric.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 727
    functionName: flo_rshift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - flo_shift
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_rshift(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:734,1
    - Dst: flo_shift
      Src: /src/h2o/deps/mruby/src/numeric.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 736
    functionName: flo_lshift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - flo_shift
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_lshift(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: flo_to_f
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_to_f(mrb_state *mrb, mrb_value num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:768,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:770,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:771,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/numeric.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 774
    functionName: flo_infinite_p
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - isinf
    - mrb_float
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_infinite_p(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:790,1
    - Dst: isfinite
      Src: /src/h2o/deps/mruby/src/numeric.c:790,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 791
    functionName: flo_finite_p
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_float
    - isfinite
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_finite_p(mrb_state *mrb, mrb_value num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:796,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:797,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/numeric.c:799,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 802
    functionName: mrb_check_num_exact
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - isinf
    - isnan
    linkageType: ''
    returnType: void
    signature: void mrb_check_num_exact(mrb_state *mrb, mrb_float num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:807,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:815,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:817,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:817,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:821,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/numeric.c:822,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:823,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/numeric.c:826,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/numeric.c:827,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/numeric.c:830,1
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/src/numeric.c:832,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 834
    functionName: flo_ceil_floor
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_float_value
    - func
    - mrb_int_value
    - mrb_fixnum_value
    - mrb_check_num_exact
    - mrb_float
    - pow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_ceil_floor(mrb_state *mrb, mrb_value num, double (*func)(double))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flo_ceil_floor
      Src: /src/h2o/deps/mruby/src/numeric.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 3
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: flo_floor
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - flo_ceil_floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_floor(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flo_ceil_floor
      Src: /src/h2o/deps/mruby/src/numeric.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: flo_ceil
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - flo_ceil_floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_ceil(mrb_state *mrb, mrb_value num)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:965,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:966,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:968,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/numeric.c:968,1
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/src/numeric.c:971,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:974,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/src/numeric.c:980,1
    - Dst: floor
      Src: /src/h2o/deps/mruby/src/numeric.c:991,1
    - Dst: ceil
      Src: /src/h2o/deps/mruby/src/numeric.c:995,1
    - Dst: isfinite
      Src: /src/h2o/deps/mruby/src/numeric.c:1004,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1005,1
    - Dst: FIXABLE_FLOAT
      Src: /src/h2o/deps/mruby/src/numeric.c:1007,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1008,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1009,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1010
    functionName: flo_round
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - FIXABLE_FLOAT
    - mrb_get_args
    - isnan
    - isfinite
    - mrb_float_value
    - mrb_int_value
    - ceil
    - mrb_fixnum_value
    - mrb_check_num_exact
    - isinf
    - mrb_float
    - floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_round(mrb_state *mrb, mrb_value num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1016,1
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/src/numeric.c:1018,1
    - Dst: FIXABLE_FLOAT
      Src: /src/h2o/deps/mruby/src/numeric.c:1020,1
    - Dst: mrb_bint_new_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1022,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1024,1
    - Dst: floor
      Src: /src/h2o/deps/mruby/src/numeric.c:1027,1
    - Dst: ceil
      Src: /src/h2o/deps/mruby/src/numeric.c:1028,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1031
    functionName: flo_to_i
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - FIXABLE_FLOAT
    - mrb_bint_new_float
    - mrb_int_overflow
    - mrb_int_value
    - ceil
    - mrb_check_num_exact
    - mrb_float
    - floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_to_i(mrb_state *mrb, mrb_value num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signbit
      Src: /src/h2o/deps/mruby/src/numeric.c:1045,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1045,1
    - Dst: flo_ceil
      Src: /src/h2o/deps/mruby/src/numeric.c:1045,1
    - Dst: flo_floor
      Src: /src/h2o/deps/mruby/src/numeric.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1047
    functionName: flo_truncate
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - flo_ceil
    - flo_floor
    - mrb_float
    - signbit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_truncate(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1052,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/src/numeric.c:1052,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1053
    functionName: flo_nan_p
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_float
    - isnan
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_nan_p(mrb_state *mrb, mrb_value num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1058,1
    - Dst: signbit
      Src: /src/h2o/deps/mruby/src/numeric.c:1060,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1062
    functionName: flo_abs
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_float
    - signbit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_abs(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1085
    functionName: int_to_i
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_to_i(mrb_state *mrb, mrb_value num)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1092,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1093,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1097,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1098,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1100,1
    - Dst: mrb_bint_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1101,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1103,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1106,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1108,1
    - Dst: mrb_bint_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1111,1
    - Dst: mrb_rational_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1115,1
    - Dst: mrb_complex_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1119,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1123,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1125,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1128
    functionName: mrb_int_mul
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_rational_mul
    - mrb_integer
    - mrb_complex_mul
    - mrb_raise
    - mrb_int_overflow
    - mrb_float_value
    - mrb_int_value
    - mrb_bint_mul
    - mrb_integer_p
    - mrb_int_mul_overflow
    - mrb_type
    - mrb_as_float
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_int_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1143,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1146,1
    - Dst: mrb_bint_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1147,1
    - Dst: mrb_int_mul
      Src: /src/h2o/deps/mruby/src/numeric.c:1150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1151
    functionName: int_mul
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 2
    functionsReached:
    - mrb_get_arg1
    - mrb_bint_mul
    - mrb_bigint_p
    - mrb_int_mul
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_mul(mrb_state *mrb, mrb_value x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/src/numeric.c:1157,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - mrb
    - x
    - y
    - divp
    - modp
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    - mrb_int*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1173
    functionName: intdivmod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_int_zerodiv
    - mrb_int_overflow
    linkageType: ''
    returnType: void
    signature: void intdivmod(mrb_state *mrb, mrb_int x, mrb_int y, mrb_int *divp,
      mrb_int *modp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1187,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1191,1
    - Dst: mrb_bint_mod
      Src: /src/h2o/deps/mruby/src/numeric.c:1192,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1195,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1196,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1197,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/src/numeric.c:1198,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1199,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1204,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1207,1
    - Dst: flodivmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1211,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1211,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1214
    functionName: int_mod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - flodivmod
    - mrb_integer
    - mrb_bint_mod
    - mrb_raise
    - mrb_float_value
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_int_zerodiv
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_mod(mrb_state *mrb, mrb_value x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1229,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1232,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1234,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1235,1
    - Dst: flo_divmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1236,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1236,1
    - Dst: mrb_bint_divmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1239,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1242,1
    - Dst: intdivmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1245,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1245,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1245,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/src/numeric.c:1246,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1246,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1246,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1249,1
    - Dst: flo_divmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1226
    functionDepth: 3
    functionLinenumber: 1226
    functionLinenumberEnd: 1253
    functionName: int_divmod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_raise
    - mrb_float_p
    - mrb_float_value
    - flo_divmod
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer_p
    - intdivmod
    - mrb_bint_divmod
    - mrb_bint_as_float
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_divmod(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1259,1
    - Dst: flodivmod
      Src: /src/h2o/deps/mruby/src/numeric.c:1263,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1263,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1263,1
    - Dst: FIXABLE_FLOAT
      Src: /src/h2o/deps/mruby/src/numeric.c:1264,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1265,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1267,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1268,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/src/numeric.c:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1256
    functionDepth: 3
    functionLinenumber: 1256
    functionLinenumberEnd: 1270
    functionName: flo_divmod
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - flodivmod
    - FIXABLE_FLOAT
    - mrb_float_value
    - mrb_int_value
    - mrb_float
    - mrb_as_float
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_divmod(mrb_state *mrb, mrb_value x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1288,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1290,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1292,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1292,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1292,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1295,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1295,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1295,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1299,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/src/numeric.c:1299,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1303,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/numeric.c:1303,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1307,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/numeric.c:1307,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1312
    functionName: int_equal
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_equal
    - mrb_type
    - mrb_false_value
    - mrb_bint_cmp
    - mrb_bool_value
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_equal(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1328,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1331,1
    - Dst: mrb_bint_rev
      Src: /src/h2o/deps/mruby/src/numeric.c:1332,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1336
    functionName: int_rev
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_bint_rev
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_rev(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - op1
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1342
    functionName: bit_op
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_op(x,y,op1,op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - op1
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1350
    functionName: bit_op
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_op(x,y,op1,op2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1363,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1366,1
    - Dst: mrb_bint_and
      Src: /src/h2o/deps/mruby/src/numeric.c:1367,1
    - Dst: bit_op
      Src: /src/h2o/deps/mruby/src/numeric.c:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1371
    functionName: int_and
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_bint_and
    - mrb_get_arg1
    - mrb_bigint_p
    - bit_op
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_and(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1384,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1387,1
    - Dst: mrb_bint_or
      Src: /src/h2o/deps/mruby/src/numeric.c:1388,1
    - Dst: bit_op
      Src: /src/h2o/deps/mruby/src/numeric.c:1391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1392
    functionName: int_or
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - mrb_bint_or
    - mrb_bigint_p
    - bit_op
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_or(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1405,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1408,1
    - Dst: mrb_bint_xor
      Src: /src/h2o/deps/mruby/src/numeric.c:1409,1
    - Dst: bit_op
      Src: /src/h2o/deps/mruby/src/numeric.c:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1413
    functionName: int_xor
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_bint_xor
    - mrb_get_arg1
    - mrb_bigint_p
    - bit_op
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_xor(mrb_state *mrb, mrb_value x)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - mrb
    - val
    - width
    - num
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1451
    functionName: mrb_num_shift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_num_shift(mrb_state *mrb, mrb_int val, mrb_int width,
      mrb_int *num)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:1466,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1470,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1472,1
    - Dst: mrb_bint_lshift
      Src: /src/h2o/deps/mruby/src/numeric.c:1473,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1476,1
    - Dst: mrb_num_shift
      Src: /src/h2o/deps/mruby/src/numeric.c:1478,1
    - Dst: mrb_bint_lshift
      Src: /src/h2o/deps/mruby/src/numeric.c:1480,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1480,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1482,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1461
    functionDepth: 2
    functionLinenumber: 1461
    functionLinenumberEnd: 1486
    functionName: int_lshift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_integer
    - mrb_bint_lshift
    - mrb_num_shift
    - mrb_get_args
    - mrb_int_overflow
    - mrb_int_value
    - mrb_bigint_p
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_lshift(mrb_state *mrb, mrb_value x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:1501,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1505,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1507,1
    - Dst: mrb_bint_rshift
      Src: /src/h2o/deps/mruby/src/numeric.c:1508,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1511,1
    - Dst: mrb_num_shift
      Src: /src/h2o/deps/mruby/src/numeric.c:1513,1
    - Dst: mrb_bint_rshift
      Src: /src/h2o/deps/mruby/src/numeric.c:1515,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1515,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1517,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1496
    functionDepth: 2
    functionLinenumber: 1496
    functionLinenumberEnd: 1521
    functionName: int_rshift
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_bint_rshift
    - mrb_integer
    - mrb_num_shift
    - mrb_get_args
    - mrb_int_overflow
    - mrb_int_value
    - mrb_bigint_p
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_rshift(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1537,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1538,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1538,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1541,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1542
    functionName: int_to_f
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_integer
    - mrb_bigint_p
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_to_f(mrb_state *mrb, mrb_value num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1563,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1564,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1567,1
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/src/numeric.c:1569,1
    - Dst: FIXABLE_FLOAT
      Src: /src/h2o/deps/mruby/src/numeric.c:1570,1
    - Dst: mrb_bint_new_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1575,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/numeric.c:1577,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1582
    functionName: mrb_float_to_integer
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 1
    functionsReached:
    - mrb_raise
    - FIXABLE_FLOAT
    - mrb_bint_new_float
    - mrb_float_p
    - mrb_int_value
    - mrb_check_num_exact
    - mrb_raisef
    - mrb_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_float_to_integer(mrb_state *mrb, mrb_value x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1590,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1591,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1595,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1596,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1598,1
    - Dst: mrb_bint_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1599,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1601,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1604,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1606,1
    - Dst: mrb_bint_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1609,1
    - Dst: mrb_rational_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1613,1
    - Dst: mrb_complex_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1617,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1621,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1623,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1585
    functionDepth: 2
    functionLinenumber: 1585
    functionLinenumberEnd: 1626
    functionName: mrb_int_add
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_raise
    - mrb_bint_add
    - mrb_int_overflow
    - mrb_int_add_overflow
    - mrb_float_value
    - mrb_int_value
    - mrb_integer_p
    - mrb_type
    - mrb_complex_add
    - mrb_rational_add
    - mrb_as_float
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_int_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1640,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1643,1
    - Dst: mrb_bint_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1644,1
    - Dst: mrb_int_add
      Src: /src/h2o/deps/mruby/src/numeric.c:1647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1637
    functionDepth: 3
    functionLinenumber: 1637
    functionLinenumberEnd: 1648
    functionName: int_add
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 2
    functionsReached:
    - mrb_get_arg1
    - mrb_bigint_p
    - mrb_int_add
    - mrb_bint_add
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_add(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1655,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1656,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1659,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1660,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1662,1
    - Dst: mrb_bint_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1663,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/src/numeric.c:1665,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1668,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1670,1
    - Dst: mrb_bint_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1673,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/src/numeric.c:1673,1
    - Dst: mrb_rational_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1677,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/src/numeric.c:1677,1
    - Dst: mrb_complex_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1681,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/src/numeric.c:1681,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numeric.c:1685,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1687,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1690
    functionName: mrb_int_sub
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_bint_sub
    - mrb_int_sub_overflow
    - mrb_complex_new
    - mrb_integer
    - mrb_complex_sub
    - mrb_raise
    - mrb_int_overflow
    - mrb_float_value
    - mrb_int_value
    - mrb_rational_sub
    - mrb_integer_p
    - mrb_type
    - mrb_rational_new
    - mrb_as_float
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_int_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1705,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1708,1
    - Dst: mrb_bint_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1709,1
    - Dst: mrb_int_sub
      Src: /src/h2o/deps/mruby/src/numeric.c:1712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1702
    functionDepth: 3
    functionLinenumber: 1702
    functionLinenumberEnd: 1713
    functionName: int_sub
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 2
    functionsReached:
    - mrb_bint_sub
    - mrb_get_arg1
    - mrb_bigint_p
    - mrb_int_sub
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_sub(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - len
    - n
    - base
    argTypes:
    - char*
    - size_t
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1746
    functionName: mrb_int_to_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_int_to_cstr(char *buf, size_t len, mrb_int n, mrb_int base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1752,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/numeric.c:1755,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1758,1
    - Dst: mrb_bint_to_s
      Src: /src/h2o/deps/mruby/src/numeric.c:1759,1
    - Dst: mrb_int_to_cstr
      Src: /src/h2o/deps/mruby/src/numeric.c:1762,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/numeric.c:1763,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/numeric.c:1764,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/numeric.c:1765,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/numeric.c:1765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - x
    - base
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1767
    functionName: mrb_integer_to_str
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_bint_to_s
    - mrb_str_ptr
    - mrb_integer
    - RSTR_SET_ASCII_FLAG
    - mrb_str_new_cstr
    - mrb_bigint_p
    - mrb_raisef
    - mrb_int_to_cstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_integer_to_str(mrb_state *mrb, mrb_value x, mrb_int base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/numeric.c:1790,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1792,1
    - Dst: mrb_bint_to_s
      Src: /src/h2o/deps/mruby/src/numeric.c:1793,1
    - Dst: mrb_integer_to_str
      Src: /src/h2o/deps/mruby/src/numeric.c:1796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1785
    functionDepth: 2
    functionLinenumber: 1785
    functionLinenumberEnd: 1797
    functionName: int_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 2
    functionsReached:
    - mrb_bint_to_s
    - mrb_get_args
    - mrb_integer_to_str
    - mrb_bigint_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1804,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/src/numeric.c:1805,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1816,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1818,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1820,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1823,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1825,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1830,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numeric.c:1834,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - mrb
    - v1
    - v2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1848
    functionName: cmpnum
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_bigint_p
    - mrb_type
    - mrb_bint_cmp
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1865,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1868,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1869,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1862
    functionDepth: 2
    functionLinenumber: 1862
    functionLinenumberEnd: 1871
    functionName: num_cmp
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - cmpnum
    - mrb_get_arg1
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_cmp(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/numeric.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - v1
    - v2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1877
    functionName: cmperr
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn cmperr(mrb_state *mrb, mrb_value v1, mrb_value v2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1882,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1885,1
    - Dst: cmperr
      Src: /src/h2o/deps/mruby/src/numeric.c:1886,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1887,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1879
    functionDepth: 2
    functionLinenumber: 1879
    functionLinenumberEnd: 1889
    functionName: num_lt
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - cmpnum
    - cmperr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_lt(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1894,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1897,1
    - Dst: cmperr
      Src: /src/h2o/deps/mruby/src/numeric.c:1898,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1899,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1901
    functionName: num_le
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - cmpnum
    - cmperr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_le(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1906,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1909,1
    - Dst: cmperr
      Src: /src/h2o/deps/mruby/src/numeric.c:1910,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1911,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1913
    functionName: num_gt
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - cmpnum
    - cmperr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_gt(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/numeric.c:1918,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1921,1
    - Dst: cmperr
      Src: /src/h2o/deps/mruby/src/numeric.c:1922,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1923,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1915
    functionDepth: 2
    functionLinenumber: 1915
    functionLinenumberEnd: 1925
    functionName: num_ge
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - cmpnum
    - cmperr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_ge(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numeric.c:1932,1
    - Dst: cmpnum
      Src: /src/h2o/deps/mruby/src/numeric.c:1935,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1937,1
    - Dst: mrb_str_cmp
      Src: /src/h2o/deps/mruby/src/numeric.c:1939,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/numeric.c:1941,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/numeric.c:1941,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/numeric.c:1942,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/numeric.c:1942,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1943,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numeric.c:1943,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/numeric.c:1945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - obj1
    - obj2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1947
    functionName: mrb_cmp
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_funcall_id
    - mrb_respond_to
    - cmpnum
    - MRB_OPSYM
    - mrb_type
    - mrb_integer_p
    - mrb_nil_p
    - mrb_str_cmp
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_cmp(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    functionName: num_finite_p
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_finite_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/numeric.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 1959
    functionName: num_infinite_p
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value num_infinite_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/numeric.c:1971,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1972,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:1972,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1973,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:1973,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/numeric.c:1976,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/numeric.c:1977,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1978,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1979,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1979,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1980,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1980,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1981,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1981,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1982,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1982,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1983,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1983,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1984,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1984,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1986,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:1986,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1987,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:1987,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1989,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1989,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1990,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1990,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1991,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1991,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1992,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1992,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1993,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1993,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1994,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1994,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1995,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1995,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1996,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1996,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1997,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:1997,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1998,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1998,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:1999,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:1999,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2000,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2000,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2001,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2001,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2002,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2002,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2003,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2003,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2005,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2005,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2007,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2007,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2008,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2008,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2009,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2009,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2010,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2010,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/src/numeric.c:2013,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/numeric.c:2013,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/numeric.c:2017,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/numeric.c:2018,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2019,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2020,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2020,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2021,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2021,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2022,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2022,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2023,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2023,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2024,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2024,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2025,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2025,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2026,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2026,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2027,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2027,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2028,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2028,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2029,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2029,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2030,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2030,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2031,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2031,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2032,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2032,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2033,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2033,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2034,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2034,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2035,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2035,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2036,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2036,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2037,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2037,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2038,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2038,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2039,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2039,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2040,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2040,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2041,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2041,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2042,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2042,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2043,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2043,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2044,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2044,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2045,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2045,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2046,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2046,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2047,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/numeric.c:2047,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2048,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2048,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2049,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/numeric.c:2049,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2051,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2051,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2052,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2052,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2053,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2053,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/numeric.c:2054,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/numeric.c:2054,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/numeric.c:2057,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/numeric.c:2057,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:2057,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/numeric.c:2060,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/numeric.c:2060,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numeric.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 1962
    functionDepth: 6
    functionLinenumber: 1962
    functionLinenumberEnd: 2063
    functionName: mrb_init_numeric
    functionSourceFile: /src/h2o/deps/mruby/src/numeric.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_const
    - MRB_SYM
    - mrb_undef_class_method
    - MRB_ARGS_OPT
    - mrb_define_const_id
    - mrb_float_value
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_numeric(mrb_state *mrb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:31,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:34,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:39,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:44,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:47,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:55,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:57,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:59,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:67,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:69,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - mrb
    - p
    - fp
    argTypes:
    - mrb_state*
    - mrb_pool_value*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 74
    functionName: cdump_pool
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - fputs
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cdump_pool(mrb_state *mrb, const mrb_pool_value *p, FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISALPHA
      Src: /src/h2o/deps/mruby/src/cdump.c:80,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/src/cdump.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: sym_name_word_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - ISALPHA
    - ISALNUM
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_word_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_name_word_p
      Src: /src/h2o/deps/mruby/src/cdump.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: sym_name_with_equal_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_word_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_with_equal_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_name_word_p
      Src: /src/h2o/deps/mruby/src/cdump.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: sym_name_with_question_mark_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_word_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_with_question_mark_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_name_word_p
      Src: /src/h2o/deps/mruby/src/cdump.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: sym_name_with_bang_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_word_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_with_bang_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_name_word_p
      Src: /src/h2o/deps/mruby/src/cdump.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: sym_name_ivar_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_word_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_ivar_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_name_ivar_p
      Src: /src/h2o/deps/mruby/src/cdump.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: sym_name_cvar_p
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_ivar_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool sym_name_cvar_p(const char *name, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sym_name
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: OPERATOR_SYMBOL
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPERATOR_SYMBOL(sym_name, name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/cdump.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sym_name
    - len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 179
    functionName: sym_operator_name
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      sym_operator_name(const char *sym_name, mrb_int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:185,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/cdump.c:186,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:187,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/cdump.c:188,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:189,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:190,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/cdump.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - initname
    - key
    - n
    argTypes:
    - mrb_state*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: sym_var_name
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - snprintf
    - mrb_str_cat_cstr
    - mrb_str_new_cstr
    - mrb_str_cat_lit
    linkageType: ''
    returnType: char
    signature: 'char *

      sym_var_name(mrb_state *mrb, const char *initname, const char *key, int n)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:198,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/cdump.c:203,1
    - Dst: sym_name_word_p
      Src: /src/h2o/deps/mruby/src/cdump.c:205,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:206,1
    - Dst: sym_name_with_equal_p
      Src: /src/h2o/deps/mruby/src/cdump.c:208,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:209,1
    - Dst: sym_name_with_question_mark_p
      Src: /src/h2o/deps/mruby/src/cdump.c:211,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:212,1
    - Dst: sym_name_with_bang_p
      Src: /src/h2o/deps/mruby/src/cdump.c:214,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:215,1
    - Dst: sym_name_ivar_p
      Src: /src/h2o/deps/mruby/src/cdump.c:217,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:218,1
    - Dst: sym_name_cvar_p
      Src: /src/h2o/deps/mruby/src/cdump.c:220,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:221,1
    - Dst: sym_operator_name
      Src: /src/h2o/deps/mruby/src/cdump.c:223,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:224,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/cdump.c:228,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/cdump.c:229,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:230,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:231,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:232,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/cdump.c:233,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/cdump.c:234,1
    - Dst: mrb_str_dump
      Src: /src/h2o/deps/mruby/src/cdump.c:234,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/cdump.c:235,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:236,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:238,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 6
    argNames:
    - mrb
    - sym
    - var_name
    - idx
    - init_syms_code
    - fp
    argTypes:
    - mrb_state*
    - mrb_sym
    - char*
    - int
    - mrb_value
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 240
    functionName: cdump_sym
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - sym_name_cvar_p
    - sym_name_with_equal_p
    - mrb_str_dump
    - fputs
    - sym_operator_name
    - sym_name_ivar_p
    - sym_name_with_bang_p
    - snprintf
    - sym_name_word_p
    - mrb_str_cat_cstr
    - mrb_str_cat_str
    - mrb_str_cat_lit
    - mrb_str_new
    - fprintf
    - mrb_sym_name_len
    - sym_name_with_question_mark_p
    linkageType: ''
    returnType: int
    signature: int cdump_sym(mrb_state *mrb, mrb_sym sym, const char *var_name, int
      idx, mrb_value init_syms_code, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/cdump.c:245,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/cdump.c:246,1
    - Dst: sym_var_name
      Src: /src/h2o/deps/mruby/src/cdump.c:247,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:248,1
    - Dst: cdump_sym
      Src: /src/h2o/deps/mruby/src/cdump.c:250,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:252,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/cdump.c:253,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:253,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:254,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/cdump.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - mrb
    - name
    - key
    - n
    - syms_len
    - syms
    - init_syms_code
    - fp
    argTypes:
    - mrb_state*
    - char*
    - char*
    - int
    - int
    - mrb_sym*
    - mrb_value
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: cdump_syms
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - fputs
    - mrb_gc_arena_restore
    - sym_var_name
    - RSTRING_LEN
    - cdump_sym
    - mrb_gc_arena_save
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cdump_syms(mrb_state *mrb, const char *name, const char *key, int
      n, int syms_len, const mrb_sym *syms, mrb_value init_syms_code, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - mrb_irep_debug_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: simple_debug_info
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int simple_debug_info(mrb_irep_debug_info *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: simple_debug_info
      Src: /src/h2o/deps/mruby/src/cdump.c:283,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/cdump.c:288,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:289,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:291,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:292,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/cdump.c:293,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:297,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:299,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:300,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:302,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:307,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:310,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:312,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:317,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:320,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:322,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:325,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:326,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:332,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:334,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - mrb
    - name
    - n
    - info
    - init_syms_code
    - fp
    argTypes:
    - mrb_state*
    - char*
    - int
    - mrb_irep_debug_info*
    - mrb_value
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 338
    functionName: cdump_debug
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - simple_debug_info
    - fputs
    - snprintf
    - mrb_str_cat_cstr
    - fprintf
    - mrb_sym_name_len
    linkageType: ''
    returnType: int
    signature: "int cdump_debug(mrb_state *mrb, const char *name, int n, mrb_irep_debug_info
      *info,\n    mrb_value init_syms_code, FILE *fp)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cdump_irep_struct
      Src: /src/h2o/deps/mruby/src/cdump.c:351,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:354,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:356,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:358,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:363,1
    - Dst: cdump_pool
      Src: /src/h2o/deps/mruby/src/cdump.c:365,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:368,1
    - Dst: cdump_syms
      Src: /src/h2o/deps/mruby/src/cdump.c:372,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:376,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:378,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:379,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:381,1
    - Dst: cdump_syms
      Src: /src/h2o/deps/mruby/src/cdump.c:384,1
    - Dst: cdump_debug
      Src: /src/h2o/deps/mruby/src/cdump.c:388,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:396,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:397,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:398,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:400,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:403,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:406,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:409,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:412,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:415,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:418,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:421,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:424,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:427,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:429,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 8
    argNames:
    - mrb
    - irep
    - flags
    - fp
    - name
    - n
    - init_syms_code
    - mp
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - FILE*
    - char*
    - int
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 432
    functionName: cdump_irep_struct
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 1
    functionsReached:
    - cdump_pool
    - cdump_debug
    - cdump_irep_struct
    - fputs
    - fprintf
    - cdump_syms
    linkageType: ''
    returnType: int
    signature: int cdump_irep_struct(mrb_state *mrb, const mrb_irep *irep, uint8_t
      flags, FILE *fp, const char *name, int n, mrb_value init_syms_code, int *mp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:440,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:448,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:449,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:450,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:451,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/cdump.c:452,1
    - Dst: cdump_irep_struct
      Src: /src/h2o/deps/mruby/src/cdump.c:454,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:456,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:464,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:465,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/cdump.c:466,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:467,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:468,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/cdump.c:468,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/cdump.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - mrb
    - irep
    - flags
    - fp
    - initname
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 471
    functionName: mrb_dump_irep_cstruct
    functionSourceFile: /src/h2o/deps/mruby/src/cdump.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - cdump_irep_struct
    - fputs
    - RSTRING_PTR
    - fprintf
    linkageType: ''
    returnType: int
    signature: int mrb_dump_irep_cstruct(mrb_state *mrb, const mrb_irep *irep, uint8_t
      flags, FILE *fp, const char *initname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/mruby/src/gc.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: gettimeofday_time
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: double
    signature: double gettimeofday_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - with
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: GC_INVOKE_TIME_REPORT
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GC_INVOKE_TIME_REPORT(with)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: DEBUG
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: paint_gray
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paint_gray(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: paint_black
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paint_black(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: paint_white
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paint_white(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: paint_partial_white
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paint_partial_white(s, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: is_gray
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_gray(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: is_white
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_white(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: is_black
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_black(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: is_red
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_red(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: flip_white_part
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flip_white_part(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: other_white_part
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: other_white_part(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: is_dead
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_dead(s, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: objects
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: objects(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: mrb_realloc_simple
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_full_gc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_realloc_simple(mrb_state *mrb, void *p,  size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc_simple
      Src: /src/h2o/deps/mruby/src/gc.c:241,1
    - Dst: mrb_raise_nomemory
      Src: /src/h2o/deps/mruby/src/gc.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: mrb_realloc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - mrb_realloc_simple
    - mrb_raise_nomemory
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_realloc(mrb_state *mrb, void *p, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/gc.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - len
    argTypes:
    - mrb_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: mrb_malloc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 2
    functionsReached:
    - mrb_realloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_malloc(mrb_state *mrb, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc_simple
      Src: /src/h2o/deps/mruby/src/gc.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - len
    argTypes:
    - mrb_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: mrb_malloc_simple
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_realloc_simple
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_malloc_simple(mrb_state *mrb, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/gc.c:275,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/src/gc.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - nelem
    - len
    argTypes:
    - mrb_state*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: mrb_calloc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - memset
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_calloc(mrb_state *mrb, size_t nelem, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: mrb_free
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_free(mrb_state *mrb, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/gc.c:296,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/gc.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - size
    argTypes:
    - mrb_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: mrb_alloca
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_alloca(mrb_state *mrb, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objects
      Src: /src/h2o/deps/mruby/src/gc.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - gc
    - object
    argTypes:
    - mrb_gc*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 316
    functionName: heap_p
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - objects
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool heap_p(mrb_gc *gc, struct RBasic *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heap_p
      Src: /src/h2o/deps/mruby/src/gc.c:321,1
    - Dst: is_dead
      Src: /src/h2o/deps/mruby/src/gc.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - object
    argTypes:
    - mrb_state*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: mrb_object_dead_p
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - heap_p
    - is_dead
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_object_dead_p(mrb_state *mrb, struct RBasic *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - page
    argTypes:
    - mrb_gc*
    - mrb_heap_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: link_heap_page
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link_heap_page(mrb_gc *gc, mrb_heap_page *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - page
    argTypes:
    - mrb_gc*
    - mrb_heap_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: unlink_heap_page
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink_heap_page(mrb_gc *gc, mrb_heap_page *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - page
    argTypes:
    - mrb_gc*
    - mrb_heap_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: link_free_heap_page
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link_free_heap_page(mrb_gc *gc, mrb_heap_page *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - page
    argTypes:
    - mrb_gc*
    - mrb_heap_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: unlink_free_heap_page
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink_free_heap_page(mrb_gc *gc, mrb_heap_page *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/gc.c:373,1
    - Dst: objects
      Src: /src/h2o/deps/mruby/src/gc.c:377,1
    - Dst: link_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:384,1
    - Dst: link_free_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: add_heap
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - objects
    - link_free_heap_page
    - mrb_calloc
    - link_heap_page
    linkageType: ''
    returnType: void
    signature: void add_heap(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: is_generational
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_generational(gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: is_major_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_major_gc(gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: is_minor_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_minor_gc(gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/gc.c:400,1
    - Dst: add_heap
      Src: /src/h2o/deps/mruby/src/gc.c:407,1
    - Dst: gettimeofday_time
      Src: /src/h2o/deps/mruby/src/gc.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 418
    functionName: mrb_gc_init
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - add_heap
    - mrb_malloc
    - gettimeofday_time
    linkageType: ''
    returnType: void
    signature: void mrb_gc_init(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objects
      Src: /src/h2o/deps/mruby/src/gc.c:432,1
    - Dst: obj_free
      Src: /src/h2o/deps/mruby/src/gc.c:434,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: free_heap
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - obj_free
    - mrb_free
    - objects
    linkageType: ''
    returnType: void
    signature: void free_heap(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_heap
      Src: /src/h2o/deps/mruby/src/gc.c:443,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: mrb_gc_destroy
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - free_heap
    linkageType: ''
    returnType: void
    signature: void mrb_gc_destroy(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_red
      Src: /src/h2o/deps/mruby/src/gc.c:452,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/gc.c:457,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/gc.c:457,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/gc.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - gc
    - p
    argTypes:
    - mrb_state*
    - mrb_gc*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 468
    functionName: gc_protect
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_exc_raise
    - is_red
    - mrb_obj_value
    - mrb_realloc
    linkageType: ''
    returnType: void
    signature: void gc_protect(mrb_state *mrb, mrb_gc *gc, struct RBasic *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/gc.c:474,1
    - Dst: gc_protect
      Src: /src/h2o/deps/mruby/src/gc.c:475,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/gc.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: mrb_gc_protect
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_basic_ptr
    - mrb_immediate_p
    - gc_protect
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gc_protect(mrb_state *mrb, mrb_value obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/gc.c:494,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/src/gc.c:496,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/gc.c:497,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/gc.c:497,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/gc.c:498,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/src/gc.c:499,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/gc.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 502
    functionName: mrb_gc_register
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_array_p
    - mrb_ary_push
    - mrb_gv_set
    - mrb_immediate_p
    - mrb_nil_p
    - mrb_gv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gc_register(mrb_state *mrb, mrb_value obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/gc.c:513,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/src/gc.c:515,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/gc.c:516,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/gc.c:517,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/src/gc.c:518,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/gc.c:518,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/gc.c:521,1
    - Dst: mrb_ary_modify
      Src: /src/h2o/deps/mruby/src/gc.c:522,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:523,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/gc.c:524,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/gc.c:524,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/gc.c:524,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:525,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/gc.c:526,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:528,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/gc.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 533
    functionName: mrb_gc_unregister
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_array_p
    - mrb_ary_modify
    - mrb_ary_ptr
    - mrb_ptr
    - ARY_LEN
    - mrb_gv_set
    - mrb_immediate_p
    - memmove
    - ARY_PTR
    - mrb_nil_p
    - mrb_gv_get
    - ARY_SET_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gc_unregister(mrb_state *mrb, mrb_value obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/gc.c:552,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/gc.c:554,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/gc.c:561,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/gc.c:565,1
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:569,1
    - Dst: mrb_incremental_gc
      Src: /src/h2o/deps/mruby/src/gc.c:572,1
    - Dst: add_heap
      Src: /src/h2o/deps/mruby/src/gc.c:575,1
    - Dst: unlink_free_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:581,1
    - Dst: gc_protect
      Src: /src/h2o/deps/mruby/src/gc.c:585,1
    - Dst: paint_partial_white
      Src: /src/h2o/deps/mruby/src/gc.c:589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - mrb
    - ttype
    - cls
    argTypes:
    - mrb_state*
    - enum mrb_vtype
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 591
    functionName: mrb_obj_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gc_protect
    - mrb_raise
    - add_heap
    - mrb_incremental_gc
    - MRB_INSTANCE_TT
    - paint_partial_white
    - mrb_raisef
    - mrb_full_gc
    - unlink_free_heap_page
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_obj_alloc(mrb_state *mrb, enum mrb_vtype ttype, struct RClass *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/h2o/deps/mruby/src/gc.c:598,1
    - Dst: paint_gray
      Src: /src/h2o/deps/mruby/src/gc.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - gc
    - obj
    argTypes:
    - mrb_state*
    - mrb_gc*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: add_gray_list
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - abort
    - paint_gray
    linkageType: ''
    returnType: void
    signature: void add_gray_list(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ci_nregs
      Src: /src/h2o/deps/mruby/src/gc.c:618,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/gc.c:627,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:628,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/gc.c:628,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/gc.c:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct mrb_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 636
    functionName: mark_context_stack
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_basic_ptr
    - mrb_gc_mark
    - mrb_immediate_p
    - mrb_ci_nregs
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void mark_context_stack(mrb_state *mrb, struct mrb_context *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mark_context_stack
      Src: /src/h2o/deps/mruby/src/gc.c:647,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:652,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:653,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct mrb_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 662
    functionName: mark_context
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mark_context_stack
    - mrb_gc_mark
    linkageType: ''
    returnType: void
    signature: void mark_context(mrb_state *mrb, struct mrb_context *c)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:667,1
    - Dst: is_gray
      Src: /src/h2o/deps/mruby/src/gc.c:667,1
    - Dst: paint_black
      Src: /src/h2o/deps/mruby/src/gc.c:668,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:669,1
    - Dst: MRB_FLAG_TEST
      Src: /src/h2o/deps/mruby/src/gc.c:674,1
    - Dst: mrb_gc_mark_mt
      Src: /src/h2o/deps/mruby/src/gc.c:675,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:676,1
    - Dst: mrb_gc_mark_mt
      Src: /src/h2o/deps/mruby/src/gc.c:686,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:687,1
    - Dst: mrb_gc_mark_iv
      Src: /src/h2o/deps/mruby/src/gc.c:693,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:700,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:701,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/gc.c:710,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:711,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:713,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/gc.c:715,1
    - Dst: mark_context
      Src: /src/h2o/deps/mruby/src/gc.c:724,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:732,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/gc.c:733,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/gc.c:736,1
    - Dst: mrb_gc_mark_iv
      Src: /src/h2o/deps/mruby/src/gc.c:742,1
    - Dst: mrb_gc_mark_hash
      Src: /src/h2o/deps/mruby/src/gc.c:743,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/src/gc.c:747,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:749,1
    - Dst: mrb_gc_mark_range
      Src: /src/h2o/deps/mruby/src/gc.c:754,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:760,1
    - Dst: mrb_break_proc_get
      Src: /src/h2o/deps/mruby/src/gc.c:760,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/gc.c:761,1
    - Dst: mrb_break_value_get
      Src: /src/h2o/deps/mruby/src/gc.c:761,1
    - Dst: mrb_gc_mark_iv
      Src: /src/h2o/deps/mruby/src/gc.c:766,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:768,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:770,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 3
    argNames:
    - mrb
    - gc
    - obj
    argTypes:
    - mrb_state*
    - mrb_gc*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 776
    functionName: gc_mark_children
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_gc_mark_range
    - mrb_assert
    - MRB_ENV_LEN
    - mrb_break_proc_get
    - mrb_break_value_get
    - mark_context
    - mrb_gc_mark
    - paint_black
    - ARY_LEN
    - RSTR_FSHARED_P
    - mrb_gc_mark_hash
    - mrb_gc_mark_iv
    - MRB_FLAG_TEST
    - mrb_gc_mark_value
    - ARY_PTR
    - MRB_ENV_ONSTACK_P
    - mrb_gc_mark_mt
    - is_gray
    linkageType: ''
    returnType: void
    signature: void gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_white
      Src: /src/h2o/deps/mruby/src/gc.c:782,1
    - Dst: is_red
      Src: /src/h2o/deps/mruby/src/gc.c:783,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:784,1
    - Dst: add_gray_list
      Src: /src/h2o/deps/mruby/src/gc.c:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: mrb_gc_mark
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 3
    functionsReached:
    - is_white
    - is_red
    - add_gray_list
    - mrb_assert
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_gc_mark(mrb_state *mrb, struct RBasic *obj)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/h2o/deps/mruby/src/gc.c:791,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/gc.c:791,1
    - Dst: mrb_gc_free_iv
      Src: /src/h2o/deps/mruby/src/gc.c:794,1
    - Dst: mrb_gc_free_iv
      Src: /src/h2o/deps/mruby/src/gc.c:798,1
    - Dst: mrb_gc_free_mt
      Src: /src/h2o/deps/mruby/src/gc.c:804,1
    - Dst: mrb_gc_free_iv
      Src: /src/h2o/deps/mruby/src/gc.c:805,1
    - Dst: mrb_mc_clear_by_class
      Src: /src/h2o/deps/mruby/src/gc.c:807,1
    - Dst: MRB_FLAG_TEST
      Src: /src/h2o/deps/mruby/src/gc.c:810,1
    - Dst: mrb_gc_free_mt
      Src: /src/h2o/deps/mruby/src/gc.c:811,1
    - Dst: mrb_mc_clear_by_class
      Src: /src/h2o/deps/mruby/src/gc.c:813,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/gc.c:819,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:824,1
    - Dst: mrb_object_dead_p
      Src: /src/h2o/deps/mruby/src/gc.c:840,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/gc.c:841,1
    - Dst: mrb_env_unshare
      Src: /src/h2o/deps/mruby/src/gc.c:842,1
    - Dst: mrb_free_context
      Src: /src/h2o/deps/mruby/src/gc.c:847,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/gc.c:854,1
    - Dst: mrb_ary_decref
      Src: /src/h2o/deps/mruby/src/gc.c:855,1
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/gc.c:856,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:857,1
    - Dst: mrb_gc_free_iv
      Src: /src/h2o/deps/mruby/src/gc.c:861,1
    - Dst: mrb_gc_free_hash
      Src: /src/h2o/deps/mruby/src/gc.c:862,1
    - Dst: mrb_gc_free_str
      Src: /src/h2o/deps/mruby/src/gc.c:866,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/gc.c:873,1
    - Dst: mrb_irep_cutref
      Src: /src/h2o/deps/mruby/src/gc.c:876,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/src/gc.c:878,1
    - Dst: mrb_gc_free_range
      Src: /src/h2o/deps/mruby/src/gc.c:884,1
    - Dst: struct RData*::type::dfree
      Src: /src/h2o/deps/mruby/src/gc.c:891,1
    - Dst: mrb_gc_free_iv
      Src: /src/h2o/deps/mruby/src/gc.c:893,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:901,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:910,1
    - Dst: mrb_gc_free_bint
      Src: /src/h2o/deps/mruby/src/gc.c:917,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 94
    argCount: 3
    argNames:
    - mrb
    - obj
    - end
    argTypes:
    - mrb_state*
    - struct RBasic*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 925
    functionName: obj_free
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - mrb_gc_free_mt
    - ARY_EMBED_P
    - mrb_free_context
    - mrb_gc_free_range
    - MRB_FLAG_TEST
    - ARY_SHARED_P
    - mrb_gc_free_str
    - mrb_gc_free_iv
    - mrb_irep_decref
    - struct RData*::type::dfree
    - mrb_free
    - fprintf
    - MRB_ENV_ONSTACK_P
    - mrb_object_dead_p
    - mrb_irep_cutref
    - mrb_ary_decref
    - MRB_PROC_CFUNC_P
    - mrb_gc_free_hash
    - mrb_env_unshare
    - mrb_mc_clear_by_class
    - mrb_gc_free_bint
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void obj_free(mrb_state *mrb, struct RBasic *obj, int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_minor_gc
      Src: /src/h2o/deps/mruby/src/gc.c:932,1
    - Dst: mrb_gc_mark_gv
      Src: /src/h2o/deps/mruby/src/gc.c:937,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:940,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:943,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:946,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:947,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:948,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:949,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:950,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:951,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:952,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:955,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:957,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:958,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:959,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:960,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:961,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:962,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:964,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:965,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:968,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:970,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:972,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:973,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:975,1
    - Dst: mark_context
      Src: /src/h2o/deps/mruby/src/gc.c:978,1
    - Dst: mark_context
      Src: /src/h2o/deps/mruby/src/gc.c:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 927
    functionDepth: 4
    functionLinenumber: 927
    functionLinenumberEnd: 982
    functionName: root_scan_phase
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mark_context
    - mrb_gc_mark_gv
    - is_minor_gc
    - mrb_gc_mark
    linkageType: ''
    returnType: void
    signature: void root_scan_phase(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_mark_iv_size
      Src: /src/h2o/deps/mruby/src/gc.c:1001,1
    - Dst: mrb_gc_mark_mt_size
      Src: /src/h2o/deps/mruby/src/gc.c:1002,1
    - Dst: mrb_gc_mark_iv_size
      Src: /src/h2o/deps/mruby/src/gc.c:1009,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:1013,1
    - Dst: mrb_ci_nregs
      Src: /src/h2o/deps/mruby/src/gc.c:1028,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/gc.c:1046,1
    - Dst: mrb_gc_mark_iv_size
      Src: /src/h2o/deps/mruby/src/gc.c:1051,1
    - Dst: mrb_gc_mark_hash_size
      Src: /src/h2o/deps/mruby/src/gc.c:1052,1
    - Dst: mrb_gc_mark_iv_size
      Src: /src/h2o/deps/mruby/src/gc.c:1062,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - mrb
    - gc
    - obj
    argTypes:
    - mrb_state*
    - mrb_gc*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1075
    functionName: gc_gray_counts
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_LEN
    - mrb_gc_mark_mt_size
    - mrb_gc_mark_hash_size
    - ARY_LEN
    - mrb_ci_nregs
    - mrb_gc_mark_iv_size
    linkageType: ''
    returnType: size_t
    signature: size_t gc_gray_counts(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_children
      Src: /src/h2o/deps/mruby/src/gc.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1085
    functionName: gc_mark_gray_list
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gc_mark_children
    linkageType: ''
    returnType: void
    signature: void gc_mark_gray_list(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_mark_children
      Src: /src/h2o/deps/mruby/src/gc.c:1096,1
    - Dst: gc_gray_counts
      Src: /src/h2o/deps/mruby/src/gc.c:1097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - gc
    - limit
    argTypes:
    - mrb_state*
    - mrb_gc*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1088
    functionDepth: 5
    functionLinenumber: 1088
    functionLinenumberEnd: 1101
    functionName: incremental_marking_phase
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gc_gray_counts
    - gc_mark_children
    linkageType: ''
    returnType: size_t
    signature: size_t incremental_marking_phase(mrb_state *mrb, mrb_gc *gc, size_t
      limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:1110,1
    - Dst: mrb_gc_mark_gv
      Src: /src/h2o/deps/mruby/src/gc.c:1112,1
    - Dst: mark_context
      Src: /src/h2o/deps/mruby/src/gc.c:1113,1
    - Dst: mark_context
      Src: /src/h2o/deps/mruby/src/gc.c:1115,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/gc.c:1117,1
    - Dst: gc_mark_gray_list
      Src: /src/h2o/deps/mruby/src/gc.c:1118,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1119,1
    - Dst: gc_mark_gray_list
      Src: /src/h2o/deps/mruby/src/gc.c:1122,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1103
    functionDepth: 6
    functionLinenumber: 1103
    functionLinenumberEnd: 1124
    functionName: final_marking_phase
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_gc_mark_gv
    - mrb_assert
    - mark_context
    - mrb_gc_mark
    - gc_mark_gray_list
    linkageType: ''
    returnType: void
    signature: void final_marking_phase(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1132
    functionName: prepare_incremental_sweep
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_incremental_sweep(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: objects
      Src: /src/h2o/deps/mruby/src/gc.c:1141,1
    - Dst: is_minor_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1147,1
    - Dst: is_dead
      Src: /src/h2o/deps/mruby/src/gc.c:1153,1
    - Dst: obj_free
      Src: /src/h2o/deps/mruby/src/gc.c:1155,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1167,1
    - Dst: paint_partial_white
      Src: /src/h2o/deps/mruby/src/gc.c:1168,1
    - Dst: unlink_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:1178,1
    - Dst: unlink_free_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:1179,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/gc.c:1180,1
    - Dst: link_free_heap_page
      Src: /src/h2o/deps/mruby/src/gc.c:1185,1
    - Dst: is_minor_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1187,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - mrb
    - gc
    - limit
    argTypes:
    - mrb_state*
    - mrb_gc*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1134
    functionDepth: 4
    functionLinenumber: 1134
    functionLinenumberEnd: 1199
    functionName: incremental_sweep_phase
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - unlink_free_heap_page
    - link_free_heap_page
    - objects
    - is_dead
    - mrb_free
    - is_minor_gc
    - paint_partial_white
    - obj_free
    - unlink_heap_page
    - is_generational
    linkageType: ''
    returnType: size_t
    signature: size_t incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: root_scan_phase
      Src: /src/h2o/deps/mruby/src/gc.c:1206,1
    - Dst: flip_white_part
      Src: /src/h2o/deps/mruby/src/gc.c:1208,1
    - Dst: incremental_marking_phase
      Src: /src/h2o/deps/mruby/src/gc.c:1212,1
    - Dst: final_marking_phase
      Src: /src/h2o/deps/mruby/src/gc.c:1215,1
    - Dst: prepare_incremental_sweep
      Src: /src/h2o/deps/mruby/src/gc.c:1216,1
    - Dst: incremental_sweep_phase
      Src: /src/h2o/deps/mruby/src/gc.c:1221,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - mrb
    - gc
    - limit
    argTypes:
    - mrb_state*
    - mrb_gc*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1201
    functionDepth: 7
    functionLinenumber: 1201
    functionLinenumberEnd: 1231
    functionName: incremental_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - final_marking_phase
    - incremental_sweep_phase
    - incremental_marking_phase
    - flip_white_part
    - prepare_incremental_sweep
    - root_scan_phase
    linkageType: ''
    returnType: size_t
    signature: size_t incremental_gc(mrb_state *mrb, mrb_gc *gc, size_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incremental_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - gc
    - to_state
    argTypes:
    - mrb_state*
    - mrb_gc*
    - mrb_gc_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1233
    functionDepth: 8
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: incremental_gc_until
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - incremental_gc
    linkageType: ''
    returnType: void
    signature: void incremental_gc_until(mrb_state *mrb, mrb_gc *gc, mrb_gc_state
      to_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: incremental_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1241
    functionDepth: 8
    functionLinenumber: 1241
    functionLinenumberEnd: 1253
    functionName: incremental_gc_step
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - incremental_gc
    linkageType: ''
    returnType: void
    signature: void incremental_gc_step(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1260,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1260,1
    - Dst: is_major_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1261,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1263,1
    - Dst: prepare_incremental_sweep
      Src: /src/h2o/deps/mruby/src/gc.c:1269,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - gc
    argTypes:
    - mrb_state*
    - mrb_gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1255
    functionDepth: 9
    functionLinenumber: 1255
    functionLinenumberEnd: 1275
    functionName: clear_all_old
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - is_major_gc
    - prepare_incremental_sweep
    - incremental_gc_until
    - is_generational
    linkageType: ''
    returnType: void
    signature: void clear_all_old(mrb_state *mrb, mrb_gc *gc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GC_INVOKE_TIME_REPORT
      Src: /src/h2o/deps/mruby/src/gc.c:1284,1
    - Dst: is_minor_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1287,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1288,1
    - Dst: incremental_gc_step
      Src: /src/h2o/deps/mruby/src/gc.c:1291,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1295,1
    - Dst: is_major_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1301,1
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1311,1
    - Dst: is_minor_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1314,1
    - Dst: clear_all_old
      Src: /src/h2o/deps/mruby/src/gc.c:1316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1277
    functionDepth: 10
    functionLinenumber: 1277
    functionLinenumberEnd: 1323
    functionName: mrb_incremental_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - GC_INVOKE_TIME_REPORT
    - incremental_gc_step
    - clear_all_old
    - is_minor_gc
    - is_major_gc
    - incremental_gc_until
    - mrb_full_gc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_incremental_gc(mrb_state *mrb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GC_INVOKE_TIME_REPORT
      Src: /src/h2o/deps/mruby/src/gc.c:1334,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1337,1
    - Dst: clear_all_old
      Src: /src/h2o/deps/mruby/src/gc.c:1339,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1344,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1347,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1350,1
    - Dst: malloc_trim
      Src: /src/h2o/deps/mruby/src/gc.c:1356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1326
    functionDepth: 10
    functionLinenumber: 1326
    functionLinenumberEnd: 1359
    functionName: mrb_full_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 3
    functionsReached:
    - GC_INVOKE_TIME_REPORT
    - clear_all_old
    - incremental_gc_until
    - malloc_trim
    - is_generational
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_full_gc(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1361
    functionDepth: 11
    functionLinenumber: 1361
    functionLinenumberEnd: 1365
    functionName: mrb_garbage_collect
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_full_gc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_garbage_collect(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_black
      Src: /src/h2o/deps/mruby/src/gc.c:1377,1
    - Dst: is_white
      Src: /src/h2o/deps/mruby/src/gc.c:1378,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1380,1
    - Dst: is_dead
      Src: /src/h2o/deps/mruby/src/gc.c:1380,1
    - Dst: is_dead
      Src: /src/h2o/deps/mruby/src/gc.c:1380,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1381,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1381,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1383,1
    - Dst: add_gray_list
      Src: /src/h2o/deps/mruby/src/gc.c:1384,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1387,1
    - Dst: paint_partial_white
      Src: /src/h2o/deps/mruby/src/gc.c:1388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - mrb
    - obj
    - value
    argTypes:
    - mrb_state*
    - struct RBasic*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1390
    functionName: mrb_field_write_barrier
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - is_dead
    - is_black
    - is_white
    - add_gray_list
    - paint_partial_white
    - is_generational
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_field_write_barrier(mrb_state *mrb, struct RBasic *obj,
      struct RBasic *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_black
      Src: /src/h2o/deps/mruby/src/gc.c:1406,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1408,1
    - Dst: is_dead
      Src: /src/h2o/deps/mruby/src/gc.c:1408,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1409,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1409,1
    - Dst: paint_gray
      Src: /src/h2o/deps/mruby/src/gc.c:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1413
    functionName: mrb_write_barrier
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - is_dead
    - is_black
    - paint_gray
    - is_generational
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_write_barrier(mrb_state *mrb, struct RBasic *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1426,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/gc.c:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1423
    functionDepth: 11
    functionLinenumber: 1423
    functionLinenumberEnd: 1428
    functionName: gc_start
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_full_gc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_start(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/gc.c:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1451
    functionName: gc_enable
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_enable(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/gc.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: gc_disable
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_disable(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/gc.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1487
    functionName: gc_interval_ratio_get
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_interval_ratio_get(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/gc.c:1503,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/gc.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1506
    functionName: gc_interval_ratio_set
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_interval_ratio_set(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/gc.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1520
    functionName: gc_step_ratio_get
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_step_ratio_get(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/gc.c:1536,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/gc.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1539
    functionName: gc_step_ratio_set
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_step_ratio_set(mrb_state *mrb, mrb_value obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/gc.c:1545,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1548,1
    - Dst: clear_all_old
      Src: /src/h2o/deps/mruby/src/gc.c:1549,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/gc.c:1550,1
    - Dst: is_generational
      Src: /src/h2o/deps/mruby/src/gc.c:1553,1
    - Dst: incremental_gc_until
      Src: /src/h2o/deps/mruby/src/gc.c:1554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - gc
    - enable
    argTypes:
    - mrb_state*
    - mrb_gc*
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1541
    functionDepth: 10
    functionLinenumber: 1541
    functionLinenumberEnd: 1559
    functionName: change_gen_gc_mode
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_raise
    - clear_all_old
    - incremental_gc_until
    - is_generational
    linkageType: ''
    returnType: void
    signature: void change_gen_gc_mode(mrb_state *mrb, mrb_gc *gc, mrb_bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/gc.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: gc_generational_mode_get
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_generational_mode_get(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/gc.c:1588,1
    - Dst: change_gen_gc_mode
      Src: /src/h2o/deps/mruby/src/gc.c:1590,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/gc.c:1592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1583
    functionDepth: 11
    functionLinenumber: 1583
    functionLinenumberEnd: 1593
    functionName: gc_generational_mode_set
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - change_gen_gc_mode
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value gc_generational_mode_set(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objects
      Src: /src/h2o/deps/mruby/src/gc.c:1606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - gc
    - callback
    - data
    argTypes:
    - mrb_state*
    - mrb_gc*
    - mrb_each_object_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1613
    functionName: gc_each_objects
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - objects
    linkageType: ''
    returnType: void
    signature: void gc_each_objects(mrb_state *mrb, mrb_gc *gc, mrb_each_object_callback
      *callback, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_full_gc
      Src: /src/h2o/deps/mruby/src/gc.c:1620,1
    - Dst: gc_each_objects
      Src: /src/h2o/deps/mruby/src/gc.c:1623,1
    - Dst: gc_each_objects
      Src: /src/h2o/deps/mruby/src/gc.c:1631,1
    - Dst: MRB_THROW
      Src: /src/h2o/deps/mruby/src/gc.c:1637,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/gc.c:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - callback
    - data
    argTypes:
    - mrb_state*
    - mrb_each_object_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1615
    functionDepth: 11
    functionLinenumber: 1615
    functionLinenumberEnd: 1640
    functionName: mrb_objspace_each_objects
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gc_each_objects
    - MRB_END_EXC
    - mrb_full_gc
    - MRB_THROW
    linkageType: ''
    returnType: void
    signature: void mrb_objspace_each_objects(mrb_state *mrb, mrb_each_object_callback
      *callback, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_each_objects
      Src: /src/h2o/deps/mruby/src/gc.c:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1634
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - gc_each_objects
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_THROW
      Src: /src/h2o/deps/mruby/src/gc.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1638
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - MRB_THROW
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1646
    functionName: mrb_objspace_page_slot_size
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_objspace_page_slot_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_static_assert_object_size
      Src: /src/h2o/deps/mruby/src/gc.c:1654,1
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/src/gc.c:1656,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1658,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1658,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1659,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1659,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1660,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1660,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1661,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1661,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1662,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/gc.c:1662,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1663,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1663,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1664,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/gc.c:1664,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1665,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/gc.c:1665,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/gc.c:1666,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/gc.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1667
    functionName: mrb_init_gc
    functionSourceFile: /src/h2o/deps/mruby/src/gc.c
    functionUses: 0
    functionsReached:
    - mrb_static_assert_object_size
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_init_gc(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/src/compar.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: mrb_init_comparable
    functionSourceFile: /src/h2o/deps/mruby/src/compar.c
    functionUses: 0
    functionsReached:
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_init_comparable(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/error.c:24,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/error.c:25,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:27,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/error.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - exc
    - mesg
    argTypes:
    - mrb_state*
    - struct RException*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: mrb_exc_mesg_set
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_obj_as_string
    - mrb_field_write_barrier_value
    - mrb_obj_ptr
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void mrb_exc_mesg_set(mrb_state *mrb, struct RException *exc, mrb_value
      mesg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/error.c:34,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - struct RException*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: mrb_exc_mesg_get
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exc_mesg_get(mrb_state *mrb, struct RException *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/error.c:41,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/error.c:43,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:44,1
    - Dst: mrb_exc_mesg_set
      Src: /src/h2o/deps/mruby/src/error.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - c
    - str
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: mrb_exc_new_str
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_ensure_string_type
    - mrb_exc_mesg_set
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/error.c:52,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/error.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - c
    - ptr
    - len
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: mrb_exc_new
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new_str
    - mrb_str_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_exc_new(mrb_state *mrb, struct RClass *c, const char *ptr,
      mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/error.c:68,1
    - Dst: mrb_exc_mesg_set
      Src: /src/h2o/deps/mruby/src/error.c:69,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/error.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: exc_initialize
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_exc_mesg_set
    - mrb_get_args
    - mrb_exc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exc_initialize(mrb_state *mrb, mrb_value exc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/error.c:94,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/error.c:96,1
    - Dst: mrb_obj_clone
      Src: /src/h2o/deps/mruby/src/error.c:97,1
    - Dst: mrb_exc_mesg_set
      Src: /src/h2o/deps/mruby/src/error.c:98,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/error.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: exc_exception
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_exc_mesg_set
    - mrb_get_args
    - mrb_obj_equal
    - mrb_obj_clone
    - mrb_exc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exc_exception(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_mesg_get
      Src: /src/h2o/deps/mruby/src/error.c:114,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/error.c:114,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/error.c:117,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/error.c:118,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/src/error.c:118,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: exc_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_exc_mesg_get
    - mrb_obj_classname
    - mrb_obj_ptr
    - mrb_str_new_cstr
    - mrb_exc_ptr
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exc_to_s(mrb_state *mrb, mrb_value exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_to_s
      Src: /src/h2o/deps/mruby/src/error.c:140,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:140,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/error.c:140,1
    - Dst: mrb_exc_mesg_get
      Src: /src/h2o/deps/mruby/src/error.c:141,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/error.c:141,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/error.c:142,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/error.c:142,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/error.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: mrb_exc_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_exc_mesg_get
    - mrb_nil_p
    - RSTRING_LEN
    - mrb_mod_to_s
    - mrb_format
    - mrb_obj_value
    - mrb_exc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exc_inspect(mrb_state *mrb, mrb_value exc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/error.c:150,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/error.c:152,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/error.c:155,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/error.c:156,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/error.c:159,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/error.c:163,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:163,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/error.c:164,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/error.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - exc
    - backtrace
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 165
    functionName: set_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_basic_ptr
    - mrb_array_p
    - mrb_raise
    - mrb_field_write_barrier_value
    - mrb_obj_ptr
    - RARRAY_LEN
    - mrb_exc_ptr
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void set_backtrace(mrb_state *mrb, mrb_value exc, mrb_value backtrace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/error.c:170,1
    - Dst: set_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: exc_set_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - set_backtrace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exc_set_backtrace(mrb_state *mrb, mrb_value exc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/error.c:179,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:183,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/src/error.c:188,1
    - Dst: mrb_keep_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 192
    functionName: mrb_exc_set
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_keep_backtrace
    - mrb_obj_ptr
    - mrb_frozen_p
    linkageType: ''
    returnType: void
    signature: void mrb_exc_set(mrb_state *mrb, mrb_value exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_p
      Src: /src/h2o/deps/mruby/src/error.c:198,1
    - Dst: abort
      Src: /src/h2o/deps/mruby/src/error.c:199,1
    - Dst: MRB_THROW
      Src: /src/h2o/deps/mruby/src/error.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: exc_throw
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - abort
    - mrb_p
    - MRB_THROW
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn exc_throw(mrb_state *mrb, mrb_value exc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_break_p
      Src: /src/h2o/deps/mruby/src/error.c:207,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:208,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/error.c:211,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/error.c:212,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/error.c:214,1
    - Dst: exc_throw
      Src: /src/h2o/deps/mruby/src/error.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: mrb_exc_raise
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 2
    functionsReached:
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_break_p
    - exc_throw
    - mrb_obj_ptr
    - mrb_exc_set
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_exc_raise(mrb_state *mrb, mrb_value exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/error.c:222,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/error.c:222,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/error.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - c
    - msg
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: mrb_raise
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 25
    functionsReached:
    - mrb_exc_raise
    - mrb_exc_new_str
    - mrb_str_new_cstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/error.c:272,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/error.c:273,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:286,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:292,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:294,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:294,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/error.c:296,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/error.c:300,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:300,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:304,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:305,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/error.c:308,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/error.c:312,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/error.c:313,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/error.c:315,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/error.c:319,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:319,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/error.c:321,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:321,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:325,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/error.c:326,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/error.c:329,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:329,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:332,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/error.c:335,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/error.c:337,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/error.c:340,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/error.c:341,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:345,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:347,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:350,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/error.c:352,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/error.c:355,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/error.c:356,1
    - Dst: mrb_true_p
      Src: /src/h2o/deps/mruby/src/error.c:356,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/error.c:369,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/error.c:379,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 118
    argCount: 3
    argNames:
    - mrb
    - format
    - ap
    argTypes:
    - mrb_state*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 381
    functionName: mrb_vformat
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_true_p
    - mrb_str_new_capa
    - mrb_gc_arena_save
    - mrb_float_value
    - mrb_class
    - mrb_type
    - mrb_test
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_obj_value
    - va_arg
    - mrb_obj_class
    - mrb_str_cat
    - mrb_int_value
    - mrb_symbol_value
    - strlen
    - RSTRING_LEN
    - mrb_str_new
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_vformat(mrb_state *mrb, const char *format, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:389,1
    - Dst: mrb_vformat
      Src: /src/h2o/deps/mruby/src/error.c:390,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - format
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: mrb_format
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - mrb_vformat
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_format(mrb_state *mrb, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vformat
      Src: /src/h2o/deps/mruby/src/error.c:399,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/error.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - c
    - fmt
    - ap
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: error_va
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new_str
    - mrb_vformat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value error_va(mrb_state *mrb, struct RClass *c, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:409,1
    - Dst: error_va
      Src: /src/h2o/deps/mruby/src/error.c:410,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:411,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/error.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - c
    - fmt
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: mrb_raisef
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 17
    functionsReached:
    - mrb_exc_raise
    - va_end
    - error_va
    - va_start
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:422,1
    - Dst: error_va
      Src: /src/h2o/deps/mruby/src/error.c:423,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:424,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/error.c:425,1
    - Dst: MRB_IVSYM
      Src: /src/h2o/deps/mruby/src/error.c:425,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/error.c:425,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/error.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - id
    - fmt
    argTypes:
    - mrb_state*
    - mrb_sym
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: mrb_name_error
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 2
    functionsReached:
    - error_va
    - va_start
    - mrb_iv_set
    - MRB_IVSYM
    - mrb_exc_raise
    - mrb_symbol_value
    - va_end
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:436,1
    - Dst: mrb_vformat
      Src: /src/h2o/deps/mruby/src/error.c:437,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/error.c:438,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/src/error.c:439,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/error.c:439,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/error.c:439,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/src/error.c:440,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - fmt
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 443
    functionName: mrb_warn
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - fwrite
    - va_start
    - RSTRING_PTR
    - fputs
    - putc
    - RSTRING_LEN
    - mrb_vformat
    - va_end
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_warn(mrb_state *mrb, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:452,1
    - Dst: mrb_vformat
      Src: /src/h2o/deps/mruby/src/error.c:453,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/error.c:454,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/src/error.c:455,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/error.c:455,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/error.c:455,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:456,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/src/error.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - fmt
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 459
    functionName: mrb_bug
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 1
    functionsReached:
    - fwrite
    - va_start
    - RSTRING_PTR
    - fputs
    - exit
    - RSTRING_LEN
    - mrb_vformat
    - va_end
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_bug(mrb_state *mrb, const char *fmt, ...)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/error.c:467,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/error.c:472,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/error.c:474,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/error.c:475,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/error.c:486,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/error.c:487,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/error.c:488,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/error.c:492,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/error.c:498,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/error.c:502,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/error.c:503,1
    - Dst: set_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:505,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - mrb
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 461
    functionDepth: 4
    functionLinenumber: 461
    functionLinenumberEnd: 509
    functionName: mrb_make_exception
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_exc_new_str
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_respond_to
    - set_backtrace
    - mrb_argnum_error
    - mrb_nil_value
    - mrb_funcall_argv
    - mrb_nil_p
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_make_exception(mrb_state *mrb, mrb_int argc, const mrb_value
      *argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_defined_id
      Src: /src/h2o/deps/mruby/src/error.c:518,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/error.c:518,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/src/error.c:519,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/error.c:519,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/error.c:521,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:521,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/error.c:521,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/error.c:521,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/src/error.c:521,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/error.c:524,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:524,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/error.c:524,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/error.c:524,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/error.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - mesg
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 529
    functionName: mrb_sys_fail
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_raise
    - mrb_funcall_id
    - mrb_class_defined_id
    - mrb_str_new_cstr
    - mrb_fixnum_value
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_sys_fail(mrb_state *mrb, const char *mesg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/error.c:537,1
    - Dst: error_va
      Src: /src/h2o/deps/mruby/src/error.c:538,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/error.c:539,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/error.c:540,1
    - Dst: MRB_IVSYM
      Src: /src/h2o/deps/mruby/src/error.c:540,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/error.c:540,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/error.c:541,1
    - Dst: MRB_IVSYM
      Src: /src/h2o/deps/mruby/src/error.c:541,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/error.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - id
    - args
    - fmt
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: mrb_no_method_error
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - error_va
    - va_start
    - mrb_iv_set
    - MRB_IVSYM
    - mrb_exc_raise
    - mrb_symbol_value
    - va_end
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_value args,
      char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/error.c:548,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - frozen_obj
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: mrb_frozen_error
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_frozen_error(mrb_state *mrb, void *frozen_obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/error.c:556,1
    - Dst: FMT
      Src: /src/h2o/deps/mruby/src/error.c:556,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/error.c:558,1
    - Dst: FMT
      Src: /src/h2o/deps/mruby/src/error.c:558,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/error.c:560,1
    - Dst: FMT
      Src: /src/h2o/deps/mruby/src/error.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - argc
    - min
    - max
    argTypes:
    - mrb_state*
    - mrb_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: mrb_argnum_error
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 1
    functionsReached:
    - mrb_raisef
    - FMT
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_argnum_error(mrb_state *mrb, mrb_int argc, int min, int
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: FMT
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FMT(exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: body
      Src: /src/h2o/deps/mruby/src/error.c:575,1
    - Dst: mrb_p
      Src: /src/h2o/deps/mruby/src/error.c:579,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:579,1
    - Dst: mrb_core_init_printabort
      Src: /src/h2o/deps/mruby/src/error.c:583,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/error.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - opaque
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 590
    functionName: mrb_core_init_protect
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_p
    - MRB_END_EXC
    - mrb_core_init_printabort
    - mrb_obj_value
    - body
    linkageType: ''
    returnType: int
    signature: int mrb_core_init_protect(mrb_state *mrb, void (*body)(mrb_state *,
      void *), void *opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: body
      Src: /src/h2o/deps/mruby/src/error.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 577
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - body
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_p
      Src: /src/h2o/deps/mruby/src/error.c:579,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:579,1
    - Dst: mrb_core_init_printabort
      Src: /src/h2o/deps/mruby/src/error.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 585
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_core_init_printabort
    - mrb_p
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exc_throw
      Src: /src/h2o/deps/mruby/src/error.c:596,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/error.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: mrb_core_init_abort
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - exc_throw
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn mrb_core_init_abort(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/error.c:612,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/error.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 619
    functionName: mrb_protect_atexit
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - MRB_END_EXC
    linkageType: ''
    returnType: void
    signature: void mrb_protect_atexit(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 610
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/error.c:625,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/error.c:625,1
    - Dst: mrb_core_init_abort
      Src: /src/h2o/deps/mruby/src/error.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: mrb_raise_nomemory
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 1
    functionsReached:
    - mrb_exc_raise
    - mrb_obj_value
    - mrb_core_init_abort
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn mrb_raise_nomemory(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_print_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:640,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/error.c:643,1
    - Dst: mrb_print_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 650
    functionName: mrb_print_error
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_print_backtrace
    - MRB_END_EXC
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_print_error(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_print_backtrace
      Src: /src/h2o/deps/mruby/src/error.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_print_backtrace
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:657,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/error.c:658,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/error.c:659,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/error.c:659,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:660,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/error.c:660,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:661,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/error.c:661,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:662,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/error.c:662,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:663,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/error.c:663,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:664,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/error.c:664,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/error.c:665,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/error.c:665,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:667,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:668,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:669,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:670,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:671,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:672,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/error.c:672,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/error.c:674,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:675,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/error.c:675,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/error.c:677,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/error.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 679
    functionName: mrb_init_exception
    functionSourceFile: /src/h2o/deps/mruby/src/error.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_exc_new_lit
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - mrb_obj_ptr
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_exception(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_init
      Src: /src/h2o/deps/mruby/src/state.c:30,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/state.c:31,1
    - Dst: mrb_init_core
      Src: /src/h2o/deps/mruby/src/state.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - opaque
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: init_gc_and_core
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_gc_init
    - mrb_init_core
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void init_gc_and_core(mrb_state *mrb, void *opaque)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_core_init_protect
      Src: /src/h2o/deps/mruby/src/state.c:53,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/src/state.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - f
    - ud
    argTypes:
    - mrb_allocf
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: mrb_open_core
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_core_init_protect
    - mrb_close
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_open_core(mrb_allocf f, void *ud)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/mruby/src/state.c:65,1
    - Dst: realloc
      Src: /src/h2o/deps/mruby/src/state.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - p
    - size
    - ud
    argTypes:
    - mrb_state*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: mrb_default_allocf
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - realloc
    - free
    linkageType: ''
    returnType: void
    signature: 'void *

      mrb_default_allocf(mrb_state *mrb, void *p, size_t size, void *ud)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open_allocf
      Src: /src/h2o/deps/mruby/src/state.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: mrb_open
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 2
    functionsReached:
    - mrb_open_allocf
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_open(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_init_mrbgems
      Src: /src/h2o/deps/mruby/src/state.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - opaque
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: init_mrbgems
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_init_mrbgems
    linkageType: ''
    returnType: void
    signature: void init_mrbgems(mrb_state *mrb, void *opaque)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open_core
      Src: /src/h2o/deps/mruby/src/state.c:92,1
    - Dst: mrb_core_init_protect
      Src: /src/h2o/deps/mruby/src/state.c:99,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/src/state.c:100,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/state.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - f
    - ud
    argTypes:
    - mrb_allocf
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: mrb_open_allocf
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_core_init_protect
    - mrb_open_core
    - mrb_close
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_open_allocf(mrb_allocf f, void *ud)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_garbage_collect
      Src: /src/h2o/deps/mruby/src/state.c:115,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/state.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 12
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: mrb_irep_incref
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_garbage_collect
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void mrb_irep_incref(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_irep_free
      Src: /src/h2o/deps/mruby/src/state.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: mrb_irep_decref
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_irep_free
    linkageType: ''
    returnType: void
    signature: void mrb_irep_decref(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/src/state.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: mrb_irep_cutref
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_irep_decref
    linkageType: ''
    returnType: void
    signature: void mrb_irep_cutref(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:156,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:161,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:164,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:166,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/src/state.c:170,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:172,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:174,1
    - Dst: mrb_debug_info_free
      Src: /src/h2o/deps/mruby/src/state.c:175,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: mrb_irep_free
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_free
    - mrb_irep_decref
    - mrb_debug_info_free
    linkageType: ''
    returnType: void
    signature: void mrb_irep_free(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:183,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:184,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct mrb_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: mrb_free_context
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 1
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_free_context(mrb_state *mrb, struct mrb_context *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_protect_atexit
      Src: /src/h2o/deps/mruby/src/state.c:194,1
    - Dst: mrb_gc_destroy
      Src: /src/h2o/deps/mruby/src/state.c:197,1
    - Dst: mrb_free_context
      Src: /src/h2o/deps/mruby/src/state.c:198,1
    - Dst: mrb_gc_free_gv
      Src: /src/h2o/deps/mruby/src/state.c:199,1
    - Dst: mrb_free_symtbl
      Src: /src/h2o/deps/mruby/src/state.c:200,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/state.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: mrb_close
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 4
    functionsReached:
    - mrb_free_symtbl
    - mrb_free
    - mrb_free_context
    - mrb_gc_destroy
    - mrb_gc_free_gv
    - mrb_protect_atexit
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_close(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/state.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: mrb_add_irep
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_add_irep(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/state.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: mrb_top_self
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_top_self(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/state.c:228,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/state.c:235,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/state.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - f
    argTypes:
    - mrb_state*
    - mrb_atexit_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: mrb_state_atexit
    functionSourceFile: /src/h2o/deps/mruby/src/state.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_realloc
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_state_atexit(mrb_state *mrb, mrb_atexit_func f)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - mrb_value*
    - mrb_value*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: value_move
    functionSourceFile: /src/h2o/deps/mruby/src/value_array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void value_move(mrb_value *s1, const mrb_value *s2, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nmemb
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: SIZE_ERROR_MUL
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE_ERROR_MUL(nmemb, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcdecl
    - ','
    - basecall
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: DEFINE_READ_IREP_FUNC
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_READ_IREP_FUNC(funcdecl, basecall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/load.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: str_to_double
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: double
    signature: double str_to_double(mrb_state *mrb, const char *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/load.c:72,1
    - Dst: mrb_add_irep
      Src: /src/h2o/deps/mruby/src/load.c:73,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:81,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:85,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:89,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:94,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:96,1
    - Dst: mrb_static_assert
      Src: /src/h2o/deps/mruby/src/load.c:102,1
    - Dst: SIZE_ERROR_MUL
      Src: /src/h2o/deps/mruby/src/load.c:103,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:112,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/load.c:114,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:120,1
    - Dst: SIZE_ERROR_MUL
      Src: /src/h2o/deps/mruby/src/load.c:124,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:127,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:137,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:152,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:155,1
    - Dst: bin_to_uint8
      Src: /src/h2o/deps/mruby/src/load.c:166,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:171,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/load.c:172,1
    - Dst: str_to_double
      Src: /src/h2o/deps/mruby/src/load.c:182,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:190,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:200,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/load.c:201,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:216,1
    - Dst: SIZE_ERROR_MUL
      Src: /src/h2o/deps/mruby/src/load.c:220,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:223,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:226,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/load.c:236,1
    - Dst: mrb_intern_static
      Src: /src/h2o/deps/mruby/src/load.c:239,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/load.c:242,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 135
    argCount: 6
    argNames:
    - mrb
    - bin
    - end
    - len
    - flags
    - irepp
    argTypes:
    - mrb_state*
    - uint8_t*
    - uint8_t*
    - size_t*
    - uint8_t
    - mrb_irep**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 251
    functionName: read_irep_record_1
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - bin_to_uint32
    - bin_to_uint16
    - mrb_calloc
    - SIZE_ERROR_MUL
    - mrb_intern_static
    - mrb_gc_arena_restore
    - mrb_static_assert
    - mrb_gc_arena_save
    - memcpy
    - bin_to_uint8
    - str_to_double
    - mrb_intern
    - mrb_add_irep
    - mrb_malloc
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool read_irep_record_1(mrb_state *mrb, const uint8_t *bin, const
      uint8_t *end, size_t *len, uint8_t flags, mrb_irep **irepp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/load.c:256,1
    - Dst: read_irep_record_1
      Src: /src/h2o/deps/mruby/src/load.c:257,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/load.c:261,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:266,1
    - Dst: read_irep_record
      Src: /src/h2o/deps/mruby/src/load.c:273,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/load.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - mrb
    - bin
    - end
    - len
    - flags
    - irepp
    argTypes:
    - mrb_state*
    - uint8_t*
    - uint8_t*
    - size_t*
    - uint8_t
    - mrb_irep**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 283
    functionName: read_irep_record
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 1
    functionsReached:
    - mrb_calloc
    - mrb_gc_arena_restore
    - read_irep_record
    - mrb_gc_arena_save
    - read_irep_record_1
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool read_irep_record(mrb_state *mrb, const uint8_t *bin, const
      uint8_t *end, size_t *len, uint8_t flags, mrb_irep **irepp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_new
      Src: /src/h2o/deps/mruby/src/load.c:293,1
    - Dst: read_irep_record
      Src: /src/h2o/deps/mruby/src/load.c:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - mrb
    - bin
    - size
    - flags
    - proc
    argTypes:
    - mrb_state*
    - uint8_t*
    - size_t
    - uint8_t
    - struct RProc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 285
    functionDepth: 7
    functionLinenumber: 285
    functionLinenumberEnd: 304
    functionName: read_section_irep
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_proc_new
    - read_irep_record
    linkageType: ''
    returnType: mrb_irep
    signature: 'mrb_irep *

      read_section_irep(mrb_state *mrb, const uint8_t *bin, size_t size, uint8_t flags,
      struct RProc **proc)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:318,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:321,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:324,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:327,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:334,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:337,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:341,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/load.c:343,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:346,1
    - Dst: bin_to_uint8
      Src: /src/h2o/deps/mruby/src/load.c:348,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:355,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:357,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/load.c:368,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:370,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:372,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:382,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/load.c:383,1
    - Dst: read_debug_record
      Src: /src/h2o/deps/mruby/src/load.c:403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 78
    argCount: 7
    argNames:
    - mrb
    - start
    - end
    - irep
    - record_len
    - filenames
    - filenames_len
    argTypes:
    - mrb_state*
    - uint8_t*
    - uint8_t*
    - mrb_irep*
    - size_t*
    - mrb_sym*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 413
    functionName: read_debug_record
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - bin_to_uint16
    - bin_to_uint32
    - mrb_calloc
    - read_debug_record
    - memcpy
    - bin_to_uint8
    - mrb_malloc
    linkageType: ''
    returnType: int
    signature: int read_debug_record(mrb_state *mrb, const uint8_t *start, const uint8_t
      *end, mrb_irep* irep, size_t *record_len, const mrb_sym *filenames, size_t filenames_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:433,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/load.c:436,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/load.c:437,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:439,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/load.c:446,1
    - Dst: mrb_intern_static
      Src: /src/h2o/deps/mruby/src/load.c:449,1
    - Dst: read_debug_record
      Src: /src/h2o/deps/mruby/src/load.c:454,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:460,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/src/load.c:465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - mrb
    - start
    - size
    - irep
    - flags
    argTypes:
    - mrb_state*
    - uint8_t*
    - size_t
    - mrb_irep*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 467
    functionName: read_section_debug
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - bin_to_uint16
    - bin_to_uint32
    - read_debug_record
    - mrb_intern_static
    - RSTRING_PTR
    - mrb_intern
    - mrb_str_new
    - mrb_str_resize
    linkageType: ''
    returnType: int
    signature: int read_section_debug(mrb_state *mrb, const uint8_t *start, size_t
      size, mrb_irep *irep, uint8_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:478,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:481,1
    - Dst: read_lv_record
      Src: /src/h2o/deps/mruby/src/load.c:498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - mrb
    - start
    - irep
    - record_len
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - uint8_t*
    - mrb_irep*
    - size_t*
    - mrb_sym*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 508
    functionName: read_lv_record
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 1
    functionsReached:
    - bin_to_uint16
    - read_lv_record
    - mrb_malloc
    linkageType: ''
    returnType: int
    signature: int read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep,
      size_t *record_len, mrb_sym const *syms, uint32_t syms_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:530,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/load.c:533,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/load.c:534,1
    - Dst: bin_to_uint16
      Src: /src/h2o/deps/mruby/src/load.c:536,1
    - Dst: intern_func
      Src: /src/h2o/deps/mruby/src/load.c:539,1
    - Dst: read_lv_record
      Src: /src/h2o/deps/mruby/src/load.c:543,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:549,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/src/load.c:554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - mrb
    - start
    - size
    - irep
    - flags
    argTypes:
    - mrb_state*
    - uint8_t*
    - size_t
    - mrb_irep*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 556
    functionName: read_section_lv
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - bin_to_uint16
    - bin_to_uint32
    - RSTRING_PTR
    - intern_func
    - mrb_str_new
    - mrb_str_resize
    - read_lv_record
    linkageType: ''
    returnType: int
    signature: int read_section_lv(mrb_state *mrb, const uint8_t *start, size_t size,
      mrb_irep *irep, uint8_t flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:567,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:572,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:576,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - bin
    - bufsize
    - bin_size
    - flags
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 587
    functionName: read_binary_header
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - bin_to_uint32
    - memcmp
    linkageType: ''
    returnType: int
    signature: int read_binary_header(const uint8_t *bin, size_t bufsize, size_t *bin_size,
      uint8_t *flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: read_binary_header
      Src: /src/h2o/deps/mruby/src/load.c:602,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/src/load.c:611,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:613,1
    - Dst: read_section_irep
      Src: /src/h2o/deps/mruby/src/load.c:614,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:617,1
    - Dst: read_section_debug
      Src: /src/h2o/deps/mruby/src/load.c:619,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:624,1
    - Dst: read_section_lv
      Src: /src/h2o/deps/mruby/src/load.c:626,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/load.c:631,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - mrb
    - bin
    - bufsize
    - flags
    argTypes:
    - mrb_state*
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 589
    functionDepth: 8
    functionLinenumber: 589
    functionLinenumberEnd: 640
    functionName: read_irep
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - bin_to_uint32
    - memcmp
    - read_section_lv
    - read_section_irep
    - read_section_debug
    - read_binary_header
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      read_irep(mrb_state *mrb, const uint8_t *bin, size_t bufsize, uint8_t flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ro_data_p
      Src: /src/h2o/deps/mruby/src/load.c:645,1
    - Dst: read_irep
      Src: /src/h2o/deps/mruby/src/load.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - bin
    argTypes:
    - mrb_state*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 9
    functionLinenumber: 642
    functionLinenumberEnd: 648
    functionName: mrb_proc_read_irep
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - read_irep
    - mrb_ro_data_p
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_proc_read_irep(mrb_state *mrb, const uint8_t *bin)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_irep
      Src: /src/h2o/deps/mruby/src/load.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - buf
    - bufsize
    argTypes:
    - mrb_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 9
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: mrb_proc_read_irep_buf
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - read_irep
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_proc_read_irep_buf(mrb_state *mrb, const void *buf, size_t bufsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/load.c:669,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/load.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: irep_error
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_exc_set
    - mrb_exc_new_lit
    linkageType: ''
    returnType: void
    signature: void irep_error(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irep_error
      Src: /src/h2o/deps/mruby/src/load.c:678,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/load.c:679,1
    - Dst: mrb_codedump_all
      Src: /src/h2o/deps/mruby/src/load.c:682,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/load.c:683,1
    - Dst: mrb_top_run
      Src: /src/h2o/deps/mruby/src/load.c:684,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/src/load.c:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - proc
    - c
    argTypes:
    - mrb_state*
    - struct RProc*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: load_irep
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_top_self
    - mrb_obj_value
    - mrb_codedump_all
    - irep_error
    - mrb_nil_value
    - mrb_top_run
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value load_irep(mrb_state *mrb, struct RProc *proc, mrbc_context
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_read_irep
      Src: /src/h2o/deps/mruby/src/load.c:690,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/load.c:691,1
    - Dst: load_irep
      Src: /src/h2o/deps/mruby/src/load.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - bin
    - c
    argTypes:
    - mrb_state*
    - uint8_t*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 10
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: mrb_load_irep_cxt
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    - load_irep
    - mrb_proc_read_irep
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_irep_cxt(mrb_state *mrb, const uint8_t *bin, mrbc_context
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_irep
      Src: /src/h2o/deps/mruby/src/load.c:698,1
    - Dst: mrb_proc_read_irep_buf
      Src: /src/h2o/deps/mruby/src/load.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - buf
    - bufsize
    - c
    argTypes:
    - mrb_state*
    - void*
    - size_t
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 10
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: mrb_load_irep_buf_cxt
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - load_irep
    - mrb_proc_read_irep_buf
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_irep_buf_cxt(mrb_state *mrb, const void *buf, size_t
      bufsize, mrbc_context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_irep_cxt
      Src: /src/h2o/deps/mruby/src/load.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - bin
    argTypes:
    - mrb_state*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 11
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: mrb_load_irep
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_load_irep_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_irep(mrb_state *mrb, const uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_irep_buf_cxt
      Src: /src/h2o/deps/mruby/src/load.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - buf
    - bufsize
    argTypes:
    - mrb_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 11
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: mrb_load_irep_buf
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_load_irep_buf_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_irep_buf(mrb_state *mrb, const void *buf, size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_top_run
      Src: /src/h2o/deps/mruby/src/load.c:716,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/src/load.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - proc
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: mrb_load_proc
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_top_self
    - mrb_top_run
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_proc(mrb_state *mrb, const struct RProc *proc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/load.c:735,1
    - Dst: fread
      Src: /src/h2o/deps/mruby/src/load.c:736,1
    - Dst: read_binary_header
      Src: /src/h2o/deps/mruby/src/load.c:739,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/load.c:744,1
    - Dst: fread
      Src: /src/h2o/deps/mruby/src/load.c:745,1
    - Dst: read_irep
      Src: /src/h2o/deps/mruby/src/load.c:748,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/load.c:751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - fp
    argTypes:
    - mrb_state*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 721
    functionDepth: 9
    functionLinenumber: 721
    functionLinenumberEnd: 753
    functionName: mrb_proc_read_irep_file
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - read_irep
    - fread
    - mrb_free
    - mrb_realloc
    - read_binary_header
    - mrb_malloc
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_proc_read_irep_file(mrb_state *mrb, FILE *fp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_irep
      Src: /src/h2o/deps/mruby/src/load.c:762,1
    - Dst: mrb_proc_read_irep_file
      Src: /src/h2o/deps/mruby/src/load.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - fp
    - c
    argTypes:
    - mrb_state*
    - FILE*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 10
    functionLinenumber: 759
    functionLinenumberEnd: 763
    functionName: mrb_load_irep_file_cxt
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - load_irep
    - mrb_proc_read_irep_file
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_load_irep_file_cxt(mrb_state *mrb, FILE* fp, mrbc_context
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_irep_file_cxt
      Src: /src/h2o/deps/mruby/src/load.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - fp
    argTypes:
    - mrb_state*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 11
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: mrb_load_irep_file
    functionSourceFile: /src/h2o/deps/mruby/src/load.c
    functionUses: 0
    functionsReached:
    - mrb_load_irep_file_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_irep_file(mrb_state *mrb, FILE* fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/enum.c:18,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/enum.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: enum_update_hash
    functionSourceFile: /src/h2o/deps/mruby/src/enum.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value enum_update_hash(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/src/enum.c:28,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/src/enum.c:29,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/enum.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: mrb_init_enumerable
    functionSourceFile: /src/h2o/deps/mruby/src/enum.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - MRB_ARGS_REQ
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_init_enumerable(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:29,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - info
    - pc
    argTypes:
    - mrb_irep_debug_info*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 36
    functionName: get_file
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    linkageType: ''
    returnType: mrb_irep_debug_info_file
    signature: 'mrb_irep_debug_info_file *

      get_file(mrb_irep_debug_info *info, uint32_t pc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: mrb_packed_int_len
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_packed_int_len(uint32_t num)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - num
    - p
    - pend
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: mrb_packed_int_encode
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_packed_int_encode(uint32_t num, uint8_t *p, uint8_t *pend)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - newpos
    argTypes:
    - uint8_t*
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: mrb_packed_int_decode
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mrb_packed_int_decode(const uint8_t *p, const uint8_t **newpos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_file
      Src: /src/h2o/deps/mruby/src/debug.c:86,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/debug.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - irep
    - pc
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mrb_debug_get_filename
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 0
    functionsReached:
    - get_file
    - mrb_sym_name_len
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_debug_get_filename(mrb_state *mrb, const mrb_irep *irep, uint32_t pc)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_file
      Src: /src/h2o/deps/mruby/src/debug.c:101,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:104,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:124,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:126,1
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/src/debug.c:138,1
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/src/debug.c:139,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - mrb
    - irep
    - pc
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 149
    functionName: mrb_debug_get_line
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 0
    functionsReached:
    - get_file
    - mrb_packed_int_decode
    - mrb_assert
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_debug_get_line(mrb_state *mrb, const mrb_irep *irep, uint32_t
      pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:157,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/debug.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: 'mrb_irep_debug_info*

      mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep)'
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API mrb_irep_debug_info*

      mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:177,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/debug.c:178,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/debug.c:181,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/src/debug.c:182,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/debug.c:186,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/debug.c:187,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/debug.c:195,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/debug.c:196,1
    - Dst: mrb_packed_int_len
      Src: /src/h2o/deps/mruby/src/debug.c:207,1
    - Dst: mrb_packed_int_len
      Src: /src/h2o/deps/mruby/src/debug.c:209,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/debug.c:212,1
    - Dst: mrb_packed_int_encode
      Src: /src/h2o/deps/mruby/src/debug.c:217,1
    - Dst: mrb_packed_int_encode
      Src: /src/h2o/deps/mruby/src/debug.c:219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 225
    functionName: "mrb_irep_debug_info_file*\nmrb_debug_info_append_file(mrb_state
      *mrb, mrb_irep_debug_info *d,\n                           const char *filename,
      uint16_t *lines,\n                           uint32_t start_pos, uint32_t end_pos)"
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_packed_int_encode
    - mrb_realloc
    - strcmp
    - mrb_intern
    - mrb_packed_int_len
    - mrb_sym_name_len
    - strlen
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: "MRB_API mrb_irep_debug_info_file*\nmrb_debug_info_append_file(mrb_state
      *mrb, mrb_irep_debug_info *d,\n                           const char *filename,
      uint16_t *lines,\n                           uint32_t start_pos, uint32_t end_pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/debug.c:237,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/debug.c:238,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/debug.c:241,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/debug.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - d
    argTypes:
    - mrb_state*
    - mrb_irep_debug_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: mrb_debug_info_free
    functionSourceFile: /src/h2o/deps/mruby/src/debug.c
    functionUses: 1
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_debug_info_free(mrb_state *mrb, mrb_irep_debug_info *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: DEBUG
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/vm.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - idx
    argTypes:
    - mrb_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: mrb_gc_arena_shrink
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_realloc
    linkageType: ''
    returnType: void
    signature: void mrb_gc_arena_shrink(mrb_state *mrb, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: mrb_gc_arena_shrink
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_gc_arena_shrink(mrb,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - from
    - count
    argTypes:
    - mrb_value*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: stack_clear
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - SET_NIL_VALUE
    linkageType: ''
    returnType: void
    signature: void stack_clear(mrb_value *from, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/vm.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - mrb_value*
    - mrb_value*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: stack_copy
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void stack_copy(mrb_value *dst, const mrb_value *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/vm.c:116,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/vm.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: stack_init
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_calloc
    linkageType: ''
    returnType: void
    signature: void stack_init(mrb_state *mrb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/vm.c:134,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/vm.c:137,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/vm.c:144,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:144,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:145,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/vm.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 4
    argNames:
    - mrb
    - oldbase
    - newbase
    - oldsize
    argTypes:
    - mrb_state*
    - mrb_value*
    - mrb_value*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 158
    functionName: envadjust
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_ONSTACK_P
    - mrb_vm_ci_env
    - MRB_PROC_ENV
    - MRB_PROC_ENV_P
    linkageType: ''
    returnType: void
    signature: void envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase,
      size_t oldsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc_simple
      Src: /src/h2o/deps/mruby/src/vm.c:187,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/vm.c:189,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:189,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:191,1
    - Dst: envadjust
      Src: /src/h2o/deps/mruby/src/vm.c:192,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/vm.c:199,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - room
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 201
    functionName: stack_extend_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_exc_raise
    - stack_clear
    - envadjust
    - mrb_realloc_simple
    - mrb_obj_value
    linkageType: ''
    returnType: void
    signature: void stack_extend_alloc(mrb_state *mrb, mrb_int room)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_extend_alloc
      Src: /src/h2o/deps/mruby/src/vm.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - room
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: mrb_stack_extend
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - stack_extend_alloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_stack_extend(mrb_state *mrb, mrb_int room)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:218,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - room
    - argp
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: mrb_stack_extend_adjust
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_stack_extend
    linkageType: ''
    returnType: void
    signature: void mrb_stack_extend_adjust(mrb_state *mrb, mrb_int room, const mrb_value
      **argp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:236,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/vm.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - up
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: uvenv
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_vm_ci_env
    - MRB_PROC_ENV
    linkageType: ''
    returnType: struct REnv
    signature: 'struct REnv *

      uvenv(mrb_state *mrb, mrb_int up)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/src/vm.c:256,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/src/vm.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - proc
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: top_proc
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_SCOPE_P
    - MRB_PROC_STRICT_P
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      top_proc(mrb_state *mrb, const struct RProc *proc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ci
    - p
    argTypes:
    - mrb_callinfo*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: mrb_vm_ci_proc_set
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_CFUNC_P
    linkageType: ''
    returnType: void
    signature: void mrb_vm_ci_proc_set(mrb_callinfo *ci, const struct RProc *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ci
    argTypes:
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: mrb_vm_ci_target_class
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      mrb_vm_ci_target_class(const mrb_callinfo *ci)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ci
    - tc
    argTypes:
    - mrb_callinfo*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: mrb_vm_ci_target_class_set
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_vm_ci_target_class_set(mrb_callinfo *ci, struct RClass *tc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ci
    argTypes:
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: mrb_vm_ci_env
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct REnv
    signature: 'struct REnv *

      mrb_vm_ci_env(const mrb_callinfo *ci)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ci
    - e
    argTypes:
    - mrb_callinfo*
    - struct REnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: mrb_vm_ci_env_set
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_vm_ci_env_set(mrb_callinfo *ci, struct REnv *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/vm.c:345,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:345,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/vm.c:347,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 7
    argNames:
    - mrb
    - push_stacks
    - cci
    - target_class
    - proc
    - mid
    - argc
    argTypes:
    - mrb_state*
    - mrb_int
    - uint8_t
    - struct RClass*
    - struct RProc*
    - mrb_sym
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: cipush
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_exc_raise
    - mrb_obj_value
    - mrb_realloc
    - mrb_vm_ci_proc_set
    linkageType: ''
    returnType: mrb_callinfo
    signature: "mrb_callinfo *\ncipush(mrb_state *mrb, mrb_int push_stacks, uint8_t
      cci,\n       struct RClass *target_class, const struct RProc *proc, mrb_sym
      mid, uint16_t argc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:368,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/vm.c:371,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/vm.c:373,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/vm.c:374,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:376,1
    - Dst: MRB_ENV_CLOSE
      Src: /src/h2o/deps/mruby/src/vm.c:379,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/vm.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - e
    argTypes:
    - mrb_state*
    - struct REnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 382
    functionName: mrb_env_unshare
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_ENV_LEN
    - stack_copy
    - mrb_write_barrier
    - MRB_ENV_ONSTACK_P
    - mrb_vm_ci_env
    - MRB_ENV_CLOSE
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void mrb_env_unshare(mrb_state *mrb, struct REnv *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/vm.c:388,1
    - Dst: mrb_env_unshare
      Src: /src/h2o/deps/mruby/src/vm.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: cipop
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_vm_ci_env
    - mrb_env_unshare
    linkageType: ''
    returnType: mrb_callinfo
    signature: 'mrb_callinfo *

      cipop(mrb_state *mrb)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:400,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/vm.c:401,1
    - Dst: body
      Src: /src/h2o/deps/mruby/src/vm.c:409,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:414,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:419,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:427,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/vm.c:431,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:433,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/vm.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - mrb
    - body
    - userdata
    - error
    argTypes:
    - mrb_state*
    - mrb_protect_error_func*
    - void*
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 436
    functionName: mrb_protect_error
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_gc_protect
    - MRB_END_EXC
    - mrb_gc_arena_restore
    - mrb_obj_value
    - mrb_gc_arena_save
    - cipop
    - mrb_nil_value
    - body
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_protect_error(mrb_state *mrb, mrb_protect_error_func *body,
      void *userdata, mrb_bool *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: body
      Src: /src/h2o/deps/mruby/src/vm.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - body
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:414,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:419,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - cipop
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/vm.c:451,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:454,1
    - Dst: MRB_STRINGIZE
      Src: /src/h2o/deps/mruby/src/vm.c:454,1
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/vm.c:457,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/vm.c:459,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/vm.c:461,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/vm.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - self
    - name
    - argc
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 463
    functionName: mrb_funcall
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 4
    functionsReached:
    - mrb_intern_cstr
    - va_start
    - mrb_raise
    - MRB_STRINGIZE
    - va_end
    - mrb_funcall_argv
    - va_arg
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_funcall(mrb_state *mrb, mrb_value self, const char *name,
      mrb_int argc, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:473,1
    - Dst: MRB_STRINGIZE
      Src: /src/h2o/deps/mruby/src/vm.c:473,1
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/vm.c:476,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/vm.c:478,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/vm.c:480,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/vm.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - self
    - mid
    - argc
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 482
    functionName: mrb_funcall_id
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 5
    functionsReached:
    - va_start
    - mrb_raise
    - MRB_STRINGIZE
    - va_end
    - mrb_funcall_argv
    - va_arg
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_funcall_id(mrb_state *mrb, mrb_value self, mrb_sym mid,
      mrb_int argc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: mrb_ci_kidx
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_ci_kidx(const mrb_callinfo *ci)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: mrb_bidx
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_bidx(uint8_t n, uint8_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: mrb_ci_bidx
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_bidx
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_ci_bidx(mrb_callinfo *ci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:511,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ci
    argTypes:
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 517
    functionName: mrb_ci_nregs
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 2
    functionsReached:
    - MRB_PROC_CFUNC_P
    - mrb_ci_bidx
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_ci_nregs(mrb_callinfo *ci)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/vm.c:524,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:535,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/vm.c:537,1
    - Dst: mrb_no_method_error
      Src: /src/h2o/deps/mruby/src/vm.c:539,1
    - Dst: mrb_method_missing
      Src: /src/h2o/deps/mruby/src/vm.c:540,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/vm.c:544,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/vm.c:546,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/vm.c:547,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:548,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:556,1
    - Dst: mrb_ary_unshift
      Src: /src/h2o/deps/mruby/src/vm.c:561,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - mrb
    - recv
    - mid
    - clsp
    - a
    - c
    - blk
    - super
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - struct RClass**
    - uint32_t
    - uint16_t*
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 521
    functionDepth: 7
    functionLinenumber: 521
    functionLinenumberEnd: 563
    functionName: prepare_missing
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_METHOD_UNDEF_P
    - mrb_assert
    - mrb_func_basic_p
    - mrb_ary_new_from_values
    - mrb_method_search_vm
    - mrb_method_missing
    - mrb_ary_unshift
    - mrb_class
    - mrb_stack_extend
    - mrb_no_method_error
    - mrb_symbol_value
    linkageType: ''
    returnType: mrb_method_t
    signature: mrb_method_t prepare_missing(mrb_state *mrb, mrb_value recv, mrb_sym
      mid, struct RClass **clsp, uint32_t a, uint16_t *c, mrb_value blk, int super)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/vm.c:569,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/vm.c:578,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:583,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:586,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/src/vm.c:588,1
    - Dst: mrb_ci_nregs
      Src: /src/h2o/deps/mruby/src/vm.c:595,1
    - Dst: stack_init
      Src: /src/h2o/deps/mruby/src/vm.c:598,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/vm.c:601,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:601,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/vm.c:604,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/vm.c:606,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/vm.c:607,1
    - Dst: mrb_stack_extend_adjust
      Src: /src/h2o/deps/mruby/src/vm.c:608,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:610,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:616,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/vm.c:619,1
    - Dst: prepare_missing
      Src: /src/h2o/deps/mruby/src/vm.c:621,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:621,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/vm.c:623,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:625,1
    - Dst: MRB_METHOD_PROC_P
      Src: /src/h2o/deps/mruby/src/vm.c:626,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:627,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:629,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:630,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:631,1
    - Dst: MRB_METHOD_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:636,1
    - Dst: MRB_METHOD_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:638,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:639,1
    - Dst: mrb_run
      Src: /src/h2o/deps/mruby/src/vm.c:643,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:643,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:646,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/vm.c:647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 6
    argNames:
    - mrb
    - self
    - mid
    - argc
    - argv
    - blk
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_int
    - mrb_value*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 565
    functionDepth: 8
    functionLinenumber: 565
    functionLinenumberEnd: 649
    functionName: mrb_funcall_with_block
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 4
    functionsReached:
    - mrb_funcall_with_block
    - MRB_METHOD_CFUNC_P
    - stack_init
    - mrb_gc_arena_save
    - mrb_class
    - mrb_stack_extend
    - mrb_gc_protect
    - mrb_ary_new_from_values
    - mrb_gc_arena_restore
    - mrb_obj_value
    - MRB_SYM
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_PROC_P
    - MRB_END_EXC
    - mrb_exc_raise
    - mrb_method_search_vm
    - mrb_vm_ci_proc_set
    - stack_copy
    - MRB_PROC_CFUNC_P
    - cipop
    - mrb_nil_value
    - MRB_METHOD_CFUNC
    - MRB_METHOD_PROC
    - prepare_missing
    - mrb_run
    - mrb_ci_nregs
    - cipush
    - mrb_stack_extend_adjust
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym
      mid, mrb_int argc, const mrb_value *argv, mrb_value blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/vm.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 9
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_funcall_with_block
    linkageType: ''
    returnType: MRB_TRY
    signature: MRB_TRY (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:583,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 587
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - cipop
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/vm.c:654,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - self
    - mid
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 9
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: mrb_funcall_argv
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 6
    functionsReached:
    - mrb_nil_value
    - mrb_funcall_with_block
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_funcall_argv(mrb_state *mrb, mrb_value self, mrb_sym mid,
      mrb_int argc, const mrb_value *argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:660,1
    - Dst: mrb_ci_kidx
      Src: /src/h2o/deps/mruby/src/vm.c:662,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:663,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/src/vm.c:663,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/vm.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - ci
    argTypes:
    - mrb_state*
    - mrb_callinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 670
    functionName: check_method_noarg
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_ci_kidx
    - mrb_hash_empty_p
    - mrb_hash_p
    - mrb_argnum_error
    - RARRAY_LEN
    linkageType: ''
    returnType: void
    signature: void check_method_noarg(mrb_state *mrb, const mrb_callinfo *ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:679,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:680,1
    - Dst: MRB_PROC_NOARG_P
      Src: /src/h2o/deps/mruby/src/vm.c:681,1
    - Dst: check_method_noarg
      Src: /src/h2o/deps/mruby/src/vm.c:682,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:684,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:687,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:689,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:692,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:693,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - mrb
    - self
    - p
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 672
    functionDepth: 7
    functionLinenumber: 672
    functionLinenumberEnd: 699
    functionName: exec_irep
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_ci_bidx
    - MRB_PROC_NOARG_P
    - mrb_vm_ci_proc_set
    - stack_clear
    - check_method_noarg
    - mrb_stack_extend
    - MRB_PROC_CFUNC_P
    - cipush
    - MRB_PROC_CFUNC
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/src/vm.c:706,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:710,1
    - Dst: MRB_PROC_NOARG_P
      Src: /src/h2o/deps/mruby/src/vm.c:711,1
    - Dst: check_method_noarg
      Src: /src/h2o/deps/mruby/src/vm.c:712,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:714,1
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:714,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:715,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:716,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:719,1
    - Dst: mrb_top_run
      Src: /src/h2o/deps/mruby/src/vm.c:720,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/vm.c:723,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - mrb
    - self
    - p
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 701
    functionDepth: 7
    functionLinenumber: 701
    functionLinenumberEnd: 727
    functionName: mrb_exec_irep
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - exec_irep
    - mrb_ci_bidx
    - MRB_PROC_NOARG_P
    - mrb_exc_raise
    - mrb_obj_value
    - mrb_top_run
    - check_method_noarg
    - MRB_PROC_CFUNC_P
    - cipush
    - cipop
    - MRB_PROC_CFUNC
    - mrb_vm_ci_target_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc
      *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/vm.c:762,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/vm.c:763,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/vm.c:770,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:773,1
    - Dst: mrb_obj_to_sym
      Src: /src/h2o/deps/mruby/src/vm.c:774,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:774,1
    - Dst: mrb_obj_to_sym
      Src: /src/h2o/deps/mruby/src/vm.c:777,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/vm.c:780,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/vm.c:781,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/vm.c:782,1
    - Dst: mrb_ary_subseq
      Src: /src/h2o/deps/mruby/src/vm.c:790,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:790,1
    - Dst: MRB_METHOD_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:803,1
    - Dst: MRB_METHOD_NOARG_P
      Src: /src/h2o/deps/mruby/src/vm.c:804,1
    - Dst: check_method_noarg
      Src: /src/h2o/deps/mruby/src/vm.c:805,1
    - Dst: MRB_METHOD_PROC_P
      Src: /src/h2o/deps/mruby/src/vm.c:808,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:809,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:809,1
    - Dst: MRB_METHOD_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:811,1
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/src/vm.c:813,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:813,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 748
    functionDepth: 9
    functionLinenumber: 748
    functionLinenumberEnd: 814
    functionName: mrb_f_send
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_CFUNC
    - MRB_METHOD_NOARG_P
    - mrb_ary_subseq
    - MRB_METHOD_PROC_P
    - mrb_funcall_with_block
    - MRB_METHOD_CFUNC_P
    - MRB_METHOD_PROC
    - exec_irep
    - mrb_method_search_vm
    - mrb_get_args
    - mrb_vm_ci_proc_set
    - mrb_obj_to_sym
    - mrb_class
    - check_method_noarg
    - mrb_argnum_error
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_send(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:819,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:820,1
    - Dst: mrb_proc_p
      Src: /src/h2o/deps/mruby/src/vm.c:822,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - blk
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 816
    functionDepth: 4
    functionLinenumber: 816
    functionLinenumberEnd: 825
    functionName: check_block
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_raise
    - mrb_proc_p
    linkageType: ''
    returnType: void
    signature: void check_block(mrb_state *mrb, mrb_value blk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_block
      Src: /src/h2o/deps/mruby/src/vm.c:834,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/src/vm.c:837,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:840,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:841,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:845,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:846,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:849,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:850,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:854,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:857,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 4
    argNames:
    - mrb
    - self
    - blk
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 827
    functionDepth: 5
    functionLinenumber: 827
    functionLinenumberEnd: 861
    functionName: eval_under
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_CFUNC
    - mrb_proc_ptr
    - mrb_yield_with_class
    - check_block
    - mrb_vm_ci_proc_set
    - stack_clear
    - mrb_stack_extend
    - MRB_PROC_CFUNC_P
    - cipush
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value eval_under(mrb_state *mrb, mrb_value self, mrb_value blk,
      struct RClass *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/vm.c:878,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:879,1
    - Dst: eval_under
      Src: /src/h2o/deps/mruby/src/vm.c:881,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 873
    functionDepth: 6
    functionLinenumber: 873
    functionLinenumberEnd: 882
    functionName: mrb_mod_module_eval
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_class_ptr
    - mrb_get_args
    - eval_under
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_module_eval(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/vm.c:910,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/vm.c:911,1
    - Dst: eval_under
      Src: /src/h2o/deps/mruby/src/vm.c:913,1
    - Dst: mrb_singleton_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 905
    functionDepth: 6
    functionLinenumber: 905
    functionLinenumberEnd: 914
    functionName: mrb_obj_instance_eval
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - eval_under
    - mrb_singleton_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_block
      Src: /src/h2o/deps/mruby/src/vm.c:925,1
    - Dst: mrb_ci_nregs
      Src: /src/h2o/deps/mruby/src/vm.c:927,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:928,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:929,1
    - Dst: mrb_stack_extend_adjust
      Src: /src/h2o/deps/mruby/src/vm.c:939,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:942,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:946,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:948,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:950,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:952,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:953,1
    - Dst: mrb_run
      Src: /src/h2o/deps/mruby/src/vm.c:956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 6
    argNames:
    - mrb
    - b
    - argc
    - argv
    - self
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value*
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 916
    functionDepth: 6
    functionLinenumber: 916
    functionLinenumberEnd: 959
    functionName: mrb_yield_with_class
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_PROC_CFUNC
    - mrb_proc_ptr
    - mrb_ary_new_from_values
    - check_block
    - mrb_run
    - stack_copy
    - mrb_ci_nregs
    - MRB_PROC_CFUNC_P
    - cipush
    - mrb_stack_extend_adjust
    - mrb_nil_value
    - cipop
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc,
      const mrb_value *argv, mrb_value self, struct RClass *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:964,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/src/vm.c:966,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:966,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - b
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 7
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: mrb_yield_argv
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - MRB_PROC_ENV
    - mrb_proc_ptr
    - mrb_yield_with_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_yield_argv(mrb_state *mrb, mrb_value b, mrb_int argc, const
      mrb_value *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:972,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/src/vm.c:974,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:974,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - b
    - arg
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 969
    functionDepth: 7
    functionLinenumber: 969
    functionLinenumberEnd: 975
    functionName: mrb_yield
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 4
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - MRB_PROC_ENV
    - mrb_proc_ptr
    - mrb_yield_with_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_yield(mrb_state *mrb, mrb_value b, mrb_value arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_block
      Src: /src/h2o/deps/mruby/src/vm.c:983,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:984,1
    - Dst: mrb_stack_extend_adjust
      Src: /src/h2o/deps/mruby/src/vm.c:987,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:988,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:989,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:990,1
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/src/vm.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - mrb
    - b
    - self
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 977
    functionDepth: 6
    functionLinenumber: 977
    functionLinenumberEnd: 994
    functionName: mrb_yield_cont
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - exec_irep
    - mrb_proc_ptr
    - mrb_ary_new_from_values
    - check_block
    - mrb_stack_extend_adjust
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_yield_cont(mrb_state *mrb, mrb_value b, mrb_value self,
      mrb_int argc, const mrb_value *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/vm.c:1001,1
    - Dst: mrb_break_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1002,1
    - Dst: mrb_break_value_set
      Src: /src/h2o/deps/mruby/src/vm.c:1003,1
    - Dst: mrb_break_tag_set
      Src: /src/h2o/deps/mruby/src/vm.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - tag
    - p
    - val
    argTypes:
    - mrb_state*
    - uint32_t
    - struct RProc*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1007
    functionName: break_new
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_break_tag_set
    - mrb_break_proc_set
    - mrb_break_value_set
    linkageType: ''
    returnType: struct RBreak
    signature: 'struct RBreak *

      break_new(mrb_state *mrb, uint32_t tag, const struct RProc *p, mrb_value val)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:1024,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1029,1
    - Dst: catch_cover_p
      Src: /src/h2o/deps/mruby/src/vm.c:1029,1
    - Dst: catch_cover_p
      Src: /src/h2o/deps/mruby/src/vm.c:1030,1
    - Dst: mrb_irep_catch_handler_table
      Src: /src/h2o/deps/mruby/src/vm.c:1034,1
    - Dst: UINT32_C
      Src: /src/h2o/deps/mruby/src/vm.c:1036,1
    - Dst: catch_cover_p
      Src: /src/h2o/deps/mruby/src/vm.c:1037,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1037,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1037,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - mrb
    - ci
    - pc
    - filter
    argTypes:
    - mrb_state*
    - mrb_callinfo*
    - mrb_code*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1045
    functionName: catch_handler_find
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - catch_cover_p
    - mrb_irep_catch_handler_table
    - UINT32_C
    - MRB_PROC_CFUNC_P
    - mrb_irep_catch_handler_unpack
    linkageType: ''
    returnType: struct mrb_irep_catch_handler
    signature: 'struct mrb_irep_catch_handler *

      catch_handler_find(mrb_state *mrb, mrb_callinfo *ci, const mrb_code *pc, uint32_t
      filter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pc
    - ','
    - beg
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: catch_cover_p
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: catch_cover_p(pc, beg, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:1062,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/vm.c:1063,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/vm.c:1064,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/vm.c:1065,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - kind
    argTypes:
    - mrb_state*
    - localjump_error_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1067
    functionName: localjump_error
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new_str
    - mrb_str_new_capa
    - mrb_str_cat
    - mrb_exc_set
    linkageType: ''
    returnType: void
    signature: void localjump_error(mrb_state *mrb, localjump_error_kind kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:1078,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1079,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/src/vm.c:1082,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/vm.c:1085,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/vm.c:1086,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1087,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1088
    functionName: argnum_error
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 3
    functionsReached:
    - mrb_exc_new_str
    - mrb_array_p
    - mrb_hash_empty_p
    - RARRAY_LEN
    - mrb_format
    - mrb_exc_set
    linkageType: ''
    returnType: void
    signature: void argnum_error(mrb_state *mrb, mrb_int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - brk
    - tag
    argTypes:
    - struct RBreak*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1094
    functionName: break_tag_p
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool break_tag_p(struct RBreak *brk, uint32_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: break_tag_p
      Src: /src/h2o/deps/mruby/src/vm.c:1099,1
    - Dst: mrb_break_tag_set
      Src: /src/h2o/deps/mruby/src/vm.c:1100,1
    - Dst: break_new
      Src: /src/h2o/deps/mruby/src/vm.c:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - tag
    - proc
    - val
    argTypes:
    - mrb_state*
    - uint32_t
    - struct RProc*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1105
    functionName: prepare_tagged_break
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_break_tag_set
    - break_new
    - break_tag_p
    linkageType: ''
    returnType: void
    signature: void prepare_tagged_break(mrb_state *mrb, uint32_t tag, const struct
      RProc *proc, mrb_value val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - tag
    - ','
    - proc
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1112
    functionName: THROW_TAGGED_BREAK
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THROW_TAGGED_BREAK(mrb, tag, proc, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - mrb
    - ','
    - ci
    - ','
    - pc
    - ','
    - tag
    - ','
    - proc
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1120
    functionName: UNWIND_ENSURE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNWIND_ENSURE(mrb, ci, pc, tag, proc, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1138
    functionName: CHECKPOINT_LABEL_MAKE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKPOINT_LABEL_MAKE(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1144
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKPOINT_RESTORE(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1149
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKPOINT_MAIN(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1153
    functionName: CHECKPOINT_END
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKPOINT_END(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - irep
    - ','
    - pc
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1156
    functionName: CODE_FETCH_HOOK
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_FETCH_HOOK(mrb, irep, pc, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1162
    functionName: BYTECODE_DECODER
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTECODE_DECODER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1164
    functionName: BYTECODE_DECODER
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTECODE_DECODER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1176
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(insn,ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1184
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(insn,ops)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stack_init
      Src: /src/h2o/deps/mruby/src/vm.c:1201,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:1205,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:1206,1
    - Dst: mrb_vm_exec
      Src: /src/h2o/deps/mruby/src/vm.c:1208,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/vm.c:1211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - mrb
    - proc
    - self
    - stack_keep
    argTypes:
    - mrb_state*
    - struct RProc*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1191
    functionDepth: 6
    functionLinenumber: 1191
    functionLinenumberEnd: 1219
    functionName: mrb_vm_run
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_vm_exec
    - stack_clear
    - stack_init
    - mrb_stack_extend
    - mrb_write_barrier
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_vm_run(mrb_state *mrb, const struct RProc *proc, mrb_value
      self, mrb_int stack_keep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1229
    functionName: check_target_class
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_vm_ci_target_class
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      check_target_class(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:1236,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/src/vm.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - argc
    - idx
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1242
    functionName: hash_new_from_regs
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_hash_new_capa
    - mrb_hash_set
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value hash_new_from_regs(mrb_state *mrb, mrb_int argc, mrb_int
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - arg_base
    - ','
    - arg_info
    - ','
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1251
    functionName: ARGUMENT_NORMALIZE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGUMENT_NORMALIZE(arg_base, arg_info, insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/vm.c:1295,1
    - Dst: OPCODE
      Src: /src/h2o/deps/mruby/src/vm.c:1306,1
    - Dst: if
      Src: /src/h2o/deps/mruby/src/vm.c:1317,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:1319,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1325,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1328,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1333,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1338,1
    - Dst: switch
      Src: /src/h2o/deps/mruby/src/vm.c:1339,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/vm.c:1341,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/vm.c:1345,1
    - Dst: MRB_64BIT
      Src: /src/h2o/deps/mruby/src/vm.c:1348,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/vm.c:1350,1
    - Dst: mrb_bint_new_str
      Src: /src/h2o/deps/mruby/src/vm.c:1360,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/vm.c:1368,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1373,1
    - Dst: SET_FIXNUM_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1380,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1384,1
    - Dst: SET_FIXNUM_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1385,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1390,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1391,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1392,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1393,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1394,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1395,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1396,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1397,1
    - Dst: SET_FIXNUM_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1399,1
    - Dst: SET_FIXNUM_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1404,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1408,1
    - Dst: SET_INT_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1409,1
    - Dst: SET_SYM_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1414,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1418,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1419,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1428,1
    - Dst: SET_TRUE_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1429,1
    - Dst: SET_FALSE_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1434,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1438,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/src/vm.c:1439,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/src/vm.c:1445,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1449,1
    - Dst: mrb_vm_special_get
      Src: /src/h2o/deps/mruby/src/vm.c:1450,1
    - Dst: mrb_vm_special_set
      Src: /src/h2o/deps/mruby/src/vm.c:1456,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1460,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/vm.c:1461,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/vm.c:1466,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1470,1
    - Dst: mrb_vm_cv_get
      Src: /src/h2o/deps/mruby/src/vm.c:1472,1
    - Dst: mrb_vm_cv_set
      Src: /src/h2o/deps/mruby/src/vm.c:1478,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1482,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/vm.c:1484,1
    - Dst: if
      Src: /src/h2o/deps/mruby/src/vm.c:1486,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/vm.c:1486,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby/src/vm.c:1487,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:1487,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby/src/vm.c:1490,1
    - Dst: MRB_TT_STRING
      Src: /src/h2o/deps/mruby/src/vm.c:1493,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/vm.c:1494,1
    - Dst: mrb_str_aref
      Src: /src/h2o/deps/mruby/src/vm.c:1498,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/vm.c:1498,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/vm.c:1507,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/vm.c:1515,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:1516,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1520,1
    - Dst: mrb_vm_const_get
      Src: /src/h2o/deps/mruby/src/vm.c:1521,1
    - Dst: mrb_vm_const_set
      Src: /src/h2o/deps/mruby/src/vm.c:1527,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1531,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/vm.c:1532,1
    - Dst: mrb_const_set
      Src: /src/h2o/deps/mruby/src/vm.c:1538,1
    - Dst: CASE
      Src: /src/h2o/deps/mruby/src/vm.c:1542,1
    - Dst: uvenv
      Src: /src/h2o/deps/mruby/src/vm.c:1544,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - proc
    - pc
    argTypes:
    - mrb_state*
    - struct RProc*
    - mrb_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1287
    functionDepth: 7
    functionLinenumber: 1287
    functionLinenumberEnd: 1553
    functionName: mrb_vm_exec
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_TT_STRING
    - mrb_ary_entry
    - uvenv
    - mrb_undef_value
    - SET_FIXNUM_VALUE
    - mrb_gc_arena_save
    - switch
    - mrb_float_value
    - MRB_OPSYM
    - mrb_type
    - mrb_const_set
    - mrb_vm_const_get
    - mrb_bint_new_str
    - CASE
    - mrb_gc_arena_restore
    - SET_TRUE_VALUE
    - mrb_iv_get
    - MRB_64BIT
    - SET_NIL_VALUE
    - mrb_vm_cv_get
    - MRB_ENV_LEN
    - if
    - mrb_vm_ci_proc_set
    - SET_INT_VALUE
    - mrb_int_value
    - mrb_hash_get
    - OPCODE
    - SET_SYM_VALUE
    - mrb_nil_value
    - mrb_vm_cv_set
    - mrb_vm_special_get
    - mrb_integer
    - mrb_vm_special_set
    - SET_FALSE_VALUE
    - mrb_iv_set
    - mrb_const_get
    - mrb_gv_set
    - mrb_vm_const_set
    - mrb_integer_p
    - mrb_str_aref
    - mrb_gv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_vm_exec(mrb_state *mrb, const struct RProc *proc, const
      mrb_code *pc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uvenv
      Src: /src/h2o/deps/mruby/src/vm.c:1556,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1561,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/vm.c:1563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1567
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_ENV_LEN
    - uvenv
    - mrb_write_barrier
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SETUPVAR, BBB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1569
    functionDepth: 0
    functionLinenumber: 1569
    functionLinenumberEnd: 1572
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_JMP, S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/vm.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1579
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_test
    linkageType: ''
    returnType: void
    signature: void CASE(OP_JMPIF, BS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/vm.c:1581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1586
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_test
    linkageType: ''
    returnType: void
    signature: void CASE(OP_JMPNOT, BS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:1588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1593
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_JMPNIL, BS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_break_value_get
      Src: /src/h2o/deps/mruby/src/vm.c:1599,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1600,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/vm.c:1600,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:1601,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1602,1
    - Dst: catch_handler_find
      Src: /src/h2o/deps/mruby/src/vm.c:1605,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1608,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1608,1
    - Dst: THROW_TAGGED_BREAK
      Src: /src/h2o/deps/mruby/src/vm.c:1609,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/vm.c:1609,1
    - Dst: CHECKPOINT_END
      Src: /src/h2o/deps/mruby/src/vm.c:1613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1618
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_break_value_get
    - mrb_assert
    - mrb_integer
    - THROW_TAGGED_BREAK
    - catch_handler_find
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_irep_catch_handler_unpack
    - CHECKPOINT_END
    linkageType: ''
    returnType: void
    signature: void CASE(OP_JMPUW, S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_break_value_get
      Src: /src/h2o/deps/mruby/src/vm.c:1599,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1600,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/vm.c:1600,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:1601,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1603
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_break_value_get
    - mrb_assert
    - mrb_integer
    - mrb_integer_p
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_JUMP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: catch_handler_find
      Src: /src/h2o/deps/mruby/src/vm.c:1605,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1608,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/vm.c:1608,1
    - Dst: THROW_TAGGED_BREAK
      Src: /src/h2o/deps/mruby/src/vm.c:1609,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/vm.c:1609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1612
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_irep_catch_handler_unpack
    - mrb_fixnum_value
    - catch_handler_find
    - THROW_TAGGED_BREAK
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_JUMP)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1624,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:1630,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1633,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1641
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_nil_value
    - mrb_assert
    - mrb_obj_value
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EXCEPT, B)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/vm.c:1647,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/vm.c:1655,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1657,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:1661,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/vm.c:1662,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/vm.c:1662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1664
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_obj_is_kind_of
    - mrb_class_ptr
    - mrb_type
    - mrb_bool_value
    - mrb_exc_set
    - mrb_exc_new_lit
    linkageType: ''
    returnType: void
    signature: void CASE(OP_RESCUE, BB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_break_p
      Src: /src/h2o/deps/mruby/src/vm.c:1668,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:1669,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1666
    functionDepth: 2
    functionLinenumber: 1666
    functionLinenumberEnd: 1677
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_obj_ptr
    - mrb_exc_set
    - mrb_break_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_RAISEIF, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1682
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SSEND, BBB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1687
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SSENDB, BBB)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:1777,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:1780,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1781,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/vm.c:1782,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:1783,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:1787,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:1788,1
    - Dst: mrb_gc_arena_shrink
      Src: /src/h2o/deps/mruby/src/vm.c:1789,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:1792,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1802,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:1807,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:1809,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:1810,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/vm.c:1812,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/vm.c:1813,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1774
    functionDepth: 6
    functionLinenumber: 1774
    functionLinenumberEnd: 1820
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_PROC_CFUNC
    - MRB_PROC_ENV
    - mrb_proc_ptr
    - mrb_ci_bidx
    - mrb_gc_arena_shrink
    - mrb_vm_ci_proc_set
    - stack_clear
    - MRB_PROC_ENV_P
    - mrb_stack_extend
    - MRB_PROC_CFUNC_P
    - cipop
    - MRB_PROC_TARGET_CLASS
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void CASE(OP_CALL, Z)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:1829,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/vm.c:1831,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/vm.c:1836,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1837,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/vm.c:1844,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/vm.c:1846,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1848,1
    - Dst: ARGUMENT_NORMALIZE
      Src: /src/h2o/deps/mruby/src/vm.c:1852,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/vm.c:1855,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/vm.c:1856,1
    - Dst: prepare_missing
      Src: /src/h2o/deps/mruby/src/vm.c:1857,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/vm.c:1858,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:1862,1
    - Dst: MRB_METHOD_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:1867,1
    - Dst: MRB_METHOD_PROC_P
      Src: /src/h2o/deps/mruby/src/vm.c:1870,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1871,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:1871,1
    - Dst: MRB_METHOD_CFUNC
      Src: /src/h2o/deps/mruby/src/vm.c:1873,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:1874,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1877,1
    - Dst: mrb_break_p
      Src: /src/h2o/deps/mruby/src/vm.c:1877,1
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:1878,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:1884,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/vm.c:1884,1
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:1892,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1897,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:1897,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:1901,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1822
    functionDepth: 8
    functionLinenumber: 1822
    functionLinenumberEnd: 1905
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_obj_is_kind_of
    - MRB_METHOD_CFUNC_P
    - mrb_break_p
    - mrb_stack_extend
    - mrb_vm_ci_target_class
    - mrb_exc_set
    - mrb_exc_new_lit
    - mrb_assert
    - mrb_gc_arena_restore
    - MRB_PROC_ENV_P
    - MRB_SYM
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_PROC_P
    - mrb_method_search_vm
    - mrb_vm_ci_proc_set
    - MRB_PROC_CFUNC_P
    - cipop
    - MRB_METHOD_CFUNC
    - MRB_METHOD_PROC
    - prepare_missing
    - ARGUMENT_NORMALIZE
    - cipush
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SUPER, BB)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:1915,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/src/vm.c:1919,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:1920,1
    - Dst: uvenv
      Src: /src/h2o/deps/mruby/src/vm.c:1925,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1927,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:1932,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:1939,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:1940,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:1942,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1943,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:1945,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:1946,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:1948,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:1948,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:1951,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:1951,1
    - Dst: stack_copy
      Src: /src/h2o/deps/mruby/src/vm.c:1954,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:1954,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:1956,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:1965,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1967
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_ENV_LEN
    - mrb_array_p
    - uvenv
    - mrb_ary_new_from_values
    - ARY_SET_LEN
    - mrb_gc_arena_restore
    - mrb_ary_ptr
    - ARY_LEN
    - stack_copy
    - mrb_ary_new_capa
    - ARY_PTR
    - mrb_vm_ci_target_class
    - mrb_exc_set
    - mrb_exc_new_lit
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARGARY, BS)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: MRB_ASPEC_REQ
      Src: /src/h2o/deps/mruby/src/vm.c:1970,1
    - Dst: MRB_ASPEC_OPT
      Src: /src/h2o/deps/mruby/src/vm.c:1971,1
    - Dst: MRB_ASPEC_REST
      Src: /src/h2o/deps/mruby/src/vm.c:1972,1
    - Dst: MRB_ASPEC_POST
      Src: /src/h2o/deps/mruby/src/vm.c:1973,1
    - Dst: MRB_ASPEC_KEY
      Src: /src/h2o/deps/mruby/src/vm.c:1974,1
    - Dst: MRB_ASPEC_KDICT
      Src: /src/h2o/deps/mruby/src/vm.c:1974,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:1986,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1987,1
    - Dst: mrb_ci_kidx
      Src: /src/h2o/deps/mruby/src/vm.c:1991,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:1993,1
    - Dst: mrb_hash_size
      Src: /src/h2o/deps/mruby/src/vm.c:1993,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:1994,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:1998,1
    - Dst: ary_new_from_regs
      Src: /src/h2o/deps/mruby/src/vm.c:2005,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/vm.c:2010,1
    - Dst: MRB_ASPEC_KEY
      Src: /src/h2o/deps/mruby/src/vm.c:2014,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:2014,1
    - Dst: mrb_hash_dup
      Src: /src/h2o/deps/mruby/src/vm.c:2015,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2020,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2021,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:2022,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/vm.c:2023,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/src/vm.c:2027,1
    - Dst: argnum_error
      Src: /src/h2o/deps/mruby/src/vm.c:2029,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2034,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/vm.c:2035,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:2036,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2037,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:2041,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/vm.c:2050,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:2053,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/vm.c:2057,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:2060,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:2064,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/vm.c:2074,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:2078,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/vm.c:2082,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:2090,1
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:2091,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:2100,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 1969
    functionDepth: 5
    functionLinenumber: 1969
    functionLinenumberEnd: 2103
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_ASPEC_OPT
    - mrb_ci_bidx
    - argnum_error
    - mrb_nil_p
    - RARRAY_PTR
    - mrb_ci_kidx
    - mrb_gc_protect
    - mrb_hash_new_capa
    - mrb_ary_new_from_values
    - stack_clear
    - MRB_ASPEC_POST
    - MRB_ASPEC_REQ
    - RARRAY_LEN
    - MRB_ASPEC_REST
    - mrb_hash_dup
    - mrb_array_p
    - MRB_ASPEC_KDICT
    - mrb_ary_ptr
    - value_move
    - MRB_PROC_STRICT_P
    - mrb_hash_p
    - mrb_ary_new_capa
    - ARY_PTR
    - mrb_nil_value
    - mrb_hash_size
    - mrb_ary_push
    - ARY_LEN
    - MRB_ASPEC_KEY
    - ary_new_from_regs
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ENTER, W)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:2106,1
    - Dst: mrb_ci_kidx
      Src: /src/h2o/deps/mruby/src/vm.c:2107,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:2110,1
    - Dst: mrb_hash_key_p
      Src: /src/h2o/deps/mruby/src/vm.c:2110,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/vm.c:2111,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:2112,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/vm.c:2112,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby/src/vm.c:2115,1
    - Dst: mrb_hash_delete_key
      Src: /src/h2o/deps/mruby/src/vm.c:2117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2105
    functionDepth: 3
    functionLinenumber: 2105
    functionLinenumberEnd: 2119
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_ci_kidx
    - mrb_exc_new_str
    - mrb_hash_delete_key
    - mrb_hash_get
    - mrb_hash_p
    - mrb_format
    - mrb_symbol_value
    - mrb_hash_key_p
    - mrb_exc_set
    linkageType: ''
    returnType: void
    signature: void CASE(OP_KARG, BB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:2122,1
    - Dst: mrb_ci_kidx
      Src: /src/h2o/deps/mruby/src/vm.c:2123,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:2127,1
    - Dst: mrb_hash_key_p
      Src: /src/h2o/deps/mruby/src/vm.c:2128,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/vm.c:2130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2132
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_ci_kidx
    - mrb_symbol_value
    - mrb_hash_p
    - mrb_bool_value
    - mrb_hash_key_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_KEY_P, BB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ci_kidx
      Src: /src/h2o/deps/mruby/src/vm.c:2135,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:2138,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/src/vm.c:2138,1
    - Dst: mrb_hash_keys
      Src: /src/h2o/deps/mruby/src/vm.c:2139,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2140,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/vm.c:2141,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:2142,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/src/vm.c:2142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2134
    functionDepth: 3
    functionLinenumber: 2134
    functionLinenumberEnd: 2146
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - RARRAY_PTR
    - mrb_ci_kidx
    - mrb_exc_new_str
    - mrb_hash_empty_p
    - mrb_hash_p
    - mrb_format
    - mrb_hash_keys
    - mrb_exc_set
    linkageType: ''
    returnType: void
    signature: void CASE(OP_KEYEND, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2148
    functionDepth: 0
    functionLinenumber: 2148
    functionLinenumberEnd: 2151
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_BREAK, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2155
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_RETURN_BLK, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top_proc
      Src: /src/h2o/deps/mruby/src/vm.c:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2262
    functionDepth: 2
    functionLinenumber: 2262
    functionLinenumberEnd: 2265
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - top_proc
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_RETURN_BLOCK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:2267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2268
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - UNWIND_ENSURE
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_RETURN_BLOCK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2295
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_RETURN_TOPLEVEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:2297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2296
    functionDepth: 1
    functionLinenumber: 2296
    functionLinenumberEnd: 2298
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - UNWIND_ENSURE
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_RETURN_TOPLEVEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2377
    functionName: DISPATCH_CHECKPOINTS
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH_CHECKPOINTS(n, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2389
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_BREAK_UPPER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2392
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - UNWIND_ENSURE
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_BREAK_UPPER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2399
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_BREAK_INTARGET)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:2401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2402
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - UNWIND_ENSURE
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_BREAK_INTARGET)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uvenv
      Src: /src/h2o/deps/mruby/src/vm.c:2452,1
    - Dst: MRB_ENV_ONSTACK_P
      Src: /src/h2o/deps/mruby/src/vm.c:2453,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:2454,1
    - Dst: localjump_error
      Src: /src/h2o/deps/mruby/src/vm.c:2455,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:2460,1
    - Dst: localjump_error
      Src: /src/h2o/deps/mruby/src/vm.c:2461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2442
    functionDepth: 4
    functionLinenumber: 2442
    functionLinenumberEnd: 2466
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_ENV_LEN
    - uvenv
    - localjump_error
    - MRB_ENV_ONSTACK_P
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_BLKPUSH, BS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2478
    functionName: TYPES2
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPES2(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2491
    functionName: OP_MATH
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2491
    functionDepth: 0
    functionLinenumber: 2491
    functionLinenumberEnd: 2502
    functionName: OP_MATH_CASE_INTEGER
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_INTEGER(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op_name
    - ','
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2504
    functionName: OP_MATH_CASE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_FLOAT(op_name, t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op_name
    - ','
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2512
    functionName: OP_MATH_CASE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_FLOAT(op_name, t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2515
    functionName: OP_MATH_OVERFLOW_INT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_OVERFLOW_INT(op,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2516
    functionDepth: 0
    functionLinenumber: 2516
    functionLinenumberEnd: 2517
    functionName: OP_MATH_OVERFLOW_INT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_OVERFLOW_INT(op,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2523
    functionName: OP_MATH_CASE_STRING_add
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_STRING_add()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2523
    functionDepth: 0
    functionLinenumber: 2523
    functionLinenumberEnd: 2524
    functionName: OP_MATH_CASE_STRING_sub
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_STRING_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2524
    functionDepth: 0
    functionLinenumber: 2524
    functionLinenumberEnd: 2525
    functionName: OP_MATH_CASE_STRING_mul
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATH_CASE_STRING_mul()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_MATH
      Src: /src/h2o/deps/mruby/src/vm.c:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2531
    functionDepth: 1
    functionLinenumber: 2531
    functionLinenumberEnd: 2533
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_MATH
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ADD, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_MATH
      Src: /src/h2o/deps/mruby/src/vm.c:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2537
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_MATH
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SUB, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_MATH
      Src: /src/h2o/deps/mruby/src/vm.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2541
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_MATH
    linkageType: ''
    returnType: void
    signature: void CASE(OP_MUL, B)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TYPES2
      Src: /src/h2o/deps/mruby/src/vm.c:2549,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/vm.c:2549,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/vm.c:2549,1
    - Dst: TYPES2
      Src: /src/h2o/deps/mruby/src/vm.c:2550,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:2552,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:2553,1
    - Dst: mrb_div_int
      Src: /src/h2o/deps/mruby/src/vm.c:2554,1
    - Dst: SET_INT_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:2555,1
    - Dst: TYPES2
      Src: /src/h2o/deps/mruby/src/vm.c:2559,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:2560,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/vm.c:2561,1
    - Dst: TYPES2
      Src: /src/h2o/deps/mruby/src/vm.c:2563,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/vm.c:2564,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/vm.c:2565,1
    - Dst: TYPES2
      Src: /src/h2o/deps/mruby/src/vm.c:2567,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/vm.c:2568,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/vm.c:2569,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/vm.c:2573,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/src/vm.c:2578,1
    - Dst: SET_FLOAT_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:2579,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2543
    functionDepth: 3
    functionLinenumber: 2543
    functionLinenumberEnd: 2582
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_integer
    - mrb_div_int
    - TYPES2
    - mrb_div_float
    - MRB_OPSYM
    - mrb_type
    - SET_FLOAT_VALUE
    - mrb_float
    - SET_INT_VALUE
    linkageType: ''
    returnType: void
    signature: void CASE(OP_DIV, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2584
    functionDepth: 0
    functionLinenumber: 2584
    functionLinenumberEnd: 2595
    functionName: OP_MATHI
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATHI(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2595
    functionDepth: 0
    functionLinenumber: 2595
    functionLinenumberEnd: 2606
    functionName: OP_MATHI_CASE_INTEGER
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATHI_CASE_INTEGER(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2608
    functionName: OP_MATHI_CASE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATHI_CASE_FLOAT(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2616
    functionName: OP_MATHI_CASE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_MATHI_CASE_FLOAT(op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_MATHI
      Src: /src/h2o/deps/mruby/src/vm.c:2619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2618
    functionDepth: 1
    functionLinenumber: 2618
    functionLinenumberEnd: 2620
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_MATHI
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ADDI, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_MATHI
      Src: /src/h2o/deps/mruby/src/vm.c:2623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2624
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_MATHI
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SUBI, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2626
    functionDepth: 0
    functionLinenumber: 2626
    functionLinenumberEnd: 2627
    functionName: OP_CMP_BODY
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_CMP_BODY(op,v1,v2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_eq
      Src: /src/h2o/deps/mruby/src/vm.c:2678,1
    - Dst: SET_TRUE_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:2679,1
    - Dst: OP_CMP
      Src: /src/h2o/deps/mruby/src/vm.c:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2677
    functionDepth: 1
    functionLinenumber: 2677
    functionLinenumberEnd: 2685
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - SET_TRUE_VALUE
    - OP_CMP
    - mrb_obj_eq
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EQ, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_CMP
      Src: /src/h2o/deps/mruby/src/vm.c:2688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2687
    functionDepth: 0
    functionLinenumber: 2687
    functionLinenumberEnd: 2690
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_CMP
    linkageType: ''
    returnType: void
    signature: void CASE(OP_LT, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2695
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_LE, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_CMP
      Src: /src/h2o/deps/mruby/src/vm.c:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2700
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_CMP
    linkageType: ''
    returnType: void
    signature: void CASE(OP_GT, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP_CMP
      Src: /src/h2o/deps/mruby/src/vm.c:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2705
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - OP_CMP
    linkageType: ''
    returnType: void
    signature: void CASE(OP_GE, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_from_regs
      Src: /src/h2o/deps/mruby/src/vm.c:2708,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2707
    functionDepth: 1
    functionLinenumber: 2707
    functionLinenumberEnd: 2711
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - ary_new_from_regs
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARRAY, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_from_regs
      Src: /src/h2o/deps/mruby/src/vm.c:2713,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2712
    functionDepth: 1
    functionLinenumber: 2712
    functionLinenumberEnd: 2716
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - ary_new_from_regs
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARRAY2, BBB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_splat
      Src: /src/h2o/deps/mruby/src/vm.c:2719,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:2720,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2724,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2724,1
    - Dst: mrb_ary_concat
      Src: /src/h2o/deps/mruby/src/vm.c:2725,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2729
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_array_p
    - mrb_ary_splat
    - mrb_gc_arena_restore
    - mrb_ary_concat
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARYCAT, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2732,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2732,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/vm.c:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2731
    functionDepth: 1
    functionLinenumber: 2731
    functionLinenumberEnd: 2737
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_array_p
    - mrb_ary_push
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARYPUSH, BB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2741,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:2742,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:2742,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2742,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:2745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2739
    functionDepth: 1
    functionLinenumber: 2739
    functionLinenumberEnd: 2749
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - RARRAY_PTR
    - mrb_array_p
    - RARRAY_LEN
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ARYDUP, B)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2754,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:2759,1
    - Dst: mrb_ary_ref
      Src: /src/h2o/deps/mruby/src/vm.c:2763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2767
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_array_p
    - mrb_ary_ref
    - SET_NIL_VALUE
    linkageType: ''
    returnType: void
    signature: void CASE(OP_AREF, BBB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2770,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2770,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/src/vm.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2769
    functionDepth: 1
    functionLinenumber: 2769
    functionLinenumberEnd: 2773
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_array_p
    - mrb_ary_set
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ASET, BBB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/vm.c:2782,1
    - Dst: ary_new_from_regs
      Src: /src/h2o/deps/mruby/src/vm.c:2783,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2785,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/vm.c:2786,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/vm.c:2788,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2788,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2791,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:2795,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/vm.c:2798,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/vm.c:2801,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2775
    functionDepth: 1
    functionLinenumber: 2775
    functionLinenumberEnd: 2807
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_array_p
    - mrb_ary_new_from_values
    - mrb_gc_arena_restore
    - mrb_ary_ptr
    - ARY_LEN
    - mrb_ary_new_capa
    - ARY_PTR
    - SET_NIL_VALUE
    - ary_new_from_regs
    linkageType: ''
    returnType: void
    signature: void CASE(OP_APOST, BBB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2810,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/vm.c:2810,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/src/vm.c:2811,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:2812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2809
    functionDepth: 6
    functionLinenumber: 2809
    functionLinenumberEnd: 2814
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_symbol_value
    - mrb_intern_str
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_INTERN, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2820,1
    - Dst: mrb_intern_static
      Src: /src/h2o/deps/mruby/src/vm.c:2823,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/vm.c:2826,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:2828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2816
    functionDepth: 5
    functionLinenumber: 2816
    functionLinenumberEnd: 2830
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_symbol_value
    - mrb_intern
    - mrb_intern_static
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SYMBOL, BB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2835,1
    - Dst: mrb_str_new_static
      Src: /src/h2o/deps/mruby/src/vm.c:2838,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/vm.c:2841,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2845
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_str_new_static
    - mrb_str_new
    - mrb_gc_arena_restore
    linkageType: ''
    returnType: void
    signature: void CASE(OP_STRING, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2848,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/vm.c:2848,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/src/vm.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2851
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_str_concat
    - mrb_assert
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_STRCAT, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/deps/mruby/src/vm.c:2854,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/src/vm.c:2859,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2853
    functionDepth: 1
    functionLinenumber: 2853
    functionLinenumberEnd: 2864
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_hash_new_capa
    - mrb_hash_set
    linkageType: ''
    returnType: void
    signature: void CASE(OP_HASH, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_hash_type
      Src: /src/h2o/deps/mruby/src/vm.c:2872,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/src/vm.c:2874,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2866
    functionDepth: 2
    functionLinenumber: 2866
    functionLinenumberEnd: 2878
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_hash_set
    - mrb_ensure_hash_type
    linkageType: ''
    returnType: void
    signature: void CASE(OP_HASHADD, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:2882,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/vm.c:2882,1
    - Dst: mrb_hash_merge
      Src: /src/h2o/deps/mruby/src/vm.c:2883,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2879
    functionDepth: 1
    functionLinenumber: 2879
    functionLinenumberEnd: 2886
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_assert
    - mrb_hash_p
    - mrb_hash_merge
    linkageType: ''
    returnType: void
    signature: void CASE(OP_HASHCAT, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2907
    functionDepth: 0
    functionLinenumber: 2907
    functionLinenumberEnd: 2910
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_BLOCK, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2911
    functionDepth: 0
    functionLinenumber: 2911
    functionLinenumberEnd: 2914
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CASE(OP_METHOD, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_new
      Src: /src/h2o/deps/mruby/src/vm.c:2917,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2916
    functionDepth: 1
    functionLinenumber: 2916
    functionLinenumberEnd: 2921
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_range_new
    - mrb_gc_arena_restore
    linkageType: ''
    returnType: void
    signature: void CASE(OP_RANGE_INC, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_new
      Src: /src/h2o/deps/mruby/src/vm.c:2924,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2923
    functionDepth: 1
    functionLinenumber: 2923
    functionLinenumberEnd: 2928
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_range_new
    - mrb_gc_arena_restore
    linkageType: ''
    returnType: void
    signature: void CASE(OP_RANGE_EXC, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2933
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_obj_value
    linkageType: ''
    returnType: void
    signature: void CASE(OP_OCLASS, B)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:2942,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:2943,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:2945,1
    - Dst: mrb_vm_define_class
      Src: /src/h2o/deps/mruby/src/vm.c:2947,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:2948,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 2951
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - mrb_gc_arena_restore
    - mrb_obj_value
    - mrb_vm_define_class
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_CLASS, BB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/vm.c:2959,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:2960,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:2962,1
    - Dst: mrb_vm_define_module
      Src: /src/h2o/deps/mruby/src/vm.c:2964,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:2965,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:2966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2953
    functionDepth: 1
    functionLinenumber: 2953
    functionLinenumberEnd: 2968
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - mrb_gc_arena_restore
    - mrb_obj_value
    - mrb_vm_define_module
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void CASE(OP_MODULE, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_new
      Src: /src/h2o/deps/mruby/src/vm.c:2977,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/vm.c:2979,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/vm.c:2980,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2980,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:2984,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2984,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/src/vm.c:2989,1
    - Dst: stack_clear
      Src: /src/h2o/deps/mruby/src/vm.c:2990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2970
    functionDepth: 5
    functionLinenumber: 2970
    functionLinenumberEnd: 2993
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_proc_new
    - mrb_class_ptr
    - mrb_field_write_barrier
    - stack_clear
    - mrb_stack_extend
    - MRB_PROC_SET_TARGET_CLASS
    - cipush
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EXEC, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2996,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/vm.c:2997,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/vm.c:3001,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/vm.c:3002,1
    - Dst: mrb_method_added
      Src: /src/h2o/deps/mruby/src/vm.c:3003,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:3004,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/vm.c:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 3007
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - MRB_METHOD_FROM_PROC
    - mrb_proc_ptr
    - mrb_gc_arena_restore
    - mrb_class_ptr
    - mrb_define_method_raw
    - mrb_symbol_value
    - mrb_method_added
    linkageType: ''
    returnType: void
    signature: void CASE(OP_DEF, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/src/vm.c:3010,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/vm.c:3011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 3009
    functionDepth: 1
    functionLinenumber: 3009
    functionLinenumberEnd: 3013
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_singleton_class
    - mrb_gc_arena_restore
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SCLASS, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:3016,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:3018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3015
    functionDepth: 2
    functionLinenumber: 3015
    functionLinenumberEnd: 3020
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_obj_value
    - check_target_class
    linkageType: ''
    returnType: void
    signature: void CASE(OP_TCLASS, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:3023,1
    - Dst: mrb_alias_method
      Src: /src/h2o/deps/mruby/src/vm.c:3026,1
    - Dst: mrb_method_added
      Src: /src/h2o/deps/mruby/src/vm.c:3027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3022
    functionDepth: 2
    functionLinenumber: 3022
    functionLinenumberEnd: 3029
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_alias_method
    - check_target_class
    - mrb_method_added
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ALIAS, BB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_target_class
      Src: /src/h2o/deps/mruby/src/vm.c:3031,1
    - Dst: mrb_undef_method_id
      Src: /src/h2o/deps/mruby/src/vm.c:3034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3036
      start: 3030
    functionDepth: 2
    functionLinenumber: 3030
    functionLinenumberEnd: 3036
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - check_target_class
    - mrb_undef_method_id
    linkageType: ''
    returnType: void
    signature: void CASE(OP_UNDEF, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FETCH_BBB
      Src: /src/h2o/deps/mruby/src/vm.c:3039,1
    - Dst: debug_op_hook
      Src: /src/h2o/deps/mruby/src/vm.c:3041,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/vm.c:3044,1
    - Dst: abort
      Src: /src/h2o/deps/mruby/src/vm.c:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3050
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - abort
    - printf
    - FETCH_BBB
    - debug_op_hook
    linkageType: ''
    returnType: void
    signature: void CASE(OP_DEBUG, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:3056,1
    - Dst: mrb_exc_new
      Src: /src/h2o/deps/mruby/src/vm.c:3057,1
    - Dst: mrb_exc_set
      Src: /src/h2o/deps/mruby/src/vm.c:3058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3052
    functionDepth: 4
    functionLinenumber: 3052
    functionLinenumberEnd: 3060
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_exc_new
    - mrb_assert
    - mrb_exc_set
    linkageType: ''
    returnType: void
    signature: void CASE(OP_ERR, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/vm.c:3063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3062
    functionDepth: 1
    functionLinenumber: 3062
    functionLinenumberEnd: 3071
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - READ_B
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EXT1, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3065
    functionDepth: 0
    functionLinenumber: 3065
    functionLinenumberEnd: 3066
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(insn,ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/vm.c:3073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3072
    functionDepth: 1
    functionLinenumber: 3072
    functionLinenumberEnd: 3081
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - READ_B
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EXT2, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3076
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(insn,ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/vm.c:3083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3082
    functionDepth: 1
    functionLinenumber: 3082
    functionLinenumberEnd: 3091
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - READ_B
    linkageType: ''
    returnType: void
    signature: void CASE(OP_EXT3, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3085
    functionDepth: 0
    functionLinenumber: 3085
    functionLinenumberEnd: 3086
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(insn,ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:3099,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:3099,1
    - Dst: CHECKPOINT_END
      Src: /src/h2o/deps/mruby/src/vm.c:3101,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/vm.c:3105,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/vm.c:3106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3109
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - mrb_obj_value
    - UNWIND_ENSURE
    - mrb_nil_value
    - CHECKPOINT_END
    linkageType: ''
    returnType: void
    signature: void CASE(OP_STOP, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3097
    functionName: CHECKPOINT_RESTORE
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_RESTORE(RBREAK_TAG_STOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWIND_ENSURE
      Src: /src/h2o/deps/mruby/src/vm.c:3099,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/vm.c:3099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3098
    functionDepth: 1
    functionLinenumber: 3098
    functionLinenumberEnd: 3100
    functionName: CHECKPOINT_MAIN
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - UNWIND_ENSURE
    linkageType: ''
    returnType: void
    signature: void CHECKPOINT_MAIN(RBREAK_TAG_STOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipop
      Src: /src/h2o/deps/mruby/src/vm.c:3117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3114
    functionDepth: 6
    functionLinenumber: 3114
    functionLinenumberEnd: 3122
    functionName: (&c_jmp)
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 0
    functionsReached:
    - cipop
    linkageType: ''
    returnType: MRB_CATCH
    signature: MRB_CATCH (&c_jmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/src/vm.c:3129,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/vm.c:3129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - proc
    - self
    argTypes:
    - mrb_state*
    - struct RProc*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3126
    functionDepth: 7
    functionLinenumber: 3126
    functionLinenumberEnd: 3130
    functionName: mrb_run
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 2
    functionsReached:
    - mrb_vm_run
    - mrb_ci_bidx
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_run(mrb_state *mrb, const struct RProc *proc, mrb_value
      self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/src/vm.c:3138,1
    - Dst: mrb_vm_ci_env_set
      Src: /src/h2o/deps/mruby/src/vm.c:3141,1
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/src/vm.c:3142,1
    - Dst: cipush
      Src: /src/h2o/deps/mruby/src/vm.c:3144,1
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/src/vm.c:3145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - proc
    - self
    - stack_keep
    argTypes:
    - mrb_state*
    - struct RProc*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3132
    functionDepth: 7
    functionLinenumber: 3132
    functionLinenumberEnd: 3148
    functionName: mrb_top_run
    functionSourceFile: /src/h2o/deps/mruby/src/vm.c
    functionUses: 3
    functionsReached:
    - mrb_vm_run
    - mrb_vm_ci_env_set
    - cipush
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_top_run(mrb_state *mrb, const struct RProc *proc, mrb_value
      self, mrb_int stack_keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: mrb_obj_alloc_string
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_obj_alloc_string(mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/string.c:35,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:36,1
    - Dst: RSTR_UNSET_TYPE_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - mrb
    - s
    - p
    - len
    - capa
    argTypes:
    - mrb_state*
    - struct RString*
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: str_init_normal_capa
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RSTR_UNSET_TYPE_FLAG
    - mrb_malloc
    linkageType: ''
    returnType: struct RString
    signature: "struct RString *\nstr_init_normal_capa(mrb_state *mrb, struct RString
      *s,\n                     const char *p, mrb_int len, mrb_int capa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_init_normal_capa
      Src: /src/h2o/deps/mruby/src/string.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - s
    - p
    - len
    argTypes:
    - mrb_state*
    - struct RString*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: str_init_normal
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_init_normal_capa
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_normal(mrb_state *mrb, struct RString *s, const char *p, mrb_int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:54,1
    - Dst: RSTR_EMBED_PTR
      Src: /src/h2o/deps/mruby/src/string.c:54,1
    - Dst: RSTR_EMBED_PTR
      Src: /src/h2o/deps/mruby/src/string.c:55,1
    - Dst: RSTR_SET_TYPE_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:56,1
    - Dst: RSTR_SET_EMBED_LEN
      Src: /src/h2o/deps/mruby/src/string.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - p
    - len
    argTypes:
    - struct RString*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: str_init_embed
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_EMBED_PTR
    - memcpy
    - RSTR_SET_EMBED_LEN
    - RSTR_SET_TYPE_FLAG
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_embed(struct RString *s, const char *p, mrb_int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_SET_TYPE_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - s
    - p
    - len
    argTypes:
    - struct RString*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: str_init_nofree
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_SET_TYPE_FLAG
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_nofree(struct RString *s, const char *p, mrb_int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/string.c:78,1
    - Dst: RSTR_SET_TYPE_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - mrb
    - orig
    - s
    - shared
    argTypes:
    - mrb_state*
    - struct RString*
    - struct RString*
    - mrb_shared_string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: str_init_shared
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_SET_TYPE_FLAG
    - mrb_malloc
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_shared(mrb_state *mrb, const struct RString *orig, struct RString *s,
      mrb_shared_string *shared)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_SET_TYPE_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - orig
    - s
    - fshared
    argTypes:
    - struct RString*
    - struct RString*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: str_init_fshared
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_SET_TYPE_FLAG
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_fshared(const struct RString *orig, struct RString *s, struct RString
      *fshared)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:103,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:104,1
    - Dst: str_init_normal
      Src: /src/h2o/deps/mruby/src/string.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - s
    - p
    - len
    argTypes:
    - mrb_state*
    - struct RString*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: str_init_modifiable
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_EMBEDDABLE_P
    - str_init_normal
    - str_init_embed
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_init_modifiable(mrb_state *mrb, struct RString *s, const char *p, mrb_int
      len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:112,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:113,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:113,1
    - Dst: str_init_nofree
      Src: /src/h2o/deps/mruby/src/string.c:115,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: str_new_static
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 3
    functionsReached:
    - RSTR_EMBEDDABLE_P
    - str_init_embed
    - str_init_nofree
    - mrb_obj_alloc_string
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_new_static(mrb_state *mrb, const char *p, mrb_int len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:121,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:122,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:122,1
    - Dst: mrb_ro_data_p
      Src: /src/h2o/deps/mruby/src/string.c:124,1
    - Dst: str_init_nofree
      Src: /src/h2o/deps/mruby/src/string.c:125,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:125,1
    - Dst: str_init_normal
      Src: /src/h2o/deps/mruby/src/string.c:127,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: str_new
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 12
    functionsReached:
    - str_init_normal
    - str_init_embed
    - RSTR_EMBEDDABLE_P
    - str_init_nofree
    - mrb_ro_data_p
    - mrb_obj_alloc_string
    linkageType: ''
    returnType: struct RString
    signature: 'struct RString *

      str_new(mrb_state *mrb, const char *p, mrb_int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:133,1
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:135,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:136,1
    - Dst: str_init_normal_capa
      Src: /src/h2o/deps/mruby/src/string.c:139,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - capa
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: mrb_str_new_capa
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 6
    functionsReached:
    - str_init_embed
    - RSTR_EMBEDDABLE_P
    - str_init_normal_capa
    - mrb_obj_alloc_string
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_new_capa(mrb_state *mrb, mrb_int capa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_EMBED_P
      Src: /src/h2o/deps/mruby/src/string.c:147,1
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:148,1
    - Dst: str_init_normal_capa
      Src: /src/h2o/deps/mruby/src/string.c:149,1
    - Dst: RSTR_EMBED_PTR
      Src: /src/h2o/deps/mruby/src/string.c:149,1
    - Dst: RSTR_EMBED_LEN
      Src: /src/h2o/deps/mruby/src/string.c:149,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/string.c:153,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - s
    - capacity
    argTypes:
    - mrb_state*
    - struct RString*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: resize_capa
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_EMBEDDABLE_P
    - RSTR_EMBED_PTR
    - mrb_realloc
    - RSTR_EMBED_P
    - str_init_normal_capa
    - RSTR_EMBED_LEN
    linkageType: ''
    returnType: void
    signature: void resize_capa(mrb_state *mrb, struct RString *s, mrb_int capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:161,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mrb_str_new
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 12
    functionsReached:
    - mrb_obj_value
    - str_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_new(mrb_state *mrb, const char *p, mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/string.c:171,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:177,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: mrb_str_new_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 10
    functionsReached:
    - mrb_obj_value
    - str_new
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_new_cstr(mrb_state *mrb, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_new_static
      Src: /src/h2o/deps/mruby/src/string.c:185,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: mrb_str_new_static
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 3
    functionsReached:
    - str_new_static
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_new_static(mrb_state *mrb, const char *p, mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/string.c:194,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/string.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - shared
    argTypes:
    - mrb_state*
    - mrb_shared_string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: str_decref
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void str_decref(mrb_state *mrb, mrb_shared_string *shared)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:202,1
    - Dst: RSTR_UNSET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:208,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/string.c:209,1
    - Dst: str_init_modifiable
      Src: /src/h2o/deps/mruby/src/string.c:212,1
    - Dst: str_decref
      Src: /src/h2o/deps/mruby/src/string.c:213,1
    - Dst: RSTR_NOFREE_P
      Src: /src/h2o/deps/mruby/src/string.c:216,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:216,1
    - Dst: str_init_modifiable
      Src: /src/h2o/deps/mruby/src/string.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 219
    functionName: str_modify_keep_ascii
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_SHARED_P
    - mrb_free
    - RSTR_FSHARED_P
    - str_decref
    - RSTR_NOFREE_P
    - RSTR_UNSET_SHARED_FLAG
    - str_init_modifiable
    linkageType: ''
    returnType: void
    signature: void str_modify_keep_ascii(mrb_state *mrb, struct RString *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/mruby/src/string.c:224,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:224,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:224,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: check_null_byte
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - memchr
    - RSTR_PTR
    - RSTR_LEN
    linkageType: ''
    returnType: void
    signature: void check_null_byte(mrb_state *mrb, struct RString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_EMBED_P
      Src: /src/h2o/deps/mruby/src/string.c:232,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:234,1
    - Dst: str_decref
      Src: /src/h2o/deps/mruby/src/string.c:235,1
    - Dst: RSTR_NOFREE_P
      Src: /src/h2o/deps/mruby/src/string.c:236,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:236,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/string.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: mrb_gc_free_str
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - RSTR_SHARED_P
    - mrb_free
    - RSTR_FSHARED_P
    - RSTR_EMBED_P
    - str_decref
    - RSTR_NOFREE_P
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_str(mrb_state *mrb, struct RString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: utf8_islead
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: utf8_islead(c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:258,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:260,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: mrb_utf8len
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - utf8_islead
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_utf8len(const char* p, const char* e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - byte_len
    argTypes:
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: mrb_utf8_strlen
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - utf8_islead
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_utf8_strlen(const char *str, mrb_int byte_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:283,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:284,1
    - Dst: RSTR_ASCII_P
      Src: /src/h2o/deps/mruby/src/string.c:286,1
    - Dst: mrb_utf8_strlen
      Src: /src/h2o/deps/mruby/src/string.c:290,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:290,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: utf8_strlen
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - RSTR_PTR
    - mrb_utf8_strlen
    - RSTR_LEN
    - RSTR_SET_ASCII_FLAG
    - RSTR_ASCII_P
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int utf8_strlen(mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: RSTRING_CHAR_LEN
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_CHAR_LEN(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_ASCII_P
      Src: /src/h2o/deps/mruby/src/string.c:302,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:302,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:307,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/src/string.c:308,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - s
    - 'off'
    - idx
    argTypes:
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: chars2bytes
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTR_ASCII_P
    - mrb_str_ptr
    - RSTRING_END
    - mrb_utf8len
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int chars2bytes(mrb_value s, mrb_int off, mrb_int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - len
    - bi
    argTypes:
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: bytes2chars
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_utf8len
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int bytes2chars(char *p, mrb_int len, mrb_int bi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:338,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:339,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:340,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - beg
    - end
    - ptr
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: char_adjust
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - utf8_islead
    linkageType: ''
    returnType: char
    signature: 'char *

      char_adjust(const char *beg, const char *end, const char *ptr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:349,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:350,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:351,1
    - Dst: utf8_islead
      Src: /src/h2o/deps/mruby/src/string.c:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: char_backtrack
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - utf8_islead
    linkageType: ''
    returnType: char
    signature: 'char *

      char_backtrack(const char *ptr, const char *end)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:379,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - mrb
    - p
    - pend
    - s
    - slen
    - 'off'
    argTypes:
    - mrb_state*
    - char*
    - char*
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 393
    functionName: str_index_str_by_char_search
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_utf8len
    - memcmp
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int str_index_str_by_char_search(mrb_state *mrb, const char *p,
      const char *pend, const char *s, const mrb_int slen, mrb_int off)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:398,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:399,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:400,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:401,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:406,1
    - Dst: str_index_str_by_char_search
      Src: /src/h2o/deps/mruby/src/string.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - str
    - sub
    - pos
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 412
    functionName: str_index_str_by_char
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_utf8len
    - RSTRING_LEN
    - str_index_str_by_char_search
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int str_index_str_by_char(mrb_state *mrb, mrb_value str, mrb_value
      sub, mrb_int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: BYTES_ALIGN_CHECK
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTES_ALIGN_CHECK(pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 417
    functionName: RSTRING_CHAR_LEN
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_CHAR_LEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - 'off'
    - ','
    - ci
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: chars2bytes
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chars2bytes(p, off, ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - end
    - ','
    - bi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: bytes2chars
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bytes2chars(p, end, bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - beg
    - ','
    - end
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: char_adjust
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char_adjust(beg, end, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: char_backtrack
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char_backtrack(ptr, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - sub
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: str_index_str_by_char
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: str_index_str_by_char(mrb, str, sub, pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/mruby/src/string.c:437,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:439,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:459,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - xs
    - m
    - ys
    - n
    argTypes:
    - unsigned char*
    - mrb_int
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 464
    functionName: mrb_memsearch_qs
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - memchr
    - memcmp
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_memsearch_qs(const unsigned char *xs, mrb_int m, const
      unsigned char *ys, mrb_int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:473,1
    - Dst: memchr
      Src: /src/h2o/deps/mruby/src/string.c:479,1
    - Dst: mrb_memsearch_qs
      Src: /src/h2o/deps/mruby/src/string.c:486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - x0
    - m
    - y0
    - n
    argTypes:
    - void*
    - mrb_int
    - void*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: mrb_memsearch
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_memsearch_qs
    - memchr
    - memcmp
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_memsearch(const void *x0, mrb_int m, const void *y0, mrb_int
      n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/string.c:494,1
    - Dst: RSTR_EMBED_P
      Src: /src/h2o/deps/mruby/src/string.c:494,1
    - Dst: RSTR_NOFREE_P
      Src: /src/h2o/deps/mruby/src/string.c:495,1
    - Dst: str_init_nofree
      Src: /src/h2o/deps/mruby/src/string.c:496,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:498,1
    - Dst: str_init_shared
      Src: /src/h2o/deps/mruby/src/string.c:499,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:501,1
    - Dst: str_init_fshared
      Src: /src/h2o/deps/mruby/src/string.c:502,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/string.c:506,1
    - Dst: str_init_shared
      Src: /src/h2o/deps/mruby/src/string.c:509,1
    - Dst: str_init_shared
      Src: /src/h2o/deps/mruby/src/string.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - mrb
    - orig
    - s
    argTypes:
    - mrb_state*
    - struct RString*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 512
    functionName: str_share
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - RSTR_SHARED_P
    - str_init_fshared
    - mrb_realloc
    - str_init_nofree
    - RSTR_EMBED_P
    - RSTR_FSHARED_P
    - RSTR_NOFREE_P
    - str_init_shared
    linkageType: ''
    returnType: void
    signature: void str_share(mrb_state *mrb, struct RString *orig, struct RString
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:519,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:520,1
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:521,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:522,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:522,1
    - Dst: str_share
      Src: /src/h2o/deps/mruby/src/string.c:525,1
    - Dst: RSTR_COPY_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:529,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - str
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 531
    functionName: mrb_str_byte_subseq
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_init_embed
    - RSTR_PTR
    - RSTR_COPY_ASCII_FLAG
    - RSTR_EMBEDDABLE_P
    - mrb_obj_value
    - mrb_obj_alloc_string
    - mrb_str_ptr
    - str_share
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_byte_subseq(mrb_state *mrb, mrb_value str, mrb_int
      beg, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chars2bytes
      Src: /src/h2o/deps/mruby/src/string.c:536,1
    - Dst: chars2bytes
      Src: /src/h2o/deps/mruby/src/string.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - str
    - pos
    - len
    argTypes:
    - mrb_value
    - mrb_int*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: str_range_to_bytes
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - chars2bytes
    linkageType: ''
    returnType: void
    signature: void str_range_to_bytes(mrb_value str, mrb_int *pos, mrb_int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_range_to_bytes
      Src: /src/h2o/deps/mruby/src/string.c:543,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - str
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 540
    functionDepth: 7
    functionLinenumber: 540
    functionLinenumberEnd: 545
    functionName: str_subseq
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_range_to_bytes
    - mrb_str_byte_subseq
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - beg
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    functionName: str_subseq
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: str_subseq(mrb, str, beg, len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - str_len
    - begp
    - lenp
    argTypes:
    - mrb_int
    - mrb_int*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: mrb_str_beg_len
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_str_beg_len(mrb_int str_len, mrb_int *begp, mrb_int *lenp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_beg_len
      Src: /src/h2o/deps/mruby/src/string.c:569,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:569,1
    - Dst: str_subseq
      Src: /src/h2o/deps/mruby/src/string.c:570,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - str
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 8
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: str_substr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 10
    functionsReached:
    - RSTRING_CHAR_LEN
    - str_subseq
    - mrb_str_beg_len
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int
      len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:580,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:586,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:592,1
    - Dst: mrb_memsearch
      Src: /src/h2o/deps/mruby/src/string.c:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - str
    - sptr
    - slen
    - offset
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 596
    functionName: mrb_str_index
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_memsearch
    - RSTRING_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_index(mrb_state *mrb, mrb_value str, const char *sptr,
      mrb_int slen, mrb_int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:604,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:605,1
    - Dst: mrb_str_index
      Src: /src/h2o/deps/mruby/src/string.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - str
    - str2
    - offset
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 608
    functionName: str_index_str
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_str_index
    - RSTRING_LEN
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int str_index_str(mrb_state *mrb, mrb_value str, mrb_value str2,
      mrb_int offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/string.c:615,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:616,1
    - Dst: RSTR_COPY_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:617,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:618,1
    - Dst: str_decref
      Src: /src/h2o/deps/mruby/src/string.c:619,1
    - Dst: RSTR_EMBED_P
      Src: /src/h2o/deps/mruby/src/string.c:621,1
    - Dst: RSTR_NOFREE_P
      Src: /src/h2o/deps/mruby/src/string.c:621,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/src/string.c:621,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/string.c:623,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:626,1
    - Dst: RSTR_EMBEDDABLE_P
      Src: /src/h2o/deps/mruby/src/string.c:627,1
    - Dst: str_init_embed
      Src: /src/h2o/deps/mruby/src/string.c:628,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:628,1
    - Dst: str_share
      Src: /src/h2o/deps/mruby/src/string.c:631,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:634,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - mrb
    - s1
    - s2
    argTypes:
    - mrb_state*
    - struct RString*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 610
    functionDepth: 6
    functionLinenumber: 610
    functionLinenumberEnd: 635
    functionName: str_replace
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_init_embed
    - RSTR_PTR
    - RSTR_COPY_ASCII_FLAG
    - RSTR_LEN
    - RSTR_EMBEDDABLE_P
    - RSTR_SHARED_P
    - mrb_free
    - RSTR_FSHARED_P
    - RSTR_EMBED_P
    - mrb_check_frozen
    - str_decref
    - RSTR_NOFREE_P
    - mrb_obj_value
    - str_share
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_replace(mrb_state *mrb, struct RString *s1, struct RString
      *s2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:641,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:642,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:643,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:650,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:653,1
    - Dst: char_adjust
      Src: /src/h2o/deps/mruby/src/string.c:655,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:657,1
    - Dst: char_backtrack
      Src: /src/h2o/deps/mruby/src/string.c:660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - mrb
    - str
    - sub
    - pos
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 667
    functionName: str_rindex
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - char_adjust
    - RSTRING_PTR
    - memcmp
    - RSTRING_LEN
    - mrb_str_ptr
    - char_backtrack
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int str_rindex(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int
      pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/mruby/src/string.c:680,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/string.c:682,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/src/string.c:683,1
    - Dst: GetACP
      Src: /src/h2o/deps/mruby/src/string.c:683,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby/src/string.c:684,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/src/string.c:687,1
    - Dst: GetACP
      Src: /src/h2o/deps/mruby/src/string.c:687,1
    - Dst: WideCharToMultiByte
      Src: /src/h2o/deps/mruby/src/string.c:690,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby/src/string.c:691,1
    - Dst: free
      Src: /src/h2o/deps/mruby/src/string.c:693,1
    - Dst: WideCharToMultiByte
      Src: /src/h2o/deps/mruby/src/string.c:696,1
    - Dst: free
      Src: /src/h2o/deps/mruby/src/string.c:698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 700
    functionName: mrb_utf8_from_locale
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - free
    - MultiByteToWideChar
    - GetACP
    - strlen
    - WideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: 'char *

      mrb_utf8_from_locale(const char *str, int len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/mruby/src/string.c:710,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/string.c:712,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/src/string.c:713,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby/src/string.c:714,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/src/string.c:717,1
    - Dst: WideCharToMultiByte
      Src: /src/h2o/deps/mruby/src/string.c:719,1
    - Dst: GetACP
      Src: /src/h2o/deps/mruby/src/string.c:719,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby/src/string.c:720,1
    - Dst: free
      Src: /src/h2o/deps/mruby/src/string.c:722,1
    - Dst: WideCharToMultiByte
      Src: /src/h2o/deps/mruby/src/string.c:725,1
    - Dst: GetACP
      Src: /src/h2o/deps/mruby/src/string.c:725,1
    - Dst: free
      Src: /src/h2o/deps/mruby/src/string.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - utf8
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 729
    functionName: mrb_locale_from_utf8
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - free
    - MultiByteToWideChar
    - GetACP
    - strlen
    - WideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: 'char *

      mrb_locale_from_utf8(const char *utf8, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/string.c:735,1
    - Dst: str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 8
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: mrb_str_modify_keep_ascii
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_modify_keep_ascii
    - mrb_check_frozen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_modify_keep_ascii(mrb_state *mrb, struct RString *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:742,1
    - Dst: RSTR_UNSET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - struct RString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 739
    functionDepth: 9
    functionLinenumber: 739
    functionLinenumberEnd: 744
    functionName: mrb_str_modify
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - RSTR_UNSET_ASCII_FLAG
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_modify(mrb_state *mrb, struct RString *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:750,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:753,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:755,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:756,1
    - Dst: resize_capa
      Src: /src/h2o/deps/mruby/src/string.c:759,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:761,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - str
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 746
    functionDepth: 10
    functionLinenumber: 746
    functionLinenumberEnd: 765
    functionName: mrb_str_resize
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - mrb_raise
    - RSTR_SET_LEN
    - mrb_str_modify
    - mrb_str_ptr
    - resize_capa
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_resize(mrb_state *mrb, mrb_value str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:772,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:773,1
    - Dst: check_null_byte
      Src: /src/h2o/deps/mruby/src/string.c:774,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/src/string.c:774,1
    - Dst: str_init_modifiable
      Src: /src/h2o/deps/mruby/src/string.c:775,1
    - Dst: mrb_obj_alloc_string
      Src: /src/h2o/deps/mruby/src/string.c:775,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - str0
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 7
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: mrb_str_to_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - check_null_byte
    - RSTR_PTR
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_obj_alloc_string
    - RSTRING
    - str_init_modifiable
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_str_to_cstr(mrb_state *mrb, mrb_value str0)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/string.c:782,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/string.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - self
    - other
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: mrb_str_concat
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 3
    functionsReached:
    - mrb_obj_as_string
    - mrb_str_cat_str
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:789,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:790,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:792,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:793,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:794,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:795,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:797,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:798,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:799,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:800,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 786
    functionDepth: 7
    functionLinenumber: 786
    functionLinenumberEnd: 803
    functionName: mrb_str_plus
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - mrb_obj_value
    - str_new
    - memcpy
    - mrb_str_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_plus(mrb_state *mrb, mrb_value a, mrb_value b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:821,1
    - Dst: mrb_str_plus
      Src: /src/h2o/deps/mruby/src/string.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 816
    functionDepth: 8
    functionLinenumber: 816
    functionLinenumberEnd: 823
    functionName: mrb_str_plus_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_str_plus
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_plus_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:836,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 838
    functionName: mrb_str_size
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_CHAR_LEN
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_size(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:843,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 845
    functionName: mrb_str_bytesize
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - RSTRING_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_bytesize(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:864,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:866,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/string.c:868,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:868,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:869,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:871,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:872,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:874,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:875,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:875,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:877,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:880,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:882,1
    - Dst: RSTR_COPY_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:883,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:883,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 857
    functionDepth: 7
    functionLinenumber: 857
    functionLinenumberEnd: 886
    functionName: mrb_str_times
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - RSTR_COPY_ASCII_FLAG
    - mrb_raise
    - RSTRING_PTR
    - mrb_obj_value
    - mrb_get_args
    - str_new
    - RSTRING_LEN
    - memcpy
    - mrb_int_mul_overflow
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_times(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 890
    functionName: lesser
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lesser(a,b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:904,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:905,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:907,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:908,1
    - Dst: lesser
      Src: /src/h2o/deps/mruby/src/string.c:909,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:910,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:910,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - str1
    - str2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 918
    functionName: mrb_str_cmp
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - memcmp
    - lesser
    - mrb_str_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/string.c:949,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/string.c:952,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:953,1
    - Dst: mrb_str_cmp
      Src: /src/h2o/deps/mruby/src/string.c:956,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - str1
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: mrb_str_cmp_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_int_value
    - mrb_nil_value
    - mrb_str_cmp
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_cmp_m(mrb_state *mrb, mrb_value str1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:964,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:966,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:967,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:967,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - str1
    - str2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: str_eql
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTRING_LEN
    - memcmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool str_eql(mrb_state *mrb, const mrb_value str1, const mrb_value
      str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/string.c:975,1
    - Dst: str_eql
      Src: /src/h2o/deps/mruby/src/string.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - str1
    - str2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: mrb_str_equal
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - str_eql
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_equal(mrb_state *mrb, mrb_value str1, mrb_value str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/string.c:993,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/string.c:995,1
    - Dst: mrb_str_equal
      Src: /src/h2o/deps/mruby/src/string.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str1
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: mrb_str_equal_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_arg1
    - mrb_str_equal
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_equal_m(mrb_state *mrb, mrb_value str1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1002,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:1003,1
    - Dst: str_replace
      Src: /src/h2o/deps/mruby/src/string.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 999
    functionDepth: 7
    functionLinenumber: 999
    functionLinenumberEnd: 1006
    functionName: mrb_str_dup
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - mrb_str_ptr
    - str_replace
    - str_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_dup(mrb_state *mrb, mrb_value str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/string.c:1025,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/string.c:1026,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/string.c:1027,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/string.c:1031,1
    - Dst: mrb_ensure_int_type
      Src: /src/h2o/deps/mruby/src/string.c:1033,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/string.c:1036,1
    - Dst: str_index_str
      Src: /src/h2o/deps/mruby/src/string.c:1041,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1043,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1047,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/src/string.c:1048,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 6
    argNames:
    - mrb
    - str
    - indx
    - alen
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    - mrb_int*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1022
    functionDepth: 4
    functionLinenumber: 1022
    functionLinenumberEnd: 1059
    functionName: str_convert_range
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_index_str
    - mrb_ensure_int_type
    - mrb_integer
    - mrb_range_beg_len
    - mrb_as_int
    - RSTRING_LEN
    - mrb_type
    - RSTRING_CHAR_LEN
    - mrb_undef_p
    linkageType: ''
    returnType: enum str_convert_range
    signature: enum str_convert_range str_convert_range(mrb_state *mrb, mrb_value
      str, mrb_value indx, mrb_value alen, mrb_int *beg, mrb_int *len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: str_convert_range
      Src: /src/h2o/deps/mruby/src/string.c:1066,1
    - Dst: str_subseq
      Src: /src/h2o/deps/mruby/src/string.c:1068,1
    - Dst: str_substr
      Src: /src/h2o/deps/mruby/src/string.c:1070,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/string.c:1071,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/string.c:1071,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1071,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1071,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/string.c:1074,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1075,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:1078,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - mrb
    - str
    - indx
    - alen
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1061
    functionDepth: 8
    functionLinenumber: 1061
    functionLinenumberEnd: 1084
    functionName: mrb_str_aref
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - mrb_nil_value
    - str_convert_range
    - RSTRING_LEN
    - mrb_str_byte_subseq
    - mrb_string_p
    - mrb_str_dup
    - mrb_nil_p
    - mrb_undef_p
    - str_subseq
    - str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_aref(mrb_state *mrb, mrb_value str, mrb_value indx,
      mrb_value alen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1129,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/string.c:1130,1
    - Dst: mrb_str_aref
      Src: /src/h2o/deps/mruby/src/string.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1124
    functionDepth: 9
    functionLinenumber: 1124
    functionLinenumberEnd: 1134
    functionName: mrb_str_aref_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    - mrb_get_args
    - mrb_str_aref
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_aref_m(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - index
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1136
    functionDepth: 5
    functionLinenumber: 1136
    functionLinenumberEnd: 1140
    functionName: str_out_of_index
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn str_out_of_index(mrb_state *mrb, mrb_value index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1146,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1147,1
    - Dst: str_out_of_index
      Src: /src/h2o/deps/mruby/src/string.c:1154,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:1154,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/string.c:1157,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1157,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/src/string.c:1158,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:1159,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:1162,1
    - Dst: resize_capa
      Src: /src/h2o/deps/mruby/src/string.c:1165,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1168,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/string.c:1170,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/string.c:1171,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/string.c:1172,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1172,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1174,1
    - Dst: resize_capa
      Src: /src/h2o/deps/mruby/src/string.c:1178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - mrb
    - src
    - pos
    - end
    - rep
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1142
    functionDepth: 10
    functionLinenumber: 1142
    functionLinenumberEnd: 1182
    functionName: str_replace_partial
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - mrb_raise
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_int_add_overflow
    - RSTR_SET_LEN
    - mrb_int_value
    - memmove
    - mrb_str_modify
    - mrb_str_ptr
    - resize_capa
    - mrb_nil_p
    - str_out_of_index
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_replace_partial(mrb_state *mrb, mrb_value src, mrb_int
      pos, mrb_int end, mrb_value rep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1185
    functionName: IS_EVSTR
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_EVSTR(p,e)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/string.c:1191,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1196,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/src/string.c:1196,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:1201,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:1208,1
    - Dst: IS_EVSTR
      Src: /src/h2o/deps/mruby/src/string.c:1216,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:1218,1
    - Dst: ISPRINT
      Src: /src/h2o/deps/mruby/src/string.c:1221,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:1223,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:1240,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:1248,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/string.c:1252,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1255,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1256,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/src/string.c:1259,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1259,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 3
    argNames:
    - mrb
    - str
    - inspect
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1264
    functionName: str_escape
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - ISPRINT
    - mrb_str_cat
    - RSTRING_PTR
    - mrb_str_new_lit
    - IS_EVSTR
    - RSTR_SET_ASCII_FLAG
    - mrb_str_cat_lit
    - mrb_str_ptr
    - RSTRING_END
    - mrb_utf8len
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_escape(mrb_state *mrb, mrb_value str, mrb_bool inspect)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/string.c:1271,1
    - Dst: str_convert_range
      Src: /src/h2o/deps/mruby/src/string.c:1272,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:1275,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:1278,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1280,1
    - Dst: str_out_of_index
      Src: /src/h2o/deps/mruby/src/string.c:1282,1
    - Dst: str_range_to_bytes
      Src: /src/h2o/deps/mruby/src/string.c:1285,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/src/string.c:1288,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:1289,1
    - Dst: str_replace_partial
      Src: /src/h2o/deps/mruby/src/string.c:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - mrb
    - str
    - indx
    - alen
    - replace
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1266
    functionDepth: 11
    functionLinenumber: 1266
    functionLinenumberEnd: 1293
    functionName: mrb_str_aset
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_range_to_bytes
    - str_convert_range
    - mrb_raise
    - str_replace_partial
    - mrb_int_add_overflow
    - mrb_ensure_string_type
    - mrb_raisef
    - RSTRING_CHAR_LEN
    - str_out_of_index
    linkageType: ''
    returnType: void
    signature: void mrb_str_aset(mrb_state *mrb, mrb_value str, mrb_value indx, mrb_value
      alen, mrb_value replace)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1310,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/string.c:1313,1
    - Dst: mrb_str_aset
      Src: /src/h2o/deps/mruby/src/string.c:1318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1305
    functionDepth: 12
    functionLinenumber: 1305
    functionLinenumberEnd: 1320
    functionName: mrb_str_aset_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    - mrb_str_aset
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_aset_m(mrb_state *mrb, mrb_value str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1339,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1340,1
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:1342,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1343,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1344,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1345,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/src/string.c:1346,1
    - Dst: TOUPPER
      Src: /src/h2o/deps/mruby/src/string.c:1347,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/string.c:1351,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/src/string.c:1352,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1335
    functionDepth: 9
    functionLinenumber: 1335
    functionLinenumberEnd: 1358
    functionName: mrb_str_capitalize_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - RSTR_PTR
    - RSTR_LEN
    - TOUPPER
    - TOLOWER
    - ISLOWER
    - mrb_str_ptr
    - ISUPPER
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_capitalize_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1377,1
    - Dst: mrb_str_capitalize_bang
      Src: /src/h2o/deps/mruby/src/string.c:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1372
    functionDepth: 10
    functionLinenumber: 1372
    functionLinenumberEnd: 1380
    functionName: mrb_str_capitalize
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_capitalize_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_capitalize(mrb_state *mrb, mrb_value self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1399,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1401,1
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:1402,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1403,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1405,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1407,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1408,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1408,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1409,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1410,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1410,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1411,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1411,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1414,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1415,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1415,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1418,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1420,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1420,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/string.c:1424,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1424,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1425,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1426,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1433,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1434,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1438,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1440,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1441,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1443,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/src/string.c:1450,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1450,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1451,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1452,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1455,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1390
    functionDepth: 9
    functionLinenumber: 1390
    functionLinenumberEnd: 1456
    functionName: mrb_str_chomp_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - RSTR_PTR
    - RSTR_LEN
    - memcmp
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - RSTR_SET_LEN
    - mrb_str_ptr
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_chomp_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1481,1
    - Dst: mrb_str_chomp_bang
      Src: /src/h2o/deps/mruby/src/string.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1476
    functionDepth: 10
    functionLinenumber: 1476
    functionLinenumberEnd: 1484
    functionName: mrb_str_chomp
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_chomp_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_chomp(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1498,1
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:1500,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1501,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1504,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1505,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:1507,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1513,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1515,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1517,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1521,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1522,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1495
    functionDepth: 9
    functionLinenumber: 1495
    functionLinenumberEnd: 1526
    functionName: mrb_str_chop_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - RSTR_PTR
    - RSTR_LEN
    - RSTR_SET_LEN
    - mrb_str_ptr
    - mrb_utf8len
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_chop_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1549,1
    - Dst: mrb_str_chop_bang
      Src: /src/h2o/deps/mruby/src/string.c:1550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1545
    functionDepth: 10
    functionLinenumber: 1545
    functionLinenumberEnd: 1552
    functionName: mrb_str_chop
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_chop_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_chop(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1567,1
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:1569,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1570,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1571,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1571,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/string.c:1573,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/src/string.c:1574,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1562
    functionDepth: 9
    functionLinenumber: 1562
    functionLinenumberEnd: 1582
    functionName: mrb_str_downcase_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - RSTR_PTR
    - RSTR_LEN
    - TOLOWER
    - mrb_str_ptr
    - ISUPPER
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_downcase_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1600,1
    - Dst: mrb_str_downcase_bang
      Src: /src/h2o/deps/mruby/src/string.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1595
    functionDepth: 10
    functionLinenumber: 1595
    functionLinenumberEnd: 1603
    functionName: mrb_str_downcase
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_downcase_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_downcase(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1618,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/string.c:1620,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1621
    functionName: mrb_str_empty_p
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_ptr
    - mrb_bool_value
    - RSTR_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_empty_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/string.c:1633,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/string.c:1636,1
    - Dst: str_eql
      Src: /src/h2o/deps/mruby/src/string.c:1636,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/string.c:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1639
    functionName: mrb_str_eql
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_arg1
    - str_eql
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_eql(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_substr
      Src: /src/h2o/deps/mruby/src/string.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - str
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1645
    functionName: mrb_str_substr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - str_substr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg,
      mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1656,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1657,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1678
    functionName: mrb_str_hash
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_ptr
    - RSTR_PTR
    - RSTR_LEN
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mrb_str_hash(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_hash
      Src: /src/h2o/deps/mruby/src/string.c:1690,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1687
    functionDepth: 2
    functionLinenumber: 1687
    functionLinenumberEnd: 1692
    functionName: mrb_str_hash_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_str_hash
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_hash_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1712,1
    - Dst: str_index_str
      Src: /src/h2o/deps/mruby/src/string.c:1713,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/string.c:1714,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/string.c:1715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1707
    functionDepth: 4
    functionLinenumber: 1707
    functionLinenumberEnd: 1716
    functionName: mrb_str_include
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_index_str
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_include(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1735,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1739,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1741,1
    - Dst: str_index_str
      Src: /src/h2o/deps/mruby/src/string.c:1744,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1746,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:1747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1729
    functionDepth: 4
    functionLinenumber: 1729
    functionLinenumberEnd: 1748
    functionName: mrb_str_byteindex_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_index_str
    - mrb_get_args
    - RSTRING_LEN
    - mrb_int_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_byteindex_m(mrb_state *mrb, mrb_value str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_ASCII_P
      Src: /src/h2o/deps/mruby/src/string.c:1769,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1769,1
    - Dst: mrb_str_byteindex_m
      Src: /src/h2o/deps/mruby/src/string.c:1770,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1776,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1780,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1783,1
    - Dst: str_index_str_by_char
      Src: /src/h2o/deps/mruby/src/string.c:1786,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:1788,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:1789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1766
    functionDepth: 5
    functionLinenumber: 1766
    functionLinenumberEnd: 1790
    functionName: mrb_str_index_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_byteindex_m
    - mrb_get_args
    - mrb_int_value
    - RSTR_ASCII_P
    - mrb_str_ptr
    - str_index_str_by_char
    - RSTRING_CHAR_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_index_m(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1809,1
    - Dst: str_replace
      Src: /src/h2o/deps/mruby/src/string.c:1810,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1810,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1804
    functionDepth: 7
    functionLinenumber: 1804
    functionLinenumberEnd: 1811
    functionName: mrb_str_replace
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_replace
    - mrb_get_args
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_replace(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:1825,1
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:1826,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:1827,1
    - Dst: str_replace
      Src: /src/h2o/deps/mruby/src/string.c:1829,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1829,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1820
    functionDepth: 7
    functionLinenumber: 1820
    functionLinenumberEnd: 1831
    functionName: mrb_str_init
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_replace
    - mrb_str_ptr
    - mrb_get_args
    - str_new
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/string.c:1857,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/src/string.c:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1854
    functionDepth: 6
    functionLinenumber: 1854
    functionLinenumberEnd: 1858
    functionName: mrb_str_intern
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_intern_str
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_intern(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/string.c:1863,1
    - Dst: mrb_sym_str
      Src: /src/h2o/deps/mruby/src/string.c:1867,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/string.c:1867,1
    - Dst: mrb_integer_to_str
      Src: /src/h2o/deps/mruby/src/string.c:1869,1
    - Dst: mrb_mod_to_s
      Src: /src/h2o/deps/mruby/src/string.c:1873,1
    - Dst: mrb_type_convert
      Src: /src/h2o/deps/mruby/src/string.c:1875,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/string.c:1875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1860
    functionDepth: 4
    functionLinenumber: 1860
    functionLinenumberEnd: 1877
    functionName: mrb_obj_as_string
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 4
    functionsReached:
    - mrb_sym_str
    - MRB_SYM
    - mrb_integer_to_str
    - mrb_type_convert
    - mrb_mod_to_s
    - mrb_type
    - mrb_symbol
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_as_string(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/h2o/deps/mruby/src/string.c:1887,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1888,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1898,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1898,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/string.c:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1879
    functionDepth: 7
    functionLinenumber: 1879
    functionLinenumberEnd: 1907
    functionName: mrb_ptr_to_str
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - RSTR_SET_LEN
    - RSTR_PTR
    - mrb_obj_value
    - str_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ptr_to_str(mrb_state *mrb, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1919
    functionName: str_reverse
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void str_reverse(char *p, char *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:1931,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1935,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1936,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:1940,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1941,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1942,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/src/string.c:1944,1
    - Dst: str_reverse
      Src: /src/h2o/deps/mruby/src/string.c:1945,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1952,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:1953,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:1959,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:1960,1
    - Dst: str_reverse
      Src: /src/h2o/deps/mruby/src/string.c:1961,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1928
    functionDepth: 10
    functionLinenumber: 1928
    functionLinenumberEnd: 1963
    functionName: mrb_str_reverse_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - str_reverse
    - mrb_str_modify
    - mrb_str_ptr
    - RSTRING_CHAR_LEN
    - mrb_utf8len
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_reverse_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:1978,1
    - Dst: mrb_str_reverse_bang
      Src: /src/h2o/deps/mruby/src/string.c:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1975
    functionDepth: 11
    functionLinenumber: 1975
    functionLinenumberEnd: 1981
    functionName: mrb_str_reverse
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_dup
    - mrb_str_reverse_bang
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_reverse(mrb_state *mrb, mrb_value str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2000,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2002,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2009,1
    - Dst: str_rindex
      Src: /src/h2o/deps/mruby/src/string.c:2014,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2016,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:2018,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1995
    functionDepth: 3
    functionLinenumber: 1995
    functionLinenumberEnd: 2019
    functionName: mrb_str_byterindex_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_rindex
    - mrb_get_args
    - RSTRING_LEN
    - mrb_int_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_byterindex_m(mrb_state *mrb, mrb_value str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSTR_ASCII_P
      Src: /src/h2o/deps/mruby/src/string.c:2040,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2040,1
    - Dst: mrb_str_byterindex_m
      Src: /src/h2o/deps/mruby/src/string.c:2041,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2047,1
    - Dst: RSTRING_CHAR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2048,1
    - Dst: chars2bytes
      Src: /src/h2o/deps/mruby/src/string.c:2049,1
    - Dst: chars2bytes
      Src: /src/h2o/deps/mruby/src/string.c:2052,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2055,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/src/string.c:2056,1
    - Dst: char_backtrack
      Src: /src/h2o/deps/mruby/src/string.c:2058,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2060,1
    - Dst: str_rindex
      Src: /src/h2o/deps/mruby/src/string.c:2063,1
    - Dst: bytes2chars
      Src: /src/h2o/deps/mruby/src/string.c:2065,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2065,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2065,1
    - Dst: BYTES_ALIGN_CHECK
      Src: /src/h2o/deps/mruby/src/string.c:2066,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:2067,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2069,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2037
    functionDepth: 4
    functionLinenumber: 2037
    functionLinenumberEnd: 2070
    functionName: mrb_str_rindex_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_rindex
    - RSTRING_PTR
    - mrb_get_args
    - mrb_str_byterindex_m
    - chars2bytes
    - RSTRING_END
    - RSTRING_LEN
    - mrb_int_value
    - BYTES_ALIGN_CHECK
    - RSTR_ASCII_P
    - mrb_str_ptr
    - bytes2chars
    - RSTRING_CHAR_LEN
    - char_backtrack
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2112,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2121,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2125,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/string.c:2126,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/string.c:2127,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/string.c:2132,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/string.c:2135,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:2136,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2138,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2138,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/string.c:2142,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2147,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/string.c:2149,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2153,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2155,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2164,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/string.c:2165,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:2165,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/string.c:2166,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2177,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2178,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/string.c:2180,1
    - Dst: mrb_memsearch
      Src: /src/h2o/deps/mruby/src/string.c:2184,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2184,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2184,1
    - Dst: chars2bytes
      Src: /src/h2o/deps/mruby/src/string.c:2188,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/string.c:2190,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:2190,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/string.c:2191,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2197,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2197,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2198,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/string.c:2199,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:2202,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2202,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/string.c:2204,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2208,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2209,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2209,1
    - Dst: mrb_ary_pop
      Src: /src/h2o/deps/mruby/src/string.c:2210,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2108
    functionDepth: 8
    functionLinenumber: 2108
    functionLinenumberEnd: 2214
    functionName: mrb_str_split_m
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_ary_pop
    - mrb_gc_arena_save
    - mrb_str_byte_subseq
    - mrb_nil_p
    - mrb_memsearch
    - RARRAY_PTR
    - mrb_ary_new
    - mrb_ary_new_from_values
    - mrb_raise
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_get_args
    - RARRAY_LEN
    - ISSPACE
    - mrb_string_p
    - chars2bytes
    - mrb_ary_new_capa
    - mrb_nil_value
    - RSTRING_LEN
    - mrb_ary_push
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_split_m(mrb_state *mrb, mrb_value str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - str
    - p
    - pend
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2216
    functionDepth: 1
    functionLinenumber: 2216
    functionLinenumberEnd: 2224
    functionName: trailingbad
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool trailingbad(const char *str, const char *p, const char *pend)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2247,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2249,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2313,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2319,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2342,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:2360,1
    - Dst: conv_digit
      Src: /src/h2o/deps/mruby/src/string.c:2362,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/string.c:2366,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/src/string.c:2378,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/src/string.c:2379,1
    - Dst: trailingbad
      Src: /src/h2o/deps/mruby/src/string.c:2384,1
    - Dst: mrb_bint_new_str
      Src: /src/h2o/deps/mruby/src/string.c:2385,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2387,1
    - Dst: trailingbad
      Src: /src/h2o/deps/mruby/src/string.c:2393,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/string.c:2394,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2396,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2398,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 178
    argCount: 5
    argNames:
    - mrb
    - str
    - len
    - base
    - badcheck
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - mrb_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2226
    functionDepth: 5
    functionLinenumber: 2226
    functionLinenumberEnd: 2399
    functionName: mrb_str_len_to_integer
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_bint_new_str
    - TOLOWER
    - strchr
    - mrb_raise
    - conv_digit
    - mrb_int_value
    - mrb_raisef
    - trailingbad
    - mrb_fixnum_value
    - mrb_int_mul_overflow
    - ISSPACE
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_len_to_integer(mrb_state *mrb, const char *str, size_t
      len, mrb_int base, int badcheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2244
    functionName: conv_digit
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conv_digit(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/string.c:2409,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2410,1
    - Dst: check_null_byte
      Src: /src/h2o/deps/mruby/src/string.c:2411,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2412,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2413,1
    - Dst: str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:2422,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2423,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2402
    functionDepth: 8
    functionLinenumber: 2402
    functionLinenumberEnd: 2425
    functionName: mrb_string_value_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - str_modify_keep_ascii
    - check_null_byte
    - RSTR_PTR
    - RSTR_LEN
    - mrb_ensure_string_type
    - mrb_str_ptr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/deps/mruby/src/string.c:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2427
    functionDepth: 9
    functionLinenumber: 2427
    functionLinenumberEnd: 2431
    functionName: mrb_string_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_string_value_cstr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_string_cstr(mrb_state *mrb, mrb_value str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/string.c:2439,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2440,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2441,1
    - Dst: mrb_str_len_to_integer
      Src: /src/h2o/deps/mruby/src/string.c:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - str
    - base
    - badcheck
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2433
    functionDepth: 6
    functionLinenumber: 2433
    functionLinenumberEnd: 2443
    functionName: mrb_str_to_integer
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_ensure_string_type
    - mrb_str_len_to_integer
    - RSTRING_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_to_integer(mrb_state *mrb, mrb_value str, mrb_int base,
      mrb_bool badcheck)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2471,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2473,1
    - Dst: mrb_str_to_integer
      Src: /src/h2o/deps/mruby/src/string.c:2475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2466
    functionDepth: 7
    functionLinenumber: 2466
    functionLinenumberEnd: 2476
    functionName: mrb_str_to_i
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_str_to_integer
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_to_i(mrb_state *mrb, mrb_value self)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2492,1
    - Dst: mrb_str_len_to_integer
      Src: /src/h2o/deps/mruby/src/string.c:2499,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/string.c:2500,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/string.c:2501,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/string.c:2503,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:2509,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/string.c:2531,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/string.c:2536,1
    - Dst: mrb_float_read
      Src: /src/h2o/deps/mruby/src/string.c:2551,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2555,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/string.c:2562,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 85
    argCount: 4
    argNames:
    - mrb
    - s
    - len
    - badcheck
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2479
    functionDepth: 6
    functionLinenumber: 2479
    functionLinenumberEnd: 2566
    functionName: mrb_str_len_to_dbl
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_float_read
    - mrb_raise
    - mrb_raisef
    - mrb_str_len_to_integer
    - mrb_integer_p
    - ISSPACE
    - mrb_float
    - ISDIGIT
    linkageType: ''
    returnType: double
    signature: double mrb_str_len_to_dbl(mrb_state *mrb, const char *s, size_t len,
      mrb_bool badcheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_len_to_dbl
      Src: /src/h2o/deps/mruby/src/string.c:2571,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2571,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - str
    - badcheck
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2568
    functionDepth: 7
    functionLinenumber: 2568
    functionLinenumberEnd: 2572
    functionName: mrb_str_to_dbl
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_str_len_to_dbl
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_to_dbl(mrb_state *mrb, mrb_value str, mrb_bool badcheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/string.c:2591,1
    - Dst: mrb_str_to_dbl
      Src: /src/h2o/deps/mruby/src/string.c:2591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2588
    functionDepth: 8
    functionLinenumber: 2588
    functionLinenumberEnd: 2592
    functionName: mrb_str_to_f
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_str_to_dbl
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_to_f(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/string.c:2605,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:2606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2602
    functionDepth: 8
    functionLinenumber: 2602
    functionLinenumberEnd: 2609
    functionName: mrb_str_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2622,1
    - Dst: mrb_str_modify_keep_ascii
      Src: /src/h2o/deps/mruby/src/string.c:2626,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2627,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/src/string.c:2628,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/src/string.c:2630,1
    - Dst: TOUPPER
      Src: /src/h2o/deps/mruby/src/string.c:2631,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2619
    functionDepth: 9
    functionLinenumber: 2619
    functionLinenumberEnd: 2639
    functionName: mrb_str_upcase_bang
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_modify_keep_ascii
    - TOUPPER
    - RSTRING_PTR
    - ISLOWER
    - mrb_str_ptr
    - RSTRING_END
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_upcase_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/string.c:2657,1
    - Dst: mrb_str_upcase_bang
      Src: /src/h2o/deps/mruby/src/string.c:2658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2652
    functionDepth: 10
    functionLinenumber: 2652
    functionLinenumberEnd: 2660
    functionName: mrb_str_upcase
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_upcase_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_upcase(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_escape
      Src: /src/h2o/deps/mruby/src/string.c:2672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2669
    functionDepth: 3
    functionLinenumber: 2669
    functionLinenumberEnd: 2673
    functionName: mrb_str_dump
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - str_escape
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_dump(mrb_state *mrb, mrb_value str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2678,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:2684,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2685,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2685,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2685,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2686,1
    - Dst: RSTR_CAPA
      Src: /src/h2o/deps/mruby/src/string.c:2689,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/src/string.c:2690,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2690,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/string.c:2692,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/string.c:2697,1
    - Dst: resize_capa
      Src: /src/h2o/deps/mruby/src/string.c:2699,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2702,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/string.c:2704,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2704,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2704,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2705,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2706,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - mrb
    - str
    - ptr
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2675
    functionDepth: 10
    functionLinenumber: 2675
    functionLinenumberEnd: 2708
    functionName: mrb_str_cat
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 10
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - mrb_raise
    - RSTR_CAPA
    - mrb_int_add_overflow
    - RSTR_SET_LEN
    - memcpy
    - mrb_str_modify
    - mrb_int_mul_overflow
    - mrb_str_ptr
    - resize_capa
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_cat(mrb_state *mrb, mrb_value str, const char *ptr,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2713,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/string.c:2713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - str
    - ptr
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2710
    functionDepth: 11
    functionLinenumber: 2710
    functionLinenumberEnd: 2714
    functionName: mrb_str_cat_cstr
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 8
    functionsReached:
    - mrb_str_cat
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_cat_cstr(mrb_state *mrb, mrb_value str, const char
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2719,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2719,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:2720,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2720,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2722,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2722,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - str
    - str2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2716
    functionDepth: 11
    functionLinenumber: 2716
    functionLinenumberEnd: 2723
    functionName: mrb_str_cat_str
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 6
    functionsReached:
    - mrb_str_cat
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_str_modify
    - mrb_str_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_cat_str(mrb_state *mrb, mrb_value str, mrb_value str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/string.c:2728,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/string.c:2729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - str1
    - str2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2725
    functionDepth: 12
    functionLinenumber: 2725
    functionLinenumberEnd: 2730
    functionName: mrb_str_append
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 2
    functionsReached:
    - mrb_ensure_string_type
    - mrb_str_cat_str
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_str_append(mrb_state *mrb, mrb_value str1, mrb_value str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_escape
      Src: /src/h2o/deps/mruby/src/string.c:2746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2743
    functionDepth: 3
    functionLinenumber: 2743
    functionLinenumberEnd: 2747
    functionName: mrb_str_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 1
    functionsReached:
    - str_escape
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_inspect(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2761,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/string.c:2762,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2762,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2763,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2763,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/string.c:2766,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2770
    functionName: mrb_str_bytes
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - mrb_ary_push
    - mrb_ary_new_capa
    - mrb_fixnum_value
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_bytes(mrb_state *mrb, mrb_value str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2782,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2785,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2786,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2787,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2789,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2778
    functionDepth: 1
    functionLinenumber: 2778
    functionLinenumberEnd: 2790
    functionName: mrb_str_getbyte
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_getbyte(mrb_state *mrb, mrb_value str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2804,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2806,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/string.c:2808,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/src/string.c:2812,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/string.c:2812,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2814,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/string.c:2815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2798
    functionDepth: 10
    functionLinenumber: 2798
    functionLinenumberEnd: 2816
    functionName: mrb_str_setbyte
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_ptr
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_str_modify
    - mrb_fixnum_value
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_setbyte(mrb_state *mrb, mrb_value str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/src/string.c:2847,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2850,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2851,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/string.c:2854,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2855,1
    - Dst: mrb_range_p
      Src: /src/h2o/deps/mruby/src/string.c:2856,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/src/string.c:2857,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2858,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/string.c:2862,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/string.c:2868,1
    - Dst: mrb_str_beg_len
      Src: /src/h2o/deps/mruby/src/string.c:2871,1
    - Dst: mrb_str_byte_subseq
      Src: /src/h2o/deps/mruby/src/string.c:2872,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/string.c:2875,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2840
    functionDepth: 7
    functionLinenumber: 2840
    functionLinenumberEnd: 2877
    functionName: mrb_str_byteslice
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_get_args
    - mrb_range_beg_len
    - RSTRING_LEN
    - mrb_range_p
    - mrb_as_int
    - mrb_str_byte_subseq
    - mrb_argnum_error
    - mrb_get_argc
    - mrb_str_beg_len
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_byteslice(mrb_state *mrb, mrb_value str)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/string.c:2887,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/string.c:2888,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2891,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2897,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2900,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2900,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2903,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2907,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2908,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/string.c:2908,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/string.c:2908,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/string.c:2917,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2879
    functionDepth: 11
    functionLinenumber: 2879
    functionLinenumberEnd: 2922
    functionName: sub_replace
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_cat
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sub_replace(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_static_assert
      Src: /src/h2o/deps/mruby/src/string.c:2930,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/string.c:2933,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/string.c:2934,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2936,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2936,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2938,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2938,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2939,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2939,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2940,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2940,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2941,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2941,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2942,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2942,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2943,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2943,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2944,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2944,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2945,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2945,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2946,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2946,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2947,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2947,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2948,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2948,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2949,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2949,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2950,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2950,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2951,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2951,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2952,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2952,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2953,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2953,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2955,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2955,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2956,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2956,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2957,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/string.c:2957,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2958,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2958,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2959,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2959,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2960,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2960,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2961,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2961,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2962,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2962,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2963,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2963,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2964,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2964,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2965,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2965,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2966,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2966,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2967,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2967,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2968,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2968,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2971,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2971,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2973,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/string.c:2973,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2974,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2974,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2975,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2975,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2976,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2976,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2977,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2977,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2978,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2978,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2979,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2979,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2980,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/string.c:2980,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2982,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2982,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2983,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2983,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2984,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/string.c:2984,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2985,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/string.c:2985,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2986,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/string.c:2986,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/string.c:2988,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/string.c:2988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2925
    functionDepth: 1
    functionLinenumber: 2925
    functionLinenumberEnd: 2989
    functionName: mrb_init_string
    functionSourceFile: /src/h2o/deps/mruby/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ARG
    - mrb_static_assert
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_string(mrb_state *mrb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/proc.c:50,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/proc.c:55,1
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/src/proc.c:58,1
    - Dst: mrb_irep_incref
      Src: /src/h2o/deps/mruby/src/proc.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 13
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: mrb_proc_new
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 2
    functionsReached:
    - MRB_PROC_TARGET_CLASS
    - MRB_OBJ_ALLOC
    - mrb_vm_ci_target_class
    - mrb_irep_incref
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_proc_new(mrb_state *mrb, const mrb_irep *irep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/proc.c:79,1
    - Dst: MRB_ENV_SET_LEN
      Src: /src/h2o/deps/mruby/src/proc.c:81,1
    - Dst: MRB_ENV_SET_BIDX
      Src: /src/h2o/deps/mruby/src/proc.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - mrb
    - c
    - ci
    - nstacks
    - stack
    - tc
    argTypes:
    - mrb_state*
    - struct mrb_context*
    - mrb_callinfo*
    - int
    - mrb_value*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: mrb_env_new
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_SET_LEN
    - MRB_OBJ_ALLOC
    - MRB_ENV_SET_BIDX
    linkageType: ''
    returnType: struct REnv
    signature: 'struct REnv *

      mrb_env_new(mrb_state *mrb, struct mrb_context *c, mrb_callinfo *ci, int nstacks,
      mrb_value *stack, struct RClass *tc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/proc.c:99,1
    - Dst: mrb_env_new
      Src: /src/h2o/deps/mruby/src/proc.c:105,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/proc.c:107,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/proc.c:107,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/proc.c:108,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/proc.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 116
    functionName: closure_setup
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_ENV
    - mrb_field_write_barrier
    - MRB_PROC_ENV_P
    - mrb_env_new
    - mrb_vm_ci_env
    linkageType: ''
    returnType: void
    signature: void closure_setup(mrb_state *mrb, struct RProc *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_new
      Src: /src/h2o/deps/mruby/src/proc.c:121,1
    - Dst: closure_setup
      Src: /src/h2o/deps/mruby/src/proc.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 14
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: mrb_closure_new
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_proc_new
    - closure_setup
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_closure_new(mrb_state *mrb, const mrb_irep *irep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/proc.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - func
    argTypes:
    - mrb_state*
    - mrb_func_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: mrb_proc_new_cfunc
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_proc_new_cfunc(mrb_state *mrb, mrb_func_t func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_new_cfunc
      Src: /src/h2o/deps/mruby/src/proc.c:144,1
    - Dst: mrb_env_new
      Src: /src/h2o/deps/mruby/src/proc.c:148,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/proc.c:150,1
    - Dst: MRB_ENV_CLOSE
      Src: /src/h2o/deps/mruby/src/proc.c:151,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/proc.c:153,1
    - Dst: MRB_ENV_SET_LEN
      Src: /src/h2o/deps/mruby/src/proc.c:154,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/src/proc.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - mrb
    - func
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_func_t
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: mrb_proc_new_cfunc_with_env
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_SET_LEN
    - mrb_field_write_barrier
    - mrb_proc_new_cfunc
    - mrb_env_new
    - SET_NIL_VALUE
    - MRB_ENV_CLOSE
    - mrb_malloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const
      mrb_value *argv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/src/proc.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - func
    - nlocals
    argTypes:
    - mrb_state*
    - mrb_func_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: mrb_closure_new_cfunc
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_proc_new_cfunc_with_env
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_closure_new_cfunc(mrb_state *mrb, mrb_func_t func, int nlocals)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:181,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:182,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/proc.c:184,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:186,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/proc.c:188,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/proc.c:189,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/proc.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - idx
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 194
    functionName: mrb_proc_cfunc_env_get
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_LEN
    - MRB_PROC_ENV
    - mrb_raise
    - MRB_PROC_CFUNC_P
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:203,1
    - Dst: mrb_irep_incref
      Src: /src/h2o/deps/mruby/src/proc.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - struct RProc*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 13
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: mrb_proc_copy
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_irep_incref
    - MRB_PROC_CFUNC_P
    linkageType: ''
    returnType: void
    signature: void mrb_proc_copy(mrb_state *mrb, struct RProc *a, struct RProc *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/proc.c:221,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/proc.c:222,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:222,1
    - Dst: mrb_proc_copy
      Src: /src/h2o/deps/mruby/src/proc.c:223,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:223,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/proc.c:224,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/proc.c:225,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/proc.c:225,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/src/proc.c:226,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/proc.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - proc_class
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 14
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: mrb_proc_s_new
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_OBJ_ALLOC
    - MRB_PROC_ENV
    - mrb_proc_ptr
    - mrb_funcall_with_block
    - mrb_get_args
    - mrb_proc_copy
    - mrb_class_ptr
    - MRB_PROC_STRICT_P
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_s_new(mrb_state *mrb, mrb_value proc_class)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_p
      Src: /src/h2o/deps/mruby/src/proc.c:236,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - proc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: check_proc
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_proc_p
    linkageType: ''
    returnType: void
    signature: void check_proc(mrb_state *mrb, mrb_value proc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/proc.c:244,1
    - Dst: check_proc
      Src: /src/h2o/deps/mruby/src/proc.c:246,1
    - Dst: mrb_proc_copy
      Src: /src/h2o/deps/mruby/src/proc.c:247,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:247,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 14
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: mrb_proc_init_copy
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_proc_copy
    - mrb_proc_ptr
    - check_proc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_init_copy(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/proc.c:255,1
    - Dst: mrb_proc_arity
      Src: /src/h2o/deps/mruby/src/proc.c:255,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: proc_arity
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 1
    functionsReached:
    - mrb_int_value
    - mrb_proc_arity
    - mrb_proc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value proc_arity(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/proc.c:273,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/proc.c:274,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:275,1
    - Dst: check_proc
      Src: /src/h2o/deps/mruby/src/proc.c:277,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:278,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/src/proc.c:279,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/proc.c:280,1
    - Dst: mrb_proc_copy
      Src: /src/h2o/deps/mruby/src/proc.c:281,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/proc.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 267
    functionDepth: 14
    functionLinenumber: 267
    functionLinenumberEnd: 286
    functionName: proc_lambda
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_proc_ptr
    - mrb_raise
    - mrb_obj_value
    - mrb_get_args
    - mrb_proc_copy
    - check_proc
    - MRB_PROC_STRICT_P
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value proc_lambda(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:296,1
    - Dst: PEEK_W
      Src: /src/h2o/deps/mruby/src/proc.c:312,1
    - Dst: MRB_ASPEC_REQ
      Src: /src/h2o/deps/mruby/src/proc.c:313,1
    - Dst: MRB_ASPEC_OPT
      Src: /src/h2o/deps/mruby/src/proc.c:314,1
    - Dst: MRB_ASPEC_REST
      Src: /src/h2o/deps/mruby/src/proc.c:315,1
    - Dst: MRB_ASPEC_POST
      Src: /src/h2o/deps/mruby/src/proc.c:316,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/src/proc.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 320
    functionName: mrb_proc_arity
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 1
    functionsReached:
    - PEEK_W
    - MRB_ASPEC_OPT
    - MRB_PROC_STRICT_P
    - MRB_ASPEC_POST
    - MRB_ASPEC_REQ
    - MRB_PROC_CFUNC_P
    - MRB_ASPEC_REST
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_proc_arity(const struct RProc *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:329,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/proc.c:330,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/src/proc.c:332,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:334,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/src/proc.c:340,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/src/proc.c:345,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/proc.c:345,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/proc.c:345,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/src/proc.c:351,1
    - Dst: mrb_hash_keys
      Src: /src/h2o/deps/mruby/src/proc.c:355,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - mrb
    - proc
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 356
    functionName: mrb_proc_local_variables
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_true_value
    - MRB_PROC_SCOPE_P
    - mrb_hash_set
    - mrb_hash_new
    - MRB_PROC_CFUNC_P
    - mrb_symbol_value
    - mrb_sym_name
    - mrb_hash_keys
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_local_variables(mrb_state *mrb, const struct RProc
      *proc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/proc.c:365,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/proc.c:369,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/proc.c:370,1
    - Dst: mrb_env_new
      Src: /src/h2o/deps/mruby/src/proc.c:374,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/proc.c:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - envp
    argTypes:
    - mrb_state*
    - struct REnv**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 385
    functionName: mrb_proc_get_caller
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_env_new
    - mrb_field_write_barrier
    - MRB_PROC_CFUNC_P
    - MRB_PROC_TARGET_CLASS
    - mrb_vm_ci_env
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_proc_get_caller(mrb_state *mrb, struct REnv **envp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/proc.c:403,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:406,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/proc.c:410,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/proc.c:413,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/proc.c:414,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/proc.c:418,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/src/proc.c:420,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/proc.c:422,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/proc.c:423,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/proc.c:423,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/proc.c:429,1
    - Dst: MRB_ENV_SET_LEN
      Src: /src/h2o/deps/mruby/src/proc.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - mrb
    - irep
    - env
    - num
    - lv
    - stack
    argTypes:
    - mrb_state*
    - mrb_irep*
    - struct REnv*
    - int
    - mrb_sym*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 435
    functionName: mrb_proc_merge_lvar
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - MRB_ENV_SET_LEN
    - mrb_raise
    - mrb_realloc
    - mrb_field_write_barrier
    - mrb_obj_ptr
    - mrb_immediate_p
    - memmove
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void mrb_proc_merge_lvar(mrb_state *mrb, mrb_irep *irep, struct REnv
      *env, int num, const mrb_sym *lv, const mrb_value *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/proc.c:442,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/proc.c:442,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/proc.c:442,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/proc.c:443,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/proc.c:443,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/proc.c:444,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/proc.c:444,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/proc.c:446,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/proc.c:447,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/proc.c:447,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/proc.c:448,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/proc.c:448,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/proc.c:450,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/proc.c:450,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/proc.c:450,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/proc.c:451,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/proc.c:451,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/proc.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: mrb_init_proc
    functionSourceFile: /src/h2o/deps/mruby/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_SYM
    - MRB_METHOD_FROM_PROC
    - MRB_ARGS_BLOCK
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_method_raw
    - MRB_OPSYM
    linkageType: ''
    returnType: void
    signature: void mrb_init_proc(mrb_state *mrb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numops.c:16,1
    - Dst: mrb_bint_add
      Src: /src/h2o/deps/mruby/src/numops.c:17,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numops.c:20,1
    - Dst: mrb_int_add
      Src: /src/h2o/deps/mruby/src/numops.c:21,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numops.c:24,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numops.c:25,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numops.c:25,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numops.c:25,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numops.c:29,1
    - Dst: mrb_rational_add
      Src: /src/h2o/deps/mruby/src/numops.c:32,1
    - Dst: mrb_complex_add
      Src: /src/h2o/deps/mruby/src/numops.c:36,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numops.c:42,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/numops.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 44
    functionName: mrb_num_add
    functionSourceFile: /src/h2o/deps/mruby/src/numops.c
    functionUses: 0
    functionsReached:
    - mrb_complex_add
    - mrb_rational_add
    - mrb_raise
    - mrb_int_add
    - mrb_float_p
    - mrb_bint_add
    - mrb_float_value
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_type
    - mrb_nil_value
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_num_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numops.c:50,1
    - Dst: mrb_bint_sub
      Src: /src/h2o/deps/mruby/src/numops.c:51,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numops.c:54,1
    - Dst: mrb_int_sub
      Src: /src/h2o/deps/mruby/src/numops.c:55,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numops.c:58,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numops.c:59,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numops.c:59,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numops.c:59,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numops.c:63,1
    - Dst: mrb_rational_sub
      Src: /src/h2o/deps/mruby/src/numops.c:66,1
    - Dst: mrb_complex_sub
      Src: /src/h2o/deps/mruby/src/numops.c:70,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numops.c:76,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/numops.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 78
    functionName: mrb_num_sub
    functionSourceFile: /src/h2o/deps/mruby/src/numops.c
    functionUses: 0
    functionsReached:
    - mrb_bint_sub
    - mrb_int_sub
    - mrb_complex_sub
    - mrb_raise
    - mrb_float_p
    - mrb_float_value
    - mrb_rational_sub
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_type
    - mrb_nil_value
    - mrb_float
    - mrb_as_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_num_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/src/numops.c:84,1
    - Dst: mrb_bint_mul
      Src: /src/h2o/deps/mruby/src/numops.c:85,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/numops.c:88,1
    - Dst: mrb_int_mul
      Src: /src/h2o/deps/mruby/src/numops.c:89,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/numops.c:92,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/src/numops.c:93,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/numops.c:93,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/numops.c:93,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/numops.c:97,1
    - Dst: mrb_rational_mul
      Src: /src/h2o/deps/mruby/src/numops.c:100,1
    - Dst: mrb_complex_mul
      Src: /src/h2o/deps/mruby/src/numops.c:104,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/numops.c:110,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/numops.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: mrb_num_mul
    functionSourceFile: /src/h2o/deps/mruby/src/numops.c
    functionUses: 0
    functionsReached:
    - mrb_rational_mul
    - mrb_complex_mul
    - mrb_raise
    - mrb_float_p
    - mrb_float_value
    - mrb_bint_mul
    - mrb_bigint_p
    - mrb_int_mul
    - mrb_integer_p
    - mrb_type
    - mrb_float
    - mrb_as_float
    - mrb_nil_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - p_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: DEFINE_GETTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_GETTER(c_, n_, t_, p_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - p_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: DEFINE_SETTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SETTER(c_, n_, t_, p_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - p_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: DEFINE_ACCESSOR
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ACCESSOR(c_, n_, t_, p_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - k_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: DEFINE_FLAG_GETTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FLAG_GETTER(c_, n_, t_, k_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - k_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: DEFINE_FLAG_SETTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FLAG_SETTER(c_, n_, t_, k_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c_
    - ','
    - n_
    - ','
    - t_
    - ','
    - k_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: DEFINE_FLAG_ACCESSOR
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FLAG_ACCESSOR(c_, n_, t_, k_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c_
    - ','
    - n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: DEFINE_INCREMENTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_INCREMENTER(c_, n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c_
    - ','
    - n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: DEFINE_DECREMENTER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_DECREMENTER(c_, n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n_
    - ','
    - k_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: DEFINE_SWITCHER
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SWITCHER(n_, k_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ea
    - ','
    - size
    - ','
    - entry_var
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: ea_each
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ea_each(ea, size, entry_var, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mrb
    - ','
    - h
    - ','
    - key
    - ','
    - it_var
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: ib_cycle_by_key
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ib_cycle_by_key(mrb, h, key, it_var, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mrb
    - ','
    - h_
    - ','
    - key_
    - ','
    - it_var
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 208
    functionName: ib_find_by_key
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ib_find_by_key(mrb, h_, key_, it_var, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - entry_var
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: h_each
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h_each(h, entry_var, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attr_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: HT_ASSERT_SAFE_READ
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ASSERT_SAFE_READ(attr_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - h
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: h_check_modified
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h_check_modified(mrb, h, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: U32
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: h_ar_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h_ar_p(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: h_ar_on
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h_ar_on(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: lesser
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lesser(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: RHASH_IFNONE
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHASH_IFNONE(hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: RHASH_PROCDEFAULT
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHASH_PROCDEFAULT(hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:303,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:305,1
    - Dst: __builtin_clz
      Src: /src/h2o/deps/mruby/src/hash.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: next_power2
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - U32
    - __builtin_clz
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t next_power2(uint32_t v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/hash.c:320,1
    - Dst: mrb_str_hash
      Src: /src/h2o/deps/mruby/src/hash.c:325,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:330,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/src/hash.c:330,1
    - Dst: mrb_fixnum_p
      Src: /src/h2o/deps/mruby/src/hash.c:333,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:334,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/src/hash.c:334,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:341,1
    - Dst: mrb_obj_id
      Src: /src/h2o/deps/mruby/src/hash.c:341,1
    - Dst: h_check_modified
      Src: /src/h2o/deps/mruby/src/hash.c:344,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/hash.c:345,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:345,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:348,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:348,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/hash.c:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - mrb
    - key
    - h
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 317
    functionDepth: 10
    functionLinenumber: 317
    functionLinenumberEnd: 352
    functionName: obj_hash_code
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - U32
    - mrb_fixnum_p
    - mrb_integer
    - mrb_obj_id
    - h_check_modified
    - mrb_type
    - mrb_fixnum
    - mrb_str_hash
    - mrb_funcall_argv
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obj_hash_code(mrb_state *mrb, mrb_value key, struct RHash
      *h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/hash.c:357,1
    - Dst: mrb_str_equal
      Src: /src/h2o/deps/mruby/src/hash.c:362,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/hash.c:365,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/hash.c:366,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/hash.c:366,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/hash.c:369,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/hash.c:370,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/hash.c:370,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/hash.c:374,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/hash.c:375,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/hash.c:375,1
    - Dst: h_check_modified
      Src: /src/h2o/deps/mruby/src/hash.c:379,1
    - Dst: mrb_eql
      Src: /src/h2o/deps/mruby/src/hash.c:379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - mrb
    - a
    - b
    - h
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 382
    functionName: obj_eql
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_str_equal
    - mrb_integer
    - mrb_eql
    - mrb_symbol_p
    - mrb_float_p
    - h_check_modified
    - mrb_type
    - mrb_integer_p
    - mrb_symbol
    - mrb_float
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool obj_eql(mrb_state *mrb, mrb_value a, mrb_value b, struct RHash
      *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/hash.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: entry_deleted_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_undef_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool entry_deleted_p(const hash_entry* entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/hash.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: entry_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    linkageType: ''
    returnType: void
    signature: void entry_delete(hash_entry* entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - size
    - max_capa
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 413
    functionName: ea_next_capa_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - U32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ea_next_capa_for(uint32_t size, uint32_t max_capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/hash.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - ea
    - capa
    argTypes:
    - mrb_state*
    - hash_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: ea_resize
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_realloc
    linkageType: ''
    returnType: hash_entry
    signature: 'hash_entry *

      ea_resize(mrb_state *mrb, hash_entry *ea, uint32_t capa)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ea_each_used
      Src: /src/h2o/deps/mruby/src/hash.c:425,1
    - Dst: entry_deleted_p
      Src: /src/h2o/deps/mruby/src/hash.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ea
    - n_used
    argTypes:
    - hash_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: ea_compress
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_each_used
    - entry_deleted_p
    linkageType: ''
    returnType: void
    signature: void ea_compress(hash_entry *ea, uint32_t n_used)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ea_next_capa_for
      Src: /src/h2o/deps/mruby/src/hash.c:440,1
    - Dst: ea_resize
      Src: /src/h2o/deps/mruby/src/hash.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - ea
    - capap
    - max_capa
    argTypes:
    - mrb_state*
    - hash_entry*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: ea_adjust
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_next_capa_for
    - ea_resize
    linkageType: ''
    returnType: hash_entry
    signature: 'hash_entry *

      ea_adjust(mrb_state *mrb, hash_entry *ea, uint32_t *capap, uint32_t max_capa)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/hash.c:448,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/hash.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - ea
    - capa
    argTypes:
    - mrb_state*
    - hash_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: ea_dup
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_malloc
    linkageType: ''
    returnType: hash_entry
    signature: 'hash_entry *

      ea_dup(mrb_state *mrb, const hash_entry *ea, uint32_t capa)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:456,1
    - Dst: obj_eql
      Src: /src/h2o/deps/mruby/src/hash.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - mrb
    - ea
    - size
    - key
    - h
    argTypes:
    - mrb_state*
    - hash_entry*
    - uint32_t
    - mrb_value
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: ea_get_by_key
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_each
    - obj_eql
    linkageType: ''
    returnType: hash_entry
    signature: "hash_entry *\nea_get_by_key(mrb_state *mrb, hash_entry *ea, uint32_t
      size, mrb_value key,\n              struct RHash *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ea
    - index
    argTypes:
    - hash_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: ea_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hash_entry
    signature: 'hash_entry *

      ea_get(hash_entry *ea, uint32_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ea
    - index
    - key
    - val
    argTypes:
    - hash_entry*
    - uint32_t
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: ea_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ea_set(hash_entry *ea, uint32_t index, mrb_value key, mrb_value
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_on
      Src: /src/h2o/deps/mruby/src/hash.c:479,1
    - Dst: ar_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:480,1
    - Dst: ar_set_ea
      Src: /src/h2o/deps/mruby/src/hash.c:481,1
    - Dst: ar_set_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:482,1
    - Dst: ar_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - h
    - size
    - ea
    - ea_capa
    - ea_n_used
    argTypes:
    - struct RHash*
    - uint32_t
    - hash_entry*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: ar_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ar_set_ea_capa
    - ar_set_ea_n_used
    - ar_set_size
    - ar_set_ea
    - h_ar_on
    linkageType: ''
    returnType: void
    signature: "void ar_init(struct RHash *h, uint32_t size,\n        hash_entry *ea,
      uint32_t ea_capa, uint32_t ea_n_used)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/hash.c:489,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: ar_free
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ar_ea
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void ar_free(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ea_adjust
      Src: /src/h2o/deps/mruby/src/hash.c:496,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:496,1
    - Dst: ar_set_ea
      Src: /src/h2o/deps/mruby/src/hash.c:497,1
    - Dst: ar_set_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - h
    - size
    - max_ea_capa
    argTypes:
    - mrb_state*
    - struct RHash*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: ar_adjust_ea
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ar_ea
    - ar_set_ea
    - ea_adjust
    - ar_set_ea_capa
    linkageType: ''
    returnType: void
    signature: void ar_adjust_ea(mrb_state *mrb, struct RHash *h, uint32_t size, uint32_t
      max_ea_capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:504,1
    - Dst: ea_compress
      Src: /src/h2o/deps/mruby/src/hash.c:505,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:505,1
    - Dst: ar_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:505,1
    - Dst: ar_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:506,1
    - Dst: ar_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:507,1
    - Dst: lesser
      Src: /src/h2o/deps/mruby/src/hash.c:507,1
    - Dst: ar_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 6
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: ar_compress
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ar_ea_capa
    - ar_ea_n_used
    - ar_set_ea_n_used
    - ea_compress
    - lesser
    - ar_ea
    - ar_size
    - ar_adjust_ea
    linkageType: ''
    returnType: void
    signature: void ar_compress(mrb_state *mrb, struct RHash *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:513,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:513,1
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:513,1
    - Dst: obj_eql
      Src: /src/h2o/deps/mruby/src/hash.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 519
    functionName: ar_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ar_ea
    - ar_size
    - ea_each
    - obj_eql
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ar_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      *valp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:524,1
    - Dst: ea_get_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:526,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:526,1
    - Dst: ar_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:530,1
    - Dst: ar_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:530,1
    - Dst: ea_adjust
      Src: /src/h2o/deps/mruby/src/hash.c:534,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:534,1
    - Dst: ea_set
      Src: /src/h2o/deps/mruby/src/hash.c:535,1
    - Dst: ht_init
      Src: /src/h2o/deps/mruby/src/hash.c:536,1
    - Dst: ar_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:540,1
    - Dst: ar_compress
      Src: /src/h2o/deps/mruby/src/hash.c:544,1
    - Dst: ea_set
      Src: /src/h2o/deps/mruby/src/hash.c:548,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:548,1
    - Dst: ar_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:549,1
    - Dst: ar_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - val
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 521
    functionDepth: 7
    functionLinenumber: 521
    functionLinenumberEnd: 552
    functionName: ar_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_set
    - ar_ea_capa
    - ar_ea_n_used
    - ar_set_ea_n_used
    - ht_init
    - ar_set_size
    - ea_adjust
    - ar_ea
    - ar_size
    - ar_compress
    - ar_adjust_ea
    - ea_get_by_key
    linkageType: ''
    returnType: void
    signature: void ar_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ea_get_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:557,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:557,1
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:557,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:560,1
    - Dst: ar_dec_size
      Src: /src/h2o/deps/mruby/src/hash.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 5
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: ar_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - entry_delete
    - ar_dec_size
    - ar_ea
    - ar_size
    - ea_get_by_key
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ar_delete(mrb_state *mrb, struct RHash *h, mrb_value key,
      mrb_value *valp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:568,1
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:569,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:569,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:572,1
    - Dst: ar_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - mrb
    - h
    - keyp
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 576
    functionName: ar_shift
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_each
    - entry_delete
    - ar_set_size
    - ar_ea
    - ar_size
    linkageType: ''
    returnType: void
    signature: void ar_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value
      *valp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ar_size
      Src: /src/h2o/deps/mruby/src/hash.c:582,1
    - Dst: ar_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:582,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:583,1
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:584,1
    - Dst: ea_get_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:585,1
    - Dst: ar_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:587,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:588,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:591,1
    - Dst: ea_set
      Src: /src/h2o/deps/mruby/src/hash.c:592,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:593,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:598,1
    - Dst: ar_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:599,1
    - Dst: ar_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: ar_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - ea_set
    - ea_each
    - ar_ea_capa
    - entry_delete
    - U32
    - ar_set_ea_n_used
    - ar_set_size
    - ar_ea
    - ar_size
    - ar_adjust_ea
    - ea_get_by_key
    linkageType: ''
    returnType: void
    signature: void ar_rehash(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - v
    argTypes:
    - index_buckets_iter*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: ib_it_pos_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_it_pos_for(index_buckets_iter *it, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: ib_it_empty_value
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_it_empty_value(const index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: ib_it_deleted_value
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_it_deleted_value(const index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_it_empty_value
      Src: /src/h2o/deps/mruby/src/hash.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: ib_it_empty_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_empty_value
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ib_it_empty_p(const index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_it_deleted_value
      Src: /src/h2o/deps/mruby/src/hash.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: ib_it_deleted_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_deleted_value
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ib_it_deleted_p(const index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_it_deleted_value
      Src: /src/h2o/deps/mruby/src/hash.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: ib_it_active_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_deleted_value
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ib_it_active_p(const index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:643,1
    - Dst: ib_bit_to_capa
      Src: /src/h2o/deps/mruby/src/hash.c:644,1
    - Dst: ib_it_pos_for
      Src: /src/h2o/deps/mruby/src/hash.c:645,1
    - Dst: obj_hash_code
      Src: /src/h2o/deps/mruby/src/hash.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - it
    - h
    - key
    argTypes:
    - mrb_state*
    - index_buckets_iter*
    - struct RHash*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 639
    functionDepth: 11
    functionLinenumber: 639
    functionLinenumberEnd: 647
    functionName: ib_it_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_pos_for
    - ib_bit
    - ib_bit_to_capa
    - obj_hash_code
    linkageType: ''
    returnType: void
    signature: void ib_it_init(mrb_state *mrb, index_buckets_iter *it, struct RHash
      *h, mrb_value key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:677,1
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:680,1
    - Dst: ib_it_pos_for
      Src: /src/h2o/deps/mruby/src/hash.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 686
    functionName: ib_it_next
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_pos_for
    - ht_ib
    linkageType: ''
    returnType: void
    signature: void ib_it_next(index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: ib_it_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_it_get(const index_buckets_iter *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:702,1
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:702,1
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:706,1
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - it
    - ea_index
    argTypes:
    - index_buckets_iter*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 707
    functionName: ib_it_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ib
    linkageType: ''
    returnType: void
    signature: void ib_it_set(index_buckets_iter *it, uint32_t ea_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_it_set
      Src: /src/h2o/deps/mruby/src/hash.c:712,1
    - Dst: ib_it_deleted_value
      Src: /src/h2o/deps/mruby/src/hash.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: ib_it_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_set
    - ib_it_deleted_value
    linkageType: ''
    returnType: void
    signature: void ib_it_delete(index_buckets_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ea_get
      Src: /src/h2o/deps/mruby/src/hash.c:718,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - index_buckets_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: ib_it_entry
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ea
    - ea_get
    linkageType: ''
    returnType: hash_entry
    signature: 'hash_entry *

      ib_it_entry(index_buckets_iter *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:725,1
    - Dst: __builtin_ctz
      Src: /src/h2o/deps/mruby/src/hash.c:725,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - capa
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 734
    functionName: ib_capa_to_bit
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - U32
    - __builtin_ctz
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_capa_to_bit(uint32_t capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: ib_bit_to_capa
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - U32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_bit_to_capa(uint32_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capa
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: ib_upper_bound_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_upper_bound_for(uint32_t capa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_power2
      Src: /src/h2o/deps/mruby/src/hash.c:751,1
    - Dst: ib_upper_bound_for
      Src: /src/h2o/deps/mruby/src/hash.c:752,1
    - Dst: ib_capa_to_bit
      Src: /src/h2o/deps/mruby/src/hash.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: ib_bit_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_capa_to_bit
    - next_power2
    - ib_upper_bound_for
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_bit_for(uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:759,1
    - Dst: ib_bit_to_capa
      Src: /src/h2o/deps/mruby/src/hash.c:761,1
    - Dst: ib_bit_to_capa
      Src: /src/h2o/deps/mruby/src/hash.c:762,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ib_bit
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 764
    functionName: ib_byte_size_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - ib_bit_to_capa
    - U32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ib_byte_size_for(uint32_t ib_bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:769,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/src/hash.c:770,1
    - Dst: ht_ib
      Src: /src/h2o/deps/mruby/src/hash.c:770,1
    - Dst: ib_set_bit
      Src: /src/h2o/deps/mruby/src/hash.c:771,1
    - Dst: ea_each_used
      Src: /src/h2o/deps/mruby/src/hash.c:772,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:772,1
    - Dst: ib_cycle_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:773,1
    - Dst: ib_it_empty_p
      Src: /src/h2o/deps/mruby/src/hash.c:774,1
    - Dst: ib_it_set
      Src: /src/h2o/deps/mruby/src/hash.c:775,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - h
    - ib_bit
    - ib_byte_size
    argTypes:
    - mrb_state*
    - struct RHash*
    - uint32_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 779
    functionName: ib_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_set
    - ht_ea_n_used
    - U32
    - ht_ea
    - ib_it_empty_p
    - ib_set_bit
    - ht_ib
    - ib_cycle_by_key
    - memset
    - ea_each_used
    linkageType: ''
    returnType: void
    signature: void ib_init(mrb_state *mrb, struct RHash *h, uint32_t ib_bit, size_t
      ib_byte_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_byte_size_for
      Src: /src/h2o/deps/mruby/src/hash.c:785,1
    - Dst: h_ht_on
      Src: /src/h2o/deps/mruby/src/hash.c:787,1
    - Dst: h_set_ht
      Src: /src/h2o/deps/mruby/src/hash.c:788,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/hash.c:788,1
    - Dst: ht_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:789,1
    - Dst: ht_set_ea
      Src: /src/h2o/deps/mruby/src/hash.c:790,1
    - Dst: ht_set_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:791,1
    - Dst: ht_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:792,1
    - Dst: ib_init
      Src: /src/h2o/deps/mruby/src/hash.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - mrb
    - h
    - size
    - ea
    - ea_capa
    - ht
    - ib_bit
    argTypes:
    - mrb_state*
    - struct RHash*
    - uint32_t
    - hash_entry*
    - uint32_t
    - hash_table*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 794
    functionName: ht_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - h_ht_on
    - ht_set_size
    - ht_set_ea
    - mrb_realloc
    - ht_set_ea_capa
    - ht_set_ea_n_used
    - ib_init
    - ib_byte_size_for
    - h_set_ht
    linkageType: ''
    returnType: void
    signature: "void ht_init(mrb_state *mrb, struct RHash *h, uint32_t size,\n        hash_entry
      *ea, uint32_t ea_capa, hash_table *ht, uint32_t ib_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/hash.c:799,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:799,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/hash.c:800,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: ht_free
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_ht
    - mrb_free
    - ht_ea
    linkageType: ''
    returnType: void
    signature: void ht_free(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_byte_size_for
      Src: /src/h2o/deps/mruby/src/hash.c:806,1
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:806,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/hash.c:808,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/hash.c:809,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: ht_dup
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_ht
    - memcpy
    - ib_byte_size_for
    - ib_bit
    - mrb_malloc
    linkageType: ''
    returnType: hash_table
    signature: 'hash_table *

      ht_dup(mrb_state *mrb, const struct RHash *h)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ea_adjust
      Src: /src/h2o/deps/mruby/src/hash.c:816,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:816,1
    - Dst: ht_set_ea
      Src: /src/h2o/deps/mruby/src/hash.c:817,1
    - Dst: ht_set_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - h
    - size
    - max_ea_capa
    argTypes:
    - mrb_state*
    - struct RHash*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 812
    functionDepth: 5
    functionLinenumber: 812
    functionLinenumberEnd: 819
    functionName: ht_adjust_ea
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_adjust
    - ht_set_ea
    - ht_ea
    - ht_set_ea_capa
    linkageType: ''
    returnType: void
    signature: void ht_adjust_ea(mrb_state *mrb, struct RHash *h, uint32_t size, uint32_t
      max_ea_capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:824,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:825,1
    - Dst: ea_compress
      Src: /src/h2o/deps/mruby/src/hash.c:826,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:826,1
    - Dst: ea_adjust
      Src: /src/h2o/deps/mruby/src/hash.c:827,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/hash.c:828,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:828,1
    - Dst: ar_init
      Src: /src/h2o/deps/mruby/src/hash.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 5
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: ht_to_ar
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ea_n_used
    - ht_ea
    - h_ht
    - ht_size
    - ea_adjust
    - mrb_free
    - ar_init
    - ea_compress
    linkageType: ''
    returnType: void
    signature: void ht_to_ar(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_find_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:835,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 840
    functionName: ht_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_find_by_key
    - ib_it_entry
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ht_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      *valp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ht_to_ar
      Src: /src/h2o/deps/mruby/src/hash.c:845,1
    - Dst: ar_set
      Src: /src/h2o/deps/mruby/src/hash.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - val
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 8
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: ht_set_as_ar
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_to_ar
    - ar_set
    linkageType: ''
    returnType: void
    signature: void ht_set_as_ar(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:853,1
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:853,1
    - Dst: ib_bit_to_capa
      Src: /src/h2o/deps/mruby/src/hash.c:853,1
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:853,1
    - Dst: ib_cycle_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:854,1
    - Dst: ib_it_active_p
      Src: /src/h2o/deps/mruby/src/hash.c:855,1
    - Dst: obj_eql
      Src: /src/h2o/deps/mruby/src/hash.c:856,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:856,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:857,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:860,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:862,1
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:862,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/hash.c:863,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:865,1
    - Dst: ht_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:865,1
    - Dst: ib_it_set
      Src: /src/h2o/deps/mruby/src/hash.c:866,1
    - Dst: ea_set
      Src: /src/h2o/deps/mruby/src/hash.c:867,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:867,1
    - Dst: ht_inc_size
      Src: /src/h2o/deps/mruby/src/hash.c:868,1
    - Dst: ht_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - val
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 849
    functionDepth: 6
    functionLinenumber: 849
    functionLinenumberEnd: 873
    functionName: ht_set_without_ib_adjustment
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ib_it_set
    - mrb_assert
    - ht_ea_n_used
    - obj_eql
    - ea_set
    - ib_it_active_p
    - ht_ea
    - mrb_raise
    - ht_size
    - ib_it_entry
    - ht_adjust_ea
    - ht_set_ea_n_used
    - ib_cycle_by_key
    - ht_inc_size
    - ib_bit
    - ht_ea_capa
    - ib_bit_to_capa
    linkageType: ''
    returnType: void
    signature: "void ht_set_without_ib_adjustment(mrb_state *mrb, struct RHash *h,\n
      \                            mrb_value key, mrb_value val)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:878,1
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:879,1
    - Dst: ib_bit_to_capa
      Src: /src/h2o/deps/mruby/src/hash.c:879,1
    - Dst: ib_upper_bound_for
      Src: /src/h2o/deps/mruby/src/hash.c:880,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:881,1
    - Dst: ea_compress
      Src: /src/h2o/deps/mruby/src/hash.c:881,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:881,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:881,1
    - Dst: ht_init
      Src: /src/h2o/deps/mruby/src/hash.c:882,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:882,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:882,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:882,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:884,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:885,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:886,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:886,1
    - Dst: ht_set_as_ar
      Src: /src/h2o/deps/mruby/src/hash.c:887,1
    - Dst: ea_next_capa_for
      Src: /src/h2o/deps/mruby/src/hash.c:888,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:888,1
    - Dst: ea_compress
      Src: /src/h2o/deps/mruby/src/hash.c:890,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:890,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:890,1
    - Dst: ht_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:891,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:891,1
    - Dst: ht_init
      Src: /src/h2o/deps/mruby/src/hash.c:892,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:892,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:892,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:892,1
    - Dst: ht_set_without_ib_adjustment
      Src: /src/h2o/deps/mruby/src/hash.c:896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - val
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 875
    functionDepth: 9
    functionLinenumber: 875
    functionLinenumberEnd: 897
    functionName: ht_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ea_n_used
    - ht_ea
    - ht_set_without_ib_adjustment
    - ht_init
    - h_ht
    - ht_size
    - ea_next_capa_for
    - ht_adjust_ea
    - ht_set_as_ar
    - ib_bit
    - ib_upper_bound_for
    - ht_ea_capa
    - ea_compress
    - ib_bit_to_capa
    linkageType: ''
    returnType: void
    signature: void ht_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ib_find_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:902,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:903,1
    - Dst: ib_it_delete
      Src: /src/h2o/deps/mruby/src/hash.c:905,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:906,1
    - Dst: ht_dec_size
      Src: /src/h2o/deps/mruby/src/hash.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 911
    functionName: ht_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - entry_delete
    - ib_it_entry
    - ht_dec_size
    - ib_find_by_key
    - ib_it_delete
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool ht_delete(mrb_state *mrb, struct RHash *h, mrb_value key,
      mrb_value *valp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:916,1
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:917,1
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:917,1
    - Dst: ib_cycle_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:918,1
    - Dst: ib_it_get
      Src: /src/h2o/deps/mruby/src/hash.c:919,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:919,1
    - Dst: ib_it_delete
      Src: /src/h2o/deps/mruby/src/hash.c:922,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:923,1
    - Dst: ht_dec_size
      Src: /src/h2o/deps/mruby/src/hash.c:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - mrb
    - h
    - keyp
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 928
    functionName: ht_shift
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ea_each
    - ht_ea
    - U32
    - entry_delete
    - ht_size
    - ht_dec_size
    - ib_cycle_by_key
    - ib_it_get
    - ib_it_delete
    linkageType: ''
    returnType: void
    signature: void ht_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value
      *valp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ht_size
      Src: /src/h2o/deps/mruby/src/hash.c:934,1
    - Dst: ht_to_ar
      Src: /src/h2o/deps/mruby/src/hash.c:936,1
    - Dst: ar_rehash
      Src: /src/h2o/deps/mruby/src/hash.c:937,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:940,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:941,1
    - Dst: ht_init
      Src: /src/h2o/deps/mruby/src/hash.c:942,1
    - Dst: h_ht
      Src: /src/h2o/deps/mruby/src/hash.c:942,1
    - Dst: ib_bit_for
      Src: /src/h2o/deps/mruby/src/hash.c:942,1
    - Dst: ht_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:943,1
    - Dst: ht_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:944,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:944,1
    - Dst: ea_each
      Src: /src/h2o/deps/mruby/src/hash.c:945,1
    - Dst: ib_cycle_by_key
      Src: /src/h2o/deps/mruby/src/hash.c:946,1
    - Dst: ib_it_active_p
      Src: /src/h2o/deps/mruby/src/hash.c:947,1
    - Dst: obj_eql
      Src: /src/h2o/deps/mruby/src/hash.c:948,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:948,1
    - Dst: ib_it_entry
      Src: /src/h2o/deps/mruby/src/hash.c:949,1
    - Dst: ht_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:950,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:951,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:954,1
    - Dst: ea_set
      Src: /src/h2o/deps/mruby/src/hash.c:955,1
    - Dst: entry_delete
      Src: /src/h2o/deps/mruby/src/hash.c:956,1
    - Dst: ib_it_set
      Src: /src/h2o/deps/mruby/src/hash.c:958,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/hash.c:963,1
    - Dst: ht_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:964,1
    - Dst: ht_to_ar
      Src: /src/h2o/deps/mruby/src/hash.c:965,1
    - Dst: ht_adjust_ea
      Src: /src/h2o/deps/mruby/src/hash.c:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 930
    functionDepth: 7
    functionLinenumber: 930
    functionLinenumberEnd: 966
    functionName: ht_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ea_n_used
    - ea_set
    - entry_delete
    - ht_init
    - ht_size
    - ib_cycle_by_key
    - mrb_assert
    - U32
    - ht_set_size
    - ht_adjust_ea
    - ht_ea_capa
    - ib_bit_for
    - ar_rehash
    - ea_each
    - ht_ea
    - h_ht
    - ht_set_ea_n_used
    - ib_it_entry
    - ht_to_ar
    - ib_it_set
    - obj_eql
    - ib_it_active_p
    linkageType: ''
    returnType: void
    signature: void ht_rehash(mrb_state *mrb, struct RHash *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/hash.c:971,1
    - Dst: MRB_FROZEN_P
      Src: /src/h2o/deps/mruby/src/hash.c:971,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:971,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/hash.c:972,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/hash.c:973,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - key
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 968
    functionDepth: 8
    functionLinenumber: 968
    functionLinenumberEnd: 976
    functionName: h_key_for
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_FROZEN_P
    - mrb_str_dup
    - MRB_SET_FROZEN_FLAG
    - mrb_str_ptr
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h_key_for(mrb_state *mrb, mrb_value key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/hash.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: h_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: struct RHash
    signature: 'struct RHash *

      h_alloc(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ar_init
      Src: /src/h2o/deps/mruby/src/hash.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 988
    functionName: h_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - ar_init
    linkageType: ''
    returnType: void
    signature: void h_init(struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 994
    functionName: h_free_table
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_ar_p
    linkageType: ''
    returnType: void
    signature: void h_free_table(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_free_table
      Src: /src/h2o/deps/mruby/src/hash.c:999,1
    - Dst: h_init
      Src: /src/h2o/deps/mruby/src/hash.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1001
    functionName: h_clear
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_init
    - h_free_table
    linkageType: ''
    returnType: void
    signature: void h_clear(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1007
    functionName: h_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 6
    functionsReached:
    - h_ar_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool h_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      *valp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - val
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    functionName: h_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 4
    functionsReached:
    - h_ar_p
    linkageType: ''
    returnType: void
    signature: void h_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - h
    - key
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: h_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_ar_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool h_delete(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value
      *valp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - h
    - keyp
    - valp
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_value*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1026
    functionName: h_shift
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_ar_p
    linkageType: ''
    returnType: void
    signature: void h_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value
      *valp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1041,1
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1042
    functionName: h_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - h_size
    - h_ar_p
    linkageType: ''
    returnType: void
    signature: void h_rehash(mrb_state *mrb, struct RHash *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1047,1
    - Dst: h_clear
      Src: /src/h2o/deps/mruby/src/hash.c:1049,1
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1051,1
    - Dst: ar_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1052,1
    - Dst: ea_dup
      Src: /src/h2o/deps/mruby/src/hash.c:1053,1
    - Dst: ar_ea
      Src: /src/h2o/deps/mruby/src/hash.c:1053,1
    - Dst: h_free_table
      Src: /src/h2o/deps/mruby/src/hash.c:1054,1
    - Dst: ar_init
      Src: /src/h2o/deps/mruby/src/hash.c:1055,1
    - Dst: ar_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:1055,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1058,1
    - Dst: ea_dup
      Src: /src/h2o/deps/mruby/src/hash.c:1059,1
    - Dst: ht_ea
      Src: /src/h2o/deps/mruby/src/hash.c:1059,1
    - Dst: ht_dup
      Src: /src/h2o/deps/mruby/src/hash.c:1060,1
    - Dst: h_free_table
      Src: /src/h2o/deps/mruby/src/hash.c:1061,1
    - Dst: h_ht_on
      Src: /src/h2o/deps/mruby/src/hash.c:1062,1
    - Dst: h_set_ht
      Src: /src/h2o/deps/mruby/src/hash.c:1063,1
    - Dst: ht_set_size
      Src: /src/h2o/deps/mruby/src/hash.c:1064,1
    - Dst: ht_set_ea
      Src: /src/h2o/deps/mruby/src/hash.c:1065,1
    - Dst: ht_set_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1067,1
    - Dst: ht_set_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:1068,1
    - Dst: ht_ea_n_used
      Src: /src/h2o/deps/mruby/src/hash.c:1068,1
    - Dst: ib_set_bit
      Src: /src/h2o/deps/mruby/src/hash.c:1070,1
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - h
    - orig_h
    argTypes:
    - mrb_state*
    - struct RHash*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1044
    functionDepth: 5
    functionLinenumber: 1044
    functionLinenumberEnd: 1072
    functionName: h_replace
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - ht_ea_n_used
    - ar_ea_n_used
    - ib_set_bit
    - ar_ea
    - h_size
    - h_ht_on
    - ar_ea_capa
    - ht_set_size
    - ar_init
    - ht_set_ea_capa
    - ib_bit
    - ht_ea_capa
    - ht_ea
    - ea_dup
    - ht_set_ea_n_used
    - h_ar_p
    - ht_set_ea
    - ht_dup
    - h_free_table
    - h_set_ht
    - h_clear
    linkageType: ''
    returnType: void
    signature: void h_replace(mrb_state *mrb, struct RHash *h, struct RHash *orig_h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1077,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/hash.c:1078,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/hash.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: mrb_gc_mark_hash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - h_each
    - mrb_gc_mark_value
    linkageType: ''
    returnType: void
    signature: void mrb_gc_mark_hash(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    functionName: mrb_gc_mark_hash_size
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - h_size
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_gc_mark_hash_size(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_free_table
      Src: /src/h2o/deps/mruby/src/hash.c:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - h
    argTypes:
    - mrb_state*
    - struct RHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1093
    functionName: mrb_gc_free_hash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - h_free_table
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_hash(mrb_state *mrb, struct RHash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1098,1
    - Dst: mrb_obj_iv_tbl_memsize
      Src: /src/h2o/deps/mruby/src/hash.c:1099,1
    - Dst: h_ar_p
      Src: /src/h2o/deps/mruby/src/hash.c:1100,1
    - Dst: ar_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1100,1
    - Dst: ht_ea_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1101,1
    - Dst: ib_byte_size_for
      Src: /src/h2o/deps/mruby/src/hash.c:1103,1
    - Dst: ib_bit
      Src: /src/h2o/deps/mruby/src/hash.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1095
    functionDepth: 3
    functionLinenumber: 1095
    functionLinenumberEnd: 1104
    functionName: mrb_hash_memsize
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_obj_iv_tbl_memsize
    - ar_ea_capa
    - mrb_hash_ptr
    - ib_byte_size_for
    - ib_bit
    - ht_ea_capa
    - h_ar_p
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_hash_memsize(mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1110,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/hash.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - h
    - func
    - data
    argTypes:
    - mrb_state*
    - struct RHash*
    - mrb_hash_foreach_func*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1113
    functionName: mrb_hash_foreach
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - func
    - h_each
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_foreach(mrb_state *mrb, struct RHash *h, mrb_hash_foreach_func
      *func, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_alloc
      Src: /src/h2o/deps/mruby/src/hash.c:1118,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/hash.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    functionName: mrb_hash_new
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 2
    functionsReached:
    - mrb_obj_value
    - h_alloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_new(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/hash.c:1130,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1131,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/src/hash.c:1134,1
    - Dst: U32
      Src: /src/h2o/deps/mruby/src/hash.c:1137,1
    - Dst: h_alloc
      Src: /src/h2o/deps/mruby/src/hash.c:1138,1
    - Dst: ea_resize
      Src: /src/h2o/deps/mruby/src/hash.c:1139,1
    - Dst: ar_init
      Src: /src/h2o/deps/mruby/src/hash.c:1141,1
    - Dst: ht_init
      Src: /src/h2o/deps/mruby/src/hash.c:1144,1
    - Dst: ib_bit_for
      Src: /src/h2o/deps/mruby/src/hash.c:1144,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/hash.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - capa
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1126
    functionDepth: 4
    functionLinenumber: 1126
    functionLinenumberEnd: 1148
    functionName: mrb_hash_new_capa
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 3
    functionsReached:
    - U32
    - mrb_raise
    - ht_init
    - ar_init
    - mrb_obj_value
    - mrb_hash_new
    - ea_resize
    - mrb_nil_value
    - ib_bit_for
    - h_alloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_new_capa(mrb_state *mrb, mrb_int capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/hash.c:1155,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1156
    functionName: hash_modify
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_hash_ptr
    - mrb_check_frozen
    linkageType: ''
    returnType: void
    signature: void hash_modify(mrb_state *mrb, mrb_value hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MRB_RHASH_DEFAULT_P
      Src: /src/h2o/deps/mruby/src/hash.c:1161,1
    - Dst: MRB_RHASH_PROCDEFAULT_P
      Src: /src/h2o/deps/mruby/src/hash.c:1162,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/hash.c:1163,1
    - Dst: RHASH_PROCDEFAULT
      Src: /src/h2o/deps/mruby/src/hash.c:1163,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1163,1
    - Dst: RHASH_IFNONE
      Src: /src/h2o/deps/mruby/src/hash.c:1166,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - hash
    - key
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 5
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: hash_default
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_RHASH_PROCDEFAULT_P
    - MRB_SYM
    - MRB_RHASH_DEFAULT_P
    - mrb_funcall_id
    - RHASH_IFNONE
    - mrb_nil_value
    - RHASH_PROCDEFAULT
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value hash_default(mrb_state *mrb, mrb_value hash, mrb_value key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1175,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1175,1
    - Dst: h_replace
      Src: /src/h2o/deps/mruby/src/hash.c:1178,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1179,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/hash.c:1181,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/hash.c:1181,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/src/hash.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - self
    - orig
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1172
    functionDepth: 6
    functionLinenumber: 1172
    functionLinenumberEnd: 1188
    functionName: hash_replace
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_set
    - h_replace
    - mrb_hash_ptr
    - mrb_iv_get
    - mrb_iv_remove
    linkageType: ''
    returnType: void
    signature: void hash_replace(mrb_state *mrb, mrb_value self, mrb_value orig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/hash.c:1194,1
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1195,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1196,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1196,1
    - Dst: hash_replace
      Src: /src/h2o/deps/mruby/src/hash.c:1196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1190
    functionDepth: 7
    functionLinenumber: 1190
    functionLinenumberEnd: 1198
    functionName: mrb_hash_init_copy
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_hash_ptr
    - hash_replace
    - mrb_get_args
    - hash_modify
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_alloc
      Src: /src/h2o/deps/mruby/src/hash.c:1203,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/hash.c:1204,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1205,1
    - Dst: hash_replace
      Src: /src/h2o/deps/mruby/src/hash.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1200
    functionDepth: 7
    functionLinenumber: 1200
    functionLinenumberEnd: 1208
    functionName: mrb_hash_dup
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - mrb_obj_value
    - hash_replace
    - h_alloc
    - mrb_hash_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_dup(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h_get
      Src: /src/h2o/deps/mruby/src/hash.c:1216,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1216,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1220,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/hash.c:1221,1
    - Dst: hash_default
      Src: /src/h2o/deps/mruby/src/hash.c:1222,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/hash.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - hash
    - key
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1210
    functionDepth: 10
    functionLinenumber: 1210
    functionLinenumberEnd: 1226
    functionName: mrb_hash_get
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 3
    functionsReached:
    - MRB_SYM
    - mrb_func_basic_p
    - mrb_hash_ptr
    - hash_default
    - h_get
    - mrb_funcall_argv
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h_get
      Src: /src/h2o/deps/mruby/src/hash.c:1233,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - hash
    - key
    - def
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1238
    functionName: mrb_hash_fetch
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - mrb_hash_ptr
    - h_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key,
      mrb_value def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1243,1
    - Dst: h_key_for
      Src: /src/h2o/deps/mruby/src/hash.c:1244,1
    - Dst: h_set
      Src: /src/h2o/deps/mruby/src/hash.c:1245,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1245,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/hash.c:1246,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1246,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/hash.c:1247,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - hash
    - key
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1240
    functionDepth: 9
    functionLinenumber: 1240
    functionLinenumberEnd: 1248
    functionName: mrb_hash_set
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 4
    functionsReached:
    - mrb_basic_ptr
    - h_set
    - mrb_field_write_barrier_value
    - hash_modify
    - mrb_hash_ptr
    - h_key_for
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key,
      mrb_value val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1292,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/hash.c:1293,1
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1294,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/hash.c:1295,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/hash.c:1297,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1299,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/hash.c:1302,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1303,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/hash.c:1304,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1286
    functionDepth: 6
    functionLinenumber: 1286
    functionLinenumberEnd: 1307
    functionName: mrb_hash_init
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_set
    - RHASH
    - mrb_get_args
    - hash_modify
    - mrb_argnum_error
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_init(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1326,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby/src/hash.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1323
    functionDepth: 11
    functionLinenumber: 1323
    functionLinenumberEnd: 1329
    functionName: mrb_hash_aget
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_hash_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_aget(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/hash.c:1359,1
    - Dst: MRB_RHASH_DEFAULT_P
      Src: /src/h2o/deps/mruby/src/hash.c:1360,1
    - Dst: MRB_RHASH_PROCDEFAULT_P
      Src: /src/h2o/deps/mruby/src/hash.c:1361,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1362,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/hash.c:1363,1
    - Dst: RHASH_PROCDEFAULT
      Src: /src/h2o/deps/mruby/src/hash.c:1363,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1363,1
    - Dst: RHASH_IFNONE
      Src: /src/h2o/deps/mruby/src/hash.c:1366,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1353
    functionDepth: 5
    functionLinenumber: 1353
    functionLinenumberEnd: 1370
    functionName: mrb_hash_default
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_RHASH_PROCDEFAULT_P
    - MRB_SYM
    - MRB_RHASH_DEFAULT_P
    - mrb_funcall_id
    - mrb_get_args
    - RHASH_IFNONE
    - mrb_nil_value
    - RHASH_PROCDEFAULT
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_default(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1396,1
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1398,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/hash.c:1399,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1399,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1400,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/hash.c:1401,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1402,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1393
    functionDepth: 6
    functionLinenumber: 1393
    functionLinenumberEnd: 1408
    functionName: mrb_hash_set_default
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - mrb_iv_set
    - RHASH
    - hash_modify
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_RHASH_PROCDEFAULT_P
      Src: /src/h2o/deps/mruby/src/hash.c:1428,1
    - Dst: RHASH_PROCDEFAULT
      Src: /src/h2o/deps/mruby/src/hash.c:1429,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1432
    functionName: mrb_hash_default_proc
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_RHASH_PROCDEFAULT_P
    - RHASH_PROCDEFAULT
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1450,1
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1452,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/hash.c:1453,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/hash.c:1453,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/hash.c:1454,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1455,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1456,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1459,1
    - Dst: RHASH
      Src: /src/h2o/deps/mruby/src/hash.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1447
    functionDepth: 6
    functionLinenumber: 1447
    functionLinenumberEnd: 1464
    functionName: mrb_hash_set_default_proc
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - mrb_iv_set
    - RHASH
    - hash_modify
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1471,1
    - Dst: h_delete
      Src: /src/h2o/deps/mruby/src/hash.c:1472,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1472,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - hash
    - key
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1478
    functionName: mrb_hash_delete_key
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - mrb_hash_ptr
    - hash_modify
    - mrb_nil_value
    - h_delete
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1483,1
    - Dst: mrb_hash_delete_key
      Src: /src/h2o/deps/mruby/src/hash.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1480
    functionDepth: 3
    functionLinenumber: 1480
    functionLinenumberEnd: 1486
    functionName: mrb_hash_delete
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_hash_delete_key
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_delete(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1505,1
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1507,1
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1508,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/hash.c:1509,1
    - Dst: h_shift
      Src: /src/h2o/deps/mruby/src/hash.c:1513,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/hash.c:1514,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/hash.c:1515,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/src/hash.c:1516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1502
    functionDepth: 5
    functionLinenumber: 1502
    functionLinenumberEnd: 1518
    functionName: mrb_hash_shift
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_gc_protect
    - hash_modify
    - mrb_hash_ptr
    - h_size
    - h_shift
    - mrb_nil_value
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_shift(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1535,1
    - Dst: h_clear
      Src: /src/h2o/deps/mruby/src/hash.c:1536,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1532
    functionDepth: 4
    functionLinenumber: 1532
    functionLinenumberEnd: 1538
    functionName: mrb_hash_clear
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_hash_ptr
    - hash_modify
    - h_clear
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_clear(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/hash.c:1564,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/src/hash.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1559
    functionDepth: 10
    functionLinenumber: 1559
    functionLinenumberEnd: 1567
    functionName: mrb_hash_aset
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_hash_set
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_aset(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1572,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: mrb_hash_size
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - mrb_hash_ptr
    - h_size
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_size(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_size
      Src: /src/h2o/deps/mruby/src/hash.c:1592,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/hash.c:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1589
    functionDepth: 2
    functionLinenumber: 1589
    functionLinenumberEnd: 1594
    functionName: mrb_hash_size_m
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_hash_size
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_size_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1599,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1600
    functionName: mrb_hash_empty_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 3
    functionsReached:
    - mrb_hash_ptr
    - h_size
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_empty_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/hash.c:1615,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/src/hash.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 2
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: mrb_hash_empty_m
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_hash_empty_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_empty_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1634,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1635,1
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1635,1
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1636,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/hash.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1631
    functionDepth: 1
    functionLinenumber: 1631
    functionLinenumberEnd: 1640
    functionName: mrb_hash_keys
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 2
    functionsReached:
    - mrb_ary_push
    - h_each
    - mrb_hash_ptr
    - h_size
    - mrb_ary_new_capa
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_keys(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1658,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/hash.c:1659,1
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1659,1
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1660,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/hash.c:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1664
    functionName: mrb_hash_values
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_ary_push
    - h_each
    - mrb_hash_ptr
    - h_size
    - mrb_ary_new_capa
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_values(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_get
      Src: /src/h2o/deps/mruby/src/hash.c:1689,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - hash
    - key
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1690
    functionName: mrb_hash_key_p
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 2
    functionsReached:
    - mrb_hash_ptr
    - h_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1695,1
    - Dst: mrb_hash_key_p
      Src: /src/h2o/deps/mruby/src/hash.c:1698,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/hash.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1700
    functionName: mrb_hash_has_key
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_arg1
    - mrb_hash_key_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_has_key(mrb_state *mrb, mrb_value hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/hash.c:1720,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1721,1
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1722,1
    - Dst: h_check_modified
      Src: /src/h2o/deps/mruby/src/hash.c:1723,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/hash.c:1724,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/hash.c:1724,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/hash.c:1727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1728
    functionName: mrb_hash_has_value
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - mrb_equal
    - h_each
    - mrb_hash_ptr
    - h_check_modified
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_has_value(mrb_state *mrb, mrb_value hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hash_modify
      Src: /src/h2o/deps/mruby/src/hash.c:1735,1
    - Dst: mrb_ensure_hash_type
      Src: /src/h2o/deps/mruby/src/hash.c:1736,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1737,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1738,1
    - Dst: h_size
      Src: /src/h2o/deps/mruby/src/hash.c:1741,1
    - Dst: h_each
      Src: /src/h2o/deps/mruby/src/hash.c:1742,1
    - Dst: h_check_modified
      Src: /src/h2o/deps/mruby/src/hash.c:1743,1
    - Dst: h_set
      Src: /src/h2o/deps/mruby/src/hash.c:1743,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/hash.c:1744,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/hash.c:1745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - hash1
    - hash2
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1730
    functionDepth: 2
    functionLinenumber: 1730
    functionLinenumberEnd: 1747
    functionName: mrb_hash_merge
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 1
    functionsReached:
    - h_set
    - mrb_field_write_barrier_value
    - hash_modify
    - h_each
    - mrb_hash_ptr
    - h_size
    - h_check_modified
    - mrb_ensure_hash_type
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/hash.c:1755,1
    - Dst: mrb_hash_merge
      Src: /src/h2o/deps/mruby/src/hash.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1749
    functionDepth: 3
    functionLinenumber: 1749
    functionLinenumberEnd: 1760
    functionName: mrb_hash_merge_m
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_hash_merge
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_merge_m(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h_rehash
      Src: /src/h2o/deps/mruby/src/hash.c:1785,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/deps/mruby/src/hash.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1782
    functionDepth: 2
    functionLinenumber: 1782
    functionLinenumberEnd: 1787
    functionName: mrb_hash_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_hash_ptr
    - h_rehash
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hash_rehash(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/hash.c:1794,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/hash.c:1795,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1797,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1797,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1798,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1798,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1799,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1799,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1800,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/hash.c:1800,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1801,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1801,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1802,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1802,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1803,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1803,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1804,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1804,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1805,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1805,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1806,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1806,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1807,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1807,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1808,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1808,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1809,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/hash.c:1809,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/hash.c:1809,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1810,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1810,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1811,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1811,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1812,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1812,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1813,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1813,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1814,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1814,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1815,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1815,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1816,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1816,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1817,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1817,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1818,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1818,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1819,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1819,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1820,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1820,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1821,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/hash.c:1821,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/hash.c:1822,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/hash.c:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1823
    functionName: mrb_init_hash
    functionSourceFile: /src/h2o/deps/mruby/src/hash.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_hash(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:17,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - irep
    - n
    argTypes:
    - mrb_state*
    - mrb_irep*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: print_r
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - printf
    - mrb_sym_dump
    linkageType: ''
    returnType: void
    signature: void print_r(mrb_state *mrb, const mrb_irep *irep, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:24,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:27,1
    - Dst: print_r
      Src: /src/h2o/deps/mruby/src/codedump.c:28,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - irep
    - a
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: print_lv_a
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - printf
    - print_r
    linkageType: ''
    returnType: void
    signature: void print_lv_a(mrb_state *mrb, const mrb_irep *irep, uint16_t a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:36,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:39,1
    - Dst: print_r
      Src: /src/h2o/deps/mruby/src/codedump.c:40,1
    - Dst: print_r
      Src: /src/h2o/deps/mruby/src/codedump.c:41,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - irep
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: print_lv_ab
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - printf
    - print_r
    linkageType: ''
    returnType: void
    signature: void print_lv_ab(mrb_state *mrb, const mrb_irep *irep, uint16_t a,
      uint16_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/codedump.c:50,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/src/codedump.c:51,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:53,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - irep
    - i
    argTypes:
    - mrb_state*
    - mrb_irep*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: print_header
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - printf
    - mrb_debug_get_line
    linkageType: ''
    returnType: void
    signature: void print_header(mrb_state *mrb, const mrb_irep *irep, ptrdiff_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/codedump.c:65,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:70,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:73,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:76,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:78,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:81,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: print_args
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - printf
    linkageType: ''
    returnType: void
    signature: void print_args(uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(insn,ops)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:98,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:106,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:110,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:112,1
    - Dst: mrb_irep_catch_handler_table
      Src: /src/h2o/deps/mruby/src/codedump.c:119,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/codedump.c:122,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/codedump.c:123,1
    - Dst: mrb_irep_catch_handler_unpack
      Src: /src/h2o/deps/mruby/src/codedump.c:124,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/src/codedump.c:137,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:141,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/codedump.c:153,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/src/codedump.c:156,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:158,1
    - Dst: print_header
      Src: /src/h2o/deps/mruby/src/codedump.c:161,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/codedump.c:162,1
    - Dst: print_lv_ab
      Src: /src/h2o/deps/mruby/src/codedump.c:169,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:176,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:180,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:184,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:188,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:191,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:195,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:199,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:203,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:207,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:211,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:226,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:227,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:231,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:235,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:239,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:243,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:246,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:247,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:250,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:251,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:254,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:255,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:258,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:259,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:262,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:263,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:266,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:267,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:270,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:271,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:274,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:275,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:278,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:279,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:282,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:283,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:287,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:291,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:294,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:295,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:298,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:299,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:331,1
    - Dst: print_args
      Src: /src/h2o/deps/mruby/src/codedump.c:332,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:335,1
    - Dst: print_args
      Src: /src/h2o/deps/mruby/src/codedump.c:336,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:339,1
    - Dst: print_args
      Src: /src/h2o/deps/mruby/src/codedump.c:340,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:343,1
    - Dst: print_args
      Src: /src/h2o/deps/mruby/src/codedump.c:344,1
    - Dst: print_args
      Src: /src/h2o/deps/mruby/src/codedump.c:351,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:360,1
    - Dst: MRB_ASPEC_REQ
      Src: /src/h2o/deps/mruby/src/codedump.c:364,1
    - Dst: MRB_ASPEC_OPT
      Src: /src/h2o/deps/mruby/src/codedump.c:365,1
    - Dst: MRB_ASPEC_REST
      Src: /src/h2o/deps/mruby/src/codedump.c:366,1
    - Dst: MRB_ASPEC_POST
      Src: /src/h2o/deps/mruby/src/codedump.c:367,1
    - Dst: MRB_ASPEC_KEY
      Src: /src/h2o/deps/mruby/src/codedump.c:368,1
    - Dst: MRB_ASPEC_KDICT
      Src: /src/h2o/deps/mruby/src/codedump.c:369,1
    - Dst: MRB_ASPEC_BLOCK
      Src: /src/h2o/deps/mruby/src/codedump.c:370,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:373,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:374,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:380,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:381,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:385,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:389,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:393,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:402,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:420,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:423,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:426,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:426,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:433,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:440,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:465,1
    - Dst: print_lv_ab
      Src: /src/h2o/deps/mruby/src/codedump.c:469,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:473,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:477,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:481,1
    - Dst: print_lv_ab
      Src: /src/h2o/deps/mruby/src/codedump.c:485,1
    - Dst: print_lv_ab
      Src: /src/h2o/deps/mruby/src/codedump.c:489,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:493,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:497,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:531,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:535,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:552,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:555,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:560,1
    - Dst: print_lv_ab
      Src: /src/h2o/deps/mruby/src/codedump.c:564,1
    - Dst: print_lv_a
      Src: /src/h2o/deps/mruby/src/codedump.c:568,1
    - Dst: print_header
      Src: /src/h2o/deps/mruby/src/codedump.c:581,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/codedump.c:582,1
    - Dst: print_header
      Src: /src/h2o/deps/mruby/src/codedump.c:591,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/codedump.c:592,1
    - Dst: print_header
      Src: /src/h2o/deps/mruby/src/codedump.c:601,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/src/codedump.c:602,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:611,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/codedump.c:614,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 311
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 615
    functionName: codedump
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 0
    functionsReached:
    - MRB_ASPEC_OPT
    - print_lv_ab
    - mrb_debug_get_filename
    - mrb_gc_arena_save
    - MRB_ASPEC_BLOCK
    - mrb_gc_arena_restore
    - printf
    - MRB_ASPEC_POST
    - MRB_ASPEC_REQ
    - print_args
    - MRB_ASPEC_REST
    - mrb_irep_catch_handler_table
    - MRB_ASPEC_KDICT
    - READ_B
    - print_lv_a
    - snprintf
    - print_header
    - MRB_ASPEC_KEY
    - mrb_irep_catch_handler_unpack
    - mrb_sym_dump
    linkageType: ''
    returnType: void
    signature: void codedump(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:176,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:180,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:184,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void CASE(OP_LOADL, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:531,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/src/codedump.c:535,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/codedump.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 553
    functionName: CASE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached:
    - printf
    - mrb_sym_dump
    linkageType: ''
    returnType: void
    signature: void CASE(OP_SYMBOL, BB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codedump
      Src: /src/h2o/deps/mruby/src/codedump.c:624,1
    - Dst: codedump_recur
      Src: /src/h2o/deps/mruby/src/codedump.c:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 8
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: codedump_recur
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached:
    - codedump
    - codedump_recur
    linkageType: ''
    returnType: void
    signature: void codedump_recur(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codedump_recur
      Src: /src/h2o/deps/mruby/src/codedump.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - proc
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 9
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: mrb_codedump_all
    functionSourceFile: /src/h2o/deps/mruby/src/codedump.c
    functionUses: 1
    functionsReached:
    - codedump_recur
    linkageType: ''
    returnType: void
    signature: void mrb_codedump_all(mrb_state *mrb, struct RProc *proc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: get_irep_header_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_irep_header_size(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:40,1
    - Dst: get_irep_record_size_1
      Src: /src/h2o/deps/mruby/src/dump.c:40,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:41,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:42,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - irep
    - buf
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: write_irep_header
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - uint32_to_bin
    - get_irep_record_size_1
    - uint16_to_bin
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t write_irep_header(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: get_iseq_block_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_iseq_block_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:68,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:69,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - irep
    - buf
    - flags
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: write_iseq_block
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint32_to_bin
    - uint16_to_bin
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t write_iseq_block(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *buf, uint8_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - buf
    - f
    argTypes:
    - mrb_state*
    - uint8_t*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: dump_float
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void dump_float(mrb_state *mrb, uint8_t *buf, mrb_float f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/dump.c:109,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/dump.c:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 159
    functionName: get_pool_block_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    linkageType: ''
    returnType: size_t
    signature: size_t get_pool_block_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:169,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/dump.c:172,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:180,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:181,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:182,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:185,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:186,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:192,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:193,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:197,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:199,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:204,1
    - Dst: dump_float
      Src: /src/h2o/deps/mruby/src/dump.c:207,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:211,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:216,1
    - Dst: mrb_assert_int_fit
      Src: /src/h2o/deps/mruby/src/dump.c:219,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:220,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:221,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/dump.c:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - mrb
    - irep
    - buf
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 230
    functionName: write_pool_block
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_assert_int_fit
    - mrb_gc_arena_save
    - uint8_to_bin
    - memcpy
    - uint32_to_bin
    - dump_float
    - uint16_to_bin
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t write_pool_block(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: get_syms_block_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_sym_name_len
    linkageType: ''
    returnType: size_t
    signature: size_t get_syms_block_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:258,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:264,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:267,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:268,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - irep
    - buf
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 278
    functionName: write_syms_block
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint16_to_bin
    - mrb_sym_name_len
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t write_syms_block(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_irep_header_size
      Src: /src/h2o/deps/mruby/src/dump.c:285,1
    - Dst: get_iseq_block_size
      Src: /src/h2o/deps/mruby/src/dump.c:286,1
    - Dst: get_pool_block_size
      Src: /src/h2o/deps/mruby/src/dump.c:287,1
    - Dst: get_syms_block_size
      Src: /src/h2o/deps/mruby/src/dump.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: get_irep_record_size_1
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - get_syms_block_size
    - get_pool_block_size
    - get_irep_header_size
    - get_iseq_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t get_irep_record_size_1(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_irep_record_size_1
      Src: /src/h2o/deps/mruby/src/dump.c:298,1
    - Dst: get_irep_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: get_irep_record_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - get_irep_record_size_1
    - get_irep_record_size
    linkageType: ''
    returnType: size_t
    signature: size_t get_irep_record_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_irep_header
      Src: /src/h2o/deps/mruby/src/dump.c:315,1
    - Dst: write_iseq_block
      Src: /src/h2o/deps/mruby/src/dump.c:316,1
    - Dst: write_pool_block
      Src: /src/h2o/deps/mruby/src/dump.c:317,1
    - Dst: write_syms_block
      Src: /src/h2o/deps/mruby/src/dump.c:318,1
    - Dst: write_irep_record
      Src: /src/h2o/deps/mruby/src/dump.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - mrb
    - irep
    - bin
    - irep_record_size
    - flags
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - size_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 332
    functionName: write_irep_record
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - write_syms_block
    - write_irep_header
    - write_pool_block
    - write_iseq_block
    - write_irep_record
    linkageType: ''
    returnType: int
    signature: int write_irep_record(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *bin, size_t *irep_record_size, uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:339,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:340,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - bin
    argTypes:
    - mrb_state*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: write_footer
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint32_to_bin
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t write_footer(mrb_state *mrb, uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:352,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:355,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - section_size
    - bin
    argTypes:
    - mrb_state*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: write_section_irep_header
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint32_to_bin
    linkageType: ''
    returnType: int
    signature: int write_section_irep_header(mrb_state *mrb, size_t section_size,
      uint8_t *bin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_irep_record
      Src: /src/h2o/deps/mruby/src/dump.c:374,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:378,1
    - Dst: get_irep_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:378,1
    - Dst: write_section_irep_header
      Src: /src/h2o/deps/mruby/src/dump.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - mrb
    - irep
    - bin
    - len_p
    - flags
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - size_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: write_section_irep
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - write_section_irep_header
    - mrb_assert
    - write_irep_record
    - get_irep_record_size
    linkageType: ''
    returnType: int
    signature: int write_section_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *bin, size_t *len_p, uint8_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:417,1
    - Dst: get_debug_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 425
    functionName: get_debug_record_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - get_debug_record_size
    linkageType: ''
    returnType: size_t
    signature: size_t get_debug_record_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ary
    - ary_len
    - s
    argTypes:
    - mrb_sym*
    - int
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 436
    functionName: find_filename_index
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_filename_index(const mrb_sym *ary, int ary_len, mrb_sym s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:446,1
    - Dst: find_filename_index
      Src: /src/h2o/deps/mruby/src/dump.c:452,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/dump.c:455,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:459,1
    - Dst: get_filename_table_size
      Src: /src/h2o/deps/mruby/src/dump.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - mrb
    - irep
    - fp
    - lp
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_sym**
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 467
    functionName: get_filename_table_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - find_filename_index
    - get_filename_table_size
    - mrb_realloc
    - mrb_sym_name_len
    linkageType: ''
    returnType: size_t
    signature: size_t get_filename_table_size(mrb_state *mrb, const mrb_irep *irep,
      mrb_sym **fp, uint16_t *lp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:477,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:484,1
    - Dst: find_filename_index
      Src: /src/h2o/deps/mruby/src/dump.c:487,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:490,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:493,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:494,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:499,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:506,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:507,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:512,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:516,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:522,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - mrb
    - irep
    - bin
    - filenames
    - filenames_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - mrb_sym*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 526
    functionName: write_debug_record_1
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - find_filename_index
    - memcpy
    - uint8_to_bin
    - uint32_to_bin
    - uint16_to_bin
    linkageType: ''
    returnType: size_t
    signature: size_t write_debug_record_1(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *bin, mrb_sym const* filenames, uint16_t filenames_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_debug_record_1
      Src: /src/h2o/deps/mruby/src/dump.c:534,1
    - Dst: write_debug_record
      Src: /src/h2o/deps/mruby/src/dump.c:537,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:542,1
    - Dst: get_debug_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - mrb
    - irep
    - bin
    - filenames
    - filenames_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - mrb_sym*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 544
    functionName: write_debug_record
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - write_debug_record
    - get_debug_record_size
    - write_debug_record_1
    linkageType: ''
    returnType: size_t
    signature: size_t write_debug_record(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *bin, mrb_sym const* filenames, uint16_t filenames_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:565,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:568,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:569,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:570,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:571,1
    - Dst: write_debug_record
      Src: /src/h2o/deps/mruby/src/dump.c:577,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:580,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:581,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - mrb
    - irep
    - cur
    - filenames
    - filenames_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - mrb_sym*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 585
    functionName: write_section_debug
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - write_debug_record
    - memcpy
    - mrb_sym_name_len
    - uint32_to_bin
    - uint16_to_bin
    linkageType: ''
    returnType: int
    signature: int write_section_debug(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *cur, mrb_sym const *filenames, uint16_t filenames_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/dump.c:593,1
    - Dst: find_filename_index
      Src: /src/h2o/deps/mruby/src/dump.c:599,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/dump.c:602,1
    - Dst: create_lv_sym_table
      Src: /src/h2o/deps/mruby/src/dump.c:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - mrb
    - irep
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_sym**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 587
    functionDepth: 4
    functionLinenumber: 587
    functionLinenumberEnd: 609
    functionName: create_lv_sym_table
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - mrb_realloc
    - find_filename_index
    - mrb_malloc
    - create_lv_sym_table
    linkageType: ''
    returnType: void
    signature: void create_lv_sym_table(mrb_state *mrb, const mrb_irep *irep, mrb_sym
      **syms, uint32_t *syms_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:619,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:622,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:623,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - start
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - uint8_t**
    - mrb_sym*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 631
    functionName: write_lv_sym_table
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint32_to_bin
    - uint16_to_bin
    - mrb_sym_name_len
    linkageType: ''
    returnType: int
    signature: int write_lv_sym_table(mrb_state *mrb, uint8_t **start, mrb_sym const
      *syms, uint32_t syms_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:641,1
    - Dst: find_filename_index
      Src: /src/h2o/deps/mruby/src/dump.c:644,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:645,1
    - Dst: uint16_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:647,1
    - Dst: write_lv_record
      Src: /src/h2o/deps/mruby/src/dump.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - mrb
    - irep
    - start
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t**
    - mrb_sym*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: write_lv_record
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - mrb_assert
    - write_lv_record
    - find_filename_index
    - uint16_to_bin
    linkageType: ''
    returnType: int
    signature: int write_lv_record(mrb_state *mrb, const mrb_irep *irep, uint8_t **start,
      mrb_sym const *syms, uint32_t syms_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_lv_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 673
    functionName: get_lv_record_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - get_lv_record_size
    linkageType: ''
    returnType: size_t
    signature: size_t get_lv_record_size(mrb_state *mrb, const mrb_irep *irep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/dump.c:684,1
    - Dst: get_lv_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - mrb
    - irep
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_sym*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 691
    functionName: get_lv_section_size
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - get_lv_record_size
    - mrb_sym_name_len
    linkageType: ''
    returnType: size_t
    signature: size_t get_lv_section_size(mrb_state *mrb, const mrb_irep *irep, mrb_sym
      const *syms, uint32_t syms_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_lv_sym_table
      Src: /src/h2o/deps/mruby/src/dump.c:708,1
    - Dst: write_lv_record
      Src: /src/h2o/deps/mruby/src/dump.c:713,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:718,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - mrb
    - irep
    - start
    - syms
    - syms_len
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t*
    - mrb_sym*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 726
    functionName: write_section_lv
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - uint32_to_bin
    - memcpy
    - write_lv_record
    - write_lv_sym_table
    linkageType: ''
    returnType: int
    signature: int write_section_lv(mrb_state *mrb, const mrb_irep *irep, uint8_t
      *start, mrb_sym const *syms, uint32_t const syms_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:733,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:734,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:735,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:736,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/dump.c:737,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/dump.c:738,1
    - Dst: uint32_to_bin
      Src: /src/h2o/deps/mruby/src/dump.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - mrb
    - binary_size
    - bin
    - flags
    argTypes:
    - mrb_state*
    - size_t
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 742
    functionName: write_rite_binary_header
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_assert
    - uint32_to_bin
    linkageType: ''
    returnType: int
    signature: int write_rite_binary_header(mrb_state *mrb, size_t binary_size, uint8_t
      *bin, uint8_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: debug_info_defined_p
      Src: /src/h2o/deps/mruby/src/dump.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - irep
    argTypes:
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 754
    functionName: debug_info_defined_p
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - debug_info_defined_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool debug_info_defined_p(const mrb_irep *irep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lv_defined_p
      Src: /src/h2o/deps/mruby/src/dump.c:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - irep
    argTypes:
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 768
    functionName: lv_defined_p
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 1
    functionsReached:
    - lv_defined_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool lv_defined_p(const mrb_irep *irep)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: debug_info_defined_p
      Src: /src/h2o/deps/mruby/src/dump.c:778,1
    - Dst: lv_defined_p
      Src: /src/h2o/deps/mruby/src/dump.c:778,1
    - Dst: get_irep_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:788,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/dump.c:795,1
    - Dst: get_filename_table_size
      Src: /src/h2o/deps/mruby/src/dump.c:799,1
    - Dst: get_debug_record_size
      Src: /src/h2o/deps/mruby/src/dump.c:801,1
    - Dst: create_lv_sym_table
      Src: /src/h2o/deps/mruby/src/dump.c:807,1
    - Dst: get_lv_section_size
      Src: /src/h2o/deps/mruby/src/dump.c:808,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/dump.c:814,1
    - Dst: write_section_irep
      Src: /src/h2o/deps/mruby/src/dump.c:817,1
    - Dst: write_section_debug
      Src: /src/h2o/deps/mruby/src/dump.c:829,1
    - Dst: write_section_lv
      Src: /src/h2o/deps/mruby/src/dump.c:838,1
    - Dst: write_footer
      Src: /src/h2o/deps/mruby/src/dump.c:845,1
    - Dst: write_rite_binary_header
      Src: /src/h2o/deps/mruby/src/dump.c:846,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:850,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:853,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:854,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 5
    argNames:
    - mrb
    - irep
    - flags
    - bin
    - bin_size
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 770
    functionDepth: 7
    functionLinenumber: 770
    functionLinenumberEnd: 856
    functionName: dump_irep
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - write_section_irep
    - get_filename_table_size
    - write_rite_binary_header
    - mrb_free
    - debug_info_defined_p
    - lv_defined_p
    - create_lv_sym_table
    - write_section_lv
    - write_footer
    - get_irep_record_size
    - write_section_debug
    - get_debug_record_size
    - mrb_malloc
    - get_lv_section_size
    linkageType: ''
    returnType: int
    signature: int dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags,
      uint8_t **bin, size_t *bin_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_irep
      Src: /src/h2o/deps/mruby/src/dump.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - irep
    - flags
    - bin
    - bin_size
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 858
    functionDepth: 8
    functionLinenumber: 858
    functionLinenumberEnd: 862
    functionName: mrb_dump_irep
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - dump_irep
    linkageType: ''
    returnType: int
    signature: int mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags,
      uint8_t **bin, size_t *bin_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dump_irep
      Src: /src/h2o/deps/mruby/src/dump.c:877,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/src/dump.c:879,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - irep
    - flags
    - fp
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 866
    functionDepth: 8
    functionLinenumber: 866
    functionLinenumberEnd: 886
    functionName: mrb_dump_irep_binary
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - dump_irep
    - fwrite
    linkageType: ''
    returnType: int
    signature: int mrb_dump_irep_binary(mrb_state *mrb, const mrb_irep *irep, uint8_t
      flags, FILE* fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dump_irep
      Src: /src/h2o/deps/mruby/src/dump.c:898,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/dump.c:900,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:901,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/dump.c:904,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:912,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/dump.c:917,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:918,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/dump.c:922,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:923,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/src/dump.c:927,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:928,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/dump.c:933,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - mrb
    - irep
    - flags
    - fp
    - initname
    argTypes:
    - mrb_state*
    - mrb_irep*
    - uint8_t
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 888
    functionDepth: 8
    functionLinenumber: 888
    functionLinenumberEnd: 935
    functionName: mrb_dump_irep_cfunc
    functionSourceFile: /src/h2o/deps/mruby/src/dump.c
    functionUses: 0
    functionsReached:
    - fputs
    - mrb_free
    - dump_irep
    - fprintf
    linkageType: ''
    returnType: int
    signature: int mrb_dump_irep_cfunc(mrb_state *mrb, const mrb_irep *irep, uint8_t
      flags, FILE *fp, const char *initname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: RANGE_INITIALIZED
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_INITIALIZED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: RANGE_INITIALIZED_P
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_INITIALIZED_P(p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/range.c:26,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/range.c:27,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:37,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:37,1
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/src/range.c:39,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/range.c:41,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: r_check
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_cmp
    - mrb_type
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void r_check(mrb_state *mrb, mrb_value a, mrb_value b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/src/range.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: r_le
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_cmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool r_le(mrb_state *mrb, mrb_value a, mrb_value b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/src/range.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: r_gt
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_cmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool r_gt(mrb_state *mrb, mrb_value a, mrb_value b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/src/range.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: r_ge
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_cmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool r_ge(mrb_state *mrb, mrb_value a, mrb_value b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/range.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - r
    argTypes:
    - mrb_state*
    - struct RRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: range_ptr_alloc_edges
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void range_ptr_alloc_edges(mrb_state *mrb, struct RRange *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: r_check
      Src: /src/h2o/deps/mruby/src/range.c:80,1
    - Dst: RANGE_INITIALIZED_P
      Src: /src/h2o/deps/mruby/src/range.c:83,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/range.c:85,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/range.c:85,1
    - Dst: range_ptr_alloc_edges
      Src: /src/h2o/deps/mruby/src/range.c:88,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/range.c:92,1
    - Dst: range_ptr_alloc_edges
      Src: /src/h2o/deps/mruby/src/range.c:93,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:96,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:97,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:98,1
    - Dst: RANGE_INITIALIZED
      Src: /src/h2o/deps/mruby/src/range.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - mrb
    - r
    - beg
    - end
    - excl
    argTypes:
    - mrb_state*
    - struct RRange*
    - mrb_value
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 7
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: range_ptr_init
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_OBJ_ALLOC
    - RANGE_BEG
    - RANGE_EXCL
    - r_check
    - RANGE_END
    - mrb_name_error
    - RANGE_INITIALIZED_P
    - range_ptr_alloc_edges
    - RANGE_INITIALIZED
    linkageType: ''
    returnType: struct RRange
    signature: 'struct RRange *

      range_ptr_init(mrb_state *mrb, struct RRange *r, mrb_value beg, mrb_value end,
      mrb_bool excl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_ptr_init
      Src: /src/h2o/deps/mruby/src/range.c:107,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/range.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mrb
    - r
    - beg
    - end
    - excl
    argTypes:
    - mrb_state*
    - struct RRange*
    - mrb_value
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 8
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: range_ptr_replace
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - range_ptr_init
    - mrb_write_barrier
    linkageType: ''
    returnType: void
    signature: void range_ptr_replace(mrb_state *mrb, struct RRange *r, mrb_value
      beg, mrb_value end, mrb_bool excl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_beg
      Src: /src/h2o/deps/mruby/src/range.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: range_beg
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 1
    functionsReached:
    - mrb_range_beg
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_beg(mrb_state *mrb, mrb_value range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_end
      Src: /src/h2o/deps/mruby/src/range.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: range_end
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 1
    functionsReached:
    - mrb_range_end
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_end(mrb_state *mrb, mrb_value range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/range.c:149,1
    - Dst: mrb_range_excl_p
      Src: /src/h2o/deps/mruby/src/range.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: range_excl
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_range_excl_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_excl(mrb_state *mrb, mrb_value range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/range.c:166,1
    - Dst: range_ptr_replace
      Src: /src/h2o/deps/mruby/src/range.c:167,1
    - Dst: mrb_range_raw_ptr
      Src: /src/h2o/deps/mruby/src/range.c:167,1
    - Dst: mrb_obj_freeze
      Src: /src/h2o/deps/mruby/src/range.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 9
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: range_initialize
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_obj_freeze
    - range_ptr_replace
    - mrb_get_args
    - mrb_range_raw_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_initialize(mrb_state *mrb, mrb_value range)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/range.c:190,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/range.c:193,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:193,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/src/range.c:194,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/range.c:194,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:195,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:198,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:199,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/range.c:200,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:200,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:200,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/range.c:201,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:201,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:201,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:202,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:202,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:203,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: range_eq
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_true_value
    - RANGE_EXCL
    - mrb_equal
    - mrb_obj_equal
    - RANGE_END
    - mrb_range_ptr
    - mrb_false_value
    - mrb_obj_is_instance_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_eq(mrb_state *mrb, mrb_value range)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/range.c:217,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:218,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:221,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:222,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:223,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:224,1
    - Dst: r_gt
      Src: /src/h2o/deps/mruby/src/range.c:224,1
    - Dst: r_ge
      Src: /src/h2o/deps/mruby/src/range.c:225,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:226,1
    - Dst: r_le
      Src: /src/h2o/deps/mruby/src/range.c:229,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:230,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:231,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:233,1
    - Dst: r_gt
      Src: /src/h2o/deps/mruby/src/range.c:233,1
    - Dst: r_ge
      Src: /src/h2o/deps/mruby/src/range.c:234,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:235,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 239
    functionName: range_include
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_get_arg1
    - mrb_true_value
    - RANGE_EXCL
    - r_gt
    - r_le
    - RANGE_END
    - mrb_range_ptr
    - mrb_false_value
    - mrb_nil_p
    - r_ge
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_include(mrb_state *mrb, mrb_value range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:252,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/range.c:254,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:254,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/range.c:255,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:255,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/range.c:256,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/range.c:257,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:257,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/range.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 12
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: range_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_obj_as_string
    - RANGE_BEG
    - RANGE_EXCL
    - mrb_str_cat
    - RANGE_END
    - mrb_range_ptr
    - mrb_str_dup
    - mrb_str_cat_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_to_s(mrb_state *mrb, mrb_value range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:276,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:278,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:278,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/src/range.c:279,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:279,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/range.c:280,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/range.c:281,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:281,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/src/range.c:284,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:284,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:286,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:286,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/src/range.c:287,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:287,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/range.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 12
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: range_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_inspect
    - mrb_str_cat
    - RANGE_EXCL
    - RANGE_END
    - mrb_range_ptr
    - mrb_str_new
    - mrb_str_dup
    - mrb_str_cat_str
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_inspect(mrb_state *mrb, mrb_value range)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/range.c:310,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/range.c:313,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:313,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/range.c:314,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:314,1
    - Dst: mrb_range_p
      Src: /src/h2o/deps/mruby/src/range.c:315,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:315,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:317,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:318,1
    - Dst: mrb_eql
      Src: /src/h2o/deps/mruby/src/range.c:319,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:319,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:319,1
    - Dst: mrb_eql
      Src: /src/h2o/deps/mruby/src/range.c:320,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:320,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:320,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:321,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:321,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/range.c:322,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/range.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: range_eql
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_get_arg1
    - mrb_true_value
    - RANGE_EXCL
    - mrb_eql
    - mrb_obj_is_kind_of
    - mrb_obj_equal
    - RANGE_END
    - mrb_range_p
    - mrb_range_ptr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_eql(mrb_state *mrb, mrb_value range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/range.c:331,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/range.c:334,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/src/range.c:335,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/range.c:335,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/range.c:336,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:339,1
    - Dst: range_ptr_replace
      Src: /src/h2o/deps/mruby/src/range.c:340,1
    - Dst: mrb_range_raw_ptr
      Src: /src/h2o/deps/mruby/src/range.c:340,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:340,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:340,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:340,1
    - Dst: mrb_obj_freeze
      Src: /src/h2o/deps/mruby/src/range.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 9
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: range_initialize_copy
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_obj_class
    - mrb_get_arg1
    - range_ptr_replace
    - RANGE_EXCL
    - mrb_raise
    - mrb_obj_equal
    - mrb_range_raw_ptr
    - RANGE_END
    - mrb_range_ptr
    - mrb_obj_freeze
    - mrb_obj_is_instance_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_initialize_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:349,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:350,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:351,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:355,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/range.c:356,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/range.c:358,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/range.c:359,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/range.c:360,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/range.c:361,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/src/range.c:364,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/range.c:366,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:368,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/range.c:372,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:374,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/range.c:374,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/range.c:379,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/range.c:380,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/range.c:381,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/range.c:383,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:384,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:386,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/range.c:386,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:392,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/range.c:392,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/range.c:400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 401
    functionName: range_num_to_a
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - mrb_int_sub_overflow
    - RANGE_EXCL
    - mrb_integer
    - mrb_raise
    - RANGE_END
    - mrb_ary_push
    - mrb_float_p
    - mrb_int_value
    - mrb_range_ptr
    - mrb_integer_p
    - mrb_ary_new_capa
    - mrb_nil_p
    - mrb_float
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_num_to_a(mrb_state *mrb, mrb_value range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/range.c:408,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/range.c:411,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:412,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/range.c:412,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/range.c:412,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/src/range.c:414,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:417,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/range.c:417,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/range.c:421,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/range.c:421,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/range.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - mrb
    - obj
    - olen
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 430
    functionName: mrb_get_values_at
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_integer
    - mrb_range_beg_len
    - mrb_ary_push
    - func
    - mrb_raisef
    - mrb_integer_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int
      olen, mrb_int argc, const mrb_value *argv, mrb_value (*func)(mrb_state*, mrb_value,
      mrb_int))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RANGE_INITIALIZED_P
      Src: /src/h2o/deps/mruby/src/range.c:435,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/range.c:436,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:436,1
    - Dst: mrb_gc_mark_value
      Src: /src/h2o/deps/mruby/src/range.c:437,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - r
    argTypes:
    - mrb_state*
    - struct RRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: mrb_gc_mark_range
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 1
    functionsReached:
    - RANGE_BEG
    - RANGE_INITIALIZED_P
    - RANGE_END
    - mrb_gc_mark_value
    linkageType: ''
    returnType: void
    signature: void mrb_gc_mark_range(mrb_state *mrb, struct RRange *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_raw_ptr
      Src: /src/h2o/deps/mruby/src/range.c:444,1
    - Dst: RANGE_INITIALIZED_P
      Src: /src/h2o/deps/mruby/src/range.c:447,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/range.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: mrb_range_ptr
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 7
    functionsReached:
    - mrb_raise
    - RANGE_INITIALIZED_P
    - mrb_range_raw_ptr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_range_ptr(mrb_state *mrb, mrb_value range)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_ptr_init
      Src: /src/h2o/deps/mruby/src/range.c:456,1
    - Dst: mrb_range_value
      Src: /src/h2o/deps/mruby/src/range.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - beg
    - end
    - excl
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 8
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: mrb_range_new
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 2
    functionsReached:
    - range_ptr_init
    - mrb_range_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_range_new(mrb_state *mrb, mrb_value beg, mrb_value end,
      mrb_bool excl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_p
      Src: /src/h2o/deps/mruby/src/range.c:467,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/src/range.c:468,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:470,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:470,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/range.c:470,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/src/range.c:470,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:471,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:471,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/range.c:471,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:471,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/range.c:472,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/src/range.c:472,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/src/range.c:472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 6
    argNames:
    - mrb
    - range
    - begp
    - lenp
    - len
    - trunc
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int*
    - mrb_int*
    - mrb_int
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 460
    functionDepth: 5
    functionLinenumber: 460
    functionLinenumberEnd: 492
    functionName: mrb_range_beg_len
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 3
    functionsReached:
    - RANGE_BEG
    - RANGE_EXCL
    - mrb_as_int
    - mrb_range_p
    - RANGE_END
    - mrb_range_ptr
    - mrb_nil_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int
      *begp, mrb_int *lenp, mrb_int len, mrb_bool trunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/range.c:499,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/range.c:501,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:503,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:503,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:504,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:504,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:505,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:505,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:506,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:506,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:507,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:507,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:508,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:508,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:509,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:509,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:510,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/range.c:510,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:511,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:511,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:512,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:512,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:513,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:513,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:514,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:514,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:515,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:515,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:516,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/range.c:516,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/range.c:517,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/range.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 518
    functionName: mrb_init_range
    functionSourceFile: /src/h2o/deps/mruby/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_range(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/kernel.c:22,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/kernel.c:23,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/kernel.c:26,1
    - Dst: MRB_METHOD_FUNC_P
      Src: /src/h2o/deps/mruby/src/kernel.c:27,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/src/kernel.c:28,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/kernel.c:29,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/kernel.c:30,1
    - Dst: MRB_PROC_CFUNC
      Src: /src/h2o/deps/mruby/src/kernel.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - mrb
    - obj
    - mid
    - func
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_func_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: mrb_func_basic_p
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 2
    functionsReached:
    - MRB_METHOD_FUNC
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_PROC
    - mrb_method_search_vm
    - mrb_class
    - MRB_PROC_CFUNC_P
    - MRB_PROC_CFUNC
    - MRB_METHOD_FUNC_P
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_func_basic_p(mrb_state *mrb, mrb_value obj, mrb_sym mid,
      mrb_func_t func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/kernel.c:38,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/kernel.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: mrb_obj_basic_to_s_p
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_func_basic_p
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_obj_basic_to_s_p(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_object_p
      Src: /src/h2o/deps/mruby/src/kernel.c:58,1
    - Dst: mrb_obj_basic_to_s_p
      Src: /src/h2o/deps/mruby/src/kernel.c:58,1
    - Dst: mrb_obj_iv_inspect
      Src: /src/h2o/deps/mruby/src/kernel.c:59,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/kernel.c:59,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/src/kernel.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: mrb_obj_inspect
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_object_p
    - mrb_obj_iv_inspect
    - mrb_obj_basic_to_s_p
    - mrb_obj_ptr
    - mrb_any_to_s
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_inspect(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/kernel.c:76,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:78,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/kernel.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: mrb_equal_m
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_equal
    - mrb_get_arg1
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_equal_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/kernel.c:101,1
    - Dst: mrb_obj_id
      Src: /src/h2o/deps/mruby/src/kernel.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mrb_obj_id_m
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_obj_id
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_id_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_ENV_BIDX
      Src: /src/h2o/deps/mruby/src/kernel.c:110,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/src/kernel.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct REnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: env_bidx
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_LEN
    - MRB_ENV_BIDX
    linkageType: ''
    returnType: int
    signature: int env_bidx(struct REnv *e)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:152,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/src/kernel.c:157,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/kernel.c:158,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:161,1
    - Dst: env_bidx
      Src: /src/h2o/deps/mruby/src/kernel.c:163,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:164,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/kernel.c:175,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:175,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/kernel.c:176,1
    - Dst: env_bidx
      Src: /src/h2o/deps/mruby/src/kernel.c:177,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:178,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/src/kernel.c:181,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:183,1
    - Dst: env_bidx
      Src: /src/h2o/deps/mruby/src/kernel.c:184,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:186,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/kernel.c:196,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:197,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/kernel.c:198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 199
    functionName: mrb_f_block_given_p_m
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - MRB_PROC_ENV
    - MRB_PROC_SCOPE_P
    - MRB_PROC_ENV_P
    - mrb_false_value
    - env_bidx
    - mrb_nil_p
    - mrb_vm_ci_env
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_block_given_p_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/kernel.c:216,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/kernel.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: mrb_obj_class_m
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_obj_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_class_m(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/kernel.c:222,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/kernel.c:223,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/src/kernel.c:224,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/kernel.c:225,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/kernel.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: mrb_obj_freeze
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 2
    functionsReached:
    - mrb_basic_ptr
    - mrb_immediate_p
    - mrb_frozen_p
    - MRB_SET_FROZEN_FLAG
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_freeze(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:235,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/kernel.c:235,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/src/kernel.c:235,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/kernel.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: mrb_obj_frozen
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_basic_ptr
    - mrb_immediate_p
    - mrb_bool_value
    - mrb_frozen_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_frozen(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/kernel.c:252,1
    - Dst: mrb_obj_id
      Src: /src/h2o/deps/mruby/src/kernel.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: mrb_obj_hash
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_obj_id
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_hash(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/kernel.c:259,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/kernel.c:261,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/kernel.c:262,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/kernel.c:262,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/kernel.c:262,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/kernel.c:262,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/kernel.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: mrb_obj_init_copy
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_raise
    - mrb_obj_equal
    - mrb_type
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/kernel.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - obj
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: mrb_obj_is_instance_of
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 2
    functionsReached:
    - mrb_obj_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct
      RClass* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:288,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:290,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/src/kernel.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: obj_is_instance_of
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 3
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - mrb_obj_is_instance_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value obj_is_instance_of(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:325,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:327,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/kernel.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 328
    functionName: mrb_obj_is_kind_of_m
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - mrb_obj_is_kind_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_is_kind_of_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: mrb_false
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_false(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:371,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/kernel.c:375,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/kernel.c:378,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/kernel.c:381,1
    - Dst: mrb_make_exception
      Src: /src/h2o/deps/mruby/src/kernel.c:385,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/src/kernel.c:386,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/kernel.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: mrb_f_raise
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_raise
    - mrb_exc_raise
    - mrb_make_exception
    - mrb_get_args
    - mrb_obj_value
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_f_raise(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:420,1
    - Dst: mrb_iv_name_sym_check
      Src: /src/h2o/deps/mruby/src/kernel.c:421,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/src/kernel.c:422,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/kernel.c:423,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/kernel.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 7
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mrb_obj_remove_instance_variable
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_name_error
    - mrb_iv_remove
    - mrb_iv_name_sym_check
    - mrb_undef_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_remove_instance_variable(mrb_state *mrb, mrb_value
      self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_no_method_error
      Src: /src/h2o/deps/mruby/src/kernel.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - name
    - self
    - args
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: mrb_method_missing
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 1
    functionsReached:
    - mrb_no_method_error
    linkageType: ''
    returnType: void
    signature: void mrb_method_missing(mrb_state *mrb, mrb_sym name, mrb_value self,
      mrb_value args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:476,1
    - Dst: mrb_method_missing
      Src: /src/h2o/deps/mruby/src/kernel.c:477,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/kernel.c:477,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/kernel.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 8
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: mrb_obj_missing
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - mrb_method_missing
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_missing(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/kernel.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - obj
    - id
    - pub
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: basic_obj_respond_to
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_respond_to
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool basic_obj_respond_to(mrb_state *mrb, mrb_value obj, mrb_sym
      id, int pub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:510,1
    - Dst: basic_obj_respond_to
      Src: /src/h2o/deps/mruby/src/kernel.c:511,1
    - Dst: MRB_SYM_Q
      Src: /src/h2o/deps/mruby/src/kernel.c:513,1
    - Dst: basic_obj_respond_to
      Src: /src/h2o/deps/mruby/src/kernel.c:514,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/kernel.c:516,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:517,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/kernel.c:518,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:519,1
    - Dst: mrb_bool
      Src: /src/h2o/deps/mruby/src/kernel.c:519,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/kernel.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 504
    functionDepth: 10
    functionLinenumber: 504
    functionLinenumberEnd: 523
    functionName: obj_respond_to
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 1
    functionsReached:
    - mrb_bool_value
    - basic_obj_respond_to
    - mrb_get_args
    - mrb_bool
    - MRB_SYM_Q
    - mrb_symbol_value
    - mrb_funcall_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value obj_respond_to(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/kernel.c:528,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/src/kernel.c:530,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/kernel.c:534,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/kernel.c:537,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:538,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/kernel.c:540,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/kernel.c:540,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/kernel.c:541,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/kernel.c:542,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/kernel.c:542,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:543,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/kernel.c:546,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/kernel.c:546,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/kernel.c:547,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/kernel.c:548,1
    - Dst: mrb_ensure_array_type
      Src: /src/h2o/deps/mruby/src/kernel.c:550,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/kernel.c:552,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/kernel.c:554,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby/src/kernel.c:554,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/kernel.c:555,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/kernel.c:555,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/kernel.c:557,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 525
    functionDepth: 10
    functionLinenumber: 525
    functionLinenumberEnd: 558
    functionName: mrb_obj_ceqq
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - mrb_array_p
    - mrb_true_value
    - mrb_ary_entry
    - mrb_funcall_id
    - mrb_respond_to
    - MRB_OPSYM
    - mrb_false_value
    - RARRAY_LEN
    - mrb_test
    - mrb_nil_p
    - mrb_ensure_array_type
    - mrb_funcall_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_ceqq(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/kernel.c:563,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/kernel.c:565,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/kernel.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 569
    functionName: mrb_encoding
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_encoding(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/src/kernel.c:578,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/kernel.c:579,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:579,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/kernel.c:580,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:580,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/kernel.c:582,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/kernel.c:582,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:585,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:585,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:586,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:586,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:587,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:587,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:588,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:588,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:589,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:589,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:590,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:590,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:591,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:591,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:592,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:592,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:593,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:593,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:594,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:594,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:595,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:595,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:596,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:596,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:598,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:598,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:599,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:599,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:600,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:600,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:601,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/kernel.c:601,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:602,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:602,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:603,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:603,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:604,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/kernel.c:604,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:605,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:605,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:606,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/kernel.c:606,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:607,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:607,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:608,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/kernel.c:608,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:609,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:609,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/kernel.c:610,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/kernel.c:610,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/src/kernel.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 613
    functionName: mrb_init_kernel
    functionSourceFile: /src/h2o/deps/mruby/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    - MRB_ARGS_ARG
    - mrb_include_module
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_init_kernel(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MT_KEY_P
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_KEY_P(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sym
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MT_KEY
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_KEY(sym, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func_p
    - ','
    - noarg_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MT_FLAGS
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_FLAGS(func_p, noarg_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MT_KEY_SYM
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_KEY_SYM(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MT_KEY_FLG
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_KEY_FLG(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/class.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: mt_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: mt_tbl
    signature: 'mt_tbl *

      mt_new(mrb_state *mrb)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: khash_power2
      Src: /src/h2o/deps/mruby/src/class.c:73,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/src/class.c:76,1
    - Dst: MT_KEY_P
      Src: /src/h2o/deps/mruby/src/class.c:85,1
    - Dst: mt_put
      Src: /src/h2o/deps/mruby/src/class.c:86,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:86,1
    - Dst: MT_KEY_FLG
      Src: /src/h2o/deps/mruby/src/class.c:86,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/class.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - mt_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 90
    functionName: mt_rehash
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MT_KEY_SYM
    - mrb_calloc
    - khash_power2
    - mrb_free
    - mt_put
    - MT_KEY_P
    - MT_KEY_FLG
    linkageType: ''
    returnType: void
    signature: void mt_rehash(mrb_state *mrb, mt_tbl *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: slot_empty_p
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: slot_empty_p(slot)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mt_rehash
      Src: /src/h2o/deps/mruby/src/class.c:101,1
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/class.c:106,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:110,1
    - Dst: MT_KEY
      Src: /src/h2o/deps/mruby/src/class.c:112,1
    - Dst: mt_rehash
      Src: /src/h2o/deps/mruby/src/class.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - mrb
    - t
    - sym
    - flags
    - ptr
    argTypes:
    - mrb_state*
    - mt_tbl*
    - mrb_sym
    - mrb_sym
    - union mt_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 137
    functionName: mt_put
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mt_rehash
    - MT_KEY
    - kh_int_hash_func
    - MT_KEY_SYM
    linkageType: ''
    returnType: void
    signature: void mt_put(mrb_state *mrb, mt_tbl *t, mrb_sym sym, mrb_sym flags,
      union mt_ptr ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/class.c:151,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:156,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - mrb
    - t
    - sym
    - pp
    argTypes:
    - mrb_state*
    - mt_tbl*
    - mrb_sym
    - union mt_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 181
    functionName: mt_get
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MT_KEY_SYM
    - kh_int_hash_func
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym mt_get(mrb_state *mrb, mt_tbl *t, mrb_sym sym, union mt_ptr
      *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/class.c:194,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - mrb
    - t
    - sym
    argTypes:
    - mrb_state*
    - mt_tbl*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 211
    functionName: mt_del
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MT_KEY_SYM
    - kh_int_hash_func
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mt_del(mrb_state *mrb, mt_tbl *t, mrb_sym sym)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:224,1
    - Dst: MT_KEY_P
      Src: /src/h2o/deps/mruby/src/class.c:228,1
    - Dst: mt_put
      Src: /src/h2o/deps/mruby/src/class.c:229,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:229,1
    - Dst: MT_KEY_FLG
      Src: /src/h2o/deps/mruby/src/class.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - mt_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 7
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: mt_copy
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MT_KEY_SYM
    - mt_new
    - mt_put
    - MT_KEY_P
    - MT_KEY_FLG
    linkageType: ''
    returnType: struct mt_tbl
    signature: 'struct mt_tbl *

      mt_copy(mrb_state *mrb, mt_tbl *t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/class.c:239,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/class.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - mt_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: mt_free
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mt_free(mrb_state *mrb, mt_tbl *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:257,1
    - Dst: MRB_METHOD_FROM_FUNC
      Src: /src/h2o/deps/mruby/src/class.c:261,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:264,1
    - Dst: MRB_METHOD_NOARG_SET
      Src: /src/h2o/deps/mruby/src/class.c:267,1
    - Dst: fn
      Src: /src/h2o/deps/mruby/src/class.c:270,1
    - Dst: MT_KEY_SYM
      Src: /src/h2o/deps/mruby/src/class.c:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - mrb
    - c
    - fn
    - p
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_mt_foreach_func*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 275
    functionName: mrb_mt_foreach
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MT_KEY_SYM
    - MRB_METHOD_FROM_FUNC
    - MRB_METHOD_FROM_PROC
    - MRB_METHOD_NOARG_SET
    - fn
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_mt_foreach(mrb_state *mrb, struct RClass *c, mrb_mt_foreach_func
      *fn, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MT_KEY_P
      Src: /src/h2o/deps/mruby/src/class.c:290,1
    - Dst: mrb_gc_mark
      Src: /src/h2o/deps/mruby/src/class.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 296
    functionName: mrb_gc_mark_mt
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - MT_KEY_P
    - mrb_gc_mark
    linkageType: ''
    returnType: void
    signature: void mrb_gc_mark_mt(mrb_state *mrb, struct RClass *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: mrb_gc_mark_mt_size
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_gc_mark_mt_size(mrb_state *mrb, struct RClass *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_free
      Src: /src/h2o/deps/mruby/src/class.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: mrb_gc_free_mt
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mt_free
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_mt(mrb_state *mrb, struct RClass *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:317,1
    - Dst: mrb_obj_iv_defined
      Src: /src/h2o/deps/mruby/src/class.c:319,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:321,1
    - Dst: mrb_class_path
      Src: /src/h2o/deps/mruby/src/class.c:324,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:325,1
    - Dst: mrb_obj_iv_set_force
      Src: /src/h2o/deps/mruby/src/class.c:327,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:327,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:328,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/class.c:334,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/class.c:336,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/src/class.c:337,1
    - Dst: mrb_obj_iv_set_force
      Src: /src/h2o/deps/mruby/src/class.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - mrb
    - outer
    - c
    - id
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 11
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: mrb_class_name_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - mrb_str_cat
    - mrb_class_path
    - mrb_obj_iv_set_force
    - mrb_obj_value
    - mrb_obj_iv_defined
    - mrb_str_cat_lit
    - mrb_sym_name_len
    - mrb_nil_p
    - mrb_symbol_value
    linkageType: ''
    returnType: void
    signature: void mrb_class_name_class(mrb_state *mrb, struct RClass *outer, struct
      RClass *c, mrb_sym id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/src/class.c:346,1
    - Dst: mrb_ident_p
      Src: /src/h2o/deps/mruby/src/class.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: mrb_const_name_p
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_ident_p
    - ISUPPER
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_const_name_p(mrb_state *mrb, const char *name, mrb_int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/class.c:352,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/class.c:353,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - outer
    - c
    - id
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 12
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: setup_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_class_name_class
    - mrb_obj_iv_set
    linkageType: ''
    returnType: void
    signature: void setup_class(mrb_state *mrb, struct RClass *outer, struct RClass
      *c, mrb_sym id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: make_metaclass
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_metaclass(mrb, c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:363,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:365,1
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:367,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:382,1
    - Dst: prepare_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:387,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:390,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:391,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/class.c:392,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:392,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - mrb
    - o
    argTypes:
    - mrb_state*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: prepare_singleton_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - mrb_assert
    - MRB_OBJ_ALLOC
    - prepare_singleton_class
    - mrb_field_write_barrier
    - make_metaclass
    - mrb_obj_iv_set
    - mrb_obj_value
    - mt_new
    linkageType: ''
    returnType: void
    signature: void prepare_singleton_class(mrb_state *mrb, struct RBasic *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_path
      Src: /src/h2o/deps/mruby/src/class.c:399,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:400,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/class.c:401,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/class.c:402,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/class.c:403,1
    - Dst: mrb_ptr_to_str
      Src: /src/h2o/deps/mruby/src/class.c:403,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/class.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 12
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: class_name_str
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_ptr_to_str
    - mrb_str_new_lit
    - mrb_class_path
    - mrb_str_cat_lit
    - mrb_str_cat_str
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value class_name_str(mrb_state *mrb, struct RClass* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:412,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:412,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:414,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - klass
    - id
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: class_from_sym
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_check_type
    - mrb_class_ptr
    - mrb_const_get
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      class_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:421,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:421,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:423,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - klass
    - id
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: module_from_sym
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_check_type
    - mrb_class_ptr
    - mrb_const_get
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      module_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 438
    functionName: class_ptr_p
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_type
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool class_ptr_p(mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: class_ptr_p
      Src: /src/h2o/deps/mruby/src/class.c:443,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: check_if_class_or_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - class_ptr_p
    linkageType: ''
    returnType: void
    signature: void check_if_class_or_module(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:453,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:453,1
    - Dst: module_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:454,1
    - Dst: mrb_module_new
      Src: /src/h2o/deps/mruby/src/class.c:456,1
    - Dst: setup_class
      Src: /src/h2o/deps/mruby/src/class.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - name
    - outer
    argTypes:
    - mrb_state*
    - mrb_sym
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 448
    functionDepth: 13
    functionLinenumber: 448
    functionLinenumberEnd: 460
    functionName: define_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 6
    functionsReached:
    - module_from_sym
    - mrb_const_defined_at
    - setup_class
    - mrb_obj_value
    - mrb_module_new
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      define_module(mrb_state *mrb, mrb_sym name, struct RClass *outer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: define_module
      Src: /src/h2o/deps/mruby/src/class.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 14
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: mrb_define_module_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - define_module
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_module_id(mrb_state *mrb, mrb_sym name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: define_module
      Src: /src/h2o/deps/mruby/src/class.c:471,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 14
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: mrb_define_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 5
    functionsReached:
    - mrb_intern_cstr
    - define_module
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_module(mrb_state *mrb, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_if_class_or_module
      Src: /src/h2o/deps/mruby/src/class.c:477,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:478,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:479,1
    - Dst: mrb_module_p
      Src: /src/h2o/deps/mruby/src/class.c:481,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:482,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:484,1
    - Dst: define_module
      Src: /src/h2o/deps/mruby/src/class.c:486,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - outer
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 474
    functionDepth: 14
    functionLinenumber: 474
    functionLinenumberEnd: 487
    functionName: mrb_vm_define_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - define_module
    - mrb_const_get
    - mrb_class_ptr
    - mrb_const_defined_at
    - mrb_raisef
    - check_if_class_or_module
    - mrb_module_p
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      mrb_vm_define_module(mrb_state *mrb, mrb_value outer, mrb_sym id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: define_module
      Src: /src/h2o/deps/mruby/src/class.c:492,1
    - Dst: setup_class
      Src: /src/h2o/deps/mruby/src/class.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 14
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: mrb_define_module_under_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - define_module
    - setup_class
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_module_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:501,1
    - Dst: define_module
      Src: /src/h2o/deps/mruby/src/class.c:502,1
    - Dst: setup_class
      Src: /src/h2o/deps/mruby/src/class.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 498
    functionDepth: 14
    functionLinenumber: 498
    functionLinenumberEnd: 506
    functionName: mrb_define_module_under
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - define_module
    - setup_class
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/class.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: find_origin
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_CLASS_ORIGIN
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      find_origin(struct RClass *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:520,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:520,1
    - Dst: class_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:521,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/class.c:522,1
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/src/class.c:523,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:524,1
    - Dst: mrb_class_new
      Src: /src/h2o/deps/mruby/src/class.c:530,1
    - Dst: setup_class
      Src: /src/h2o/deps/mruby/src/class.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - name
    - super
    - outer
    argTypes:
    - mrb_state*
    - mrb_sym
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 515
    functionDepth: 13
    functionLinenumber: 515
    functionLinenumberEnd: 534
    functionName: define_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 10
    functionsReached:
    - MRB_CLASS_ORIGIN
    - mrb_class_real
    - class_from_sym
    - mrb_const_defined_at
    - setup_class
    - mrb_raisef
    - mrb_obj_value
    - mrb_class_new
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      define_class(mrb_state *mrb, mrb_sym name, struct RClass *super, struct RClass
      *outer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_warn
      Src: /src/h2o/deps/mruby/src/class.c:540,1
    - Dst: define_class
      Src: /src/h2o/deps/mruby/src/class.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - name
    - super
    argTypes:
    - mrb_state*
    - mrb_sym
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 14
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: mrb_define_class_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_warn
    - define_class
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_class_id(mrb_state *mrb, mrb_sym name, struct RClass *super)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_id
      Src: /src/h2o/deps/mruby/src/class.c:548,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - super
    argTypes:
    - mrb_state*
    - char*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 15
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: mrb_define_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 9
    functionsReached:
    - mrb_intern_cstr
    - mrb_define_class_id
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:567,1
    - Dst: mrb_mc_clear_by_class
      Src: /src/h2o/deps/mruby/src/class.c:568,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:569,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/class.c:570,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:571,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/class.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - super
    - klass
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 558
    functionDepth: 10
    functionLinenumber: 558
    functionLinenumberEnd: 574
    functionName: mrb_class_inherited
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_func_basic_p
    - mrb_mc_clear_by_class
    - mrb_obj_value
    - mrb_funcall_argv
    linkageType: ''
    returnType: void
    signature: void mrb_class_inherited(mrb_state *mrb, struct RClass *super, struct
      RClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:582,1
    - Dst: mrb_class_p
      Src: /src/h2o/deps/mruby/src/class.c:583,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:584,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:586,1
    - Dst: check_if_class_or_module
      Src: /src/h2o/deps/mruby/src/class.c:591,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:592,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:593,1
    - Dst: mrb_class_p
      Src: /src/h2o/deps/mruby/src/class.c:595,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:596,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:598,1
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/src/class.c:601,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:602,1
    - Dst: define_class
      Src: /src/h2o/deps/mruby/src/class.c:607,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:607,1
    - Dst: mrb_class_inherited
      Src: /src/h2o/deps/mruby/src/class.c:608,1
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/src/class.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - mrb
    - outer
    - super
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 576
    functionDepth: 14
    functionLinenumber: 576
    functionLinenumberEnd: 611
    functionName: mrb_vm_define_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_class_ptr
    - mrb_const_get
    - mrb_const_defined_at
    - mrb_class_real
    - mrb_class_inherited
    - mrb_raisef
    - define_class
    - mrb_nil_p
    - check_if_class_or_module
    - mrb_class_p
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      mrb_vm_define_class(mrb_state *mrb, mrb_value outer, mrb_value super, mrb_sym
      id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check_cstr
      Src: /src/h2o/deps/mruby/src/class.c:616,1
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby/src/class.c:618,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 5
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: mrb_class_defined
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_intern_check_cstr
    - mrb_const_defined
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_class_defined(mrb_state *mrb, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby/src/class.c:624,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: mrb_class_defined_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_obj_value
    - mrb_const_defined
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_class_defined_id(mrb_state *mrb, mrb_sym name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_check_cstr
      Src: /src/h2o/deps/mruby/src/class.c:630,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:632,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: mrb_class_defined_under
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_intern_check_cstr
    - mrb_const_defined_at
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_class_defined_under(mrb_state *mrb, struct RClass *outer,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:638,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 639
    functionName: mrb_class_defined_under_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_const_defined_at
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_class_defined_under_id(mrb_state *mrb, struct RClass *outer,
      mrb_sym name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:644,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: mrb_class_get_under
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - class_from_sym
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: mrb_class_get_under_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - class_from_sym
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_get_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_under
      Src: /src/h2o/deps/mruby/src/class.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: mrb_class_get
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 9
    functionsReached:
    - mrb_class_get_under
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_get(mrb_state *mrb, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_under_id
      Src: /src/h2o/deps/mruby/src/class.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: mrb_class_get_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_class_get_under_id
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_get_id(mrb_state *mrb, mrb_sym name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:669,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:669,1
    - Dst: mrb_class_p
      Src: /src/h2o/deps/mruby/src/class.c:671,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:672,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 682
    functionName: mrb_exc_get_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_class_ptr
    - mrb_const_get
    - mrb_obj_value
    - mrb_class_p
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_exc_get_id(mrb_state *mrb, mrb_sym name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:687,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 4
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: mrb_module_get_under
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - module_from_sym
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_module_get_under(mrb_state *mrb, struct RClass *outer, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_from_sym
      Src: /src/h2o/deps/mruby/src/class.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - outer
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: mrb_module_get_under_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - module_from_sym
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_module_get_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_get_under
      Src: /src/h2o/deps/mruby/src/class.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 700
    functionName: mrb_module_get
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_module_get_under
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_module_get(mrb_state *mrb, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_get_under_id
      Src: /src/h2o/deps/mruby/src/class.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: mrb_module_get_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_module_get_under_id
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_module_get_id(mrb_state *mrb, mrb_sym name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_warn
      Src: /src/h2o/deps/mruby/src/class.c:731,1
    - Dst: define_class
      Src: /src/h2o/deps/mruby/src/class.c:734,1
    - Dst: setup_class
      Src: /src/h2o/deps/mruby/src/class.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - outer
    - name
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 14
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: mrb_define_class_under_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_warn
    - setup_class
    - define_class
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_class_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name,
      struct RClass *super)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_under_id
      Src: /src/h2o/deps/mruby/src/class.c:742,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - outer
    - name
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 15
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: mrb_define_class_under
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_define_class_under_id
    - mrb_intern_cstr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_define_class_under(mrb_state *mrb, struct RClass *outer, const char *name,
      struct RClass *super)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/class.c:751,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/class.c:753,1
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:754,1
    - Dst: MRB_METHOD_PROC_P
      Src: /src/h2o/deps/mruby/src/class.c:755,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/class.c:756,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:763,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/class.c:764,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/class.c:765,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:769,1
    - Dst: MRB_FROZEN_P
      Src: /src/h2o/deps/mruby/src/class.c:769,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/src/class.c:769,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:770,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/src/class.c:775,1
    - Dst: mt_put
      Src: /src/h2o/deps/mruby/src/class.c:777,1
    - Dst: MT_FLAGS
      Src: /src/h2o/deps/mruby/src/class.c:777,1
    - Dst: MRB_METHOD_FUNC_P
      Src: /src/h2o/deps/mruby/src/class.c:777,1
    - Dst: MRB_METHOD_NOARG_P
      Src: /src/h2o/deps/mruby/src/class.c:777,1
    - Dst: mc_clear
      Src: /src/h2o/deps/mruby/src/class.c:778,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - mrb
    - c
    - mid
    - m
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 745
    functionDepth: 7
    functionLinenumber: 745
    functionLinenumberEnd: 779
    functionName: mrb_define_method_raw
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - MRB_METHOD_FUNC
    - mrb_assert
    - MRB_METHOD_PROC_P
    - MRB_METHOD_NOARG_P
    - MRB_METHOD_PROC
    - MRB_PROC_SCOPE_P
    - MRB_CLASS_ORIGIN
    - mc_clear
    - mrb_field_write_barrier
    - MRB_FROZEN_P
    - MRB_PROC_ENV_P
    - MT_FLAGS
    - mrb_check_frozen
    - MRB_PROC_SET_TARGET_CLASS
    - mt_put
    - MRB_METHOD_FUNC_P
    - mt_new
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym
      mid, mrb_method_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/class.c:785,1
    - Dst: MRB_METHOD_FROM_FUNC
      Src: /src/h2o/deps/mruby/src/class.c:787,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:789,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/src/class.c:789,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:791,1
    - Dst: MRB_METHOD_NOARG_SET
      Src: /src/h2o/deps/mruby/src/class.c:792,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:794,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/class.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - mrb
    - c
    - mid
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 781
    functionDepth: 8
    functionLinenumber: 781
    functionLinenumberEnd: 796
    functionName: mrb_define_method_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_FUNC
    - mrb_assert
    - MRB_METHOD_FROM_FUNC
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - MRB_METHOD_NOARG_SET
    - MRB_ARGS_NONE
    - mrb_define_method_raw
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym
      mid, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/src/class.c:801,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 9
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: mrb_define_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 11
    functionsReached:
    - mrb_intern_cstr
    - mrb_define_method_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_method(mrb_state *mrb, struct RClass *c, const char
      *name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 813
    functionName: mrb_notimplement
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_notimplement(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_notimplement
      Src: /src/h2o/deps/mruby/src/class.c:819,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 816
    functionDepth: 6
    functionLinenumber: 816
    functionLinenumberEnd: 822
    functionName: mrb_notimplement_m
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_notimplement
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_notimplement_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: class_ptr_p
      Src: /src/h2o/deps/mruby/src/class.c:827,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 5
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: ensure_class_type
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - class_ptr_p
    linkageType: ''
    returnType: void
    signature: void ensure_class_type(mrb_state *mrb, mrb_value val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 833
    functionName: to_sym
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_sym(mrb, ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/class.c:840,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/class.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 845
    functionName: mrb_get_argc
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_ary_ptr
    - ARY_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_get_argc(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/class.c:853,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 858
    functionName: mrb_get_argv
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - ARY_PTR
    - mrb_ary_ptr
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_get_argv(mrb_state *mrb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/class.c:867,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/class.c:869,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:870,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/class.c:878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 860
    functionDepth: 6
    functionLinenumber: 860
    functionLinenumberEnd: 881
    functionName: mrb_get_arg1
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 51
    functionsReached:
    - ARY_PTR
    - mrb_ary_ptr
    - mrb_argnum_error
    - ARY_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_get_arg1(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/class.c:887,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 890
    functionName: mrb_block_given_p
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_ci_bidx
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_block_given_p(mrb_state *mrb)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:944,1
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/class.c:948,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/src/class.c:958,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:978,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/class.c:979,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/class.c:980,1
    - Dst: mrb_hash_size
      Src: /src/h2o/deps/mruby/src/class.c:980,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/class.c:989,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/class.c:994,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/class.c:996,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/class.c:1002,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:1003,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/src/class.c:1004,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/class.c:1004,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1009,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:1010,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/class.c:1011,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1040,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1046,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/class.c:1047,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1048,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/class.c:1050,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1050,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/class.c:1058,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1073,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1075,1
    - Dst: ensure_class_type
      Src: /src/h2o/deps/mruby/src/class.c:1077,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/class.c:1078,1
    - Dst: mrb_ensure_array_type
      Src: /src/h2o/deps/mruby/src/class.c:1079,1
    - Dst: mrb_ensure_hash_type
      Src: /src/h2o/deps/mruby/src/class.c:1080,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1091,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1093,1
    - Dst: ensure_class_type
      Src: /src/h2o/deps/mruby/src/class.c:1097,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1098,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1108,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1109,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1112,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/class.c:1117,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/class.c:1118,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/class.c:1119,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1128,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1131,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/class.c:1135,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/src/class.c:1136,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1147,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1148,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1151,1
    - Dst: mrb_ensure_array_type
      Src: /src/h2o/deps/mruby/src/class.c:1156,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1157,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:1158,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/class.c:1159,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1169,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/src/class.c:1171,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1180,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/src/class.c:1182,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1188,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/class.c:1191,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1199,1
    - Dst: to_sym
      Src: /src/h2o/deps/mruby/src/class.c:1201,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1210,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1211,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1213,1
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1217,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1227,1
    - Dst: mrb_ci_bidx
      Src: /src/h2o/deps/mruby/src/class.c:1228,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1229,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1230,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1243,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1254,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1255,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/class.c:1263,1
    - Dst: RARRAY
      Src: /src/h2o/deps/mruby/src/class.c:1264,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:1265,1
    - Dst: mrb_hash_p
      Src: /src/h2o/deps/mruby/src/class.c:1279,1
    - Dst: mrb_hash_dup
      Src: /src/h2o/deps/mruby/src/class.c:1279,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/src/class.c:1279,1
    - Dst: va_arg
      Src: /src/h2o/deps/mruby/src/class.c:1280,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1295,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:1299,1
    - Dst: mrb_hash_key_p
      Src: /src/h2o/deps/mruby/src/class.c:1300,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1301,1
    - Dst: mrb_hash_delete_key
      Src: /src/h2o/deps/mruby/src/class.c:1303,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/class.c:1304,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:1308,1
    - Dst: mrb_hash_key_p
      Src: /src/h2o/deps/mruby/src/class.c:1309,1
    - Dst: mrb_hash_delete_key
      Src: /src/h2o/deps/mruby/src/class.c:1310,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/src/class.c:1311,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/class.c:1314,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/src/class.c:1324,1
    - Dst: mrb_hash_keys
      Src: /src/h2o/deps/mruby/src/class.c:1325,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/class.c:1326,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1327,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1333,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/src/class.c:1339,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/class.c:1343,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 333
    argCount: 2
    argNames:
    - mrb
    - format
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 930
    functionDepth: 8
    functionLinenumber: 930
    functionLinenumberEnd: 1345
    functionName: mrb_get_args
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 79
    functionsReached:
    - mrb_ci_bidx
    - mrb_undef_value
    - mrb_class_ptr
    - mrb_as_int
    - RARRAY
    - mrb_hash_new
    - mrb_check_frozen
    - mrb_argnum_error
    - mrb_test
    - mrb_nil_p
    - mrb_ensure_hash_type
    - RARRAY_PTR
    - mrb_assert
    - mrb_gc_protect
    - mrb_ary_new_from_values
    - RSTRING_PTR
    - mrb_raise
    - mrb_hash_empty_p
    - strchr
    - mrb_hash_keys
    - va_arg
    - mrb_hash_dup
    - mrb_ary_ptr
    - mrb_immediate_p
    - mrb_ensure_string_type
    - mrb_hash_p
    - ARY_PTR
    - mrb_nil_value
    - mrb_ensure_array_type
    - mrb_data_get_ptr
    - mrb_symbol_value
    - RSTRING_CSTR
    - va_start
    - mrb_hash_size
    - mrb_hash_delete_key
    - mrb_ary_push
    - ARY_LEN
    - ensure_class_type
    - mrb_obj_ptr
    - RSTRING_LEN
    - to_sym
    - mrb_raisef
    - mrb_hash_key_p
    - va_end
    - mrb_as_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_get_args(mrb_state *mrb, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:1352,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:1355,1
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1347
    functionDepth: 5
    functionLinenumber: 1347
    functionLinenumberEnd: 1363
    functionName: boot_defclass
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_field_write_barrier
    - mt_new
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      boot_defclass(mrb_state *mrb, struct RClass *super)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1365
    functionDepth: 5
    functionLinenumber: 1365
    functionLinenumberEnd: 1371
    functionName: boot_initmod
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mt_new
    linkageType: ''
    returnType: void
    signature: void boot_initmod(mrb_state *mrb, struct RClass *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:1376,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/class.c:1380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - m
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1391
    functionName: include_class_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - MRB_CLASS_ORIGIN
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      include_class_new(mrb_state *mrb, struct RClass *m, struct RClass *super)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_origin
      Src: /src/h2o/deps/mruby/src/class.c:1397,1
    - Dst: include_class_new
      Src: /src/h2o/deps/mruby/src/class.c:1427,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:1430,1
    - Dst: mc_clear
      Src: /src/h2o/deps/mruby/src/class.c:1435,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - mrb
    - c
    - ins_pos
    - m
    - search_super
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    - struct RClass*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1437
    functionName: include_module_at
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mc_clear
    - mrb_field_write_barrier
    - find_origin
    - include_class_new
    linkageType: ''
    returnType: int
    signature: int include_module_at(mrb_state *mrb, struct RClass *c, struct RClass
      *ins_pos, struct RClass *m, int search_super)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_FLAG_TEST
      Src: /src/h2o/deps/mruby/src/class.c:1444,1
    - Dst: include_module_at
      Src: /src/h2o/deps/mruby/src/class.c:1446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - obj
    - data
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1439
    functionDepth: 4
    functionLinenumber: 1439
    functionLinenumberEnd: 1449
    functionName: fix_include_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - include_module_at
    - MRB_FLAG_TEST
    linkageType: ''
    returnType: int
    signature: int fix_include_module(mrb_state *mrb, struct RBasic *obj, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/class.c:1454,1
    - Dst: include_module_at
      Src: /src/h2o/deps/mruby/src/class.c:1455,1
    - Dst: find_origin
      Src: /src/h2o/deps/mruby/src/class.c:1455,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1456,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/src/class.c:1462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - c
    - m
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1451
    functionDepth: 12
    functionLinenumber: 1451
    functionLinenumberEnd: 1464
    functionName: mrb_include_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_raise
    - find_origin
    - mrb_check_frozen
    - include_module_at
    - mrb_objspace_each_objects
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_include_module(mrb_state *mrb, struct RClass *c, struct
      RClass *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: include_module_at
      Src: /src/h2o/deps/mruby/src/class.c:1482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - mrb
    - obj
    - data
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1466
    functionDepth: 4
    functionLinenumber: 1466
    functionLinenumberEnd: 1490
    functionName: fix_prepend_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - include_module_at
    linkageType: ''
    returnType: int
    signature: int fix_prepend_module(mrb_state *mrb, struct RBasic *obj, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/class.c:1497,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:1507,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:1514,1
    - Dst: include_module_at
      Src: /src/h2o/deps/mruby/src/class.c:1517,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1518,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/src/class.c:1525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - mrb
    - c
    - m
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1492
    functionDepth: 12
    functionLinenumber: 1492
    functionLinenumberEnd: 1527
    functionName: mrb_prepend_module
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_raise
    - mrb_field_write_barrier
    - mrb_check_frozen
    - include_module_at
    - mrb_objspace_each_objects
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_prepend_module(mrb_state *mrb, struct RClass *c, struct
      RClass *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:1534,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1535,1
    - Dst: mrb_prepend_module
      Src: /src/h2o/deps/mruby/src/class.c:1536,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1529
    functionDepth: 13
    functionLinenumber: 1529
    functionLinenumberEnd: 1538
    functionName: mrb_mod_prepend_features
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_check_type
    - mrb_prepend_module
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_prepend_features(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:1545,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1546,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/src/class.c:1547,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1540
    functionDepth: 13
    functionLinenumber: 1540
    functionLinenumberEnd: 1549
    functionName: mrb_mod_append_features
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_check_type
    - mrb_include_module
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_append_features(mrb_state *mrb, mrb_value mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1574,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1576,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:1577,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1581,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/class.c:1581,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/class.c:1585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1570
    functionDepth: 9
    functionLinenumber: 1570
    functionLinenumberEnd: 1586
    functionName: mrb_mod_include_p
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_check_type
    - mrb_true_value
    - mrb_get_args
    - mrb_class_ptr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_include_p(mrb_state *mrb, mrb_value mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1592,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/class.c:1593,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/class.c:1596,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1596,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/class.c:1599,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1605
    functionName: mrb_mod_ancestors
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_ary_new
    - mrb_class_ptr
    - mrb_ary_push
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_ancestors(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:1610,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:1612,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/src/class.c:1613,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1613,1
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:1613,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1607
    functionDepth: 13
    functionLinenumber: 1607
    functionLinenumberEnd: 1615
    functionName: mrb_mod_extend_object
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_check_type
    - mrb_get_arg1
    - mrb_singleton_class
    - mrb_include_module
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_extend_object(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1621,1
    - Dst: boot_initmod
      Src: /src/h2o/deps/mruby/src/class.c:1622,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1623,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1624,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/src/class.c:1625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1617
    functionDepth: 9
    functionLinenumber: 1617
    functionLinenumberEnd: 1628
    functionName: mrb_mod_initialize
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - boot_initmod
    - mrb_yield_with_class
    - mrb_get_args
    - mrb_class_ptr
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_initialize(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1637
    functionName: mrb_mod_dummy_visibility
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_dummy_visibility(mrb_state *mrb, mrb_value mod)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:1646,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1648,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1663,1
    - Dst: prepare_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:1665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1641
    functionDepth: 6
    functionLinenumber: 1641
    functionLinenumberEnd: 1667
    functionName: mrb_singleton_class_ptr
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_nil_p
    - mrb_basic_ptr
    - prepare_singleton_class
    - mrb_type
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_singleton_class_ptr(mrb_state *mrb, mrb_value v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_singleton_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1672,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1675,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1669
    functionDepth: 7
    functionLinenumber: 1669
    functionLinenumberEnd: 1678
    functionName: mrb_singleton_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_raise
    - mrb_obj_value
    - mrb_singleton_class_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_singleton_class(mrb_state *mrb, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:1683,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/src/class.c:1684,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mrb
    - o
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RObject*
    - char*
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1680
    functionDepth: 9
    functionLinenumber: 1680
    functionLinenumberEnd: 1685
    functionName: mrb_define_singleton_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_define_method_id
    - prepare_singleton_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_singleton_method(mrb_state *mrb, struct RObject
      *o, const char *name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:1690,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/src/class.c:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mrb
    - o
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RObject*
    - mrb_sym
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1687
    functionDepth: 9
    functionLinenumber: 1687
    functionLinenumberEnd: 1692
    functionName: mrb_define_singleton_method_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_method_id
    - prepare_singleton_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_singleton_method_id(mrb_state *mrb, struct RObject
      *o, mrb_sym name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby/src/class.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1698
    functionName: mrb_define_class_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 5
    functionsReached:
    - mrb_define_singleton_method
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_class_method(mrb_state *mrb, struct RClass *c, const
      char *name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_singleton_method_id
      Src: /src/h2o/deps/mruby/src/class.c:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1700
    functionDepth: 10
    functionLinenumber: 1700
    functionLinenumberEnd: 1704
    functionName: mrb_define_class_method_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_singleton_method_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_class_method_id(mrb_state *mrb, struct RClass *c,
      mrb_sym name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_method_id
      Src: /src/h2o/deps/mruby/src/class.c:1709,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/src/class.c:1710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mrb
    - c
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1706
    functionDepth: 11
    functionLinenumber: 1706
    functionLinenumberEnd: 1711
    functionName: mrb_define_module_function_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_class_method_id
    - mrb_define_method_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_module_function_id(mrb_state *mrb, struct RClass
      *c, mrb_sym name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module_function_id
      Src: /src/h2o/deps/mruby/src/class.c:1716,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - name
    - func
    - aspec
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - mrb_func_t
    - mrb_aspec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1713
    functionDepth: 12
    functionLinenumber: 1713
    functionLinenumberEnd: 1717
    functionName: mrb_define_module_function
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_intern_cstr
    - mrb_define_module_function_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_module_function(mrb_state *mrb, struct RClass *c,
      const char *name, mrb_func_t func, mrb_aspec aspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1728
    functionName: mc_clear
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mc_clear(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mc_clear
      Src: /src/h2o/deps/mruby/src/class.c:1737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1743
    functionName: mrb_mc_clear_by_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mc_clear
    linkageType: ''
    returnType: void
    signature: void mrb_mc_clear_by_class(mrb_state *mrb, struct RClass *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kh_int_hash_func
      Src: /src/h2o/deps/mruby/src/class.c:1753,1
    - Dst: mt_get
      Src: /src/h2o/deps/mruby/src/class.c:1767,1
    - Dst: MRB_METHOD_FROM_FUNC
      Src: /src/h2o/deps/mruby/src/class.c:1772,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:1775,1
    - Dst: MRB_METHOD_NOARG_SET
      Src: /src/h2o/deps/mruby/src/class.c:1778,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:1791,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - mrb
    - cp
    - mid
    argTypes:
    - mrb_state*
    - struct RClass**
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1793
    functionName: mrb_method_t::mrb_method_search_vm
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_FROM_FUNC
    - MRB_METHOD_FROM_PROC
    - kh_int_hash_func
    - MRB_METHOD_NOARG_SET
    - mt_get
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API mrb_method_t

      mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_method_t::mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/class.c:1800,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/class.c:1801,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:1802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - c
    - mid
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1795
    functionDepth: 7
    functionLinenumber: 1795
    functionLinenumberEnd: 1805
    functionName: mrb_method_t::mrb_method_search
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_name_error
    - MRB_METHOD_UNDEF_P
    - mrb_method_t::mrb_method_search_vm
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API mrb_method_t

      mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/class.c:1814,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/class.c:1815,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/class.c:1816,1
    - Dst: mrb_alloca
      Src: /src/h2o/deps/mruby/src/class.c:1818,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/class.c:1822,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/class.c:1826,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/class.c:1830,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/class.c:1834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - sym
    - prefix
    - suffix
    argTypes:
    - mrb_state*
    - mrb_sym
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1809
    functionDepth: 5
    functionLinenumber: 1809
    functionLinenumberEnd: 1835
    functionName: prepare_name_common
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_alloca
    - memcpy
    - mrb_intern
    - mrb_sym_name_len
    - strlen
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym prepare_name_common(mrb_state *mrb, mrb_sym sym, const char
      *prefix, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_name_common
      Src: /src/h2o/deps/mruby/src/class.c:1840,1
    - Dst: mrb_iv_name_sym_check
      Src: /src/h2o/deps/mruby/src/class.c:1841,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1837
    functionDepth: 6
    functionLinenumber: 1837
    functionLinenumberEnd: 1843
    functionName: prepare_ivar_name
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_iv_name_sym_check
    - prepare_name_common
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value prepare_ivar_name(mrb_state *mrb, mrb_sym sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_name_common
      Src: /src/h2o/deps/mruby/src/class.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sym
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1845
    functionDepth: 6
    functionLinenumber: 1845
    functionLinenumberEnd: 1849
    functionName: prepare_writer_name
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - prepare_name_common
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym prepare_writer_name(mrb_state *mrb, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1854,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1859,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/class.c:1860,1
    - Dst: to_sym
      Src: /src/h2o/deps/mruby/src/class.c:1867,1
    - Dst: prepare_ivar_name
      Src: /src/h2o/deps/mruby/src/class.c:1868,1
    - Dst: access_name
      Src: /src/h2o/deps/mruby/src/class.c:1870,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/src/class.c:1873,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:1874,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:1875,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/class.c:1876,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:1878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1851
    functionDepth: 9
    functionLinenumber: 1851
    functionLinenumberEnd: 1879
    functionName: mod_attr_define
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_FROM_PROC
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_class_ptr
    - prepare_ivar_name
    - mrb_gc_arena_save
    - mrb_proc_new_cfunc_with_env
    - access_name
    - mrb_define_method_raw
    - to_sym
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_value
      (*accessor)(mrb_state *, mrb_value), mrb_sym (*access_name)(mrb_state *, mrb_sym))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/deps/mruby/src/class.c:1884,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/class.c:1885,1
    - Dst: to_sym
      Src: /src/h2o/deps/mruby/src/class.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1881
    functionDepth: 6
    functionLinenumber: 1881
    functionLinenumberEnd: 1886
    functionName: attr_reader
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - to_sym
    - mrb_proc_cfunc_env_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value attr_reader(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_attr_define
      Src: /src/h2o/deps/mruby/src/class.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1888
    functionDepth: 10
    functionLinenumber: 1888
    functionLinenumberEnd: 1892
    functionName: mrb_mod_attr_reader
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mod_attr_define
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_attr_reader(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/deps/mruby/src/class.c:1897,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:1898,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/src/class.c:1900,1
    - Dst: to_sym
      Src: /src/h2o/deps/mruby/src/class.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1894
    functionDepth: 7
    functionLinenumber: 1894
    functionLinenumberEnd: 1902
    functionName: attr_writer
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_iv_set
    - mrb_get_arg1
    - to_sym
    - mrb_proc_cfunc_env_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value attr_writer(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_attr_define
      Src: /src/h2o/deps/mruby/src/class.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1904
    functionDepth: 10
    functionLinenumber: 1904
    functionLinenumberEnd: 1908
    functionName: mrb_mod_attr_writer
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mod_attr_define
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_attr_writer(mrb_state *mrb, mrb_value mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1913,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:1915,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:1918,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:1922,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/class.c:1924,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1910
    functionDepth: 7
    functionLinenumber: 1910
    functionLinenumberEnd: 1926
    functionName: mrb_instance_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_alloc
    - mrb_raise
    - mrb_obj_value
    - mrb_class_ptr
    - MRB_INSTANCE_TT
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_instance_alloc(mrb_state *mrb, mrb_value cv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1948,1
    - Dst: mrb_instance_alloc
      Src: /src/h2o/deps/mruby/src/class.c:1949,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:1950,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/class.c:1951,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/class.c:1952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1940
    functionDepth: 9
    functionLinenumber: 1940
    functionLinenumberEnd: 1955
    functionName: mrb_instance_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_instance_alloc
    - mrb_func_basic_p
    - mrb_funcall_with_block
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_instance_new(mrb_state *mrb, mrb_value cv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_instance_alloc
      Src: /src/h2o/deps/mruby/src/class.c:1963,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1963,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:1964,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/class.c:1965,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/src/class.c:1966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - c
    - argc
    - argv
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1957
    functionDepth: 10
    functionLinenumber: 1957
    functionLinenumberEnd: 1969
    functionName: mrb_obj_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_instance_alloc
    - mrb_func_basic_p
    - mrb_obj_value
    - mrb_funcall_argv
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_new(mrb_state *mrb, struct RClass *c, mrb_int argc,
      const mrb_value *argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1976,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:1977,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/src/class.c:1978,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1971
    functionDepth: 9
    functionLinenumber: 1971
    functionLinenumberEnd: 1981
    functionName: mrb_class_initialize
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_get_args
    - mrb_class_ptr
    - mrb_yield_with_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_initialize(mrb_state *mrb, mrb_value c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:1991,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1993,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:1995,1
    - Dst: mrb_class_new
      Src: /src/h2o/deps/mruby/src/class.c:1995,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:1995,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:1996,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/class.c:1997,1
    - Dst: mrb_class_initialize
      Src: /src/h2o/deps/mruby/src/class.c:1998,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/deps/mruby/src/class.c:2001,1
    - Dst: mrb_class_inherited
      Src: /src/h2o/deps/mruby/src/class.c:2003,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2003,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1983
    functionDepth: 11
    functionLinenumber: 1983
    functionLinenumberEnd: 2005
    functionName: mrb_class_new_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_func_basic_p
    - mrb_funcall_with_block
    - mrb_class_initialize
    - mrb_get_args
    - mrb_class_ptr
    - mrb_class_inherited
    - mrb_obj_value
    - mrb_class_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_new_class(mrb_state *mrb, mrb_value cv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2012,1
    - Dst: find_origin
      Src: /src/h2o/deps/mruby/src/class.c:2013,1
    - Dst: find_origin
      Src: /src/h2o/deps/mruby/src/class.c:2015,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:2017,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2007
    functionDepth: 2
    functionLinenumber: 2007
    functionLinenumberEnd: 2019
    functionName: mrb_class_superclass
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_obj_value
    - mrb_class_ptr
    - find_origin
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_superclass(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2025
    functionName: mrb_do_nothing
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_do_nothing(mrb_state *mrb, mrb_value cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2030,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/src/class.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2031
    functionName: mrb_bob_not
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_test
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bob_not(mrb_state *mrb, mrb_value cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:2067,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2069,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/class.c:2069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2064
    functionDepth: 7
    functionLinenumber: 2064
    functionLinenumberEnd: 2070
    functionName: mrb_obj_equal_m
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_arg1
    - mrb_obj_equal
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_equal_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/src/class.c:2077,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/src/class.c:2078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - c
    - mid
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2082
    functionName: mrb_obj_respond_to
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_UNDEF_P
    - mrb_method_search_vm
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_respond_to(mrb_state *mrb, struct RClass* c, mrb_sym
      mid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_respond_to
      Src: /src/h2o/deps/mruby/src/class.c:2087,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/class.c:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - obj
    - mid
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2084
    functionDepth: 2
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    functionName: mrb_respond_to
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 5
    functionsReached:
    - mrb_obj_respond_to
    - mrb_class
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_respond_to(mrb_state *mrb, mrb_value obj, mrb_sym mid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2094,1
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/src/class.c:2096,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:2097,1
    - Dst: mrb_class_find_path
      Src: /src/h2o/deps/mruby/src/class.c:2099,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/class.c:2101,1
    - Dst: mrb_sym_str
      Src: /src/h2o/deps/mruby/src/class.c:2103,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/class.c:2103,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/src/class.c:2105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2090
    functionDepth: 8
    functionLinenumber: 2090
    functionLinenumberEnd: 2106
    functionName: mrb_class_path
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - MRB_SYM
    - mrb_sym_str
    - mrb_symbol_p
    - mrb_str_dup
    - mrb_nil_p
    - mrb_symbol
    - mrb_class_find_path
    - mrb_obj_iv_get
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_class_path(mrb_state *mrb, struct RClass *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cl
    argTypes:
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2117
    functionName: mrb_class_real
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_real(struct RClass* cl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: class_name_str
      Src: /src/h2o/deps/mruby/src/class.c:2125,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/class.c:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2119
    functionDepth: 13
    functionLinenumber: 2119
    functionLinenumberEnd: 2127
    functionName: mrb_class_name
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - RSTRING_PTR
    - class_name_str
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_name(mrb_state *mrb, struct RClass* c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/src/class.c:2132,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/class.c:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2129
    functionDepth: 14
    functionLinenumber: 2129
    functionLinenumberEnd: 2133
    functionName: mrb_obj_classname
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 4
    functionsReached:
    - mrb_obj_class
    - mrb_class_name
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_obj_classname(mrb_state *mrb, mrb_value obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:2145,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2148,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2141
    functionDepth: 5
    functionLinenumber: 2141
    functionLinenumberEnd: 2153
    functionName: mrb_check_inheritable
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void mrb_check_inheritable(mrb_state *mrb, struct RClass *super)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_inheritable
      Src: /src/h2o/deps/mruby/src/class.c:2167,1
    - Dst: boot_defclass
      Src: /src/h2o/deps/mruby/src/class.c:2169,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2171,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2171,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:2173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - super
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2161
    functionDepth: 6
    functionLinenumber: 2161
    functionLinenumberEnd: 2176
    functionName: mrb_class_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_check_inheritable
    - make_metaclass
    - MRB_INSTANCE_TT
    - boot_defclass
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_class_new(mrb_state *mrb, struct RClass *super)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:2184,1
    - Dst: boot_initmod
      Src: /src/h2o/deps/mruby/src/class.c:2185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2181
    functionDepth: 6
    functionLinenumber: 2181
    functionLinenumberEnd: 2187
    functionName: mrb_module_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - MRB_OBJ_ALLOC
    - boot_initmod
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_module_new(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/src/class.c:2206,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/src/class.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2207
    functionName: mrb_obj_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 10
    functionsReached:
    - mrb_class_real
    - mrb_class
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_obj_class(mrb_state *mrb, mrb_value obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_method_search
      Src: /src/h2o/deps/mruby/src/class.c:2213,1
    - Dst: MRB_METHOD_CFUNC_P
      Src: /src/h2o/deps/mruby/src/class.c:2215,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/src/class.c:2216,1
    - Dst: MRB_PROC_ENV_P
      Src: /src/h2o/deps/mruby/src/class.c:2218,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/src/class.c:2219,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/src/class.c:2222,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:2223,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:2228,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:2232,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:2235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - mrb
    - c
    - a
    - b
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2209
    functionDepth: 8
    functionLinenumber: 2209
    functionLinenumberEnd: 2236
    functionName: mrb_alias_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - MRB_OBJ_ALLOC
    - MRB_PROC_ENV
    - MRB_METHOD_PROC
    - MRB_METHOD_CFUNC_P
    - MRB_PROC_TARGET_CLASS
    - mrb_field_write_barrier
    - MRB_PROC_ENV_P
    - mrb_define_method_raw
    - mrb_method_search
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym
      a, mrb_sym b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_alias_method
      Src: /src/h2o/deps/mruby/src/class.c:2248,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:2248,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:2248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - klass
    - name1
    - name2
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2245
    functionDepth: 9
    functionLinenumber: 2245
    functionLinenumberEnd: 2249
    functionName: mrb_define_alias
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_alias_method
    - mrb_intern_cstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_alias(mrb_state *mrb, struct RClass *klass, const
      char *name1, const char *name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_alias_method
      Src: /src/h2o/deps/mruby/src/class.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - klass
    - a
    - b
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2251
    functionDepth: 9
    functionLinenumber: 2251
    functionLinenumberEnd: 2255
    functionName: mrb_define_alias_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_alias_method
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_define_alias_id(mrb_state *mrb, struct RClass *klass, mrb_sym
      a, mrb_sym b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sclass_p
      Src: /src/h2o/deps/mruby/src/class.c:2269,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/class.c:2270,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2270,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/class.c:2271,1
    - Dst: class_ptr_p
      Src: /src/h2o/deps/mruby/src/class.c:2273,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/class.c:2274,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/src/class.c:2274,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/class.c:2277,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/src/class.c:2277,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/class.c:2279,1
    - Dst: class_name_str
      Src: /src/h2o/deps/mruby/src/class.c:2282,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2266
    functionDepth: 13
    functionLinenumber: 2266
    functionLinenumberEnd: 2284
    functionName: mrb_mod_to_s
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - MRB_SYM
    - mrb_inspect
    - class_ptr_p
    - mrb_str_new_lit
    - mrb_sclass_p
    - mrb_class_ptr
    - mrb_iv_get
    - mrb_any_to_s
    - mrb_str_cat_lit
    - mrb_str_cat_str
    - class_name_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2289,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2292,1
    - Dst: mrb_alias_method
      Src: /src/h2o/deps/mruby/src/class.c:2293,1
    - Dst: mrb_method_added
      Src: /src/h2o/deps/mruby/src/class.c:2294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2286
    functionDepth: 9
    functionLinenumber: 2286
    functionLinenumberEnd: 2296
    functionName: mrb_mod_alias
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_alias_method
    - mrb_get_args
    - mrb_class_ptr
    - mrb_method_added
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_alias(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:2303,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - c
    - a
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2298
    functionDepth: 8
    functionLinenumber: 2298
    functionLinenumberEnd: 2305
    functionName: undef_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_method_raw
    - MRB_METHOD_FROM_PROC
    linkageType: ''
    returnType: void
    signature: void undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_respond_to
      Src: /src/h2o/deps/mruby/src/class.c:2310,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2311,1
    - Dst: undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - c
    - a
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2307
    functionDepth: 9
    functionLinenumber: 2307
    functionLinenumberEnd: 2314
    functionName: mrb_undef_method_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_name_error
    - undef_method
    - mrb_obj_respond_to
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_undef_method_id(mrb_state *mrb, struct RClass *c, mrb_sym
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2319,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/src/class.c:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - c
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2316
    functionDepth: 9
    functionLinenumber: 2316
    functionLinenumberEnd: 2320
    functionName: mrb_undef_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - undef_method
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_undef_method(mrb_state *mrb, struct RClass *c, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_method_id
      Src: /src/h2o/deps/mruby/src/class.c:2325,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2325,1
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:2325,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - c
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2322
    functionDepth: 10
    functionLinenumber: 2322
    functionLinenumberEnd: 2326
    functionName: mrb_undef_class_method_id
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_singleton_class
    - mrb_class_ptr
    - mrb_undef_method_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_undef_class_method_id(mrb_state *mrb, struct RClass *c,
      mrb_sym name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2331,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2331,1
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:2331,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - c
    - name
    argTypes:
    - mrb_state*
    - struct RClass*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2328
    functionDepth: 10
    functionLinenumber: 2328
    functionLinenumberEnd: 2332
    functionName: mrb_undef_class_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 4
    functionsReached:
    - mrb_obj_value
    - mrb_singleton_class
    - mrb_undef_method
    - mrb_class_ptr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_undef_class_method(mrb_state *mrb, struct RClass *c, const
      char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/src/class.c:2339,1
    - Dst: mt_del
      Src: /src/h2o/deps/mruby/src/class.c:2342,1
    - Dst: mrb_mc_clear_by_class
      Src: /src/h2o/deps/mruby/src/class.c:2343,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - c
    - mid
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2334
    functionDepth: 7
    functionLinenumber: 2334
    functionLinenumberEnd: 2347
    functionName: mrb_remove_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_mc_clear_by_class
    - MRB_CLASS_ORIGIN
    - mt_del
    - mrb_name_error
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_remove_method(mrb_state *mrb, struct RClass *c, mrb_sym
      mid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2352,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2356,1
    - Dst: mrb_undef_method_id
      Src: /src/h2o/deps/mruby/src/class.c:2358,1
    - Dst: to_sym
      Src: /src/h2o/deps/mruby/src/class.c:2358,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:2361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2349
    functionDepth: 10
    functionLinenumber: 2349
    functionLinenumberEnd: 2362
    functionName: mrb_mod_undef
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_undef_method_id
    - mrb_get_args
    - mrb_class_ptr
    - to_sym
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_undef(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/src/class.c:2368,1
    - Dst: mrb_const_name_p
      Src: /src/h2o/deps/mruby/src/class.c:2369,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - id
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2364
    functionDepth: 7
    functionLinenumber: 2364
    functionLinenumberEnd: 2372
    functionName: check_const_name_sym
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_name_error
    - mrb_const_name_p
    - mrb_sym_name_len
    linkageType: ''
    returnType: void
    signature: void check_const_name_sym(mrb_state *mrb, mrb_sym id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2380,1
    - Dst: check_const_name_sym
      Src: /src/h2o/deps/mruby/src/class.c:2381,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2383,1
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby/src/class.c:2383,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2385,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/src/class.c:2385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2374
    functionDepth: 9
    functionLinenumber: 2374
    functionLinenumberEnd: 2386
    functionName: mrb_mod_const_defined
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - check_const_name_sym
    - mrb_const_defined
    - mrb_get_args
    - mrb_const_defined_at
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_const_defined(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_const_name_sym
      Src: /src/h2o/deps/mruby/src/class.c:2391,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/class.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - mod
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2388
    functionDepth: 8
    functionLinenumber: 2388
    functionLinenumberEnd: 2393
    functionName: mrb_const_get_sym
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - check_const_name_sym
    - mrb_const_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_const_get_sym(mrb_state *mrb, mrb_value mod, mrb_sym
      id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:2398,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/class.c:2403,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/class.c:2405,1
    - Dst: mrb_const_get_sym
      Src: /src/h2o/deps/mruby/src/class.c:2406,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/src/class.c:2410,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/class.c:2411,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/class.c:2412,1
    - Dst: mrb_str_index_lit
      Src: /src/h2o/deps/mruby/src/class.c:2416,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/src/class.c:2418,1
    - Dst: mrb_const_get_sym
      Src: /src/h2o/deps/mruby/src/class.c:2419,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2395
    functionDepth: 9
    functionLinenumber: 2395
    functionLinenumberEnd: 2431
    functionName: mrb_mod_const_get
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_str_index_lit
    - mrb_get_arg1
    - RSTRING_PTR
    - mrb_symbol_p
    - RSTRING_LEN
    - mrb_name_error
    - mrb_ensure_string_type
    - mrb_const_get_sym
    - mrb_intern
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2439,1
    - Dst: check_const_name_sym
      Src: /src/h2o/deps/mruby/src/class.c:2440,1
    - Dst: mrb_const_set
      Src: /src/h2o/deps/mruby/src/class.c:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2433
    functionDepth: 9
    functionLinenumber: 2433
    functionLinenumberEnd: 2443
    functionName: mrb_mod_const_set
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - check_const_name_sym
    - mrb_get_args
    - mrb_const_set
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_const_set(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2451,1
    - Dst: check_const_name_sym
      Src: /src/h2o/deps/mruby/src/class.c:2452,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/src/class.c:2453,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/class.c:2454,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2445
    functionDepth: 9
    functionLinenumber: 2445
    functionLinenumberEnd: 2458
    functionName: mrb_mod_remove_const
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - check_const_name_sym
    - mrb_get_args
    - mrb_name_error
    - mrb_iv_remove
    - mrb_undef_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_remove_const(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2465,1
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/src/class.c:2468,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2468,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2469,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/src/class.c:2472,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/class.c:2475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2460
    functionDepth: 9
    functionLinenumber: 2460
    functionLinenumberEnd: 2476
    functionName: mrb_mod_const_missing
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_class_ptr
    - mrb_class_real
    - mrb_name_error
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_const_missing(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2510,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2511,1
    - Dst: mrb_obj_respond_to
      Src: /src/h2o/deps/mruby/src/class.c:2511,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2505
    functionDepth: 9
    functionLinenumber: 2505
    functionLinenumberEnd: 2512
    functionName: mrb_mod_method_defined
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_bool_value
    - mrb_get_args
    - mrb_obj_respond_to
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_method_defined(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2518,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2521,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/src/class.c:2522,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2522,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2525,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/class.c:2527,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:2527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - c
    - mid
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2514
    functionDepth: 5
    functionLinenumber: 2514
    functionLinenumberEnd: 2528
    functionName: mrb_method_added
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 3
    functionsReached:
    - MRB_SYM
    - mrb_funcall_id
    - mrb_iv_get
    - mrb_obj_value
    - mrb_symbol_value
    linkageType: ''
    returnType: void
    signature: void mrb_method_added(mrb_state *mrb, struct RClass *c, mrb_sym mid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/src/class.c:2536,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2539,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2540,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/class.c:2548,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/class.c:2551,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2552,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:2554,1
    - Dst: mrb_proc_copy
      Src: /src/h2o/deps/mruby/src/class.c:2555,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2555,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:2557,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:2558,1
    - Dst: mrb_method_added
      Src: /src/h2o/deps/mruby/src/class.c:2559,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/src/class.c:2560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2530
    functionDepth: 14
    functionLinenumber: 2530
    functionLinenumberEnd: 2561
    functionName: mrb_mod_define_method_m
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - MRB_METHOD_FROM_PROC
    - mrb_proc_ptr
    - mrb_undef_value
    - mrb_raise
    - mrb_get_args
    - mrb_proc_copy
    - mrb_define_method_raw
    - mrb_type
    - mrb_raisef
    - mrb_symbol_value
    - mrb_nil_p
    - mrb_method_added
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_define_method_m(mrb_state *mrb, struct RClass *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_define_method_m
      Src: /src/h2o/deps/mruby/src/class.c:2566,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2563
    functionDepth: 15
    functionLinenumber: 2563
    functionLinenumberEnd: 2567
    functionName: mod_define_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_mod_define_method_m
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mod_define_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_define_method_m
      Src: /src/h2o/deps/mruby/src/class.c:2572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2569
    functionDepth: 15
    functionLinenumber: 2569
    functionLinenumberEnd: 2573
    functionName: top_define_method
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_mod_define_method_m
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value top_define_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:2578,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/src/class.c:2581,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2581,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/class.c:2583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2575
    functionDepth: 7
    functionLinenumber: 2575
    functionLinenumberEnd: 2584
    functionName: mrb_mod_eqq
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_arg1
    - mrb_class_ptr
    - mrb_obj_is_kind_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_eqq(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_clone
      Src: /src/h2o/deps/mruby/src/class.c:2589,1
    - Dst: MRB_UNSET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/class.c:2590,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2592
    functionName: mrb_mod_dup
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - MRB_UNSET_FROZEN_FLAG
    - mrb_obj_clone
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_dup(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:2604,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/class.c:2606,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/class.c:2616,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/class.c:2618,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2619,1
    - Dst: mrb_method_search
      Src: /src/h2o/deps/mruby/src/class.c:2620,1
    - Dst: prepare_singleton_class
      Src: /src/h2o/deps/mruby/src/class.c:2622,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/class.c:2623,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/src/class.c:2624,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/class.c:2625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2594
    functionDepth: 9
    functionLinenumber: 2594
    functionLinenumberEnd: 2629
    functionName: mrb_mod_module_function
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_check_type
    - prepare_singleton_class
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_class_ptr
    - mrb_gc_arena_save
    - mrb_define_method_raw
    - mrb_method_search
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_module_function(mrb_state *mrb, mrb_value mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2634,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/class.c:2640,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2642,1
    - Dst: mrb_singleton_class_clone
      Src: /src/h2o/deps/mruby/src/class.c:2647,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2647,1
    - Dst: mrb_iv_copy
      Src: /src/h2o/deps/mruby/src/class.c:2652,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2652,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2652,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/src/class.c:2653,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2653,1
    - Dst: mt_copy
      Src: /src/h2o/deps/mruby/src/class.c:2656,1
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:2659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2631
    functionDepth: 8
    functionLinenumber: 2631
    functionLinenumberEnd: 2664
    functionName: mrb_singleton_class_clone
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_basic_ptr
    - MRB_SYM
    - mrb_obj_alloc
    - mrb_iv_copy
    - mrb_type
    - mrb_obj_iv_set
    - mrb_obj_value
    - mrb_singleton_class_clone
    - mt_new
    - mt_copy
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      mrb_singleton_class_clone(mrb_state *mrb, mrb_value obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2669,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2670,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2679,1
    - Dst: mrb_obj_dup
      Src: /src/h2o/deps/mruby/src/class.c:2679,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2679,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2683,1
    - Dst: mrb_obj_dup
      Src: /src/h2o/deps/mruby/src/class.c:2683,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2683,1
    - Dst: mt_copy
      Src: /src/h2o/deps/mruby/src/class.c:2687,1
    - Dst: mt_new
      Src: /src/h2o/deps/mruby/src/class.c:2690,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2693,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - dst
    - src
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2666
    functionDepth: 8
    functionLinenumber: 2666
    functionLinenumberEnd: 2694
    functionName: copy_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_dup
    - mrb_class_ptr
    - MRB_INSTANCE_TT
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    - mt_new
    - mt_copy
    linkageType: ''
    returnType: void
    signature: void copy_class(mrb_state *mrb, mrb_value dst, mrb_value src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/class.c:2700,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/class.c:2702,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2703,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2703,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/class.c:2703,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/class.c:2703,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2697
    functionDepth: 7
    functionLinenumber: 2697
    functionLinenumberEnd: 2707
    functionName: mrb_obj_init_copy
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_raise
    - mrb_obj_equal
    - mrb_type
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_init_copy(mrb_state *mrb, mrb_value self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2712,1
    - Dst: copy_class
      Src: /src/h2o/deps/mruby/src/class.c:2714,1
    - Dst: copy_class
      Src: /src/h2o/deps/mruby/src/class.c:2718,1
    - Dst: mrb_iv_copy
      Src: /src/h2o/deps/mruby/src/class.c:2719,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/src/class.c:2720,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2720,1
    - Dst: mrb_iv_copy
      Src: /src/h2o/deps/mruby/src/class.c:2727,1
    - Dst: mrb_istruct_copy
      Src: /src/h2o/deps/mruby/src/class.c:2730,1
    - Dst: mrb_func_basic_p
      Src: /src/h2o/deps/mruby/src/class.c:2736,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2736,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/class.c:2737,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - mrb
    - dest
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2709
    functionDepth: 9
    functionLinenumber: 2709
    functionLinenumberEnd: 2739
    functionName: init_copy
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_func_basic_p
    - mrb_funcall_id
    - mrb_iv_copy
    - mrb_istruct_copy
    - mrb_type
    - copy_class
    - mrb_iv_remove
    linkageType: ''
    returnType: void
    signature: void init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/class.c:2773,1
    - Dst: mrb_sclass_p
      Src: /src/h2o/deps/mruby/src/class.c:2776,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2777,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/class.c:2779,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2779,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/class.c:2779,1
    - Dst: mrb_singleton_class_clone
      Src: /src/h2o/deps/mruby/src/class.c:2780,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/class.c:2781,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2782,1
    - Dst: init_copy
      Src: /src/h2o/deps/mruby/src/class.c:2783,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/class.c:2784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2767
    functionDepth: 10
    functionLinenumber: 2767
    functionLinenumberEnd: 2787
    functionName: mrb_obj_clone
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 2
    functionsReached:
    - mrb_obj_class
    - init_copy
    - mrb_obj_alloc
    - mrb_raise
    - mrb_sclass_p
    - mrb_field_write_barrier
    - mrb_obj_ptr
    - mrb_immediate_p
    - mrb_type
    - mrb_obj_value
    - mrb_singleton_class_clone
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_clone(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/class.c:2814,1
    - Dst: mrb_sclass_p
      Src: /src/h2o/deps/mruby/src/class.c:2817,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/class.c:2818,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/class.c:2820,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/class.c:2820,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/src/class.c:2820,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2821,1
    - Dst: init_copy
      Src: /src/h2o/deps/mruby/src/class.c:2822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2808
    functionDepth: 10
    functionLinenumber: 2808
    functionLinenumberEnd: 2825
    functionName: mrb_obj_dup
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 1
    functionsReached:
    - mrb_obj_class
    - init_copy
    - mrb_obj_alloc
    - mrb_raise
    - mrb_sclass_p
    - mrb_immediate_p
    - mrb_type
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_dup(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/class.c:2835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2836
    functionName: inspect_main
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value inspect_main(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PRESYM_INIT_SYMBOLS
      Src: /src/h2o/deps/mruby/src/class.c:2868,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/src/class.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - cls
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2871
    functionName: init_class_new
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - MRB_PRESYM_INIT_SYMBOLS
    - MRB_METHOD_FROM_PROC
    linkageType: ''
    returnType: void
    signature: void init_class_new(mrb_state *mrb, struct RClass *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boot_defclass
      Src: /src/h2o/deps/mruby/src/class.c:2885,1
    - Dst: boot_defclass
      Src: /src/h2o/deps/mruby/src/class.c:2886,1
    - Dst: boot_defclass
      Src: /src/h2o/deps/mruby/src/class.c:2887,1
    - Dst: boot_defclass
      Src: /src/h2o/deps/mruby/src/class.c:2888,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:2891,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:2892,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:2893,1
    - Dst: make_metaclass
      Src: /src/h2o/deps/mruby/src/class.c:2894,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/class.c:2897,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2897,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2897,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/class.c:2898,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2898,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2898,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/class.c:2899,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2899,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2899,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/src/class.c:2900,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2900,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/class.c:2900,1
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/class.c:2903,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2903,1
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/class.c:2904,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2904,1
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/class.c:2905,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2905,1
    - Dst: mrb_class_name_class
      Src: /src/h2o/deps/mruby/src/class.c:2906,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/class.c:2906,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/class.c:2908,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2909,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2911,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2912,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2912,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2913,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2913,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2914,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2914,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2915,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2915,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2916,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2916,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/src/class.c:2916,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/class.c:2916,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2917,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2917,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2918,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/class.c:2918,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/class.c:2918,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2919,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2919,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/class.c:2921,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/class.c:2921,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/src/class.c:2921,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2922,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2922,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2923,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2923,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2924,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/class.c:2924,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2925,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2925,1
    - Dst: init_class_new
      Src: /src/h2o/deps/mruby/src/class.c:2927,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/class.c:2929,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2930,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2930,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2931,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2931,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2932,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2932,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2933,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2933,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2934,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2934,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2935,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2935,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2936,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2936,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2937,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2937,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2938,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2938,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2939,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2939,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2940,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2940,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2941,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2941,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2942,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2942,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2943,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2943,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2944,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2944,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2945,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2945,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2946,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2946,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2947,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2947,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2948,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2948,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2949,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2949,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2950,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/class.c:2950,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2951,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/class.c:2951,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2952,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2952,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2953,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2953,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2954,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2954,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2955,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2955,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2956,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2956,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2957,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/class.c:2957,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2958,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2958,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2959,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2959,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/class.c:2960,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/class.c:2960,1
    - Dst: mrb_undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2962,1
    - Dst: mrb_undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2963,1
    - Dst: mrb_undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2964,1
    - Dst: mrb_undef_method
      Src: /src/h2o/deps/mruby/src/class.c:2965,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/class.c:2967,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby/src/class.c:2968,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2968,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby/src/class.c:2969,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/class.c:2969,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby/src/class.c:2970,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/class.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2876
    functionDepth: 12
    functionLinenumber: 2876
    functionLinenumberEnd: 2971
    functionName: mrb_init_class
    functionSourceFile: /src/h2o/deps/mruby/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_REST
    - boot_defclass
    - mrb_class_name_class
    - MRB_OBJ_ALLOC
    - MRB_ARGS_ARG
    - make_metaclass
    - mrb_define_class_method
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    - MRB_SYM
    - mrb_define_const_id
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - mrb_undef_method
    - MRB_ARGS_ANY
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - init_class_new
    - mrb_define_singleton_method
    linkageType: ''
    returnType: void
    signature: void mrb_init_class(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: mrb_malloc_simple
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_malloc_simple(m,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: mrb_free
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_free(m,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ALIGN_PADDING
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_PADDING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: ALIGN_PADDING
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_PADDING(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/src/pool.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: mrb_pool_open
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - mrb_malloc_simple
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_pool_open(mrb_state *mrb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/pool.c:86,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/pool.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pool
    argTypes:
    - mrb_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: mrb_pool_close
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_pool_close(mrb_pool *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/src/pool.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - mrb_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: page_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - mrb_malloc_simple
    linkageType: ''
    returnType: struct mrb_pool_page
    signature: 'struct mrb_pool_page *

      page_alloc(mrb_pool *pool, size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_PADDING
      Src: /src/h2o/deps/mruby/src/pool.c:114,1
    - Dst: page_alloc
      Src: /src/h2o/deps/mruby/src/pool.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - mrb_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: mrb_pool_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - ALIGN_PADDING
    - page_alloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_pool_alloc(mrb_pool *pool, size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_PADDING
      Src: /src/h2o/deps/mruby/src/pool.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pool
    - p
    - len
    argTypes:
    - mrb_pool*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: mrb_pool_can_realloc
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - ALIGN_PADDING
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_pool_can_realloc(mrb_pool *pool, void *p, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_PADDING
      Src: /src/h2o/deps/mruby/src/pool.c:163,1
    - Dst: ALIGN_PADDING
      Src: /src/h2o/deps/mruby/src/pool.c:164,1
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/src/pool.c:181,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/src/pool.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - pool
    - p
    - oldlen
    - newlen
    argTypes:
    - mrb_pool*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 187
    functionName: mrb_pool_realloc
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_pool_alloc
    - ALIGN_PADDING
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_pool_realloc(mrb_pool *pool, void *p, size_t oldlen, size_t newlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_open
      Src: /src/h2o/deps/mruby/src/pool.c:197,1
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/src/pool.c:198,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/src/pool.c:200,1
    - Dst: mrb_pool_can_realloc
      Src: /src/h2o/deps/mruby/src/pool.c:200,1
    - Dst: mrb_pool_realloc
      Src: /src/h2o/deps/mruby/src/pool.c:201,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/src/pool.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/src/pool.c
    functionUses: 0
    functionsReached:
    - mrb_pool_can_realloc
    - mrb_pool_close
    - mrb_pool_open
    - mrb_pool_realloc
    - printf
    - mrb_pool_alloc
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readint.c:18,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/src/readint.c:20,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/src/readint.c:21,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - p
    - e
    - endp
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 30
    functionName: mrb_int_read
    functionSourceFile: /src/h2o/deps/mruby/src/readint.c
    functionUses: 0
    functionsReached:
    - ISDIGIT
    - mrb_int_mul_overflow
    - mrb_int_add_overflow
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_int_read(const char *p, const char *e, char **endp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/backtrace.c:47,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/src/backtrace.c:62,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/src/backtrace.c:70,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/src/backtrace.c:83,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/src/backtrace.c:88,1
    - Dst: func
      Src: /src/h2o/deps/mruby/src/backtrace.c:93,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 4
    argNames:
    - mrb
    - ciidx
    - func
    - data
    argTypes:
    - mrb_state*
    - ptrdiff_t
    - each_backtrace_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 95
    functionName: each_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached:
    - func
    - MRB_PROC_CFUNC_P
    - mrb_debug_get_line
    - mrb_debug_get_filename
    linkageType: ''
    returnType: void
    signature: void each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func
      func, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/backtrace.c:103,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/backtrace.c:108,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/backtrace.c:110,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/backtrace.c:111,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/backtrace.c:112,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/backtrace.c:113,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/backtrace.c:113,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/backtrace.c:116,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/src/backtrace.c:117,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/backtrace.c:117,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/backtrace.c:117,1
    - Dst: mrb_exc_inspect
      Src: /src/h2o/deps/mruby/src/backtrace.c:120,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:120,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/src/backtrace.c:121,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/backtrace.c:121,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/backtrace.c:121,1
    - Dst: fputc
      Src: /src/h2o/deps/mruby/src/backtrace.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - exc
    - backtrace
    argTypes:
    - mrb_state*
    - struct RObject*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: print_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 2
    functionsReached:
    - fwrite
    - RSTRING_PTR
    - mrb_obj_value
    - fputc
    - RSTRING_LEN
    - ARY_LEN
    - fprintf
    - ARY_PTR
    - mrb_exc_inspect
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void print_backtrace(mrb_state *mrb, struct RObject *exc, struct RArray
      *backtrace)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_unpack_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:139,1
    - Dst: print_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: mrb_print_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 2
    functionsReached:
    - mrb_unpack_backtrace
    - print_backtrace
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_print_backtrace(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: mrb_print_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_print_backtrace(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - loc
    - data
    argTypes:
    - mrb_state*
    - struct backtrace_location*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: count_backtrace_i
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void count_backtrace_i(mrb_state *mrb,\n                 const struct
      backtrace_location *loc,\n                 void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - loc
    - data
    argTypes:
    - mrb_state*
    - struct backtrace_location*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: pack_backtrace_i
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pack_backtrace_i(mrb_state *mrb,\n                 const struct
      backtrace_location *loc,\n                 void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: each_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:182,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby/src/backtrace.c:184,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/backtrace.c:185,1
    - Dst: each_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 190
    functionName: packed_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached:
    - each_backtrace
    - mrb_malloc
    - mrb_data_object_alloc
    linkageType: ''
    returnType: struct RObject
    signature: 'struct RObject *

      packed_backtrace(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:195,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/src/backtrace.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - exc
    - backtrace
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: store_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached:
    - mrb_field_write_barrier
    - mrb_exc_ptr
    linkageType: ''
    returnType: void
    signature: void store_backtrace(mrb_state *mrb, mrb_value exc, struct RObject
      *backtrace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:205,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/backtrace.c:206,1
    - Dst: packed_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:207,1
    - Dst: store_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:208,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/backtrace.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: mrb_keep_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 1
    functionsReached:
    - mrb_exc_ptr
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - packed_backtrace
    - store_backtrace
    linkageType: ''
    returnType: void
    signature: void mrb_keep_backtrace(mrb_state *mrb, mrb_value exc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:221,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/backtrace.c:221,1
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:224,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:224,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:228,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/backtrace.c:228,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/src/backtrace.c:229,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/backtrace.c:235,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/src/backtrace.c:238,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/src/backtrace.c:241,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/src/backtrace.c:242,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/src/backtrace.c:242,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/backtrace.c:244,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:244,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/src/backtrace.c:245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - mrb
    - backtrace
    argTypes:
    - mrb_state*
    - struct RObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 212
    functionDepth: 12
    functionLinenumber: 212
    functionLinenumberEnd: 249
    functionName: mrb_unpack_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 1
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_ary_push
    - mrb_gc_arena_save
    - mrb_obj_ptr
    - mrb_str_cat_cstr
    - mrb_str_cat_lit
    - mrb_ary_new_capa
    - mrb_format
    - mrb_obj_value
    - mrb_sym_name
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: struct RObject
    signature: 'struct RObject *

      mrb_unpack_backtrace(mrb_state *mrb, struct RObject *backtrace)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/src/backtrace.c:254,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:256,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:259,1
    - Dst: mrb_unpack_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:262,1
    - Dst: store_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:263,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - exc
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 13
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: mrb_exc_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached:
    - mrb_unpack_backtrace
    - store_backtrace
    - mrb_obj_value
    - mrb_nil_value
    - mrb_exc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exc_backtrace(mrb_state *mrb, mrb_value exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/backtrace.c:270,1
    - Dst: mrb_unpack_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:270,1
    - Dst: packed_backtrace
      Src: /src/h2o/deps/mruby/src/backtrace.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 13
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: mrb_get_backtrace
    functionSourceFile: /src/h2o/deps/mruby/src/backtrace.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_unpack_backtrace
    - packed_backtrace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_get_backtrace(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_init_symtbl
      Src: /src/h2o/deps/mruby/src/init.c:32,1
    - Dst: mrb_init_class
      Src: /src/h2o/deps/mruby/src/init.c:34,1
    - Dst: mrb_init_object
      Src: /src/h2o/deps/mruby/src/init.c:35,1
    - Dst: mrb_init_kernel
      Src: /src/h2o/deps/mruby/src/init.c:36,1
    - Dst: mrb_init_comparable
      Src: /src/h2o/deps/mruby/src/init.c:37,1
    - Dst: mrb_init_enumerable
      Src: /src/h2o/deps/mruby/src/init.c:38,1
    - Dst: mrb_init_symbol
      Src: /src/h2o/deps/mruby/src/init.c:40,1
    - Dst: mrb_init_string
      Src: /src/h2o/deps/mruby/src/init.c:41,1
    - Dst: mrb_init_exception
      Src: /src/h2o/deps/mruby/src/init.c:42,1
    - Dst: mrb_init_proc
      Src: /src/h2o/deps/mruby/src/init.c:43,1
    - Dst: mrb_init_array
      Src: /src/h2o/deps/mruby/src/init.c:44,1
    - Dst: mrb_init_hash
      Src: /src/h2o/deps/mruby/src/init.c:45,1
    - Dst: mrb_init_numeric
      Src: /src/h2o/deps/mruby/src/init.c:46,1
    - Dst: mrb_init_range
      Src: /src/h2o/deps/mruby/src/init.c:47,1
    - Dst: mrb_init_gc
      Src: /src/h2o/deps/mruby/src/init.c:48,1
    - Dst: mrb_init_version
      Src: /src/h2o/deps/mruby/src/init.c:49,1
    - Dst: mrb_init_mrblib
      Src: /src/h2o/deps/mruby/src/init.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 13
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: mrb_init_core
    functionSourceFile: /src/h2o/deps/mruby/src/init.c
    functionUses: 1
    functionsReached:
    - mrb_init_kernel
    - mrb_init_symtbl
    - mrb_init_gc
    - mrb_init_proc
    - mrb_init_hash
    - mrb_init_range
    - mrb_init_enumerable
    - mrb_init_comparable
    - mrb_init_object
    - mrb_init_symbol
    - mrb_init_array
    - mrb_init_exception
    - mrb_init_string
    - mrb_init_numeric
    - mrb_init_version
    - mrb_init_class
    - mrb_init_mrblib
    linkageType: ''
    returnType: void
    signature: void mrb_init_core(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/etc.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - klass
    - ptr
    - type
    argTypes:
    - mrb_state*
    - struct RClass*
    - void*
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: mrb_data_object_alloc
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 2
    functionsReached:
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_data_object_alloc(mrb_state *mrb, struct RClass *klass, void *ptr, const
      mrb_data_type *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_p
      Src: /src/h2o/deps/mruby/src/etc.c:28,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/src/etc.c:29,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/src/etc.c:31,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/src/etc.c:32,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/etc.c:35,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/etc.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - obj
    - type
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: mrb_data_check_type
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_check_type
    - mrb_data_p
    - DATA_TYPE
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_data_check_type(mrb_state *mrb, mrb_value obj, const mrb_data_type
      *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_p
      Src: /src/h2o/deps/mruby/src/etc.c:48,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/src/etc.c:51,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/src/etc.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - obj
    - type
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: mrb_data_check_get_ptr
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 1
    functionsReached:
    - mrb_data_p
    - DATA_TYPE
    - DATA_PTR
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_data_check_get_ptr(mrb_state *mrb, mrb_value obj, const mrb_data_type *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_type
      Src: /src/h2o/deps/mruby/src/etc.c:60,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/src/etc.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - obj
    - type
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: mrb_data_get_ptr
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 1
    functionsReached:
    - DATA_PTR
    - mrb_data_check_type
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_data_get_ptr(mrb_state *mrb, mrb_value obj, const mrb_data_type *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/src/etc.c:67,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/etc.c:67,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/etc.c:68,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/src/etc.c:68,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/etc.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: mrb_obj_to_sym
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 1
    functionsReached:
    - mrb_intern_str
    - mrb_symbol_p
    - mrb_raisef
    - mrb_symbol
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_to_sym(mrb_state *mrb, mrb_value name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: make_num_id
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int make_num_id(const char *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_num_id
      Src: /src/h2o/deps/mruby/src/etc.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: mrb_int_id
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - make_num_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_int_id(mrb_int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_num_id
      Src: /src/h2o/deps/mruby/src/etc.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: mrb_float_id
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - make_num_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_float_id(mrb_float f)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/etc.c:114,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/etc.c:115,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/etc.c:115,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/src/etc.c:117,1
    - Dst: mrb_float_id
      Src: /src/h2o/deps/mruby/src/etc.c:118,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/etc.c:118,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/etc.c:127,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:132,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/etc.c:134,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:135,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:137,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:139,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:141,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/src/etc.c:141,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:143,1
    - Dst: mrb_int_id
      Src: /src/h2o/deps/mruby/src/etc.c:143,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/etc.c:143,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:146,1
    - Dst: mrb_float_id
      Src: /src/h2o/deps/mruby/src/etc.c:146,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/etc.c:146,1
    - Dst: MakeID
      Src: /src/h2o/deps/mruby/src/etc.c:162,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/src/etc.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - obj
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 165
    functionName: mrb_obj_id
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 3
    functionsReached:
    - mrb_integer
    - mrb_float_id
    - MakeID
    - mrb_ptr
    - mrb_float_p
    - mrb_immediate_p
    - mrb_int_id
    - mrb_integer_p
    - mrb_type
    - mrb_nil_p
    - mrb_symbol
    - mrb_float
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_obj_id(mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: MakeID
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MakeID(p,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/etc.c:175,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/etc.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - f
    argTypes:
    - mrb_state*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 7
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: mrb_word_boxing_float_value
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - MRB_SET_FROZEN_FLAG
    - mrb_obj_alloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_word_boxing_float_value(mrb_state *mrb, mrb_float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: mrb_word_boxing_value_float
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_word_boxing_value_float(mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/etc.c:209,1
    - Dst: SET_OBJ_VALUE
      Src: /src/h2o/deps/mruby/src/etc.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: mrb_word_boxing_cptr_value
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - SET_OBJ_VALUE
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_word_boxing_cptr_value(mrb_state *mrb, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FIXABLE
      Src: /src/h2o/deps/mruby/src/etc.c:221,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/etc.c:221,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/src/etc.c:226,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/src/etc.c:228,1
    - Dst: SET_OBJ_VALUE
      Src: /src/h2o/deps/mruby/src/etc.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - n
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 7
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: mrb_boxing_int_value
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - FIXABLE
    - SET_OBJ_VALUE
    - mrb_obj_alloc
    - mrb_fixnum_value
    - MRB_SET_FROZEN_FLAG
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_boxing_int_value(mrb_state *mrb, mrb_int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - va_list*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: mrb_msvc_va_copy
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_msvc_va_copy(va_list *dest, va_list src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: va_copy
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dest, src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/h2o/deps/mruby/src/etc.c:251,1
    - Dst: _vsnprintf_s
      Src: /src/h2o/deps/mruby/src/etc.c:252,1
    - Dst: _vscprintf
      Src: /src/h2o/deps/mruby/src/etc.c:253,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/etc.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - s
    - n
    - format
    - arg
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: mrb_msvc_vsnprintf
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - _vsnprintf_s
    - va_copy
    - va_end
    - _vscprintf
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_msvc_vsnprintf(char *s, size_t n, const char *format, va_list
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/mruby/src/etc.c:264,1
    - Dst: mrb_msvc_vsnprintf
      Src: /src/h2o/deps/mruby/src/etc.c:265,1
    - Dst: va_end
      Src: /src/h2o/deps/mruby/src/etc.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - s
    - n
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: mrb_msvc_snprintf
    functionSourceFile: /src/h2o/deps/mruby/src/etc.c
    functionUses: 0
    functionsReached:
    - va_end
    - mrb_msvc_vsnprintf
    - va_start
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_msvc_snprintf(char *s, size_t n, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: ary_too_big
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void ary_too_big(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ary_too_big
      Src: /src/h2o/deps/mruby/src/array.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: ary_check_too_big
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ary_too_big
    linkageType: ''
    returnType: void
    signature: void ary_check_too_big(mrb_state *mrb, mrb_int a, mrb_int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ary_check_too_big
      Src: /src/h2o/deps/mruby/src/array.c:41,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/array.c:44,1
    - Dst: ARY_SET_EMBED_LEN
      Src: /src/h2o/deps/mruby/src/array.c:46,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/array.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - capa
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: ary_new_capa
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 12
    functionsReached:
    - MRB_OBJ_ALLOC
    - ARY_SET_EMBED_LEN
    - mrb_malloc
    - ary_check_too_big
    linkageType: ''
    returnType: struct RArray
    signature: 'struct RArray *

      ary_new_capa(mrb_state *mrb, mrb_int capa)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:60,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - capa
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: mrb_ary_new_capa
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 12
    functionsReached:
    - ary_new_capa
    - mrb_obj_value
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_new_capa(mrb_state *mrb, mrb_int capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: mrb_ary_new
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 11
    functionsReached:
    - mrb_ary_new_capa
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_new(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - mrb_value*
    - mrb_value*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: array_copy
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void array_copy(mrb_value *dst, const mrb_value *src, mrb_int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:96,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:98,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:98,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - size
    - vals
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: ary_new_from_values
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 13
    functionsReached:
    - ary_new_capa
    - array_copy
    - ARY_SET_LEN
    - ARY_PTR
    linkageType: ''
    returnType: struct RArray
    signature: 'struct RArray *

      ary_new_from_values(mrb_state *mrb, mrb_int size, const mrb_value *vals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:107,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - size
    - vals
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 8
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: mrb_ary_new_from_values
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 13
    functionsReached:
    - mrb_obj_value
    - ary_new_from_values
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_new_from_values(mrb_state *mrb, mrb_int size, const
      mrb_value *vals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:117,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:118,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:121,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - car
    - cdr
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: mrb_assoc_new
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 3
    functionsReached:
    - ary_new_capa
    - mrb_obj_value
    - ARY_SET_LEN
    - ARY_PTR
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_assoc_new(mrb_state *mrb, mrb_value car, mrb_value cdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - mrb_value*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: ary_fill_with_nil
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void ary_fill_with_nil(mrb_value *ptr, mrb_int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/src/array.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: ary_modify_check
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_check_frozen
    linkageType: ''
    returnType: void
    signature: void ary_modify_check(mrb_state *mrb, struct RArray *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:144,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:146,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/array.c:152,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/array.c:160,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:162,1
    - Dst: mrb_ary_decref
      Src: /src/h2o/deps/mruby/src/array.c:166,1
    - Dst: ARY_UNSET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: ary_modify
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ary_modify_check
    - mrb_free
    - mrb_ary_decref
    - ARY_UNSET_SHARED_FLAG
    - array_copy
    - ARY_SHARED_P
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void ary_modify(mrb_state *mrb, struct RArray *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/array.c:175,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mrb_ary_modify
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ary_modify
    - mrb_write_barrier
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_modify(mrb_state *mrb, struct RArray* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:182,1
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/array.c:182,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/array.c:183,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/array.c:189,1
    - Dst: ARY_SET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: ary_make_shared
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_EMBED_P
    - mrb_realloc
    - ARY_SET_SHARED_FLAG
    - ARY_SHARED_P
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void ary_make_shared(mrb_state *mrb, struct RArray *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:203,1
    - Dst: ary_check_too_big
      Src: /src/h2o/deps/mruby/src/array.c:205,1
    - Dst: ary_too_big
      Src: /src/h2o/deps/mruby/src/array.c:218,1
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/array.c:221,1
    - Dst: ARY_EMBED_PTR
      Src: /src/h2o/deps/mruby/src/array.c:222,1
    - Dst: ARY_EMBED_LEN
      Src: /src/h2o/deps/mruby/src/array.c:223,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/src/array.c:224,1
    - Dst: ARY_UNSET_EMBED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:226,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:227,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/array.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - mrb
    - a
    - len
    argTypes:
    - mrb_state*
    - struct RArray*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 238
    functionName: ary_expand_capa
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_EMBED_P
    - ARY_CAPA
    - ARY_EMBED_PTR
    - mrb_realloc
    - ARY_UNSET_EMBED_FLAG
    - array_copy
    - ARY_EMBED_LEN
    - mrb_malloc
    - ary_too_big
    - ary_check_too_big
    linkageType: ''
    returnType: void
    signature: void ary_expand_capa(mrb_state *mrb, struct RArray *a, mrb_int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/array.c:246,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/src/array.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: ary_shrink_capa
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_EMBED_P
    - mrb_realloc
    linkageType: ''
    returnType: void
    signature: void ary_shrink_capa(mrb_state *mrb, struct RArray *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:270,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:272,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:273,1
    - Dst: ary_shrink_capa
      Src: /src/h2o/deps/mruby/src/array.c:276,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:279,1
    - Dst: ary_fill_with_nil
      Src: /src/h2o/deps/mruby/src/array.c:280,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:280,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - mrb
    - ary
    - new_len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 286
    functionName: mrb_ary_resize
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ary_fill_with_nil
    - ary_shrink_capa
    - mrb_ary_ptr
    - ary_expand_capa
    - RARRAY_LEN
    - ARY_PTR
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_resize(mrb_state *mrb, mrb_value ary, mrb_int new_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:296,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:297,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:298,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/src/array.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 288
    functionDepth: 9
    functionLinenumber: 288
    functionLinenumberEnd: 302
    functionName: mrb_ary_s_create
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_ptr
    - mrb_get_args
    - mrb_class_ptr
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_s_create(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:311,1
    - Dst: ary_replace
      Src: /src/h2o/deps/mruby/src/array.c:312,1
    - Dst: ary_check_too_big
      Src: /src/h2o/deps/mruby/src/array.c:315,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:315,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:315,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:316,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:316,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:318,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:319,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:320,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:322,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:322,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:322,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:322,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:322,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/array.c:323,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - a
    - a2
    argTypes:
    - mrb_state*
    - struct RArray*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 325
    functionName: ary_concat
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ARY_CAPA
    - ARY_LEN
    - array_copy
    - ary_replace
    - ary_expand_capa
    - mrb_write_barrier
    - ARY_PTR
    - ary_modify
    - ARY_SET_LEN
    - ary_check_too_big
    linkageType: ''
    returnType: void
    signature: void ary_concat(mrb_state *mrb, struct RArray *a, struct RArray *a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:330,1
    - Dst: ary_concat
      Src: /src/h2o/deps/mruby/src/array.c:332,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - self
    - other
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 8
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: mrb_ary_concat
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - mrb_ary_ptr
    - ary_concat
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_concat(mrb_state *mrb, mrb_value self, mrb_value other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:340,1
    - Dst: mrb_ary_concat
      Src: /src/h2o/deps/mruby/src/array.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 9
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: mrb_ary_concat_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_concat
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_concat_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:348,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:353,1
    - Dst: ary_check_too_big
      Src: /src/h2o/deps/mruby/src/array.c:354,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:354,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:355,1
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:356,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:357,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:357,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:357,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:358,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:358,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:359,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 9
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: mrb_ary_plus
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_ptr
    - mrb_get_args
    - mrb_obj_value
    - ARY_LEN
    - array_copy
    - ARY_PTR
    - ary_new_capa
    - ARY_SET_LEN
    - ary_check_too_big
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_plus(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:369,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:371,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:373,1
    - Dst: mrb_ary_decref
      Src: /src/h2o/deps/mruby/src/array.c:374,1
    - Dst: ARY_UNSET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:378,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:380,1
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/array.c:382,1
    - Dst: ARY_UNSET_EMBED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:383,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/array.c:386,1
    - Dst: ARY_SET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:392,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/array.c:393,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/src/array.c:396,1
    - Dst: ary_make_shared
      Src: /src/h2o/deps/mruby/src/array.c:397,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:400,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:401,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:402,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:402,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:402,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/array.c:403,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - mrb
    - a
    - b
    argTypes:
    - mrb_state*
    - struct RArray*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 7
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: ary_replace
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ARY_EMBED_P
    - ARY_CAPA
    - ary_modify_check
    - ary_make_shared
    - mrb_free
    - mrb_ary_decref
    - ARY_UNSET_SHARED_FLAG
    - ARY_LEN
    - mrb_frozen_p
    - array_copy
    - ary_expand_capa
    - mrb_write_barrier
    - ARY_SET_SHARED_FLAG
    - ARY_PTR
    - ARY_SHARED_P
    - ARY_SET_LEN
    - ARY_UNSET_EMBED_FLAG
    linkageType: ''
    returnType: void
    signature: void ary_replace(mrb_state *mrb, struct RArray *a, struct RArray *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:410,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:411,1
    - Dst: ary_replace
      Src: /src/h2o/deps/mruby/src/array.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - self
    - other
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 8
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: mrb_ary_replace
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_ptr
    - ary_replace
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_replace(mrb_state *mrb, mrb_value self, mrb_value other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:423,1
    - Dst: mrb_ary_replace
      Src: /src/h2o/deps/mruby/src/array.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 9
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: mrb_ary_replace_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_ary_replace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_replace_m(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:432,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:437,1
    - Dst: mrb_check_string_type
      Src: /src/h2o/deps/mruby/src/array.c:438,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:439,1
    - Dst: mrb_ary_join
      Src: /src/h2o/deps/mruby/src/array.c:440,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:443,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:445,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/array.c:447,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:448,1
    - Dst: ary_too_big
      Src: /src/h2o/deps/mruby/src/array.c:449,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:451,1
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:452,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:453,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:454,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:456,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:456,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 429
    functionDepth: 9
    functionLinenumber: 429
    functionLinenumberEnd: 461
    functionName: mrb_ary_times
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_raise
    - mrb_ary_ptr
    - mrb_get_args
    - mrb_obj_value
    - mrb_ary_join
    - ARY_LEN
    - mrb_check_string_type
    - array_copy
    - ARY_PTR
    - mrb_nil_p
    - ARY_SET_LEN
    - ary_too_big
    - ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_times(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:466,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:467,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:472,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 483
    functionName: mrb_ary_reverse_bang
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_PTR
    - mrb_ary_ptr
    - ary_modify
    - ARY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_reverse_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:488,1
    - Dst: ary_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:488,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:488,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:489,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:494,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:496,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:500,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 503
    functionName: mrb_ary_reverse
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_ptr
    - mrb_obj_value
    - ARY_LEN
    - ARY_PTR
    - ary_new_capa
    - ARY_SET_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_reverse(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:508,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:509,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:511,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:512,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:513,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:514,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:515,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/array.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - ary
    - elem
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 505
    functionDepth: 7
    functionLinenumber: 505
    functionLinenumberEnd: 517
    functionName: mrb_ary_push
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 20
    functionsReached:
    - ARY_CAPA
    - mrb_ary_ptr
    - mrb_field_write_barrier_value
    - ARY_LEN
    - ary_expand_capa
    - ARY_PTR
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_push(mrb_state *mrb, mrb_value ary, mrb_value elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/src/array.c:527,1
    - Dst: mrb_get_argv
      Src: /src/h2o/deps/mruby/src/array.c:528,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:529,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:530,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:531,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:533,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:534,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:536,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:536,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:537,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/array.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 519
    functionDepth: 7
    functionLinenumber: 519
    functionLinenumberEnd: 543
    functionName: mrb_ary_push_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_CAPA
    - mrb_ary_ptr
    - mrb_field_write_barrier_value
    - ARY_LEN
    - array_copy
    - ary_expand_capa
    - ARY_PTR
    - mrb_get_argc
    - mrb_get_argv
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_push_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:548,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:549,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:551,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:552,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:553,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 555
    functionName: mrb_ary_pop
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 2
    functionsReached:
    - ary_modify_check
    - mrb_ary_ptr
    - ARY_LEN
    - ARY_PTR
    - mrb_nil_value
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_pop(mrb_state *mrb, mrb_value ary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:562,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:563,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:566,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:567,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:568,1
    - Dst: ary_make_shared
      Src: /src/h2o/deps/mruby/src/array.c:576,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:580,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 591
    functionName: mrb_ary_shift
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ary_modify_check
    - ary_make_shared
    - mrb_ary_ptr
    - ARY_LEN
    - ARY_PTR
    - mrb_nil_value
    - ARY_SHARED_P
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_shift(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:598,1
    - Dst: mrb_ary_shift
      Src: /src/h2o/deps/mruby/src/array.c:599,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:602,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:603,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:606,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/array.c:607,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:608,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:610,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:610,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:611,1
    - Dst: ary_make_shared
      Src: /src/h2o/deps/mruby/src/array.c:618,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:622,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:625,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 593
    functionDepth: 9
    functionLinenumber: 593
    functionLinenumberEnd: 635
    functionName: mrb_ary_shift_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_shift
    - mrb_ary_new
    - ary_modify_check
    - mrb_ary_new_from_values
    - mrb_raise
    - ary_make_shared
    - mrb_ary_ptr
    - mrb_get_args
    - ARY_LEN
    - ARY_PTR
    - ARY_SHARED_P
    - ARY_SET_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_shift_m(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:644,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:645,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:647,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:656,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:657,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:658,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:659,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/array.c:660,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:663,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/array.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - self
    - item
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 641
    functionDepth: 7
    functionLinenumber: 641
    functionLinenumberEnd: 667
    functionName: mrb_ary_unshift
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ARY_CAPA
    - mrb_ary_ptr
    - mrb_field_write_barrier_value
    - value_move
    - ARY_LEN
    - ary_expand_capa
    - ARY_PTR
    - ARY_SHARED_P
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_unshift(mrb_state *mrb, mrb_value self, mrb_value item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:672,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:677,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:679,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:682,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:684,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:686,1
    - Dst: ary_modify_check
      Src: /src/h2o/deps/mruby/src/array.c:689,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:694,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:695,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:696,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:697,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:698,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/array.c:699,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:702,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:703,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/array.c:705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 669
    functionDepth: 9
    functionLinenumber: 669
    functionLinenumberEnd: 709
    functionName: mrb_ary_unshift_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_CAPA
    - ary_modify_check
    - mrb_raise
    - mrb_ary_ptr
    - mrb_get_args
    - value_move
    - mrb_field_write_barrier_value
    - ARY_LEN
    - array_copy
    - ary_expand_capa
    - ARY_PTR
    - ARY_SHARED_P
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_unshift_m(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:714,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:715,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:717,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/array.c:722,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:726,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:729,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:730,1
    - Dst: ary_fill_with_nil
      Src: /src/h2o/deps/mruby/src/array.c:731,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:731,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:732,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:735,1
    - Dst: mrb_field_write_barrier_value
      Src: /src/h2o/deps/mruby/src/array.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - mrb
    - ary
    - n
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 711
    functionDepth: 7
    functionLinenumber: 711
    functionLinenumberEnd: 737
    functionName: mrb_ary_set
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - ary_fill_with_nil
    - ARY_CAPA
    - mrb_raise
    - mrb_ary_ptr
    - mrb_field_write_barrier_value
    - ARY_LEN
    - ary_expand_capa
    - ARY_PTR
    - mrb_raisef
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:742,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:742,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - a
    argTypes:
    - mrb_state*
    - struct RArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 8
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: ary_dup
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_PTR
    - ary_new_from_values
    - ARY_LEN
    linkageType: ''
    returnType: struct RArray
    signature: 'struct RArray *

      ary_dup(mrb_state *mrb, struct RArray *a)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:748,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:749,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:754,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/array.c:757,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/array.c:766,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/array.c:775,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:776,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:777,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:778,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:782,1
    - Dst: ary_dup
      Src: /src/h2o/deps/mruby/src/array.c:784,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:785,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/src/array.c:788,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:799,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:800,1
    - Dst: ary_fill_with_nil
      Src: /src/h2o/deps/mruby/src/array.c:802,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:802,1
    - Dst: array_copy
      Src: /src/h2o/deps/mruby/src/array.c:804,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:804,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:806,1
    - Dst: ARY_CAPA
      Src: /src/h2o/deps/mruby/src/array.c:816,1
    - Dst: ary_expand_capa
      Src: /src/h2o/deps/mruby/src/array.c:817,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:821,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/array.c:822,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:823,1
    - Dst: value_move
      Src: /src/h2o/deps/mruby/src/array.c:826,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:826,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/src/array.c:829,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 5
    argNames:
    - mrb
    - ary
    - head
    - len
    - rpl
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 745
    functionDepth: 9
    functionLinenumber: 745
    functionLinenumberEnd: 831
    functionName: mrb_ary_splice
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - ary_fill_with_nil
    - mrb_array_p
    - ARY_CAPA
    - mrb_raise
    - mrb_ary_ptr
    - value_move
    - ARY_LEN
    - ARY_PTR
    - ary_dup
    - array_copy
    - ary_expand_capa
    - mrb_write_barrier
    - RARRAY_LEN
    - mrb_raisef
    - mrb_undef_p
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_splice(mrb_state *mrb, mrb_value ary, mrb_int head,
      mrb_int len, mrb_value rpl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/array.c:838,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/array.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - shared
    argTypes:
    - mrb_state*
    - mrb_shared_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 841
    functionName: mrb_ary_decref
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 3
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_ary_decref(mrb_state *mrb, mrb_shared_array *shared)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:848,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:849,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:849,1
    - Dst: ary_make_shared
      Src: /src/h2o/deps/mruby/src/array.c:851,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/src/array.c:852,1
    - Dst: ARY_SET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:857,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - a
    - beg
    - len
    argTypes:
    - mrb_state*
    - struct RArray*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 843
    functionDepth: 9
    functionLinenumber: 843
    functionLinenumberEnd: 860
    functionName: ary_subseq
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_ary_new_from_values
    - ary_make_shared
    - mrb_obj_value
    - ARY_SET_SHARED_FLAG
    - ARY_PTR
    - ARY_SHARED_P
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value ary_subseq(mrb_state *mrb, struct RArray *a, mrb_int beg,
      mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:865,1
    - Dst: ary_subseq
      Src: /src/h2o/deps/mruby/src/array.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - ary
    - beg
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 10
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: mrb_ary_subseq
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - mrb_ary_ptr
    - ary_subseq
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_subseq(mrb_state *mrb, mrb_value ary, mrb_int beg,
      mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/src/array.c:872,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/array.c:873,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/array.c:877,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - index
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 869
    functionDepth: 9
    functionLinenumber: 869
    functionLinenumberEnd: 886
    functionName: aget_index
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_float
    - mrb_integer
    - mrb_integer_p
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int aget_index(mrb_state *mrb, mrb_value index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/src/array.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 878
    functionName: if
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 2
    functionsReached:
    - mrb_float
    linkageType: ''
    returnType: else
    signature: else if (mrb_float_p(index))
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:919,1
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/src/array.c:924,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/array.c:925,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/array.c:926,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/src/array.c:929,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:929,1
    - Dst: ary_subseq
      Src: /src/h2o/deps/mruby/src/array.c:930,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:933,1
    - Dst: mrb_ary_ref
      Src: /src/h2o/deps/mruby/src/array.c:936,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/src/array.c:936,1
    - Dst: mrb_ary_ref
      Src: /src/h2o/deps/mruby/src/array.c:938,1
    - Dst: aget_index
      Src: /src/h2o/deps/mruby/src/array.c:938,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:942,1
    - Dst: aget_index
      Src: /src/h2o/deps/mruby/src/array.c:943,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:944,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:946,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:947,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/array.c:948,1
    - Dst: ary_subseq
      Src: /src/h2o/deps/mruby/src/array.c:951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 916
    functionDepth: 10
    functionLinenumber: 916
    functionLinenumberEnd: 952
    functionName: mrb_ary_aget
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_get_arg1
    - mrb_ary_ref
    - mrb_integer
    - mrb_ary_ptr
    - mrb_range_beg_len
    - aget_index
    - mrb_get_args
    - ARY_LEN
    - mrb_type
    - ary_subseq
    - mrb_get_argc
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_aget(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:995,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:995,1
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/src/array.c:996,1
    - Dst: mrb_get_argv
      Src: /src/h2o/deps/mruby/src/array.c:997,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/src/array.c:1001,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1001,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/src/array.c:1003,1
    - Dst: aget_index
      Src: /src/h2o/deps/mruby/src/array.c:1003,1
    - Dst: mrb_ary_splice
      Src: /src/h2o/deps/mruby/src/array.c:1006,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/src/array.c:1009,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:1015,1
    - Dst: mrb_ary_splice
      Src: /src/h2o/deps/mruby/src/array.c:1017,1
    - Dst: aget_index
      Src: /src/h2o/deps/mruby/src/array.c:1017,1
    - Dst: aget_index
      Src: /src/h2o/deps/mruby/src/array.c:1017,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 989
    functionDepth: 10
    functionLinenumber: 989
    functionLinenumberEnd: 1019
    functionName: mrb_ary_aset
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_set
    - mrb_ary_ptr
    - mrb_range_beg_len
    - aget_index
    - mrb_get_args
    - mrb_raisef
    - mrb_ary_splice
    - RARRAY_LEN
    - mrb_get_argc
    - mrb_get_argv
    - ary_modify
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_aset(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1024,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:1030,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1031,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1033,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:1035,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1036,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1045,1
    - Dst: ary_shrink_capa
      Src: /src/h2o/deps/mruby/src/array.c:1047,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1021
    functionDepth: 9
    functionLinenumber: 1021
    functionLinenumberEnd: 1050
    functionName: mrb_ary_delete_at
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ary_shrink_capa
    - mrb_ary_ptr
    - mrb_get_args
    - ARY_LEN
    - ARY_PTR
    - mrb_nil_value
    - ary_modify
    - ARY_SET_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_delete_at(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1055,1
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/src/array.c:1058,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1059,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1059,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1059,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:1061,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:1063,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1066,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:1068,1
    - Dst: ary_subseq
      Src: /src/h2o/deps/mruby/src/array.c:1069,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:1071,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1052
    functionDepth: 10
    functionLinenumber: 1052
    functionLinenumberEnd: 1072
    functionName: mrb_ary_first
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new_from_values
    - mrb_raise
    - ary_subseq
    - mrb_ary_ptr
    - mrb_get_args
    - ARY_LEN
    - ARY_PTR
    - mrb_get_argc
    - ARY_SHARED_P
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_first(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1077,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:1080,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1081,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1083,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1083,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:1087,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:1090,1
    - Dst: ary_subseq
      Src: /src/h2o/deps/mruby/src/array.c:1091,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:1093,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1074
    functionDepth: 10
    functionLinenumber: 1074
    functionLinenumberEnd: 1094
    functionName: mrb_ary_last
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new_from_values
    - mrb_raise
    - mrb_ary_ptr
    - mrb_get_args
    - ARY_LEN
    - ary_subseq
    - ARY_PTR
    - ARY_SHARED_P
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_last(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/array.c:1099,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1102,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/array.c:1103,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1103,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/array.c:1104,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1096
    functionDepth: 7
    functionLinenumber: 1096
    functionLinenumberEnd: 1108
    functionName: mrb_ary_index_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_get_arg1
    - mrb_equal
    - mrb_int_value
    - RARRAY_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_index_m(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/array.c:1113,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1116,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/src/array.c:1117,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1117,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/array.c:1118,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1120,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1110
    functionDepth: 7
    functionLinenumber: 1110
    functionLinenumberEnd: 1125
    functionName: mrb_ary_rindex_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_get_arg1
    - mrb_equal
    - mrb_int_value
    - RARRAY_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_rindex_m(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/array.c:1133,1
    - Dst: ary_dup
      Src: /src/h2o/deps/mruby/src/array.c:1134,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1134,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:1135,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/src/array.c:1138,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/array.c:1138,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:1139,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/src/array.c:1142,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/array.c:1142,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:1143,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/src/array.c:1144,1
    - Dst: mrb_ensure_array_type
      Src: /src/h2o/deps/mruby/src/array.c:1146,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1147,1
    - Dst: ary_dup
      Src: /src/h2o/deps/mruby/src/array.c:1148,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/array.c:1149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1127
    functionDepth: 9
    functionLinenumber: 1127
    functionLinenumberEnd: 1150
    functionName: mrb_ary_splat
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - mrb_array_p
    - mrb_ary_new_from_values
    - mrb_ary_ptr
    - mrb_funcall_id
    - mrb_respond_to
    - ary_dup
    - mrb_obj_value
    - mrb_ensure_array_type
    - mrb_nil_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_splat(mrb_state *mrb, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1155,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/src/array.c:1157,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: mrb_ary_size
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_ary_ptr
    - ARY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_size(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1163,1
    - Dst: ary_modify
      Src: /src/h2o/deps/mruby/src/array.c:1165,1
    - Dst: ARY_SHARED_P
      Src: /src/h2o/deps/mruby/src/array.c:1166,1
    - Dst: mrb_ary_decref
      Src: /src/h2o/deps/mruby/src/array.c:1167,1
    - Dst: ARY_UNSET_SHARED_FLAG
      Src: /src/h2o/deps/mruby/src/array.c:1168,1
    - Dst: ARY_EMBED_P
      Src: /src/h2o/deps/mruby/src/array.c:1170,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/src/array.c:1171,1
    - Dst: ARY_SET_EMBED_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1174,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1160
    functionDepth: 5
    functionLinenumber: 1160
    functionLinenumberEnd: 1182
    functionName: mrb_ary_clear
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - ARY_EMBED_P
    - mrb_ary_ptr
    - mrb_free
    - mrb_ary_decref
    - ARY_UNSET_SHARED_FLAG
    - ARY_SHARED_P
    - ary_modify
    - ARY_SET_LEN
    - ARY_SET_EMBED_LEN
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_clear(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_clear
      Src: /src/h2o/deps/mruby/src/array.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1184
    functionDepth: 6
    functionLinenumber: 1184
    functionLinenumberEnd: 1188
    functionName: mrb_ary_clear_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_clear
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_clear_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1193,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/src/array.c:1195,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1196
    functionName: mrb_ary_empty_p
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_ary_ptr
    - ARY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_empty_p(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/src/array.c:1201,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1202,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1206,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ary
    - n
    argTypes:
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1209
    functionName: mrb_ary_entry
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 3
    functionsReached:
    - mrb_nil_value
    - mrb_ary_ptr
    - ARY_LEN
    - ARY_PTR
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_entry(mrb_value ary, mrb_int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1218,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/array.c:1219,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1219,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/src/array.c:1220,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/src/array.c:1224,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/src/array.c:1226,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1228,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:1229,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/array.c:1230,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1233,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/array.c:1234,1
    - Dst: join_ary
      Src: /src/h2o/deps/mruby/src/array.c:1237,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/src/array.c:1242,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/src/array.c:1246,1
    - Dst: mrb_check_string_type
      Src: /src/h2o/deps/mruby/src/array.c:1247,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:1248,1
    - Dst: mrb_check_array_type
      Src: /src/h2o/deps/mruby/src/array.c:1252,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:1253,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/array.c:1258,1
    - Dst: mrb_ary_pop
      Src: /src/h2o/deps/mruby/src/array.c:1263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - mrb
    - ary
    - sep
    - list
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1211
    functionDepth: 12
    functionLinenumber: 1211
    functionLinenumberEnd: 1266
    functionName: join_ary
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - RARRAY_PTR
    - join_ary
    - mrb_str_new_capa
    - mrb_check_array_type
    - mrb_obj_as_string
    - mrb_ary_pop
    - mrb_raise
    - mrb_obj_equal
    - mrb_ary_push
    - mrb_str_cat_str
    - mrb_immediate_p
    - mrb_check_string_type
    - mrb_type
    - RARRAY_LEN
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value join_ary(mrb_state *mrb, mrb_value ary, mrb_value sep, mrb_value
      list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/src/array.c:1271,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/src/array.c:1272,1
    - Dst: join_ary
      Src: /src/h2o/deps/mruby/src/array.c:1274,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/src/array.c:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - ary
    - sep
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1268
    functionDepth: 13
    functionLinenumber: 1268
    functionLinenumberEnd: 1275
    functionName: mrb_ary_join
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - mrb_nil_p
    - mrb_ary_new
    - mrb_obj_as_string
    - join_ary
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ary_join(mrb_state *mrb, mrb_value ary, mrb_value sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1291,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/src/array.c:1293,1
    - Dst: mrb_ary_join
      Src: /src/h2o/deps/mruby/src/array.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1288
    functionDepth: 14
    functionLinenumber: 1288
    functionLinenumberEnd: 1295
    functionName: mrb_ary_join_m
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - mrb_ary_join
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_join_m(mrb_state *mrb, mrb_value ary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/array.c:1300,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/array.c:1303,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/src/array.c:1303,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/array.c:1304,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/array.c:1305,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1307,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1307,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/src/array.c:1307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - ary1
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1297
    functionDepth: 7
    functionLinenumber: 1297
    functionLinenumberEnd: 1310
    functionName: mrb_ary_eq
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_array_p
    - mrb_true_value
    - mrb_obj_equal
    - mrb_false_value
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/src/array.c:1315,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/src/array.c:1318,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/array.c:1318,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/src/array.c:1319,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - ary1
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1312
    functionDepth: 7
    functionLinenumber: 1312
    functionLinenumberEnd: 1324
    functionName: mrb_ary_cmp
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_array_p
    - mrb_obj_equal
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/src/array.c:1330,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/src/array.c:1332,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/src/array.c:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1338
    functionName: mrb_ary_svalue
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - RARRAY_PTR
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_svalue(mrb_state *mrb, mrb_value ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/src/array.c:1345,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/src/array.c:1346,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/src/array.c:1348,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/array.c:1348,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1350,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1350,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1351,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1351,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1352,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1352,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1353,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/array.c:1353,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1354,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/array.c:1354,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1355,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1355,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1356,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1356,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1357,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1357,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1358,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1358,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1359,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/array.c:1359,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1360,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1360,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1361,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1361,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1362,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/array.c:1362,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1363,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/array.c:1363,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1364,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1364,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1365,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1365,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1366,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/array.c:1366,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1367,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1367,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1368,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1368,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1369,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1369,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1370,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1370,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1371,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/src/array.c:1371,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1372,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1372,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1373,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/src/array.c:1373,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1374,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/src/array.c:1374,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1376,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1376,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1377,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1377,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1378,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/src/array.c:1378,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/src/array.c:1379,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/src/array.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1380
    functionName: mrb_init_array
    functionSourceFile: /src/h2o/deps/mruby/src/array.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_array(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/src/print.c:19,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/src/print.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - str
    - len
    - stream
    argTypes:
    - char*
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: printcstr
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached:
    - putc
    - fwrite
    linkageType: ''
    returnType: void
    signature: void printcstr(const char *str, size_t len, FILE *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/src/print.c:27,1
    - Dst: printcstr
      Src: /src/h2o/deps/mruby/src/print.c:28,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/src/print.c:28,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/src/print.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - stream
    argTypes:
    - mrb_value
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: printstr
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTRING_LEN
    - printcstr
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void printstr(mrb_value obj, FILE *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printcstr
      Src: /src/h2o/deps/mruby/src/print.c:36,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/print.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: mrb_core_init_printabort
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 2
    functionsReached:
    - strlen
    - printcstr
    linkageType: ''
    returnType: void
    signature: void mrb_core_init_printabort(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/src/print.c:42,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/src/print.c:42,1
    - Dst: printcstr
      Src: /src/h2o/deps/mruby/src/print.c:44,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/src/print.c:44,1
    - Dst: printstr
      Src: /src/h2o/deps/mruby/src/print.c:47,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/src/print.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: mrb_p
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 3
    functionsReached:
    - mrb_inspect
    - printcstr
    - mrb_obj_ptr
    - mrb_type
    - printstr
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_p(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printstr
      Src: /src/h2o/deps/mruby/src/print.c:55,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/print.c:55,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/print.c:55,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/print.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: mrb_show_version
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_const_get
    - MRB_SYM
    - printstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_show_version(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printstr
      Src: /src/h2o/deps/mruby/src/print.c:61,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/src/print.c:61,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/src/print.c:61,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/src/print.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: mrb_show_copyright
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_const_get
    - MRB_SYM
    - printstr
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_show_copyright(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: mrb_core_init_printabort
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_core_init_printabort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: mrb_p
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_p(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: mrb_show_version
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_show_version(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: mrb_show_copyright
    functionSourceFile: /src/h2o/deps/mruby/src/print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_show_copyright(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:7,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:9,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:9,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:10,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:10,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:11,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:12,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:13,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/src/version.c:13,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:14,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:14,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:15,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:15,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/src/version.c:16,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/src/version.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 17
    functionName: mrb_init_version
    functionSourceFile: /src/h2o/deps/mruby/src/version.c
    functionUses: 1
    functionsReached:
    - mrb_str_new_lit
    - mrb_fixnum_value
    - mrb_define_global_const
    linkageType: ''
    returnType: void
    signature: void mrb_init_version(mrb_state* mrb)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/src/readflt.c:36,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:46,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:48,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:64,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:66,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:89,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:94,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:100,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/src/readflt.c:106,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/src/readflt.c:109,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 79
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 118
    functionName: mrb_float_read
    functionSourceFile: /src/h2o/deps/mruby/src/readflt.c
    functionUses: 1
    functionsReached:
    - ISSPACE
    - pow
    - ISDIGIT
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_float_read(const char *str, char **end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: mrb_assert
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_assert(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - t1
    - ','
    - n
    - ','
    - t2
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: mrb_assert_int_fit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_assert_int_fit(t1,n,t2,max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: mrb_assert
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_assert(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - t1
    - ','
    - n
    - ','
    - t2
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: mrb_assert_int_fit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_assert_int_fit(t1,n,t2,max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: mrb_static_assert
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: mrb_static_assert1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert1(exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: mrb_static_assert2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert2(exp, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: mrb_static_assert2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert2(exp, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: mrb_static_assert2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert2(exp, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: _mrb_static_assert_cat0
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mrb_static_assert_cat0(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _mrb_static_assert_cat
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mrb_static_assert_cat(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: _mrb_static_assert_id
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mrb_static_assert_id(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: _mrb_static_assert_id
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mrb_static_assert_id(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: mrb_static_assert2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert2(exp, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: mrb_static_assert1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert1(exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: mrb_static_assert_expand
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert_expand(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: mrb_static_assert_selector
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert_selector(a, b, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: mrb_static_assert
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: mrb_static_assert_powerof2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert_powerof2(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_new
      Src: /src/h2o/deps/mruby/include/mruby.h:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - c
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 11
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: mrb_class_new_instance
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached:
    - mrb_obj_new
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_class_new_instance(mrb_state *mrb, mrb_int argc, const
      mrb_value *argv, struct RClass *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 723
    functionName: mrb_exc_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_exc_get(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 866
    functionName: MRB_ARGS_REQ
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_REQ(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 874
    functionName: MRB_ARGS_OPT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_OPT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n1
    - ','
    - n2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 884
    functionName: MRB_ARGS_ARG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_ARG(n1,n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 887
    functionName: MRB_ARGS_REST
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_REST()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 890
    functionName: MRB_ARGS_POST
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_POST(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n1
    - ','
    - n2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 893
    functionName: MRB_ARGS_KEY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_KEY(n1,n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 898
    functionName: MRB_ARGS_BLOCK
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_BLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 903
    functionName: MRB_ARGS_ANY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_ANY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 908
    functionName: MRB_ARGS_NONE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ARGS_NONE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1021
    functionName: mrb_get_mid
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_get_mid(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1057
    functionName: mrb_strlen_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_strlen_lit(lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1146
    functionName: mrb_intern_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_intern_lit(mrb, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1161
    functionName: mrb_sym2name
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sym2name(mrb,sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - sym
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1162
    functionName: mrb_sym2name_len
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sym2name_len(mrb,sym,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: mrb_sym2str
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sym2str(mrb,sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - tt
    - ','
    - klass
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1182
    functionName: MRB_OBJ_ALLOC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OBJ_ALLOC(mrb, tt, klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1191
    functionName: mrb_str_new_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_new_lit(mrb, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - p
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1194
    functionName: mrb_str_new_frozen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_new_frozen(mrb,p,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1195
    functionName: mrb_str_new_cstr_frozen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_new_cstr_frozen(mrb,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - p
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1196
    functionName: mrb_str_new_static_frozen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_new_static_frozen(mrb,p,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1197
    functionName: mrb_str_new_lit_frozen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_new_lit_frozen(mrb,lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1202
    functionName: mrb_locale_free
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_locale_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1203
    functionName: mrb_utf8_free
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_utf8_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1205
    functionName: mrb_utf8_from_locale
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_utf8_from_locale(p, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1206
    functionName: mrb_locale_from_utf8
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_locale_from_utf8(p, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - p
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1266
    functionName: mrb_toplevel_run_keep
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_toplevel_run_keep(m,p,k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1267
    functionName: mrb_toplevel_run
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_toplevel_run(m,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m
    - ','
    - p
    - ','
    - s
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1268
    functionName: mrb_context_run
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_context_run(m,p,s,k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1279
    functionName: mrb_as_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_as_float(mrb, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1281
    functionName: mrb_to_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_to_float(mrb, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1291
    functionName: mrb_gc_arena_save
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_gc_arena_save(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - idx
    argTypes:
    - mrb_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: mrb_gc_arena_restore
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_gc_arena_restore(mrb_state *mrb, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1306
    functionName: mrb_gc_mark_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_gc_mark_value(mrb,val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - obj
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1310
    functionName: mrb_field_write_barrier_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_field_write_barrier_value(mrb, obj, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mrb
    - ','
    - val
    - ','
    - type
    - ','
    - tname
    - ','
    - method
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1314
    functionName: mrb_convert_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_convert_type(mrb, val, type, tname, method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mrb
    - ','
    - val
    - ','
    - type
    - ','
    - tname
    - ','
    - method
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1316
    functionName: mrb_check_convert_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_check_convert_type(mrb, val, type, tname, method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1327
    functionName: ISASCII
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISASCII(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1328
    functionName: ISPRINT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPRINT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1329
    functionName: ISSPACE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISSPACE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1330
    functionName: ISUPPER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISUPPER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1331
    functionName: ISLOWER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLOWER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1332
    functionName: ISALPHA
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISALPHA(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1333
    functionName: ISDIGIT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1334
    functionName: ISXDIGIT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISXDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1335
    functionName: ISALNUM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISALNUM(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1336
    functionName: ISBLANK
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISBLANK(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1337
    functionName: ISCNTRL
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISCNTRL(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1338
    functionName: TOUPPER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOUPPER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1339
    functionName: TOLOWER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOLOWER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1362
    functionName: MRB_ERROR_SYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ERROR_SYM(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1406
    functionName: mrb_string_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_string_type(mrb, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1407
    functionName: mrb_to_str
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_to_str(mrb, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1409
    functionName: mrb_str_to_str
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_to_str(mrb, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1414
    functionName: mrb_as_int
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_as_int(mrb, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1416
    functionName: mrb_to_integer
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_to_integer(mrb, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1417
    functionName: mrb_to_int
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_to_int(mrb, val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/include/mruby.h:1423,1
    - Dst: mrb_frozen_error
      Src: /src/h2o/deps/mruby/include/mruby.h:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - o
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1421
    functionDepth: 6
    functionLinenumber: 1421
    functionLinenumberEnd: 1424
    functionName: mrb_check_frozen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 11
    functionsReached:
    - mrb_frozen_error
    - mrb_frozen_p
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_check_frozen(mrb_state *mrb, void *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1439
    functionName: mrb_int
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_int(mrb, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1503
    functionName: mrbmemcpy
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      mrbmemcpy(void *dst, const void *src, size_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1505
    functionName: memcpy
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 101
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcpy(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1513
    functionName: mrbmemset
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      mrbmemset(void *s, int c, size_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1515
    functionName: memset
    functionSourceFile: /src/h2o/deps/mruby/include/mruby.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memset(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: MRB_TRY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_TRY(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: MRB_CATCH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CATCH(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: MRB_END_EXC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_END_EXC(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MRB_THROW
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_THROW(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MRB_TRY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_TRY(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MRB_CATCH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CATCH(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MRB_END_EXC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_END_EXC(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MRB_THROW
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_THROW(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: mrb_jmpbuf
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/throw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_jmpbuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: MRB_STRINGIZE0
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_STRINGIZE0(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MRB_STRINGIZE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_STRINGIZE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: UPPER_BOUND
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPPER_BOUND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ed_flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: __ac_isempty
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isempty(ed_flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ed_flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: __ac_isdel
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isdel(ed_flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ed_flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: __ac_iseither
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_iseither(ed_flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: khash_power2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: khash_power2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: khash_mask
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: khash_mask(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: khash_upper_bound
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: khash_upper_bound(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: KHASH_DECLARE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_DECLARE(name, khkey_t, khval_t, kh_is_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - c
    - len
    argTypes:
    - uint8_t*
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: kh_fill_flags
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 173
    functionName: KHASH_DEFINE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_DEFINE(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: khash_t
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: khash_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: kh_init_size
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_init_size(name,mrb,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: kh_init
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_init(name,mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: kh_destroy
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_destroy(name, mrb, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: kh_clear
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_clear(name, mrb, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: kh_resize
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_resize(name, mrb, h, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: kh_put
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_put(name, mrb, h, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - ','
    - k
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: kh_put2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_put2(name, mrb, h, k, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: kh_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_get(name, mrb, h, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: kh_del
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_del(name, mrb, h, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - mrb
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: kh_copy
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_copy(name, mrb, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: kh_exist
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_exist(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: kh_key
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_key(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: kh_val
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_val(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: kh_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_value(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: kh_begin
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_begin(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: kh_end
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_end(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: kh_size
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_size(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: kh_n_buckets
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_n_buckets(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: kh_int_hash_func
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int_hash_func(mrb,key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: kh_int_hash_equal
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int_hash_equal(mrb,a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: kh_int64_hash_func
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int64_hash_func(mrb,key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: kh_int64_hash_equal
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int64_hash_equal(mrb,a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: __ac_X31_hash_string
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: khint_t
    signature: khint_t __ac_X31_hash_string(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: kh_str_hash_func
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_func(mrb,key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: kh_str_hash_equal
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_equal(mrb,a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: WORDBOX_SET_SHIFT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORDBOX_SET_SHIFT_VALUE(o,n,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: WORDBOX_SHIFT_VALUE_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORDBOX_SHIFT_VALUE_P(o,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: WORDBOX_OBJ_TYPE_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORDBOX_OBJ_TYPE_P(o,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: mrb_val_union
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: union mrb_value_
    signature: union mrb_value_ mrb_val_union(mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: mrb_immediate_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_immediate_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: mrb_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: mrb_cptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: mrb_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: mrb_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: mrb_fixnum
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:163,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:163,1
    - Dst: mrb_val_union
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: mrb_integer_func
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached:
    - mrb_immediate_p
    - mrb_val_union
    - mrb_fixnum
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_integer_func(mrb_value o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: mrb_integer
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: mrb_symbol
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_symbol(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: mrb_bool
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_bool(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: mrb_fixnum_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: mrb_integer_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: mrb_symbol_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_symbol_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: mrb_undef_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_undef_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: mrb_nil_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_nil_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: mrb_false_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_false_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: mrb_true_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_true_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: mrb_float_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: mrb_float_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: mrb_array_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_array_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: mrb_string_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_string_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: mrb_hash_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_hash_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: mrb_cptr_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cptr_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: mrb_exception_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_exception_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: mrb_free_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_free_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: mrb_object_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_object_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: mrb_class_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_class_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: mrb_module_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_module_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: mrb_iclass_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_iclass_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: mrb_sclass_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sclass_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: mrb_proc_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_proc_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: mrb_range_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: mrb_env_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_env_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: mrb_data_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_data_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: mrb_fiber_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fiber_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: mrb_istruct_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_istruct_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: mrb_break_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: SET_FLOAT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FLOAT_VALUE(mrb,r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: SET_CPTR_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CPTR_VALUE(mrb,r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: SET_UNDEF_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_UNDEF_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: SET_NIL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NIL_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: SET_FALSE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FALSE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: SET_TRUE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TRUE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: SET_BOOL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL_VALUE(r,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: SET_INT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT_VALUE(mrb,r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: SET_FIXNUM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FIXNUM_VALUE(r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: SET_SYM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYM_VALUE(r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: SET_OBJ_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_OBJ_VALUE(r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:220,1
    - Dst: mrb_true_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:221,1
    - Dst: mrb_fixnum_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:222,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:223,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:224,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:226,1
    - Dst: mrb_val_union
      Src: /src/h2o/deps/mruby/include/mruby/boxing_word.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: mrb_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    functionUses: 56
    functionsReached:
    - mrb_true_p
    - mrb_val_union
    - mrb_fixnum_p
    - mrb_symbol_p
    - mrb_float_p
    - mrb_bool
    - mrb_undef_p
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_type(mrb_value o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: mrb_hash_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_hash_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: mrb_hash_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_hash_value(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: RHASH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHASH(hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: MRB_RHASH_DEFAULT_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_RHASH_DEFAULT_P(hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: MRB_RHASH_PROCDEFAULT_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/hash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_RHASH_PROCDEFAULT_P(hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - irep
    argTypes:
    - struct mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: mrb_irep_catch_handler_table
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct mrb_irep_catch_handler
    signature: 'struct mrb_irep_catch_handler *

      mrb_irep_catch_handler_table(const struct mrb_irep *irep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: mrb_nan_boxing_value_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_float
    signature: mrb_float mrb_nan_boxing_value_float(mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: SET_FLOAT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FLOAT_VALUE(mrb,r,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: mrb_float_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: mrb_nb_tt
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_nb_tt(o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/include/mruby/boxing_nan.h:81,1
    - Dst: mrb_nb_tt
      Src: /src/h2o/deps/mruby/include/mruby/boxing_nan.h:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - o
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: mrb_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 56
    functionsReached:
    - mrb_nb_tt
    - mrb_float_p
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_type(mrb_value o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: NANBOX_SET_MISC_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NANBOX_SET_MISC_VALUE(r,t,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: mrb_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: mrb_fixnum
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nb_tt
      Src: /src/h2o/deps/mruby/include/mruby/boxing_nan.h:119,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/include/mruby/boxing_nan.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: mrb_nan_boxing_value_int
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached:
    - mrb_nb_tt
    - mrb_fixnum
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_nan_boxing_value_int(mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: mrb_integer
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: mrb_fixnum
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: mrb_integer
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: mrb_symbol
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_symbol(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: mrb_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: mrb_cptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - tt
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: NANBOX_SET_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NANBOX_SET_VALUE(o, tt, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: SET_NIL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NIL_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: SET_FALSE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FALSE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: SET_TRUE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TRUE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: SET_BOOL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL_VALUE(r,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: SET_INT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT_VALUE(mrb, r, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: SET_INT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT_VALUE(mrb, r, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: SET_FIXNUM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FIXNUM_VALUE(r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: SET_SYM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYM_VALUE(r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: SET_OBJ_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_OBJ_VALUE(r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: SET_CPTR_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CPTR_VALUE(mrb,r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: SET_UNDEF_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_UNDEF_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: mrb_immediate_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_immediate_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: mrb_nil_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_nil_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: mrb_false_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_false_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: mrb_fixnum_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: RSTR_SET_TYPE_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_TYPE_FLAG(s, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: RSTR_UNSET_TYPE_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_TYPE_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: RSTR_EMBED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_EMBED_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: RSTR_SET_EMBED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_EMBED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: RSTR_UNSET_EMBED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_EMBED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: RSTR_SET_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_EMBED_LEN(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: RSTR_SET_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_LEN(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: RSTR_EMBED_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_EMBED_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: RSTR_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_EMBED_LEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: RSTR_EMBEDDABLE_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_EMBEDDABLE_P(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: RSTR_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: RSTR_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_LEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: RSTR_CAPA
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_CAPA(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: RSTR_SHARED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SHARED_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: RSTR_SET_SHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_SHARED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: RSTR_UNSET_SHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_SHARED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: RSTR_FSHARED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_FSHARED_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: RSTR_SET_FSHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_FSHARED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: RSTR_UNSET_FSHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_FSHARED_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: RSTR_NOFREE_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_NOFREE_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: RSTR_SET_NOFREE_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_NOFREE_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: RSTR_UNSET_NOFREE_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_NOFREE_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: RSTR_ASCII_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_ASCII_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: RSTR_SET_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_ASCII_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: RSTR_UNSET_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_ASCII_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: RSTR_WRITE_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_WRITE_ASCII_FLAG(s, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: RSTR_COPY_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_COPY_ASCII_FLAG(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: RSTR_ASCII_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_ASCII_P(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: RSTR_SET_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_SET_ASCII_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: RSTR_UNSET_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_UNSET_ASCII_FLAG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: RSTR_WRITE_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_WRITE_ASCII_FLAG(s, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: RSTR_COPY_ASCII_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTR_COPY_ASCII_FLAG(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: mrb_str_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_ptr(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: RSTRING
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: RSTRING_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: RSTRING_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_EMBED_LEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: RSTRING_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_LEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: RSTRING_CAPA
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_CAPA(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: RSTRING_END
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_END(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: RSTRING_CSTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRING_CSTR(mrb,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - lit
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: mrb_str_index_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_index_lit(mrb, str, lit, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - capa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: mrb_str_buf_new
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_buf_new(mrb, capa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: mrb_string_value_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_string_value_ptr(mrb, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: mrb_string_value_len
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_string_value_len(mrb, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: mrb_str_strlen
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_strlen(mrb, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - base
    - ','
    - badcheck
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: mrb_str_to_inum
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_to_inum(mrb, str, base, badcheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: mrb_str_cat_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_cat_lit(mrb, str, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: mrb_str_cat2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_cat2(mrb, str, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: mrb_str_buf_cat
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_buf_cat(mrb, str, ptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - str
    - ','
    - str2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: mrb_str_buf_append
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_str_buf_append(mrb, str, str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: mrb_shared_array
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL mrb_shared_array
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: mrb_ary_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ary_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: mrb_ary_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ary_value(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RARRAY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RARRAY(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ARY_EMBED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_P(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: ARY_UNSET_EMBED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_UNSET_EMBED_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ARY_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_LEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: ARY_SET_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_SET_EMBED_LEN(a,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: ARY_EMBED_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: ARY_EMBED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_P(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: ARY_UNSET_EMBED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_UNSET_EMBED_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ARY_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_LEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: ARY_SET_EMBED_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_SET_EMBED_LEN(a,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: ARY_EMBED_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_EMBED_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ARY_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_LEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ARY_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: RARRAY_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RARRAY_LEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: RARRAY_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RARRAY_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: ARY_SET_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_SET_LEN(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: ARY_CAPA
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_CAPA(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: ARY_SHARED_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_SHARED_P(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ARY_SET_SHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_SET_SHARED_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ARY_UNSET_SHARED_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARY_UNSET_SHARED_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - ary
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: mrb_ary_ref
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/array.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ary_ref(mrb, ary, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: TYPED_POSFIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_POSFIXABLE(f,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: TYPED_NEGFIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_NEGFIXABLE(f,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: TYPED_FIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_FIXABLE(f,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: POSFIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POSFIXABLE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NEGFIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEGFIXABLE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: FIXABLE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXABLE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: FIXABLE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXABLE_FLOAT(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FIXABLE_FLOAT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXABLE_FLOAT(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: mrb_num_plus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_num_plus(mrb, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: mrb_num_minus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_num_minus(mrb, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - x
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mrb_fixnum_to_str
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum_to_str(mrb, x, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: __has_builtin
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/h2o/deps/mruby/include/mruby/numeric.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - augend
    - addend
    - sum
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: mrb_int_add_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 5
    functionsReached:
    - __builtin_add_overflow
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_add_overflow(mrb_int augend, mrb_int addend, mrb_int
      *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_sub_overflow
      Src: /src/h2o/deps/mruby/include/mruby/numeric.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - minuend
    - subtrahend
    - difference
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: mrb_int_sub_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 2
    functionsReached:
    - __builtin_sub_overflow
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_sub_overflow(mrb_int minuend, mrb_int subtrahend,
      mrb_int *difference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/h2o/deps/mruby/include/mruby/numeric.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - multiplier
    - multiplicand
    - product
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: mrb_int_mul_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 6
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand,
      mrb_int *product)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: mrb_int_add_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_add_overflow(mrb_int a, mrb_int b, mrb_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: mrb_int_sub_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_sub_overflow(mrb_int a, mrb_int b, mrb_int *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mrb_int
    - mrb_int
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: mrb_int_mul_overflow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/numeric.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_int_mul_overflow(mrb_int a, mrb_int b, mrb_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: MRB_FLAG_TEST
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_FLAG_TEST(obj, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: mrb_basic_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_basic_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MRB_FROZEN_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_FROZEN_P(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MRB_SET_FROZEN_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SET_FROZEN_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MRB_UNSET_FROZEN_FLAG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_UNSET_FROZEN_FLAG(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mrb_frozen_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_frozen_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: mrb_obj_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_obj_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: mrb_special_const_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_special_const_p(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: mrb_static_assert_object_size
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_static_assert_object_size(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: mrb_data_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL mrb_data_type
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - klass
    - ','
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Data_Wrap_Struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Data_Wrap_Struct(mrb,klass,type,ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - mrb
    - ','
    - klass
    - ','
    - strct
    - ','
    - type
    - ','
    - sval
    - ','
    - data_obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Data_Make_Struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Data_Make_Struct(mrb,klass,strct,type,sval,data_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: RDATA
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDATA(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: DATA_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_PTR(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: DATA_TYPE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_TYPE(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - obj
    - ','
    - dtype
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: DATA_GET_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_GET_PTR(mrb,obj,dtype,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - obj
    - ','
    - dtype
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: DATA_CHECK_GET_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_CHECK_GET_PTR(mrb,obj,dtype,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - obj
    - ','
    - dtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: mrb_data_check_and_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_data_check_and_get(mrb,obj,dtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - val
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: mrb_get_datatype
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_get_datatype(mrb,val,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - val
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: mrb_check_datatype
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_check_datatype(mrb,val,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - obj
    - ','
    - type
    - ','
    - sval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: Data_Get_Struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Data_Get_Struct(mrb,obj,type,sval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/include/mruby/data.h:69,1
    - Dst: mrb_data_p
      Src: /src/h2o/deps/mruby/include/mruby/data.h:69,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/include/mruby/data.h:70,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/include/mruby/data.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - ptr
    - type
    argTypes:
    - mrb_value
    - void*
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: mrb_data_init
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/data.h
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_data_p
    - DATA_TYPE
    - DATA_PTR
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_data_init(mrb_value v, void *ptr, const mrb_data_type
      *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MRB_ENV_SET_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_SET_LEN(e,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MRB_ENV_LEN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_LEN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MRB_ENV_CLOSE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_CLOSE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: MRB_ENV_TOUCH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_TOUCH(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MRB_ENV_HEAP
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_HEAP(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MRB_ENV_HEAP_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_HEAP_P(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MRB_ENV_ONSTACK_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_ONSTACK_P(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MRB_ENV_BIDX
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_BIDX(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: MRB_ENV_SET_BIDX
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENV_SET_BIDX(e,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MRB_ASPEC_REQ
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_REQ(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MRB_ASPEC_OPT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_OPT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MRB_ASPEC_REST
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_REST(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MRB_ASPEC_POST
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_POST(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MRB_ASPEC_KEY
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_KEY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MRB_ASPEC_KDICT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_KDICT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MRB_ASPEC_BLOCK
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ASPEC_BLOCK(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: MRB_PROC_CFUNC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_CFUNC_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: MRB_PROC_CFUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_CFUNC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: MRB_PROC_STRICT_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_STRICT_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: MRB_PROC_ORPHAN_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_ORPHAN_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: MRB_PROC_ENV_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_ENV_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: MRB_PROC_ENV
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_ENV(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: MRB_PROC_TARGET_CLASS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_TARGET_CLASS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - tc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: MRB_PROC_SET_TARGET_CLASS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_SET_TARGET_CLASS(p,tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MRB_PROC_SCOPE_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_SCOPE_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: MRB_PROC_NOARG_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_NOARG_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: mrb_proc_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_proc_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: mrb_cfunc_env_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cfunc_env_get(mrb, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: MRB_METHOD_FUNC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FUNC_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: MRB_METHOD_NOARG_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_NOARG_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: MRB_METHOD_NOARG_SET
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_NOARG_SET(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: MRB_METHOD_FUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FUNC(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: MRB_METHOD_FROM_FUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FROM_FUNC(m,fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: MRB_METHOD_FROM_PROC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FROM_PROC(m,pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: MRB_METHOD_PROC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_PROC_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: MRB_METHOD_PROC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_PROC(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: MRB_METHOD_UNDEF_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_UNDEF_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: MRB_METHOD_FUNC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FUNC_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: MRB_METHOD_NOARG_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_NOARG_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: MRB_METHOD_FUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FUNC(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: MRB_METHOD_NOARG_SET
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_NOARG_SET(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: MRB_METHOD_FROM_FUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FROM_FUNC(m,fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: MRB_METHOD_FROM_PROC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_FROM_PROC(m,pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: MRB_METHOD_PROC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_PROC_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: MRB_METHOD_PROC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_PROC(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: MRB_METHOD_UNDEF_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_UNDEF_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: MRB_METHOD_CFUNC_P
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_CFUNC_P(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: MRB_METHOD_CFUNC
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/proc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_METHOD_CFUNC(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: MRB_ENDIAN_LOHI
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENDIAN_LOHI(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: MRB_ENDIAN_LOHI
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ENDIAN_LOHI(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - n
    - ','
    - format
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: vsnprintf
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vsnprintf(s, n, format, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - n
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: snprintf
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: snprintf(s, n, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: isfinite
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isfinite(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: isinf
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isinf(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: signbit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signbit(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 159
    functionName: MRB_VTYPE_FOREACH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_VTYPE_FOREACH(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: MRB_VTYPE_TYPEOF
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_VTYPE_TYPEOF(tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tt
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: MRB_VTYPE_TYPEDEF
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_VTYPE_TYPEDEF(tt, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: mrb_immediate_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_immediate_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: mrb_integer_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: mrb_fixnum_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: mrb_symbol_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_symbol_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: mrb_undef_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_undef_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: mrb_nil_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_nil_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: mrb_false_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_false_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: mrb_true_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_true_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: mrb_float_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: mrb_array_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_array_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: mrb_string_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_string_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: mrb_hash_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_hash_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: mrb_cptr_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cptr_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: mrb_exception_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_exception_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: mrb_free_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_free_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: mrb_object_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_object_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: mrb_class_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_class_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: mrb_module_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_module_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: mrb_iclass_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_iclass_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: mrb_sclass_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sclass_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: mrb_proc_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_proc_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: mrb_range_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: mrb_env_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_env_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: mrb_data_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_data_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: mrb_fiber_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fiber_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: mrb_istruct_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_istruct_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: mrb_break_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: mrb_bool
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_bool(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: mrb_test
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_test(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: mrb_bigint_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_bigint_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_FLOAT_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - f
    argTypes:
    - struct mrb_state*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: mrb_float_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 28
    functionsReached:
    - SET_FLOAT_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_float_value(struct mrb_state *mrb, mrb_float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_CPTR_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - struct mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: mrb_cptr_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 0
    functionsReached:
    - SET_CPTR_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_cptr_value(struct mrb_state *mrb, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_INT_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - i
    argTypes:
    - struct mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: mrb_int_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 41
    functionsReached:
    - SET_INT_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_int_value(struct mrb_state *mrb, mrb_int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIXNUM_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: mrb_fixnum_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 31
    functionsReached:
    - SET_FIXNUM_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_fixnum_value(mrb_int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_SYM_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: mrb_symbol_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 27
    functionsReached:
    - SET_SYM_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_symbol_value(mrb_sym i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_OBJ_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: mrb_obj_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 93
    functionsReached:
    - SET_OBJ_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_obj_value(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: mrb_nil_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 99
    functionsReached:
    - SET_NIL_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_nil_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_FALSE_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: mrb_false_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 21
    functionsReached:
    - SET_FALSE_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_false_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_TRUE_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: mrb_true_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 19
    functionsReached:
    - SET_TRUE_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_true_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_BOOL_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: mrb_bool_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 37
    functionsReached:
    - SET_BOOL_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_bool_value(mrb_bool boolean)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_UNDEF_VALUE
      Src: /src/h2o/deps/mruby/include/mruby/value.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: mrb_undef_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 9
    functionsReached:
    - SET_UNDEF_VALUE
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_undef_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: mrb_ro_data_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_ro_data_p(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_etext
      Src: /src/h2o/deps/mruby/include/mruby/value.h:432,1
    - Dst: get_edata
      Src: /src/h2o/deps/mruby/include/mruby/value.h:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: mrb_ro_data_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached:
    - get_etext
    - get_edata
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_ro_data_p(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: mrb_ro_data_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ro_data_p(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: mrb_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_ptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: mrb_cptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_cptr(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: mrb_float
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: mrb_fixnum
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fixnum(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: mrb_integer
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_integer(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: mrb_symbol
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_symbol(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: mrb_type
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_type(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - o
    - ','
    - ttt
    - ','
    - attr
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: BOXNIX_SET_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOXNIX_SET_VALUE(o, ttt, attr, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: SET_NIL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NIL_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: SET_FALSE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FALSE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: SET_TRUE_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TRUE_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SET_BOOL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL_VALUE(r,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SET_INT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT_VALUE(mrb,r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SET_FIXNUM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FIXNUM_VALUE(r,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SET_FLOAT_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FLOAT_VALUE(mrb,r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SET_SYM_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYM_VALUE(r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: SET_OBJ_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_OBJ_VALUE(r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: SET_CPTR_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CPTR_VALUE(mrb,r,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SET_UNDEF_VALUE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_UNDEF_VALUE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: check_little_endian
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/endian.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_little_endian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: mrb_irep_catch_handler_pack
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/irep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_irep_catch_handler_pack(n, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: mrb_irep_catch_handler_unpack
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/irep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_irep_catch_handler_unpack(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: PEEK_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK_B(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PEEK_S
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK_S(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PEEK_W
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK_W(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: READ_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_B()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: READ_S
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_S()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: READ_W
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_W()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: FETCH_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_B()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: FETCH_BB
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BB()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: FETCH_BBB
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BBB()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: FETCH_BS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: FETCH_BSS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FETCH_S
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_S()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FETCH_W
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_W()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: FETCH_Z_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_Z_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FETCH_B_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_B_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: FETCH_BB_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BB_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FETCH_BBB_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BBB_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: FETCH_BS_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BS_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: FETCH_BSS_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BSS_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: FETCH_S_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_S_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FETCH_W_1
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_W_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: FETCH_Z_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_Z_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: FETCH_B_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_B_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: FETCH_BB_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BB_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: FETCH_BBB_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BBB_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FETCH_BS_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BS_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: FETCH_BSS_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BSS_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: FETCH_S_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_S_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: FETCH_W_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_W_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FETCH_Z_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_Z_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: FETCH_B_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_B_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: FETCH_BB_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BB_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: FETCH_BBB_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BBB_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: FETCH_BS_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BS_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: FETCH_BSS_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_BSS_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: FETCH_S_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_S_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: FETCH_W_3
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/opcode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH_W_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: RException
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL RException
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: mrb_exc_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_exc_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mrb_exc_new_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_exc_new_lit(mrb, c, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - brk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: mrb_break_value_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_value_get(brk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - brk
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: mrb_break_value_set
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_value_set(brk, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - brk
    argTypes:
    - struct RBreak*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: mrb_break_value_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_break_value_get(struct RBreak *brk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - brk
    - val
    argTypes:
    - struct RBreak*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: mrb_break_value_set
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_break_value_set(struct RBreak *brk, mrb_value val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - brk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: mrb_break_proc_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_proc_get(brk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - brk
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: mrb_break_proc_set
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_break_proc_set(brk, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: RBREAK_TAG_FOREACH
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBREAK_TAG_FOREACH(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: RBREAK_TAG_DEFINE
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBREAK_TAG_DEFINE(tag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - brk
    argTypes:
    - struct RBreak*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: mrb_break_tag_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mrb_break_tag_get(struct RBreak *brk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - brk
    - tag
    argTypes:
    - struct RBreak*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: mrb_break_tag_set
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/error.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_break_tag_set(struct RBreak *brk, uint32_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mrb_gc_free_range
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_gc_free_range(mrb, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: RANGE_BEG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_BEG(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: RANGE_END
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_END(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: mrb_gc_free_range
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_gc_free_range(mrb, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: RANGE_BEG
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_BEG(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: RANGE_END
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_END(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: mrb_range_beg
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_beg(mrb, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: mrb_range_end
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_end(mrb, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: mrb_range_excl_p
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_excl_p(mrb, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: mrb_range_raw_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_raw_ptr(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: mrb_range_value
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_range_value(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: RANGE_EXCL
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/range.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_EXCL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - bin
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: uint8_to_bin
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t uint8_to_bin(uint8_t s, uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - bin
    argTypes:
    - uint16_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: uint16_to_bin
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t uint16_to_bin(uint16_t s, uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - l
    - bin
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: uint32_to_bin
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t uint32_to_bin(uint32_t l, uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bin
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: bin_to_uint32
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bin_to_uint32(const uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bin
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: bin_to_uint16
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t bin_to_uint16(const uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bin
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: bin_to_uint8
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/dump.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bin_to_uint8(const uint8_t *bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: RISTRUCT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/istruct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RISTRUCT(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ISTRUCT_PTR
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/istruct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISTRUCT_PTR(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: mrb_istruct_size
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/istruct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_istruct_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISTRUCT_PTR
      Src: /src/h2o/deps/mruby/include/mruby/istruct.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: mrb_istruct_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/istruct.h
    functionUses: 0
    functionsReached:
    - ISTRUCT_PTR
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE * mrb_istruct_ptr(mrb_value object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/include/mruby/istruct.h:45,1
    - Dst: ISTRUCT_PTR
      Src: /src/h2o/deps/mruby/include/mruby/istruct.h:45,1
    - Dst: ISTRUCT_PTR
      Src: /src/h2o/deps/mruby/include/mruby/istruct.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: mrb_istruct_copy
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/istruct.h
    functionUses: 1
    functionsReached:
    - memcpy
    - ISTRUCT_PTR
    linkageType: ''
    returnType: MRB_INLINE
    signature: MRB_INLINE mrb_istruct_copy(mrb_value dest, mrb_value src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: struct
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_BEGIN_DECL
    signature: MRB_BEGIN_DECL struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: mrb_class_ptr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_class_ptr(v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/include/mruby/class.h:29,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/include/mruby/class.h:31,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/include/mruby/class.h:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 51
    functionName: mrb_class
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 9
    functionsReached:
    - mrb_obj_ptr
    - mrb_type
    - mrb_fixnum
    linkageType: ''
    returnType: MRB_INLINE
    signature: 'MRB_INLINE *

      mrb_class(mrb_state *mrb, mrb_value v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: MRB_CLASS_ORIGIN
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CLASS_ORIGIN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - tt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: MRB_SET_INSTANCE_TT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SET_INSTANCE_TT(c, tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: MRB_INSTANCE_TT
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/class.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_INSTANCE_TT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: MRB_PRESYM_SCANNING_TAGGED
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PRESYM_SCANNING_TAGGED(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: mrb_intern_lit
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_intern_lit(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: mrb_intern_cstr
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_intern_cstr(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: mrb_define_method
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_method(mrb, c, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: mrb_define_class_method
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_class_method(mrb, c, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: mrb_define_singleton_method
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_singleton_method(mrb, c, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - name
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: mrb_define_class
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_class(mrb, name, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - o
    - ','
    - name
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: mrb_define_class_under
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_class_under(mrb, o, name, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: mrb_define_module
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_module(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - o
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: mrb_define_module_under
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_module_under(mrb, o, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: mrb_define_module_function
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_module_function(mrb, c, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - name
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: mrb_define_const
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_const(mrb, c, name, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - name
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: mrb_define_global_const
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_global_const(mrb, name, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - c
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: mrb_define_alias
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_define_alias(mrb, c, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: mrb_class_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_class_get(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - outer
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: mrb_class_get_under
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_class_get_under(mrb, outer, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mrb_module_get
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_module_get(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - outer
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: mrb_module_get_under
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_module_get_under(mrb, outer, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mrb
    - ','
    - v
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: mrb_funcall
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_funcall(mrb, v, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: MRB_OPSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MRB_CVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MRB_IVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MRB_SYM_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MRB_SYM_Q
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: MRB_SYM_E
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: MRB_SYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MRB_OPSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: MRB_CVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: MRB_IVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MRB_SYM_B_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MRB_SYM_Q_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MRB_SYM_E_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MRB_SYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MRB_OPSYM__not
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__not(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: MRB_OPSYM__mod
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__mod(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MRB_OPSYM__and
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__and(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: MRB_OPSYM__mul
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__mul(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MRB_OPSYM__add
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__add(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MRB_OPSYM__sub
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__sub(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MRB_OPSYM__div
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__div(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MRB_OPSYM__lt
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__lt(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MRB_OPSYM__gt
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__gt(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MRB_OPSYM__xor
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__xor(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MRB_OPSYM__tick
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__tick(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MRB_OPSYM__or
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__or(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MRB_OPSYM__neg
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__neg(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MRB_OPSYM__neq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__neq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MRB_OPSYM__nmatch
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__nmatch(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: MRB_OPSYM__andand
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__andand(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: MRB_OPSYM__pow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__pow(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: MRB_OPSYM__plus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__plus(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: MRB_OPSYM__minus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__minus(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: MRB_OPSYM__lshift
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__lshift(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MRB_OPSYM__le
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__le(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: MRB_OPSYM__eq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__eq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: MRB_OPSYM__match
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__match(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: MRB_OPSYM__ge
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__ge(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: MRB_OPSYM__rshift
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__rshift(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: MRB_OPSYM__aref
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__aref(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: MRB_OPSYM__oror
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__oror(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: MRB_OPSYM__cmp
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__cmp(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: MRB_OPSYM__eqq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__eqq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: MRB_OPSYM__aset
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__aset(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: MRB_OPSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: MRB_CVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: MRB_IVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: MRB_SYM_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MRB_SYM_Q
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: MRB_SYM_E
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: MRB_SYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: MRB_OPSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: MRB_CVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MRB_IVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MRB_SYM_B_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MRB_SYM_Q_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MRB_SYM_E_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: MRB_SYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MRB_OPSYM__not
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__not(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MRB_OPSYM__mod
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__mod(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: MRB_OPSYM__and
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__and(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MRB_OPSYM__mul
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__mul(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MRB_OPSYM__add
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__add(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MRB_OPSYM__sub
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__sub(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MRB_OPSYM__div
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__div(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: MRB_OPSYM__lt
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__lt(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: MRB_OPSYM__gt
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__gt(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: MRB_OPSYM__xor
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__xor(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MRB_OPSYM__tick
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__tick(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: MRB_OPSYM__or
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__or(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: MRB_OPSYM__neg
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__neg(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MRB_OPSYM__neq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__neq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MRB_OPSYM__nmatch
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__nmatch(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MRB_OPSYM__andand
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__andand(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MRB_OPSYM__pow
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__pow(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: MRB_OPSYM__plus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__plus(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MRB_OPSYM__minus
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__minus(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: MRB_OPSYM__lshift
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__lshift(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MRB_OPSYM__le
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__le(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: MRB_OPSYM__eq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__eq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MRB_OPSYM__match
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__match(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MRB_OPSYM__ge
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__ge(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MRB_OPSYM__rshift
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__rshift(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MRB_OPSYM__aref
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__aref(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MRB_OPSYM__oror
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__oror(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MRB_OPSYM__cmp
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__cmp(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MRB_OPSYM__eqq
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__eqq(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MRB_OPSYM__aset
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM__aset(mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: MRB_PRESYM_DEFINE_VAR_AND_INITER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MRB_PRESYM_INIT_SYMBOLS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/disable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PRESYM_INIT_SYMBOLS(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: MRB_OPSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: MRB_CVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: MRB_IVSYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: MRB_SYM_B
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: MRB_SYM_Q
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: MRB_SYM_E
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MRB_SYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: MRB_OPSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_OPSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: MRB_CVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_CVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: MRB_IVSYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_IVSYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: MRB_SYM_B_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_B_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MRB_SYM_Q_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_Q_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MRB_SYM_E_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_E_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MRB_SYM_2
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_SYM_2(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: MRB_PRESYM_DEFINE_VAR_AND_INITER
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MRB_PRESYM_INIT_SYMBOLS
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PRESYM_INIT_SYMBOLS(mrb, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MRB_ERROR_SYM
    functionSourceFile: /src/h2o/deps/mruby/include/mruby/presym/enable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_ERROR_SYM(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: mrb_c_extension_example_gem_test
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_c_extension_example_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:8,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:9,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 8
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: mrb_c_method
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
    functionUses: 0
    functionsReached:
    - mrb_ensure_string_type
    - printf
    - mrb_str_to_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_c_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:16,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:17,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: mrb_c_extension_example_gem_init
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_c_extension_example_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: mrb_c_extension_example_gem_final
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_c_extension_example_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:8,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:9,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 8
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: mrb_c_method
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
    functionUses: 0
    functionsReached:
    - mrb_ensure_string_type
    - printf
    - mrb_str_to_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_c_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:16,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:17,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: mrb_c_and_ruby_extension_example_gem_init
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_c_and_ruby_extension_example_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: mrb_c_and_ruby_extension_example_gem_final
    functionSourceFile: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_c_and_ruby_extension_example_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: INT_OVERFLOW_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_OVERFLOW_P(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: UINT_OVERFLOW_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT_OVERFLOW_P(n)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: hex2int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hex2int(unsigned char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: make_base64_dec_tab
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void make_base64_dec_tab(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:109,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:111,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - str
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 11
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: str_len_ensure
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - RSTRING_LEN
    - mrb_str_resize
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value str_len_ensure(mrb_state *mrb, mrb_value str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:126,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:127,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: pack_char
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - mrb_integer
    linkageType: ''
    returnType: int
    signature: int pack_char(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx,
      unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:135,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:135,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:137,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - void*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: unpack_char
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_ary_push
    - mrb_fixnum_value
    linkageType: ''
    returnType: int
    signature: int unpack_char(mrb_state *mrb, const void *src, int srclen, mrb_value
      ary, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:146,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:147,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:149,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:150,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:152,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 12
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: pack_short
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - mrb_integer
    linkageType: ''
    returnType: int
    signature: int pack_short(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int
      sidx, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:171,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 8
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: unpack_short
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_ary_push
    - mrb_fixnum_value
    linkageType: ''
    returnType: int
    signature: int unpack_short(mrb_state *mrb, const unsigned char *src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:180,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:181,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:183,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:184,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:185,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:186,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:188,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:189,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:190,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 175
    functionDepth: 12
    functionLinenumber: 175
    functionLinenumberEnd: 194
    functionName: pack_long
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - mrb_integer
    linkageType: ''
    returnType: int
    signature: int pack_long(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx,
      unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:222,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - len
    - n
    argTypes:
    - char*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 226
    functionName: u32tostr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - snprintf
    - memmove
    linkageType: ''
    returnType: void
    signature: void u32tostr(char *buf, size_t len, uint32_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT_OVERFLOW_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:253,1
    - Dst: u32tostr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:254,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:255,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:260,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 229
    functionDepth: 8
    functionLinenumber: 229
    functionLinenumberEnd: 262
    functionName: unpack_long
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - UINT_OVERFLOW_P
    - u32tostr
    - mrb_ary_push
    - mrb_int_value
    - mrb_raisef
    linkageType: ''
    returnType: int
    signature: int unpack_long(mrb_state *mrb, const unsigned char *src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:269,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:270,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:272,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:273,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:274,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:275,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:276,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:277,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:278,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:279,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:281,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:282,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:283,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:284,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:285,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:286,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:287,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 264
    functionDepth: 12
    functionLinenumber: 264
    functionLinenumberEnd: 291
    functionName: pack_quad
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - mrb_integer
    linkageType: ''
    returnType: int
    signature: int pack_quad(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx,
      unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:318,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - len
    - n
    argTypes:
    - char*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 322
    functionName: u64tostr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - snprintf
    - memmove
    linkageType: ''
    returnType: void
    signature: void u64tostr(char *buf, size_t len, uint64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u64tostr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:339,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - len
    - n
    argTypes:
    - char*
    - size_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 343
    functionName: i64tostr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - snprintf
    - u64tostr
    linkageType: ''
    returnType: void
    signature: void i64tostr(char *buf, size_t len, int64_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INT_OVERFLOW_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:369,1
    - Dst: i64tostr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:370,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:371,1
    - Dst: UINT_OVERFLOW_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:376,1
    - Dst: u64tostr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:377,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:378,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:382,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 346
    functionDepth: 8
    functionLinenumber: 346
    functionLinenumberEnd: 384
    functionName: unpack_quad
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - UINT_OVERFLOW_P
    - INT_OVERFLOW_P
    - u64tostr
    - mrb_ary_push
    - mrb_int_value
    - mrb_raisef
    - i64tostr
    linkageType: ''
    returnType: int
    signature: int unpack_quad(mrb_state *mrb, const unsigned char *src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:389,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:394,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:400,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 12
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: pack_BER
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - RSTRING_PTR
    - str_len_ensure
    - mrb_integer
    linkageType: ''
    returnType: int
    signature: int pack_BER(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx,
      unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:421,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:427,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 410
    functionDepth: 8
    functionLinenumber: 410
    functionLinenumberEnd: 429
    functionName: unpack_BER
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_int_value
    - mrb_ary_push
    linkageType: ''
    returnType: int
    signature: int unpack_BER(mrb_state *mrb, const unsigned char *src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:438,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:439,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:443,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:443,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:447,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:453,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:457,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 432
    functionDepth: 12
    functionLinenumber: 432
    functionLinenumberEnd: 462
    functionName: pack_double
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_float
    - RSTRING_PTR
    - str_len_ensure
    linkageType: ''
    returnType: int
    signature: int pack_double(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int
      sidx, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:473,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:487,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:490,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 464
    functionDepth: 8
    functionLinenumber: 464
    functionLinenumberEnd: 493
    functionName: unpack_double
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - memcpy
    - mrb_ary_push
    linkageType: ''
    returnType: int
    signature: int unpack_double(mrb_state *mrb, const unsigned char * src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:501,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:502,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:506,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:506,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:510,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:516,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:520,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - mrb
    - o
    - str
    - sidx
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 495
    functionDepth: 12
    functionLinenumber: 495
    functionLinenumberEnd: 525
    functionName: pack_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_float
    - RSTRING_PTR
    - str_len_ensure
    linkageType: ''
    returnType: int
    signature: int pack_float(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int
      sidx, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:536,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:550,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:553,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 527
    functionDepth: 8
    functionLinenumber: 527
    functionLinenumberEnd: 556
    functionName: unpack_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - memcpy
    - mrb_ary_push
    linkageType: ''
    returnType: int
    signature: int unpack_float(mrb_state *mrb, const unsigned char * src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:566,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:593,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:596,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:597,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - mrb
    - o
    - str
    - sidx
    - count
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 559
    functionDepth: 12
    functionLinenumber: 559
    functionLinenumberEnd: 600
    functionName: pack_utf8
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_raise
    - RSTRING_PTR
    - memcpy
    - str_len_ensure
    linkageType: ''
    returnType: int
    signature: int pack_utf8(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx,
      int count, unsigned int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:626,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:639,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:658,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 3
    argNames:
    - mrb
    - p
    - lenp
    argTypes:
    - mrb_state*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 612
    functionDepth: 5
    functionLinenumber: 612
    functionLinenumberEnd: 661
    functionName: utf8_to_uv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_raisef
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long utf8_to_uv(mrb_state *mrb, const char *p, long *lenp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_to_uv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:672,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:673,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - mrb
    - src
    - srclen
    - ary
    - flags
    argTypes:
    - mrb_state*
    - unsigned char*
    - int
    - mrb_value
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 8
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: unpack_utf8
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_ary_push
    - mrb_fixnum_value
    - utf8_to_uv
    linkageType: ''
    returnType: int
    signature: int unpack_utf8(mrb_state *mrb, const unsigned char * src, int srclen,
      mrb_value ary, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:683,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:684,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:704,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:705,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - mrb
    - src
    - dst
    - didx
    - count
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 677
    functionDepth: 12
    functionLinenumber: 677
    functionLinenumberEnd: 713
    functionName: pack_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - memcpy
    - str_len_ensure
    - RSTRING_LEN
    linkageType: ''
    returnType: int
    signature: int pack_str(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int
      didx, int count, unsigned int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:729,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:737,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:743,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:744,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - mrb
    - src
    - slen
    - ary
    - count
    - flags
    argTypes:
    - mrb_state*
    - void*
    - int
    - mrb_value
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 715
    functionDepth: 8
    functionLinenumber: 715
    functionLinenumberEnd: 746
    functionName: unpack_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    - memchr
    - mrb_ary_push
    - mrb_str_new
    linkageType: ''
    returnType: int
    signature: int unpack_str(mrb_state *mrb, const void *src, int slen, mrb_value
      ary, int count, unsigned int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:756,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:757,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:773,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:774,1
    - Dst: hex2int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:780,1
    - Dst: hex2int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:785,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 6
    argNames:
    - mrb
    - src
    - dst
    - didx
    - count
    - flags
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 749
    functionDepth: 12
    functionLinenumber: 749
    functionLinenumberEnd: 793
    functionName: pack_hex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - hex2int
    - RSTRING_LEN
    linkageType: ''
    returnType: int
    signature: int pack_hex(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int
      didx, int count, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:817,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:818,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:837,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - mrb
    - src
    - slen
    - ary
    - count
    - flags
    argTypes:
    - mrb_state*
    - void*
    - int
    - mrb_value
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 795
    functionDepth: 11
    functionLinenumber: 795
    functionLinenumberEnd: 840
    functionName: unpack_hex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_ary_push
    - mrb_str_new
    - mrb_str_resize
    linkageType: ''
    returnType: int
    signature: int unpack_hex(mrb_state *mrb, const void *src, int slen, mrb_value
      ary, int count, unsigned int flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:850,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:851,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:866,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:867,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - mrb
    - src
    - dst
    - didx
    - count
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 842
    functionDepth: 12
    functionLinenumber: 842
    functionLinenumberEnd: 906
    functionName: pack_base64
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    - RSTRING_LEN
    linkageType: ''
    returnType: int
    signature: int pack_base64(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int
      didx, int count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:922,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:923,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:959,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - mrb
    - src
    - slen
    - ary
    argTypes:
    - mrb_state*
    - void*
    - int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 908
    functionDepth: 11
    functionLinenumber: 908
    functionLinenumberEnd: 962
    functionName: unpack_base64
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_ary_push
    - mrb_str_new
    - mrb_str_resize
    linkageType: ''
    returnType: int
    signature: int unpack_base64(mrb_state *mrb, const void *src, int slen, mrb_value
      ary)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:969,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:970,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1006,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1007,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1007,1
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1018,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1019,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1019,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - mrb
    - src
    - dst
    - didx
    - count
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 964
    functionDepth: 12
    functionLinenumber: 964
    functionLinenumberEnd: 1023
    functionName: pack_qenc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - memcpy
    - str_len_ensure
    - RSTRING_LEN
    linkageType: ''
    returnType: int
    signature: int pack_qenc(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int
      didx, int count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1028,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1031,1
    - Dst: hex2int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1040,1
    - Dst: hex2int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1042,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1052,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1052,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1053,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1054,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - mrb
    - src
    - slen
    - ary
    argTypes:
    - mrb_state*
    - void*
    - int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1025
    functionDepth: 11
    functionLinenumber: 1025
    functionLinenumberEnd: 1056
    functionName: unpack_qenc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_str_cat
    - RSTRING_PTR
    - mrb_ary_push
    - mrb_str_new
    - mrb_str_resize
    - hex2int
    linkageType: ''
    returnType: int
    signature: int unpack_qenc(mrb_state *mrb, const void *src, int slen, mrb_value
      ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_len_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1063,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - dst
    - didx
    - count
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1058
    functionDepth: 12
    functionLinenumber: 1058
    functionLinenumberEnd: 1068
    functionName: pack_nul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - str_len_ensure
    linkageType: ''
    returnType: int
    signature: int pack_nul(mrb_state *mrb, mrb_value dst, mrb_int didx, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - a
    - count
    - c
    argTypes:
    - mrb_state*
    - int
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1076
    functionName: check_x
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void check_x(mrb_state *mrb, int a, int count, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - tmpl
    argTypes:
    - mrb_state*
    - struct tmpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1078
    functionDepth: 9
    functionLinenumber: 1078
    functionLinenumberEnd: 1083
    functionName: prepare_tmpl
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    linkageType: ''
    returnType: void
    signature: void prepare_tmpl(mrb_state *mrb, struct tmpl *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - struct tmpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: has_tmpl
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - RSTRING_LEN
    linkageType: ''
    returnType: int
    signature: int has_tmpl(const struct tmpl *tmpl)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1102,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1103,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1181,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1190,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1288,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1299,1
    - Dst: mrb_int_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1301,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1303,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1314,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1315,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 256
    argCount: 7
    argNames:
    - mrb
    - tmpl
    - dirp
    - typep
    - sizep
    - countp
    - flagsp
    argTypes:
    - mrb_state*
    - struct tmpl*
    - enum pack_dir*
    - enum pack_type*
    - int*
    - int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1091
    functionDepth: 5
    functionLinenumber: 1091
    functionLinenumberEnd: 1340
    functionName: read_tmpl
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - strchr
    - RSTRING_PTR
    - mrb_raise
    - RSTRING_LEN
    - mrb_int_read
    - mrb_raisef
    - ISDIGIT
    linkageType: ''
    returnType: void
    signature: void read_tmpl(mrb_state *mrb, struct tmpl *tmpl, enum pack_dir *dirp,
      enum pack_type *typep, int *sizep, int *countp, unsigned int *flagsp)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: prepare_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1354,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1356,1
    - Dst: has_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1359,1
    - Dst: read_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1360,1
    - Dst: pack_nul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1367,1
    - Dst: check_x
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1371,1
    - Dst: check_x
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1379,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1384,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1385,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1387,1
    - Dst: mrb_ary_ref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1391,1
    - Dst: mrb_ensure_int_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1393,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1397,1
    - Dst: mrb_ensure_float_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1398,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1403,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1404,1
    - Dst: pack_char
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1410,1
    - Dst: pack_short
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1413,1
    - Dst: pack_long
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1416,1
    - Dst: pack_quad
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1419,1
    - Dst: pack_BER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1422,1
    - Dst: pack_base64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1425,1
    - Dst: pack_qenc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1428,1
    - Dst: pack_hex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1431,1
    - Dst: pack_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1434,1
    - Dst: pack_double
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1438,1
    - Dst: pack_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1441,1
    - Dst: pack_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1445,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1461,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1465,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 107
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1342
    functionDepth: 13
    functionLinenumber: 1342
    functionLinenumberEnd: 1467
    functionName: mrb_pack_pack
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - mrb_ensure_float_type
    - pack_nul
    - pack_char
    - check_x
    - pack_long
    - pack_BER
    - pack_str
    - read_tmpl
    - pack_quad
    - pack_short
    - pack_base64
    - mrb_ensure_int_type
    - mrb_raise
    - RARRAY_LEN
    - mrb_string_p
    - mrb_float_p
    - pack_qenc
    - mrb_str_resize
    - pack_utf8
    - has_tmpl
    - mrb_ary_ref
    - pack_double
    - pack_hex
    - pack_float
    - mrb_str_new
    - prepare_tmpl
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_pack_pack(mrb_state *mrb, mrb_value ary)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: prepare_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1482,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1485,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1487,1
    - Dst: has_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1488,1
    - Dst: read_tmpl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1489,1
    - Dst: check_x
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1494,1
    - Dst: check_x
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1499,1
    - Dst: check_x
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1504,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1510,1
    - Dst: unpack_hex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1513,1
    - Dst: unpack_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1516,1
    - Dst: unpack_base64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1519,1
    - Dst: unpack_qenc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1523,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1532,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1532,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1537,1
    - Dst: unpack_char
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1540,1
    - Dst: unpack_short
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1543,1
    - Dst: unpack_long
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1546,1
    - Dst: unpack_quad
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1549,1
    - Dst: unpack_BER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1552,1
    - Dst: unpack_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1556,1
    - Dst: unpack_double
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1559,1
    - Dst: unpack_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1563,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1566,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1576,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1577,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1579,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    argCount: 3
    argNames:
    - mrb
    - str
    - single
    argTypes:
    - mrb_state*
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1469
    functionDepth: 12
    functionLinenumber: 1469
    functionLinenumberEnd: 1582
    functionName: pack_unpack
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - check_x
    - read_tmpl
    - unpack_hex
    - unpack_float
    - unpack_char
    - unpack_base64
    - RARRAY_PTR
    - mrb_ary_new
    - RSTRING_PTR
    - mrb_raise
    - unpack_BER
    - unpack_str
    - RARRAY_LEN
    - unpack_long
    - unpack_quad
    - unpack_utf8
    - mrb_nil_value
    - unpack_short
    - has_tmpl
    - unpack_double
    - RSTRING_LEN
    - mrb_ary_push
    - unpack_qenc
    - prepare_tmpl
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value pack_unpack(mrb_state *mrb, mrb_value str, int single)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_unpack
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1584
    functionDepth: 13
    functionLinenumber: 1584
    functionLinenumberEnd: 1588
    functionName: mrb_pack_unpack
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - pack_unpack
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_pack_unpack(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_unpack
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1590
    functionDepth: 13
    functionLinenumber: 1590
    functionLinenumberEnd: 1594
    functionName: mrb_pack_unpack1
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - pack_unpack
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_pack_unpack1(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_base64_dec_tab
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1599,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1601,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1601,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1602,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1602,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1603,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1596
    functionDepth: 2
    functionLinenumber: 1596
    functionLinenumberEnd: 1604
    functionName: mrb_mruby_pack_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached:
    - make_base64_dec_tab
    - MRB_ARGS_REQ
    - mrb_define_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_pack_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: mrb_mruby_pack_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_pack_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: mrb_f_nil
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_nil(mrb_state *mrb, mrb_value cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:56,1
    - Dst: mrb_iv_name_sym_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:57,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:58,1
    - Dst: mrb_iv_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 9
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: mrb_obj_ivar_defined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - mrb_iv_name_sym_check
    - mrb_iv_defined
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_ivar_defined(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:86,1
    - Dst: mrb_iv_name_sym_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:87,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 9
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: mrb_obj_ivar_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_get_args
    - mrb_iv_name_sym_check
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_ivar_get(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:117,1
    - Dst: mrb_iv_name_sym_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:118,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: mrb_obj_ivar_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_iv_set
    - mrb_get_args
    - mrb_iv_name_sym_check
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_ivar_set(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_local_variables
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: mrb_local_variables
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_proc_local_variables
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_local_variables(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:155,1
    - Dst: kh_put
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:157,1
    - Dst: kh_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:161,1
    - Dst: kh_end
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:161,1
    - Dst: kh_put
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - mid
    - m
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_method_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: method_entry_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - kh_end
    - MRB_METHOD_UNDEF_P
    - kh_put
    - kh_get
    linkageType: ''
    returnType: int
    signature: int method_entry_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m, void
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mt_foreach
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - klass
    - set
    - undef
    argTypes:
    - mrb_state*
    - struct RClass*
    - khash_t*
    - khash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: method_entry_loop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_mt_foreach
    linkageType: ''
    returnType: void
    signature: void method_entry_loop(mrb_state *mrb, struct RClass *klass, khash_t(st)
      *set, khash_t(st) *undef)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:182,1
    - Dst: kh_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:182,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:186,1
    - Dst: method_entry_loop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:188,1
    - Dst: khash_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:191,1
    - Dst: kh_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:191,1
    - Dst: method_entry_loop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:195,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:199,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:202,1
    - Dst: kh_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:202,1
    - Dst: kh_end
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:203,1
    - Dst: kh_exist
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:204,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:205,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:205,1
    - Dst: kh_key
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:205,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - mrb
    - recur
    - klass
    argTypes:
    - mrb_state*
    - mrb_bool
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: mrb_class_instance_method_list
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - kh_init
    - MRB_CLASS_ORIGIN
    - kh_end
    - kh_key
    - kh_size
    - mrb_ary_push
    - mrb_symbol_value
    - mrb_ary_new_capa
    - kh_exist
    - method_entry_loop
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_instance_method_list(mrb_state *mrb, mrb_bool recur,
      struct RClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_instance_method_list
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:216,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - recur
    - obj
    - flag
    argTypes:
    - mrb_state*
    - mrb_bool
    - mrb_value
    - mrb_method_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 9
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: mrb_obj_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_class_instance_method_list
    - mrb_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_methods(mrb_state *mrb, mrb_bool recur, mrb_value
      obj, mrb_method_flag_t flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:241,1
    - Dst: mrb_obj_methods
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 10
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: mrb_obj_methods_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_obj_methods
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_methods_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:258,1
    - Dst: mrb_obj_methods
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 10
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: mrb_obj_private_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_obj_methods
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_private_methods(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:275,1
    - Dst: mrb_obj_methods
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 10
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: mrb_obj_protected_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_obj_methods
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_protected_methods(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:292,1
    - Dst: mrb_obj_methods
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 10
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: mrb_obj_public_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_obj_methods
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_public_methods(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:302,1
    - Dst: kh_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:302,1
    - Dst: khash_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:303,1
    - Dst: kh_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:303,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:305,1
    - Dst: method_entry_loop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:308,1
    - Dst: method_entry_loop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:313,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:318,1
    - Dst: kh_end
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:319,1
    - Dst: kh_exist
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:320,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:321,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:321,1
    - Dst: kh_key
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:321,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:324,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:325,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - mrb
    - recur
    - obj
    argTypes:
    - mrb_state*
    - mrb_bool
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 296
    functionDepth: 9
    functionLinenumber: 296
    functionLinenumberEnd: 328
    functionName: mrb_obj_singleton_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - kh_init
    - kh_end
    - kh_key
    - mrb_ary_push
    - mrb_class
    - mrb_symbol_value
    - kh_exist
    - method_entry_loop
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_singleton_methods(mrb_state *mrb, mrb_bool recur,
      mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:367,1
    - Dst: mrb_obj_singleton_methods
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 10
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: mrb_obj_singleton_methods_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_obj_singleton_methods
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_singleton_methods_m(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_define_method_m
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:376,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:376,1
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 15
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: mod_define_singleton_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_mod_define_method_m
    - mrb_singleton_class
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mod_define_singleton_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:383,1
    - Dst: mrb_ident_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - name
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: cv_name_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_ident_p
    - ISDIGIT
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool cv_name_p(mrb_state *mrb, const char *name, mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:390,1
    - Dst: cv_name_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:391,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - id
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 7
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: check_cv_name_sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_name_error
    - cv_name_p
    - mrb_sym_name_len
    linkageType: ''
    returnType: void
    signature: void check_cv_name_sym(mrb_state *mrb, mrb_sym id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:425,1
    - Dst: check_cv_name_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:426,1
    - Dst: mrb_iv_remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:428,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:429,1
    - Dst: mrb_cv_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:431,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:432,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:435,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 9
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: mrb_mod_remove_cvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - check_cv_name_sym
    - mrb_cv_defined
    - mrb_name_error
    - mrb_iv_remove
    - mrb_nil_value
    - mrb_undef_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_remove_cvar(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:461,1
    - Dst: check_cv_name_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:462,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:463,1
    - Dst: mrb_cv_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 9
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: mrb_mod_cvar_defined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_cv_defined
    - mrb_bool_value
    - mrb_get_args
    - check_cv_name_sym
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_cvar_defined(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:486,1
    - Dst: check_cv_name_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:487,1
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 9
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: mrb_mod_cvar_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_cv_get
    - check_cv_name_sym
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_cvar_get(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:515,1
    - Dst: check_cv_name_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:516,1
    - Dst: mrb_cv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 9
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: mrb_mod_cvar_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_cv_set
    - mrb_get_args
    - check_cv_name_sym
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_cvar_set(mrb_state *mrb, mrb_value mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:525,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:528,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:529,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:533,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 521
    functionDepth: 9
    functionLinenumber: 521
    functionLinenumberEnd: 540
    functionName: mrb_mod_included_modules
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - MRB_CLASS_ORIGIN
    - mrb_class_ptr
    - mrb_ary_push
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_included_modules(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:573,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:575,1
    - Dst: mrb_class_instance_method_list
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 9
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: mrb_mod_instance_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_class_instance_method_list
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_instance_methods(mrb_state *mrb, mrb_value mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:584,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:585,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - mid
    - m
    - p
    argTypes:
    - mrb_state*
    - mrb_sym
    - mrb_method_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 579
    functionDepth: 8
    functionLinenumber: 579
    functionLinenumberEnd: 588
    functionName: undefined_method_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_UNDEF_P
    - mrb_symbol_value
    - mrb_ary_push
    linkageType: ''
    returnType: int
    signature: int undefined_method_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m,
      void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:599,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:600,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:602,1
    - Dst: MRB_CLASS_ORIGIN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:605,1
    - Dst: mrb_mt_foreach
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 9
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: mrb_mod_undefined_methods
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - MRB_CLASS_ORIGIN
    - mrb_get_args
    - mrb_class_ptr
    - mrb_mt_foreach
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_undefined_methods(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:626,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:628,1
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:629,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:629,1
    - Dst: mrb_remove_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:631,1
    - Dst: mrb_obj_to_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:631,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:632,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 621
    functionDepth: 9
    functionLinenumber: 621
    functionLinenumberEnd: 636
    functionName: mrb_mod_remove_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_remove_method
    - mrb_get_args
    - mrb_class_ptr
    - mrb_funcall_id
    - mrb_obj_to_sym
    - mrb_obj_ptr
    - mrb_check_frozen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:641,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 643
    functionName: mrb_mod_s_constants
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_s_constants(mrb_state *mrb, mrb_value mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:652,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:654,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:655,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:656,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:660,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 645
    functionDepth: 9
    functionLinenumber: 645
    functionLinenumberEnd: 666
    functionName: mrb_mod_s_nesting
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - MRB_PROC_SCOPE_P
    - mrb_obj_value
    - mrb_ary_push
    - MRB_PROC_CFUNC_P
    - MRB_PROC_TARGET_CLASS
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:677,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:677,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:678,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:678,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:680,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:680,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:681,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:681,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:682,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:682,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:683,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:683,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:684,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:684,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:685,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:685,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:686,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:686,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:687,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:687,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:688,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:688,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:689,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:689,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:690,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:690,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:690,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:691,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:691,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:691,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:691,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:693,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:693,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:694,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:694,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:695,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:695,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:696,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:696,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:697,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:697,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:698,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:698,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:699,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:699,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:700,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:700,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:701,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:701,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:702,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:702,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:703,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:703,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:704,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:704,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:705,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 706
    functionName: mrb_mruby_metaprog_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - MRB_ARGS_REST
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_metaprog_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: mrb_mruby_metaprog_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_metaprog_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: nil_to_a
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_to_a(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: nil_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_to_f(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: nil_to_h
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_hash_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_to_h(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: nil_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value nil_to_i(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: mrb_f_itself
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_itself(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:104,1
    - Dst: mrb_singleton_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:105,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:107,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:109,1
    - Dst: mrb_yield_cont
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 9
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: mrb_obj_instance_exec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_yield_with_class
    - mrb_get_args
    - mrb_vm_ci_target_class_set
    - mrb_yield_cont
    - mrb_singleton_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_obj_instance_exec(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:118,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:118,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:120,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:120,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:122,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:122,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:123,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:123,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:125,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:125,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:127,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:127,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:127,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:127,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: mrb_mruby_object_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_SYM
    - MRB_ARGS_BLOCK
    - MRB_ARGS_NONE
    - MRB_ARGS_ANY
    - mrb_class_get_id
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_object_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: mrb_mruby_object_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_object_ext_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: proc_in_c
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c
    functionUses: 0
    functionsReached:
    - mrb_load_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value proc_in_c(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c:13,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: mrb_mruby_proc_binding_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_binding_gem_test(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_binding_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:16,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:17,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:21,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:21,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:24,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:27,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:28,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:30,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:30,1
    - Dst: mrb_binding_wrap_lvspace
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:33,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:34,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:34,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:34,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:35,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:35,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:36,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:36,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:36,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:37,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:37,1
    - Dst: mrb_proc_source_location
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:37,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - procval
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 39
    functionName: mrb_proc_binding
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_assert
    - MRB_ENV_LEN
    - MRB_PROC_ENV
    - mrb_proc_ptr
    - mrb_iv_set
    - mrb_obj_value
    - mrb_proc_source_location
    - mrb_binding_alloc
    - MRB_PROC_CFUNC_P
    - mrb_nil_value
    - mrb_binding_wrap_lvspace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_binding(mrb_state *mrb, mrb_value procval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:44,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: mrb_mruby_proc_binding_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_binding_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: mrb_mruby_proc_binding_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_binding_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_memsize_of_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - irep
    argTypes:
    - mrb_state*
    - struct mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: os_memsize_of_irep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 1
    functionsReached:
    - os_memsize_of_irep
    linkageType: ''
    returnType: size_t
    signature: size_t os_memsize_of_irep(mrb_state* state, const struct mrb_irep *irep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:35,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:35,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:36,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:37,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:38,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:41,1
    - Dst: os_memsize_of_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - method_obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: os_memsize_of_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - os_memsize_of_irep
    - mrb_proc_ptr
    - mrb_intern_lit
    - mrb_obj_ptr
    - MRB_PROC_CFUNC_P
    - mrb_nil_p
    - mrb_obj_iv_get
    linkageType: ''
    returnType: size_t
    signature: size_t os_memsize_of_method(mrb_state* mrb, mrb_value method_obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:48,1
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:50,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:50,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:51,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - obj
    - classname
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: obj_is_kind_of_checked
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_const_defined
    - mrb_obj_is_kind_of
    - mrb_obj_value
    - mrb_class_get
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool obj_is_kind_of_checked(mrb_state *mrb, mrb_value obj, const
      char *classname)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:63,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:65,1
    - Dst: RSTR_EMBED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:66,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:66,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:66,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:66,1
    - Dst: RSTRING_CAPA
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:67,1
    - Dst: mrb_gc_mark_mt_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:75,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:75,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:79,1
    - Dst: mrb_obj_iv_tbl_memsize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:80,1
    - Dst: obj_is_kind_of_checked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:81,1
    - Dst: obj_is_kind_of_checked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:82,1
    - Dst: os_memsize_of_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:83,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:88,1
    - Dst: mrb_hash_memsize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:89,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:94,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:97,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:102,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:103,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:104,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:105,1
    - Dst: os_memsize_of_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:105,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:110,1
    - Dst: mrb_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:115,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:119,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:129,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:136,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:145,1
    - Dst: mrb_objspace_page_slot_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:151,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 170
    functionName: os_memsize_of_object
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_ptr
    - RSTR_EMBED_P
    - mrb_type
    - mrb_objspace_page_slot_size
    - obj_is_kind_of_checked
    - mrb_proc_ptr
    - os_memsize_of_method
    - RSTR_SHARED_P
    - RARRAY_LEN
    - mrb_hash_memsize
    - MRB_ENV_LEN
    - mrb_gc_mark_mt_size
    - RSTRING_CAPA
    - mrb_immediate_p
    - MRB_PROC_CFUNC_P
    - RSTRING
    - mrb_obj_iv_tbl_memsize
    - os_memsize_of_irep
    linkageType: ''
    returnType: size_t
    signature: size_t os_memsize_of_object(mrb_state* mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:193,1
    - Dst: os_memsize_of_object
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:195,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: os_memsize_of
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_value
    - mrb_get_args
    - os_memsize_of_object
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value os_memsize_of(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:218,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:218,1
    - Dst: os_memsize_of_object
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:219,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - obj
    - d
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 221
    functionName: os_memsize_of_all_cb
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - os_memsize_of_object
    - mrb_obj_is_kind_of
    linkageType: ''
    returnType: int
    signature: int os_memsize_of_all_cb(mrb_state *mrb, struct RBasic *obj, void *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:235,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:236,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 12
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: os_memsize_of_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - mrb_objspace_each_objects
    - mrb_get_args
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value os_memsize_of_all(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:243,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:244,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:244,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:245,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: mrb_mruby_os_memsize_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_REQ
    - mrb_module_get
    - mrb_define_class_method
    - MRB_ARGS_OPT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_os_memsize_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: mrb_mruby_os_memsize_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_os_memsize_gem_final(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_object_dead_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - obj
    - data
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: os_count_object_type
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached:
    - mrb_object_dead_p
    linkageType: ''
    returnType: int
    signature: int os_count_object_type(mrb_state *mrb, struct RBasic *obj, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:65,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:66,1
    - Dst: mrb_hash_empty_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:69,1
    - Dst: mrb_hash_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:70,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:73,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:75,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:75,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:75,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:75,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:76,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:76,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:76,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:76,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:82,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:83,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:84,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:85,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:86,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:87,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:88,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:89,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:90,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:91,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:92,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:93,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:94,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:95,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:96,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:97,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:98,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:99,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:100,1
    - Dst: COUNT_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:101,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:104,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:107,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 58
    functionDepth: 12
    functionLinenumber: 58
    functionLinenumberEnd: 111
    functionName: os_count_objects
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - COUNT_TYPE
    - mrb_get_args
    - mrb_hash_empty_p
    - mrb_hash_set
    - mrb_hash_new
    - mrb_symbol_value
    - mrb_fixnum_value
    - mrb_objspace_each_objects
    - mrb_hash_clear
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value os_count_objects(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: COUNT_TYPE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_TYPE(t)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_object_dead_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:125,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:142,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:142,1
    - Dst: mrb_yield
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:146,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - mrb
    - obj
    - ud
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 149
    functionName: os_each_object_cb
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_yield
    - mrb_object_dead_p
    - mrb_obj_is_kind_of
    linkageType: ''
    returnType: int
    signature: int os_each_object_cb(mrb_state *mrb, struct RBasic *obj, void *ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:169,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:170,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 12
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: os_each_object
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached:
    - mrb_objspace_each_objects
    - mrb_get_args
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value os_each_object(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:177,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:178,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:178,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:179,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: mrb_mruby_objectspace_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached:
    - mrb_define_module
    - mrb_define_class_method
    - MRB_ARGS_OPT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_objectspace_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: mrb_mruby_objectspace_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_objectspace_gem_final(mrb_state *mrb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:29,1
    - Dst: mrb_class_defined_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:31,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:31,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:32,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:32,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:32,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:33,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:34,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:36,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:36,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:37,1
    - Dst: mrb_proc_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:37,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:38,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:39,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:43,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:43,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:44,1
    - Dst: mrb_env_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:44,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:45,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:46,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:56,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:57,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:64,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:67,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:70,1
    - Dst: mrb_parse_nstring
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:72,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:76,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:77,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:84,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:86,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:87,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:90,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:96,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:100,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:101,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:101,1
    - Dst: mrb_generate_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:104,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:107,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:108,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:109,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:118,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:119,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:122,1
    - Dst: mrb_env_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:124,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:130,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:134,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:137,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:138,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 6
    argNames:
    - mrb
    - s
    - len
    - binding
    - file
    - line
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - mrb_value
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 141
    functionName: create_proc_from_string
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached:
    - mrb_obj_is_kind_of
    - MRB_PROC_TARGET_CLASS
    - mrb_nil_p
    - mrb_env_new
    - mrb_vm_ci_env
    - mrbc_context_new
    - mrb_assert
    - mrb_exc_new_str
    - mrb_proc_ptr
    - mrb_raise
    - mrb_class_defined_id
    - mrb_iv_get
    - mrb_format
    - mrb_parser_free
    - MRB_SYM
    - mrb_obj_class
    - mrb_exc_raise
    - mrb_field_write_barrier
    - mrb_generate_code
    - MRB_PROC_CFUNC_P
    - mrbc_context_free
    - mrb_class_get_id
    - strlen
    - mrb_env_p
    - mrb_obj_ptr
    - mrbc_filename
    - mrb_vm_ci_target_class_set
    - mrb_parse_nstring
    - mrb_raisef
    - mrb_proc_p
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      create_proc_from_string(mrb_state *mrb, const char *s, mrb_int len, mrb_value
      binding, const char *file, mrb_int line)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:150,1
    - Dst: mrb_exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - self
    - proc
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 8
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: exec_irep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 4
    functionsReached:
    - mrb_nil_value
    - mrb_exec_irep
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value exec_irep(mrb_state *mrb, mrb_value self, struct RProc *proc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:159,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:164,1
    - Dst: create_proc_from_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:166,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:167,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:168,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:168,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:170,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:170,1
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: f_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_assert
    - exec_irep
    - mrb_get_args
    - mrb_iv_get
    - MRB_PROC_CFUNC_P
    - mrb_nil_value
    - mrb_nil_p
    - create_proc_from_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value f_eval(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_block_given_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:177,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:185,1
    - Dst: mrb_singleton_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:186,1
    - Dst: create_proc_from_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:187,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:187,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:188,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:188,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:189,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:189,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:190,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:190,1
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:191,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:194,1
    - Dst: mrb_obj_instance_eval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 174
    functionDepth: 9
    functionLinenumber: 174
    functionLinenumberEnd: 197
    functionName: f_instance_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - exec_irep
    - mrb_singleton_class
    - mrb_get_args
    - mrb_class_ptr
    - mrb_block_given_p
    - mrb_vm_ci_target_class_set
    - mrb_obj_instance_eval
    - MRB_PROC_SET_TARGET_CLASS
    - MRB_PROC_CFUNC_P
    - mrb_nil_value
    - create_proc_from_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value f_instance_eval(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_block_given_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:202,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:209,1
    - Dst: create_proc_from_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:210,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:210,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:211,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:211,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:212,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:212,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:213,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:213,1
    - Dst: exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:214,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:217,1
    - Dst: mrb_mod_module_eval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 220
    functionName: f_class_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - exec_irep
    - mrb_get_args
    - mrb_class_ptr
    - mrb_block_given_p
    - mrb_vm_ci_target_class_set
    - MRB_PROC_SET_TARGET_CLASS
    - MRB_PROC_CFUNC_P
    - mrb_nil_value
    - mrb_mod_module_eval
    - create_proc_from_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value f_class_eval(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:225,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:225,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:226,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:227,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: mrb_mruby_eval_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_module_function
    - mrb_define_method_id
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - mrb_class_get_id
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_eval_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: mrb_mruby_eval_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_eval_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:7,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:10,1
    - Dst: mrb_true_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:11,1
    - Dst: mrb_false_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:12,1
    - Dst: mrb_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:13,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 4
    functionDepth: 9
    functionLinenumber: 4
    functionLinenumberEnd: 18
    functionName: f_exit
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
    functionUses: 0
    functionsReached:
    - mrb_true_p
    - mrb_true_value
    - mrb_get_args
    - mrb_int
    - exit
    - mrb_false_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value f_exit(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:23,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: mrb_mruby_exit_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_exit_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: mrb_mruby_exit_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_exit_gem_final(mrb_state* mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:9,1
    - Dst: mrb_istruct_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:10,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:11,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:13,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:14,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:18,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:22,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 7
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: istruct_test_initialize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_istruct_ptr
    - mrb_istruct_size
    - mrb_get_arg1
    - mrb_integer_p
    - strncpy
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_initialize(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: if
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 2
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: else
    signature: else if (mrb_float_p(object))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: if
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 2
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: else
    signature: else if (mrb_string_p(object))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:35,1
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 8
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: istruct_test_to_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_istruct_ptr
    - mrb_str_new_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:41,1
    - Dst: mrb_istruct_size
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: istruct_test_length
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_istruct_size
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_length(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:47,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:49,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:49,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:51,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:53,1
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: istruct_test_test_receive
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_istruct_ptr
    - mrb_raise
    - mrb_bool_value
    - mrb_class_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_test_receive(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:60,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:61,1
    - Dst: mrb_istruct_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:65,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:65,1
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:66,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:67,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:69,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: istruct_test_test_receive_direct
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_istruct_ptr
    - mrb_obj_is_kind_of
    - mrb_istruct_p
    - mrb_raise
    - mrb_get_args
    - mrb_false_value
    - mrb_bool_value
    - mrb_class_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_test_receive_direct(mrb_state *mrb, mrb_value
      self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:76,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:77,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: istruct_test_mutate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_istruct_ptr
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value istruct_test_mutate(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:85,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:86,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:87,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:87,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:88,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:88,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:89,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:89,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:90,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:90,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:91,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:91,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:92,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: mrb_mruby_test_inline_struct_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_test_inline_struct_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MIRB_ADD_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_ADD_HISTORY(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MIRB_READLINE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_READLINE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MIRB_LINE_FREE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_LINE_FREE(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MIRB_LINE_FREE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_LINE_FREE(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MIRB_WRITE_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_WRITE_HISTORY(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MIRB_READ_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_READ_HISTORY(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MIRB_USING_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_USING_HISTORY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MIRB_ADD_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_ADD_HISTORY(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MIRB_READLINE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_READLINE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MIRB_LINE_FREE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_LINE_FREE(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MIRB_WRITE_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_WRITE_HISTORY(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MIRB_READ_HISTORY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_READ_HISTORY(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - env
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: MIRB_SIGSETJMP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_SIGSETJMP(env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - env
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MIRB_SIGLONGJMP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_SIGLONGJMP(env, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - env
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: MIRB_SIGSETJMP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_SIGSETJMP(env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - env
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: MIRB_SIGLONGJMP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIRB_SIGLONGJMP(env, val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:84,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:88,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:93,1
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:96,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:98,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: get_history_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - getenv
    - snprintf
    - mrb_malloc_simple
    linkageType: ''
    returnType: char
    signature: 'char *

      get_history_path(mrb_state *mrb)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:118,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:118,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:121,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:124,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:124,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:124,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:127,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:128,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:130,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:130,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:130,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:131,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:131,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:132,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - obj
    - prompt
    argTypes:
    - mrb_state*
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 449
    functionsReached:
    - MRB_SYM
    - mrb_obj_as_string
    - fwrite
    - mrb_locale_free
    - RSTRING_PTR
    - fputs
    - mrb_funcall_id
    - putc
    - RSTRING_LEN
    - mrb_locale_from_utf8
    - mrb_obj_value
    - strlen
    - mrb_string_p
    linkageType: ''
    returnType: void
    signature: void p(mrb_state *mrb, mrb_value obj, int prompt)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:159,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:162,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:165,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct mrb_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 231
    functionName: is_code_block_open
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool is_code_block_open(struct mrb_parser_state *parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:258,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 261
    functionName: usage
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 7
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:266,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:267,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - item
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: dup_arg_item
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      dup_arg_item(mrb_state *mrb, const char *item)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:292,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:299,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:302,1
    - Dst: dup_arg_item
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:304,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:307,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:311,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:312,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:313,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:315,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:319,1
    - Dst: mrb_show_copyright
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:320,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:321,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:330,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:332,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:338,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:339,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - args
    argTypes:
    - mrb_state*
    - int
    - char**
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 343
    functionName: parse_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - mrb_show_version
    - exit
    - dup_arg_item
    - mrb_realloc
    - strcmp
    - memcpy
    - fopen
    - printf
    - mrb_show_copyright
    - mrb_malloc
    linkageType: ''
    returnType: int
    signature: int parse_args(mrb_state *mrb, int argc, char **argv, struct _args
      *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:349,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:350,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:353,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:355,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: cleanup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - fclose
    - mrb_free
    - mrb_close
    linkageType: ''
    returnType: void
    signature: void cleanup(mrb_state *mrb, struct _args *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: print_hint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_hint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:373,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:376,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code_block_open
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: print_cmdline
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: void print_cmdline(int code_block_open)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:388,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:391,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:395,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - word
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 405
    functionName: check_keyword
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int check_keyword(const char *buf, const char *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: ctrl_c_handler
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctrl_c_handler(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIRB_SIGLONGJMP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: ctrl_c_handler
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - MIRB_SIGLONGJMP
    linkageType: ''
    returnType: void
    signature: void ctrl_c_handler(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:430,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:432,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:433,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:434,1
    - Dst: mrb_generate_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:437,1
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:438,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:438,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - cxt
    argTypes:
    - mrb_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 441
    functionName: decl_lv_underscore
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - mrb_parse_string
    - fputs
    - mrb_vm_run
    - exit
    - mrb_close
    - mrb_generate_code
    - mrb_parser_free
    - mrb_top_self
    linkageType: ''
    returnType: void
    signature: void decl_lv_underscore(mrb_state *mrb, mrbc_context *cxt)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:469,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:471,1
    - Dst: parse_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:475,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:477,1
    - Dst: usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:478,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:482,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:484,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:486,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:486,1
    - Dst: mrb_utf8_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:487,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:490,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:491,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:491,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:491,1
    - Dst: get_history_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:494,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:496,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:497,1
    - Dst: MIRB_USING_HISTORY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:501,1
    - Dst: MIRB_READ_HISTORY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:502,1
    - Dst: print_hint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:505,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:507,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:512,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:514,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:515,1
    - Dst: mrb_load_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:518,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:519,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:520,1
    - Dst: mrb_vm_ci_env_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:521,1
    - Dst: mrb_env_unshare
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:522,1
    - Dst: mrbc_cleanup_local_variables
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:523,1
    - Dst: decl_lv_underscore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:527,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:532,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:535,1
    - Dst: fgets
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:541,1
    - Dst: print_cmdline
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:547,1
    - Dst: signal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:549,1
    - Dst: getchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:551,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:554,1
    - Dst: signal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:559,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:564,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:569,1
    - Dst: MIRB_SIGSETJMP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:576,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:583,1
    - Dst: signal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:585,1
    - Dst: MIRB_READLINE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:586,1
    - Dst: signal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:587,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:590,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:593,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:594,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:597,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:598,1
    - Dst: MIRB_ADD_HISTORY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:599,1
    - Dst: MIRB_LINE_FREE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:600,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:605,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:605,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:606,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:609,1
    - Dst: check_keyword
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:612,1
    - Dst: check_keyword
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:612,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:615,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:618,1
    - Dst: abort
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:619,1
    - Dst: mrb_parser_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:622,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:624,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:628,1
    - Dst: mrb_parser_parse
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:630,1
    - Dst: is_code_block_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:631,1
    - Dst: mrb_utf8_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:632,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:640,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:641,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:642,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:646,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:647,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:648,1
    - Dst: mrb_generate_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:652,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:654,1
    - Dst: mrb_codedump_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:659,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:663,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:664,1
    - Dst: MRB_ENV_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:665,1
    - Dst: mrb_vm_run
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:670,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:672,1
    - Dst: p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:677,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:677,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:682,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:682,1
    - Dst: mrb_any_to_s
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:683,1
    - Dst: p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:685,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:693,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:695,1
    - Dst: MIRB_WRITE_HISTORY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:700,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:701,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:704,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:705,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:708,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:710,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:712,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c:713,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 192
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 444
    functionDepth: 10
    functionLinenumber: 444
    functionLinenumberEnd: 716
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    functionUses: 0
    functionsReached:
    - mrb_parser_parse
    - fputs
    - mrb_intern_lit
    - mrb_gc_arena_save
    - mrb_respond_to
    - mrb_any_to_s
    - fopen
    - MIRB_LINE_FREE
    - p
    - cleanup
    - mrb_vm_ci_env
    - mrbc_context_new
    - MIRB_WRITE_HISTORY
    - mrb_parser_new
    - strcat
    - decl_lv_underscore
    - mrb_gc_arena_restore
    - get_history_path
    - is_code_block_open
    - mrb_vm_run
    - mrb_codedump_all
    - parse_args
    - mrb_free
    - mrb_locale_from_utf8
    - mrb_str_new_cstr
    - printf
    - mrb_vm_ci_env_set
    - signal
    - usage
    - fclose
    - MIRB_SIGSETJMP
    - mrb_bool_value
    - mrb_parser_free
    - mrb_top_self
    - mrb_obj_value
    - strcpy
    - MRB_SYM
    - MRB_ENV_SET_LEN
    - MRB_ENV_LEN
    - mrb_utf8_from_locale
    - puts
    - mrb_close
    - mrbc_cleanup_local_variables
    - check_keyword
    - mrb_define_global_const
    - MIRB_READLINE
    - mrb_generate_code
    - mrb_ary_new_capa
    - mrbc_context_free
    - mrb_open
    - MIRB_ADD_HISTORY
    - strlen
    - MIRB_USING_HISTORY
    - mrb_locale_free
    - print_hint
    - abort
    - mrb_load_file_cxt
    - mrb_ary_push
    - mrb_env_unshare
    - fgets
    - mrb_gv_set
    - mrbc_filename
    - getchar
    - print_cmdline
    - mrb_utf8_free
    - MIRB_READ_HISTORY
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: itsdefined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsdefined(name, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: itsdefined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsdefined(name, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ENTRY_SYM
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_SYM(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ENTRY_SYM
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_SYM(e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:46,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:46,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:52,1
    - Dst: mrb_class_get_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:52,1
    - Dst: ENTRY_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:52,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:53,1
    - Dst: strerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:53,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:58,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:58,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:58,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:59,1
    - Dst: mrb_int_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:60,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:61,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:65,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:67,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:68,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:69,1
    - Dst: mrb_exc_mesg_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:71,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - mrb
    - self
    - m
    - n
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 38
    functionDepth: 13
    functionLinenumber: 38
    functionLinenumberEnd: 72
    functionName: mrb_sce_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_basic_ptr
    - mrb_module_get_id
    - mrb_iv_set
    - mrb_exc_mesg_set
    - mrb_class_get_under_id
    - mrb_str_append
    - ENTRY_SYM
    - mrb_str_new_cstr
    - mrb_str_cat2
    - mrb_fixnum_value
    - mrb_nil_p
    - strerror
    - mrb_exc_ptr
    - mrb_int_to_cstr
    linkageType: ''
    returnType: void
    signature: void mrb_sce_init(mrb_state *mrb, mrb_value self, mrb_value m, int
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:80,1
    - Dst: mrb_fixnum_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:81,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:82,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:83,1
    - Dst: mrb_sce_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: mrb_sce_init_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_p
    - mrb_get_args
    - mrb_sce_init
    - mrb_fixnum
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_init_m(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:99,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:100,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:101,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:101,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:102,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:102,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:104,1
    - Dst: mrb_attr_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: mrb_sce_errno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_const_get
    - mrb_const_defined_at
    - mrb_class
    - mrb_obj_value
    - mrb_attr_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_errno(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:118,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:118,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:119,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:121,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:122,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:124,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:126,1
    - Dst: mrb_sce_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:127,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:128,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - cls
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 9
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: mrb_sce_sys_fail
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_obj_alloc
    - mrb_exc_raise
    - mrb_get_args
    - mrb_sce_init
    - mrb_obj_value
    - mrb_class_get_id
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sce_sys_fail(mrb_state *mrb, mrb_value cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:137,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:137,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:137,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:137,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:138,1
    - Dst: strerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:138,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:138,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:140,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:141,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:142,1
    - Dst: mrb_str_cat2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:143,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:144,1
    - Dst: mrb_exc_mesg_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:146,1
    - Dst: mrb_exc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 13
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: mrb_exxx_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_exc_ptr
    - mrb_exc_mesg_set
    - mrb_get_args
    - mrb_const_get
    - mrb_str_append
    - mrb_class
    - mrb_str_new_cstr
    - mrb_str_cat2
    - mrb_fixnum
    - mrb_obj_value
    - strerror
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_exxx_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:156,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:156,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:158,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:159,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:159,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:160,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:160,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:161,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:161,1
    - Dst: mrb_define_module_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:163,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:163,1
    - Dst: mrb_define_class_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:165,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:165,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:166,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:166,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:166,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:167,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:167,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 150
    functionDepth: 15
    functionLinenumber: 150
    functionLinenumberEnd: 186
    functionName: mrb_mruby_errno_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - mrb_define_const_id
    - mrb_define_module_id
    - mrb_define_class_method
    - mrb_define_class_under_id
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_fixnum_value
    - mrb_define_class
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_errno_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: itsdefined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsdefined(name, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: itsnotdefined
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itsnotdefined(name, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mrb_mruby_errno_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_errno_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:23,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:24,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: print_usage
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(const char *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:39,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - argc
    - argv
    - args
    argTypes:
    - int
    - char**
    - struct strip_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: parse_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_args(int argc, char **argv, struct strip_args *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:76,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:78,1
    - Dst: mrb_read_irep_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:82,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:83,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:85,1
    - Dst: mrb_irep_remove_lv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:91,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:94,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:96,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:97,1
    - Dst: mrb_dump_irep_binary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:102,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:104,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:105,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct strip_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 113
    functionName: strip
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
    functionUses: 0
    functionsReached:
    - mrb_irep_decref
    - fopen
    - mrb_irep_remove_lv
    - fprintf
    - fclose
    - mrb_read_irep_file
    - mrb_dump_irep_binary
    linkageType: ''
    returnType: int
    signature: int strip(mrb_state *mrb, struct strip_args *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:124,1
    - Dst: print_usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:125,1
    - Dst: parse_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:129,1
    - Dst: print_usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:131,1
    - Dst: mrb_open_core
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:134,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:136,1
    - Dst: strip
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:140,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 10
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
    functionUses: 0
    functionsReached:
    - fputs
    - print_usage
    - mrb_close
    - parse_args
    - strip
    - printf
    - mrb_open_core
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: RSTRUCT_LEN
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRUCT_LEN(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: RSTRUCT_PTR
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSTRUCT_PTR(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: mrb_struct_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_struct_p(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:27,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: struct_class
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_class_get_id
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      struct_class(mrb_state *mrb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:33,1
    - Dst: struct_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:34,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:38,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:38,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:39,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - cls
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 7
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: struct_ivar_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - struct_class
    - mrb_iv_get
    - mrb_obj_value
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value struct_ivar_get(mrb_state *mrb, mrb_value cls, mrb_sym id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct_ivar_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:49,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:49,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:49,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:51,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:52,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:54,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: struct_s_members
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_array_p
    - mrb_raise
    - mrb_obj_value
    - struct_ivar_get
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value struct_s_members(mrb_state *mrb, struct RClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct_s_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:63,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:63,1
    - Dst: mrb_struct_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:64,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:64,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:65,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:67,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:67,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:68,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:70,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 9
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: struct_members
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_raise
    - RSTRUCT_LEN
    - struct_s_members
    - mrb_struct_p
    - RARRAY_LEN
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value struct_members(mrb_state *mrb, mrb_value s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct_s_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:80,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:80,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:81,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:81,1
    - Dst: mrb_ary_replace
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 9
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: mrb_struct_s_members_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_ary_replace
    - mrb_class_ptr
    - struct_s_members
    - mrb_ary_new_capa
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_s_members_m(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_frozen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:89,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:89,1
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:90,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - strct
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: mrb_struct_modify
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_basic_ptr
    - mrb_check_frozen
    - mrb_write_barrier
    linkageType: ''
    returnType: void
    signature: void mrb_struct_modify(mrb_state *mrb, mrb_value strct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_struct_s_members_m
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:109,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:109,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 10
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: mrb_struct_members
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_obj_class
    - mrb_struct_s_members_m
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_members(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:115,1
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:115,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:116,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: mrb_struct_ref
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_integer
    - mrb_proc_cfunc_env_get
    - RSTRUCT_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_ref(mrb_state *mrb, mrb_value obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:134,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:136,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:141,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:144,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - id
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: mrb_id_attrset
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - memcpy
    - mrb_intern
    - mrb_sym_name_len
    - mrb_malloc
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym mrb_id_attrset(mrb_state *mrb, mrb_sym id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:154,1
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:154,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:156,1
    - Dst: mrb_struct_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:158,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:159,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:160,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: mrb_struct_set_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_ary_set
    - mrb_integer
    - RSTRUCT_LEN
    - mrb_proc_cfunc_env_get
    - RSTRUCT_PTR
    - mrb_struct_modify
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_set_m(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:172,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:174,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:175,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:178,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:180,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:181,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:182,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:183,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:184,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:185,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:186,1
    - Dst: mrb_id_attrset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:186,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - members
    - c
    argTypes:
    - mrb_state*
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 8
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: make_struct_define_accessors
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - MRB_METHOD_FROM_PROC
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - mrb_proc_new_cfunc_with_env
    - mrb_define_method_raw
    - mrb_fixnum_value
    - RARRAY_LEN
    - mrb_symbol
    - mrb_id_attrset
    linkageType: ''
    returnType: void
    signature: void make_struct_define_accessors(mrb_state *mrb, mrb_value members,
      struct RClass *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:198,1
    - Dst: mrb_class_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:199,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:203,1
    - Dst: mrb_obj_to_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:204,1
    - Dst: mrb_const_name_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:205,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:205,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:205,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:206,1
    - Dst: mrb_const_defined_at
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:208,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:208,1
    - Dst: mrb_warn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:209,1
    - Dst: mrb_const_remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:210,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:210,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:212,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:212,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:214,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:215,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:216,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:216,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:218,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:218,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:219,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:219,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:220,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:220,1
    - Dst: make_struct_define_accessors
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - mrb
    - name
    - members
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 191
    functionDepth: 9
    functionLinenumber: 191
    functionLinenumberEnd: 224
    functionName: make_struct
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_name_error
    - mrb_warn
    - mrb_nil_p
    - RSTRING_PTR
    - mrb_define_class_method
    - mrb_const_defined_at
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    - MRB_SYM
    - make_struct_define_accessors
    - mrb_obj_to_sym
    - mrb_ensure_string_type
    - MRB_ARGS_NONE
    - MRB_ARGS_ANY
    - mrb_const_remove
    - mrb_iv_set
    - mrb_const_name_p
    - RSTRING_LEN
    - mrb_define_class_under
    - mrb_class_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value make_struct(mrb_state *mrb, mrb_value name, mrb_value members,
      struct RClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:272,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:273,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:275,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:282,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:284,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:291,1
    - Dst: mrb_obj_to_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:293,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:293,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:294,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:294,1
    - Dst: make_struct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:296,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:296,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:297,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:298,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:298,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 260
    functionDepth: 10
    functionLinenumber: 260
    functionLinenumberEnd: 305
    functionName: mrb_struct_s_def
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_set
    - mrb_ary_new_from_values
    - mrb_yield_with_class
    - mrb_get_args
    - mrb_symbol_p
    - mrb_class_ptr
    - mrb_obj_to_sym
    - make_struct
    - mrb_argnum_error
    - mrb_nil_value
    - mrb_symbol_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_s_def(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct_ivar_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:312,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:312,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:312,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:313,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:314,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 8
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: num_members
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_array_p
    - mrb_raise
    - RARRAY_LEN
    - mrb_obj_value
    - struct_ivar_get
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int num_members(mrb_state *mrb, struct RClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:325,1
    - Dst: num_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:328,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:330,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:334,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:337,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - self
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 322
    functionDepth: 9
    functionLinenumber: 322
    functionLinenumberEnd: 340
    functionName: mrb_struct_initialize_withArg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_ary_set
    - mrb_raise
    - num_members
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc,
      const mrb_value *argv, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:348,1
    - Dst: mrb_struct_initialize_withArg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 10
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: mrb_struct_initialize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_struct_initialize_withArg
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_initialize(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:357,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:359,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:360,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:360,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:361,1
    - Dst: mrb_struct_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:363,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:364,1
    - Dst: mrb_ary_replace
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 9
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: mrb_struct_init_copy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_ary_replace
    - mrb_raise
    - mrb_obj_equal
    - mrb_struct_p
    - mrb_obj_is_instance_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_init_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:377,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:378,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:379,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:380,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:383,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:383,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:387,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - obj
    - id
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 10
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: struct_aref_sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - struct_members
    - mrb_symbol_p
    - RSTRUCT_PTR
    - mrb_name_error
    - RARRAY_LEN
    - mrb_nil_value
    - mrb_symbol
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value struct_aref_sym(mrb_state *mrb, mrb_value obj, mrb_sym id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:394,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:397,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:398,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:399,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:400,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:401,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - s
    - i
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 5
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: struct_aref_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - RSTRUCT_LEN
    - RSTRUCT_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:427,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:429,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:430,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:431,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:433,1
    - Dst: struct_aref_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:434,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:434,1
    - Dst: struct_aref_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:436,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 424
    functionDepth: 11
    functionLinenumber: 424
    functionLinenumberEnd: 437
    functionName: mrb_struct_aref
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - struct_aref_sym
    - mrb_intern_str
    - mrb_symbol_p
    - mrb_as_int
    - struct_aref_int
    - mrb_symbol
    - mrb_symbol_value
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_aref(mrb_state *mrb, mrb_value s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:446,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:447,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:448,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:449,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:451,1
    - Dst: mrb_struct_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:452,1
    - Dst: mrb_name_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - mrb
    - s
    - id
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_sym
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 10
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: mrb_struct_aset_sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - struct_members
    - RSTRUCT_PTR
    - mrb_name_error
    - RARRAY_LEN
    - mrb_symbol
    - mrb_struct_modify
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_aset_sym(mrb_state *mrb, mrb_value s, mrb_sym
      id, mrb_value val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:490,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:492,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:493,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:494,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:496,1
    - Dst: mrb_struct_aset_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:497,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:497,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:500,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:501,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:503,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:504,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:506,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:507,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:508,1
    - Dst: mrb_struct_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:510,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 483
    functionDepth: 11
    functionLinenumber: 483
    functionLinenumberEnd: 512
    functionName: mrb_struct_aset
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_intern_str
    - mrb_symbol_p
    - mrb_get_args
    - mrb_as_int
    - RSTRUCT_LEN
    - RSTRUCT_PTR
    - mrb_struct_aset_sym
    - mrb_raisef
    - mrb_symbol
    - mrb_symbol_value
    - mrb_struct_modify
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_aset(mrb_state *mrb, mrb_value s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:535,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:539,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:540,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:542,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:542,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:543,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:545,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:545,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:546,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:548,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:549,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:550,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:552,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:553,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 532
    functionDepth: 7
    functionLinenumber: 532
    functionLinenumberEnd: 558
    functionName: mrb_struct_equal
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_true_value
    - mrb_equal
    - mrb_obj_equal
    - RSTRUCT_LEN
    - RSTRUCT_PTR
    - mrb_false_value
    - mrb_bug
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_equal(mrb_state *mrb, mrb_value s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:571,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:575,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:576,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:578,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:578,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:579,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:581,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:581,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:582,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:584,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:585,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:586,1
    - Dst: mrb_eql
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:588,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:589,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 568
    functionDepth: 7
    functionLinenumber: 568
    functionLinenumberEnd: 594
    functionName: mrb_struct_eql
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_true_value
    - mrb_eql
    - mrb_obj_equal
    - RSTRUCT_LEN
    - RSTRUCT_PTR
    - mrb_false_value
    - mrb_bug
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_eql(mrb_state *mrb, mrb_value s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:606,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: mrb_struct_len
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RSTRUCT_LEN
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_len(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:619,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:619,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 9
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: mrb_struct_to_a
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RSTRUCT_PTR
    - RSTRUCT_LEN
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_to_a(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct_members
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:634,1
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:635,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:635,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:637,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:638,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:638,1
    - Dst: RSTRUCT_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 10
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: mrb_struct_to_h
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_hash_new_capa
    - struct_members
    - mrb_hash_set
    - RSTRUCT_PTR
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_to_h(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:650,1
    - Dst: mrb_get_values_at
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:652,1
    - Dst: RSTRUCT_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 9
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: mrb_struct_values_at
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_get_values_at
    - mrb_get_args
    - RSTRUCT_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_struct_values_at(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:674,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:675,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:677,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:677,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:679,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:679,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:680,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:680,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:681,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:681,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:682,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:682,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:683,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:683,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:684,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:684,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:685,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:685,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:687,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:687,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:688,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:688,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:689,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:689,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:690,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:690,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:691,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:691,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:692,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 693
    functionName: mrb_mruby_struct_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_struct_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: mrb_mruby_struct_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_struct_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:30,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:31,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:32,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:34,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:34,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: hash_values_at
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
    functionUses: 0
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_ary_push
    - mrb_gc_arena_save
    - mrb_hash_get
    - mrb_ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value hash_values_at(mrb_state *mrb, mrb_value hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:57,1
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:58,1
    - Dst: mrb_hash_fetch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:64,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:64,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:65,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 10
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: hash_slice
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
    functionUses: 0
    functionsReached:
    - mrb_hash_new_capa
    - mrb_undef_value
    - mrb_get_args
    - mrb_hash_set
    - mrb_hash_fetch
    - mrb_undef_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value hash_slice(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:89,1
    - Dst: mrb_hash_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:90,1
    - Dst: mrb_hash_delete_key
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - hash
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 9
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: hash_except
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
    functionUses: 0
    functionsReached:
    - mrb_hash_dup
    - mrb_get_args
    - mrb_hash_delete_key
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value hash_except(mrb_state *mrb, mrb_value hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:103,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:103,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:104,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:104,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:105,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: mrb_mruby_hash_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_hash_ext_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: mrb_mruby_hash_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_hash_ext_gem_final(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:17,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:17,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:18,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:22,1
    - Dst: mrb_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - binding
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: binding_extract_pc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_check_type
    - mrb_int
    - mrb_iv_get
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int binding_extract_pc(mrb_state *mrb, mrb_value binding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:30,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:30,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:31,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - binding
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: mrb_binding_extract_proc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    - mrb_proc_ptr
    - mrb_check_type
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_binding_extract_proc(mrb_state *mrb, mrb_value binding)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:38,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:38,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:39,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:43,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - binding
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: mrb_binding_extract_env
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_check_type
    - mrb_obj_ptr
    - mrb_iv_get
    - mrb_nil_p
    linkageType: ''
    returnType: struct REnv
    signature: 'struct REnv *

      mrb_binding_extract_env(mrb_state *mrb, mrb_value binding)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:53,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:57,1
    - Dst: ISASCII
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:62,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:62,1
    - Dst: ISASCII
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:69,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:69,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - id
    argTypes:
    - mrb_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: binding_local_variable_name_check
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - ISALNUM
    - ISLOWER
    - ISASCII
    - mrb_sym_name_len
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void binding_local_variable_name_check(mrb_state *mrb, mrb_sym id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: binding_local_variable_name_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:78,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:81,1
    - Dst: MRB_ENV_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:88,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:93,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - mrb
    - proc
    - env
    - varname
    argTypes:
    - mrb_state*
    - struct RProc*
    - struct REnv*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 99
    functionName: binding_local_variable_search
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_ENV_LEN
    - MRB_PROC_ENV
    - MRB_PROC_SCOPE_P
    - binding_local_variable_name_check
    - MRB_PROC_CFUNC_P
    linkageType: ''
    returnType: mrb_value
    signature: 'mrb_value *

      binding_local_variable_search(mrb_state *mrb, const struct RProc *proc, struct
      REnv *env, mrb_sym varname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:109,1
    - Dst: mrb_binding_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:111,1
    - Dst: mrb_binding_extract_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:112,1
    - Dst: binding_local_variable_search
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:113,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:115,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 9
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: binding_local_variable_defined_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - mrb_binding_extract_env
    - binding_local_variable_search
    - mrb_true_value
    - mrb_get_args
    - mrb_binding_extract_proc
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_local_variable_defined_p(mrb_state *mrb, mrb_value
      self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:130,1
    - Dst: mrb_binding_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:132,1
    - Dst: mrb_binding_extract_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:133,1
    - Dst: binding_local_variable_search
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:134,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 9
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: binding_local_variable_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - mrb_binding_extract_env
    - binding_local_variable_search
    - mrb_get_args
    - mrb_binding_extract_proc
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_local_variable_get(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:147,1
    - Dst: mrb_binding_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:149,1
    - Dst: mrb_binding_extract_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:150,1
    - Dst: binding_local_variable_search
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:151,1
    - Dst: mrb_immediate_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:154,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:155,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:155,1
    - Dst: mrb_proc_merge_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 9
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: binding_local_variable_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - mrb_binding_extract_env
    - binding_local_variable_search
    - mrb_proc_merge_lvar
    - mrb_get_args
    - mrb_field_write_barrier
    - mrb_binding_extract_proc
    - mrb_obj_ptr
    - mrb_immediate_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_local_variable_set(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:168,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:168,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:168,1
    - Dst: mrb_proc_local_variables
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: binding_local_variables
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    - mrb_proc_local_variables
    - mrb_proc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_local_variables(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:175,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: binding_receiver
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_receiver(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:185,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:185,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:186,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:186,1
    - Dst: mrb_binding_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:190,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:191,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:192,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:193,1
    - Dst: binding_extract_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:197,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:199,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:202,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:203,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:206,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:206,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:206,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:209,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:214,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:214,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:215,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 218
    functionName: binding_source_location
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_defined
    - mrb_iv_set
    - binding_extract_pc
    - mrb_binding_extract_proc
    - mrb_debug_get_filename
    - mrb_debug_get_line
    - mrb_iv_get
    - mrb_frozen_p
    - mrb_str_new_cstr
    - mrb_obj_ptr
    - MRB_PROC_CFUNC_P
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_source_location(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:223,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:223,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:223,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: mrb_binding_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 1
    functionsReached:
    - MRB_SYM
    - MRB_OBJ_ALLOC
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_binding_alloc(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:237,1
    - Dst: mrb_add_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:238,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:242,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:252,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:253,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:254,1
    - Dst: MRB_ENV_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - mrb
    - proc
    - envp
    argTypes:
    - mrb_state*
    - struct RProc*
    - struct REnv**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 261
    functionName: mrb_binding_wrap_lvspace
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 1
    functionsReached:
    - MRB_OBJ_ALLOC
    - MRB_ENV_SET_LEN
    - mrb_calloc
    - mrb_nil_value
    - mrb_add_irep
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      mrb_binding_wrap_lvspace(mrb_state *mrb, const struct RProc *proc, struct REnv
      **envp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_binding_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:270,1
    - Dst: mrb_proc_get_caller
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:271,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:272,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:277,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:279,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:279,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:279,1
    - Dst: mrb_binding_wrap_lvspace
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:281,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:282,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:282,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:282,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:283,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:283,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:284,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:284,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 286
    functionName: mrb_f_binding
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_set
    - mrb_obj_value
    - mrb_binding_alloc
    - MRB_PROC_CFUNC_P
    - mrb_fixnum_value
    - mrb_proc_get_caller
    - mrb_binding_wrap_lvspace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_binding(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:291,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:292,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:293,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:295,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:295,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:297,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:297,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:298,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:298,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:299,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:299,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:300,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:300,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:301,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:301,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:302,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:302,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:303,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 11
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: mrb_mruby_binding_core_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_binding_core_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: mrb_mruby_binding_core_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_binding_core_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: mpz_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void mpz_init(mrb_state *mrb, mpz_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - s
    - t
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: mpz_init_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void mpz_init_set(mrb_state *mrb, mpz_t *s, mpz_t *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - mrb
    - y
    - v
    argTypes:
    - mrb_state*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: mpz_set_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpz_set_int(mrb_state *mrb, mpz_t *y, mrb_int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - y
    - v
    argTypes:
    - mrb_state*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: mpz_init_set_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void mpz_init_set_int(mrb_state *mrb, mpz_t *y, mrb_int v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: mpz_clear
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mpz_clear(mrb_state *mrb, mpz_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - size
    argTypes:
    - mrb_state*
    - mpz_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: mpz_realloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_realloc
    linkageType: ''
    returnType: void
    signature: void mpz_realloc(mrb_state *mrb, mpz_t *x, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: digits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t digits(mpz_t *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:120,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:121,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:124,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:125,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - y
    - x
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: mpz_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_clear
    - mpz_init
    - mpz_realloc
    - digits
    linkageType: ''
    returnType: void
    signature: void mpz_set(mrb_state *mrb, mpz_t *y, mpz_t *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 170
    functionName: uadd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_realloc
    linkageType: ''
    returnType: void
    signature: void uadd(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:178,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - z
    - y
    - x
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: usub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - dg
    - mpz_realloc
    linkageType: ''
    returnType: void
    signature: void usub(mrb_state *mrb, mpz_t *z, mpz_t *y, mpz_t *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:197,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:198,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:198,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:200,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - y
    - x
    argTypes:
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: ucmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - dg
    - imax
    linkageType: ''
    returnType: int
    signature: int ucmp(mpz_t *y, mpz_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: uzero
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uzero(mpz_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: zero
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zero(mpz_t *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:231,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:235,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:238,1
    - Dst: uadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:241,1
    - Dst: uadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:245,1
    - Dst: ucmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:250,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:251,1
    - Dst: usub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:254,1
    - Dst: usub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:258,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:262,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - mrb
    - zz
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 264
    functionName: mpz_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - uadd
    - mpz_clear
    - ucmp
    - mpz_set
    - usub
    - zero
    linkageType: ''
    returnType: void
    signature: void mpz_add(mrb_state *mrb, mpz_t *zz, mpz_t *x, mpz_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:271,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:272,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:274,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 7
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: mpz_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_add
    - mpz_set
    - mpz_clear
    linkageType: ''
    returnType: void
    signature: void mpz_sub(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:283,1
    - Dst: mpz_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:284,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - x
    - y
    - n
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 8
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: mpz_sub_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init_set_int
    - mpz_clear
    - mpz_sub
    linkageType: ''
    returnType: void
    signature: void mpz_sub_int(mrb_state *mrb, mpz_t *x, mpz_t *y, mrb_int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:297,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:298,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:301,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:303,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:304,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:304,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:306,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:308,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:321,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:324,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:334,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - mrb
    - ww
    - u
    - v
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 336
    functionName: mpz_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - mpz_set
    - HIGH
    - LOW
    - mpz_realloc
    - hd
    linkageType: ''
    returnType: void
    signature: void mpz_mul(mrb_state *mrb, mpz_t *ww, mpz_t *u, mpz_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:342,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:343,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - x
    - y
    - n
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: mpz_mul_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_clear
    - mpz_init_set_int
    - mpz_mul
    linkageType: ''
    returnType: void
    signature: void mpz_mul_int(mrb_state *mrb, mpz_t *x, mpz_t *y, mrb_int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: lzb
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lzb(mp_limb a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:364,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:366,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:370,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:370,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:376,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - c1
    - a
    - n
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: urshift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mrb_assert
    - mpz_clear
    - mpz_set
    - mpz_realloc
    linkageType: ''
    returnType: void
    signature: void urshift(mrb_state *mrb, mpz_t *c1, mpz_t *a, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:387,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:389,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:393,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:393,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:399,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - mrb
    - c1
    - a
    - n
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 402
    functionName: ulshift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mrb_assert
    - mpz_clear
    - mpz_set
    - mpz_realloc
    linkageType: ''
    returnType: void
    signature: void ulshift(mrb_state *mrb, mpz_t *c1, mpz_t *a, size_t n)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:413,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:415,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:415,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:415,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:415,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:416,1
    - Dst: digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:417,1
    - Dst: lzb
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:418,1
    - Dst: ulshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:419,1
    - Dst: ulshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:420,1
    - Dst: digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:421,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:422,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:424,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:427,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:429,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:429,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:434,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:435,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:442,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:447,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:449,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:451,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:462,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:464,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:464,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:468,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:468,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:481,1
    - Dst: hd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:481,1
    - Dst: LOW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:489,1
    - Dst: HIGH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:491,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:506,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:507,1
    - Dst: urshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:508,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:509,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:510,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:511,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:511,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:512,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:512,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 103
    argCount: 5
    argNames:
    - mrb
    - qq
    - rr
    - xx
    - yy
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 405
    functionDepth: 7
    functionLinenumber: 405
    functionLinenumberEnd: 513
    functionName: udiv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - lzb
    - mpz_clear
    - mpz_set
    - HIGH
    - LOW
    - urshift
    - digits
    - ulshift
    - mpz_realloc
    - uzero
    - zero
    - hd
    linkageType: ''
    returnType: void
    signature: void udiv(mrb_state *mrb, mpz_t *qq, mpz_t *rr, mpz_t *xx, mpz_t *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:520,1
    - Dst: udiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:521,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:523,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:526,1
    - Dst: mpz_sub_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:527,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - mrb
    - q
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 9
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: mpz_mdiv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - udiv
    - mpz_sub_int
    - uzero
    linkageType: ''
    returnType: void
    signature: void mpz_mdiv(mrb_state *mrb, mpz_t *q, mpz_t *x, mpz_t *y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:536,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:538,1
    - Dst: udiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:541,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:542,1
    - Dst: mpz_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:551,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - mrb
    - r
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 531
    functionDepth: 8
    functionLinenumber: 531
    functionLinenumberEnd: 557
    functionName: mpz_mmod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_sub
    - mpz_add
    - udiv
    - uzero
    - zero
    linkageType: ''
    returnType: void
    signature: void mpz_mmod(mrb_state *mrb, mpz_t *r, mpz_t *x, mpz_t *y)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:564,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:565,1
    - Dst: udiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:568,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:570,1
    - Dst: mpz_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:579,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:583,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:585,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:588,1
    - Dst: mpz_sub_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - mrb
    - q
    - r
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 559
    functionDepth: 9
    functionLinenumber: 559
    functionLinenumberEnd: 590
    functionName: mpz_mdivmod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_sub
    - mpz_add
    - udiv
    - mpz_sub_int
    - uzero
    - zero
    linkageType: ''
    returnType: void
    signature: void mpz_mdivmod(mrb_state *mrb, mpz_t *q, mpz_t *r, mpz_t *x, mpz_t
      *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:597,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:599,1
    - Dst: udiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:602,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:604,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - r
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 592
    functionDepth: 8
    functionLinenumber: 592
    functionLinenumberEnd: 607
    functionName: mpz_mod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - udiv
    - uzero
    - zero
    linkageType: ''
    returnType: void
    signature: void mpz_mod(mrb_state *mrb, mpz_t *r, mpz_t *x, mpz_t *y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 621
    functionName: mpz_cmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - ucmp
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mpz_cmp(mrb_state *mrb, mpz_t *x, mpz_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:628,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - x
    - base
    argTypes:
    - mpz_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 633
    functionName: mpz_sizeinbase
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - digits
    linkageType: ''
    returnType: int
    signature: int mpz_sizeinbase(mpz_t *x, int base)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:643,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:644,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:645,1
    - Dst: zero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:646,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:655,1
    - Dst: mpz_mul_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:672,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:673,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:674,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:679,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:680,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:681,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - mrb
    - x
    - s
    - len
    - base
    argTypes:
    - mrb_state*
    - mpz_t*
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 635
    functionDepth: 8
    functionLinenumber: 635
    functionLinenumberEnd: 683
    functionName: mpz_init_set_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - mpz_add
    - mpz_init_set_int
    - mpz_mul_int
    - mpz_mul
    - zero
    linkageType: ''
    returnType: int
    signature: int mpz_init_set_str(mrb_state *mrb, mpz_t *x, const char *s, mrb_int
      len, mrb_int base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:691,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:692,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:697,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:698,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:698,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:698,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:699,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:700,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:707,1
    - Dst: udiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:708,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:721,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:722,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:722,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:722,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 5
    argNames:
    - mrb
    - s
    - sz
    - base
    - x
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - mrb_int
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 685
    functionDepth: 8
    functionLinenumber: 685
    functionLinenumberEnd: 724
    functionName: mpz_get_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mrb_assert
    - mpz_clear
    - mpz_set
    - udiv
    - mpz_init_set_int
    - mrb_free
    - uzero
    - mrb_malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      mpz_get_str(mrb_state *mrb, char *s, mrb_int sz, mrb_int base, mpz_t *x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - y
    - v
    argTypes:
    - mpz_t*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 743
    functionName: mpz_get_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - digits
    linkageType: ''
    returnType: int
    signature: int mpz_get_int(mpz_t *y, mrb_int *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:750,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:757,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:758,1
    - Dst: ulshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:762,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:765,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - e
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 745
    functionDepth: 7
    functionLinenumber: 745
    functionLinenumberEnd: 770
    functionName: mpz_mul_2exp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - mpz_set
    - ulshift
    - mpz_realloc
    linkageType: ''
    returnType: void
    signature: void mpz_mul_2exp(mrb_state *mrb, mpz_t *z, mpz_t *x, mrb_int e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:777,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:784,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:785,1
    - Dst: urshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:789,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:792,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:794,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - e
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 772
    functionDepth: 7
    functionLinenumber: 772
    functionLinenumberEnd: 800
    functionName: mpz_div_2exp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - mpz_set
    - urshift
    - mpz_realloc
    - uzero
    linkageType: ''
    returnType: void
    signature: void mpz_div_2exp(mrb_state *mrb, mpz_t *z, mpz_t *x, mrb_int e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 802
    functionDepth: 6
    functionLinenumber: 802
    functionLinenumberEnd: 808
    functionName: mpz_neg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_set
    linkageType: ''
    returnType: void
    signature: void mpz_neg(mrb_state *mrb, mpz_t *x, mpz_t *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:814,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:815,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:817,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:817,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: mpz_and
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - dg
    - mpz_realloc
    - uzero
    - imax
    linkageType: ''
    returnType: void
    signature: void mpz_and(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:830,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:831,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:833,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:833,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 826
    functionDepth: 4
    functionLinenumber: 826
    functionLinenumberEnd: 840
    functionName: mpz_or
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - dg
    - mpz_realloc
    - uzero
    - imax
    linkageType: ''
    returnType: void
    signature: void mpz_or(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:846,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:847,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:849,1
    - Dst: dg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:849,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - mrb
    - z
    - x
    - y
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 856
    functionName: mpz_xor
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - dg
    - mpz_realloc
    - uzero
    - imax
    linkageType: ''
    returnType: void
    signature: void mpz_xor(mrb_state *mrb, mpz_t *z, mpz_t *x, mpz_t *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:865,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:869,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:870,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:875,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:877,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:879,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - mrb
    - zz
    - x
    - e
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 858
    functionDepth: 7
    functionLinenumber: 858
    functionLinenumberEnd: 881
    functionName: mpz_pow
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - mpz_clear
    - mpz_set
    - mpz_set_int
    - mpz_mul
    linkageType: ''
    returnType: void
    signature: void mpz_pow(mrb_state *mrb, mpz_t *zz, mpz_t *x, mrb_int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 884
    functionName: lowdigit
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lowdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - i
    - sp
    argTypes:
    - mrb_state*
    - mp_limb
    - struct is**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 898
    functionName: push
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 61
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void push(mrb_state *mrb, mp_limb i, struct is **sp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - sp
    argTypes:
    - mrb_state*
    - struct is**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 913
    functionName: pop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 16
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: mp_limb
    signature: mp_limb pop(mrb_state *mrb, struct is **sp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpz_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:923,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:930,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:931,1
    - Dst: uzero
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:933,1
    - Dst: mpz_div_2exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:933,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:934,1
    - Dst: lowdigit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:934,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:936,1
    - Dst: mpz_mod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:938,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:941,1
    - Dst: mpz_mod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:942,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:943,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:944,1
    - Dst: mpz_mod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:945,1
    - Dst: mpz_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:949,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:950,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:951,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - mrb
    - zz
    - x
    - ex
    - n
    argTypes:
    - mrb_state*
    - mpz_t*
    - mpz_t*
    - mrb_int
    - mpz_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 915
    functionDepth: 9
    functionLinenumber: 915
    functionLinenumberEnd: 952
    functionName: mpz_powm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - pop
    - mpz_clear
    - lowdigit
    - mpz_div_2exp
    - mpz_init_set_int
    - push
    - mpz_mod
    - mpz_set
    - mpz_set_int
    - uzero
    - mpz_mul
    linkageType: ''
    returnType: void
    signature: void mpz_powm(mrb_state *mrb, mpz_t *zz, mpz_t *x, mrb_int ex, mpz_t
      *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:958,1
    - Dst: mpz_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 955
    functionDepth: 5
    functionLinenumber: 955
    functionLinenumberEnd: 961
    functionName: bint_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mpz_init
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: struct RBigint
    signature: 'struct RBigint *

      bint_new(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:966,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 963
    functionDepth: 5
    functionLinenumber: 963
    functionLinenumberEnd: 969
    functionName: bint_new_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 7
    functionsReached:
    - MRB_OBJ_ALLOC
    - mpz_init_set_int
    linkageType: ''
    returnType: struct RBigint
    signature: 'struct RBigint *

      bint_new_int(mrb_state *mrb, mrb_int x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:974,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 971
    functionDepth: 6
    functionLinenumber: 971
    functionLinenumberEnd: 976
    functionName: mrb_bint_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - bint_new
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_new(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:981,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 978
    functionDepth: 6
    functionLinenumber: 978
    functionLinenumberEnd: 983
    functionName: mrb_bint_new_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 7
    functionsReached:
    - mrb_obj_value
    - bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_new_int(mrb_state *mrb, mrb_int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:988,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:989,1
    - Dst: iabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:989,1
    - Dst: iabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:989,1
    - Dst: mpz_init_set_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:990,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - x
    - len
    - base
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 9
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: mrb_bint_new_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 2
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_assert
    - iabs
    - mpz_init_set_str
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_new_str(mrb_state *mrb, const char *x, mrb_int len,
      mrb_int base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_get_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:999,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1000,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - b
    argTypes:
    - mrb_state*
    - struct RBigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1003
    functionName: bint_norm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_int_value
    - mpz_get_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value bint_norm(mrb_state *mrb, struct RBigint *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - struct RBasic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1010
    functionName: mrb_gc_free_bint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - mpz_clear
    linkageType: ''
    returnType: void
    signature: void mrb_gc_free_bint(mrb_state *mrb, struct RBasic *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1017,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1020,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1023,1
    - Dst: mpz_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1043,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1048,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1013
    functionDepth: 6
    functionLinenumber: 1013
    functionLinenumberEnd: 1053
    functionName: mrb_bint_new_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 2
    functionsReached:
    - mrb_assert
    - bint_norm
    - bint_new
    - mrb_fixnum_value
    - mpz_realloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_new_float(mrb_state *mrb, mrb_float x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1071
    functionName: mrb_bint_as_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 5
    functionsReached:
    - RBIGINT
    linkageType: ''
    returnType: mrb_float
    signature: mrb_float mrb_bint_as_float(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1077,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1078,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 7
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: mrb_as_bint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_as_int
    - mrb_bigint_p
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_as_bint(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1084,1
    - Dst: mpz_get_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1087,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1091
    functionName: mrb_bint_as_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - mrb_raise
    - mpz_get_int
    - RBIGINT
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_bint_as_int(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1097,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1098,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1099,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1100,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1103,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1104,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1105,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1106,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1107,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1093
    functionDepth: 8
    functionLinenumber: 1093
    functionLinenumberEnd: 1109
    functionName: mrb_bint_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 3
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mpz_add
    - mrb_float_p
    - mrb_float_value
    - mrb_as_bint
    - mrb_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1115,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1116,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1117,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1118,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1121,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1122,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1123,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1124,1
    - Dst: mpz_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1125,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1111
    functionDepth: 8
    functionLinenumber: 1111
    functionLinenumberEnd: 1127
    functionName: mrb_bint_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 3
    functionsReached:
    - bint_norm
    - RBIGINT
    - mpz_sub
    - bint_new
    - mrb_float_p
    - mrb_float_value
    - mrb_as_bint
    - mrb_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1133,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1134,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1135,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1136,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1139,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1140,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1141,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1142,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1143,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1129
    functionDepth: 8
    functionLinenumber: 1129
    functionLinenumberEnd: 1145
    functionName: mrb_bint_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 3
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mrb_float_p
    - mpz_mul
    - mrb_float_value
    - mrb_as_bint
    - mrb_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1151,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1152,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1153,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1154,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1157,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1158,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1159,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1160,1
    - Dst: mpz_mdiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1161,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1147
    functionDepth: 10
    functionLinenumber: 1147
    functionLinenumberEnd: 1163
    functionName: mrb_bint_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 2
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mrb_float_p
    - mrb_float_value
    - mpz_mdiv
    - mrb_as_bint
    - mrb_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_div(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1168,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1171,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1172,1
    - Dst: mpz_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1173,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1174,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1175,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1165
    functionDepth: 7
    functionLinenumber: 1165
    functionLinenumberEnd: 1177
    functionName: mrb_bint_add_ii
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - bint_norm
    - mpz_clear
    - bint_new
    - mpz_add
    - mpz_init_set_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_add_ii(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1182,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1185,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1186,1
    - Dst: mpz_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1187,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1188,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1189,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1179
    functionDepth: 8
    functionLinenumber: 1179
    functionLinenumberEnd: 1191
    functionName: mrb_bint_sub_ii
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - bint_norm
    - mpz_clear
    - mpz_sub
    - bint_new
    - mpz_init_set_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_sub_ii(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1196,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1199,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1200,1
    - Dst: mpz_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1201,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1202,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1203,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1193
    functionDepth: 7
    functionLinenumber: 1193
    functionLinenumberEnd: 1205
    functionName: mrb_bint_mul_ii
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - mpz_clear
    - bint_new
    - mpz_init_set_int
    - mpz_mul
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_mul_ii(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1210,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1213,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1214,1
    - Dst: mpz_mdiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1215,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1216,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1217,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1207
    functionDepth: 10
    functionLinenumber: 1207
    functionLinenumberEnd: 1219
    functionName: mrb_bint_div_ii
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - bint_norm
    - mpz_clear
    - bint_new
    - mpz_init_set_int
    - mpz_mdiv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_div_ii(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1225
    functionName: mrb_bint_idiv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_idiv(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1231,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1232,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1233,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1234,1
    - Dst: fmod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1234,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1237,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1238,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1239,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1240,1
    - Dst: mpz_mmod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1241,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1227
    functionDepth: 9
    functionLinenumber: 1227
    functionLinenumberEnd: 1243
    functionName: mrb_bint_mod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - fmod
    - mpz_mmod
    - mrb_float_p
    - mrb_float_value
    - mrb_as_bint
    - mrb_float
    - mrb_bint_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_mod(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1250,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1251,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1252,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1253,1
    - Dst: mpz_mod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1254,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1245
    functionDepth: 9
    functionLinenumber: 1245
    functionLinenumberEnd: 1256
    functionName: mrb_bint_rem
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mpz_mod
    - mrb_as_bint
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_rem(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1263,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1264,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1265,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1266,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1267,1
    - Dst: mpz_mdivmod
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1268,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1269,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1270,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1258
    functionDepth: 10
    functionLinenumber: 1258
    functionLinenumberEnd: 1272
    functionName: mrb_bint_divmod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - mpz_mdivmod
    - bint_norm
    - RBIGINT
    - bint_new
    - mrb_as_bint
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_divmod(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1278,1
    - Dst: mrb_bint_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1279,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1280,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1286,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1287,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1288,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1290,1
    - Dst: mpz_get_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1291,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1299,1
    - Dst: mpz_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1301
    functionName: mrb_bint_cmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 3
    functionsReached:
    - mpz_get_int
    - mrb_integer
    - RBIGINT
    - mrb_float_p
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_float
    - mrb_bint_as_float
    - mpz_cmp
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int mrb_bint_cmp(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1306,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1307,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1310,1
    - Dst: mpz_pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1311,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1311,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1312,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1315,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1317,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1303
    functionDepth: 8
    functionLinenumber: 1303
    functionLinenumberEnd: 1320
    functionName: mrb_bint_pow
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - mpz_pow
    - mrb_integer
    - RBIGINT
    - bint_new
    - mrb_raise
    - mrb_raisef
    - mrb_type
    - mrb_obj_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_pow(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1325,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1326,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1329,1
    - Dst: bint_new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1330,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1330,1
    - Dst: mpz_powm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1331,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1332,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1336,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1337,1
    - Dst: mpz_powm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1338,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1339,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1341,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1343,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - x
    - exp
    - mod
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1322
    functionDepth: 10
    functionLinenumber: 1322
    functionLinenumberEnd: 1346
    functionName: mrb_bint_powm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - RBIGINT
    - bint_norm
    - bint_new
    - mrb_raise
    - mrb_nil_value
    - mpz_powm
    - mrb_raisef
    - mrb_type
    - mrb_obj_value
    - bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_powm(mrb_state *mrb, mrb_value x, mrb_int exp, mrb_value
      mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1351,1
    - Dst: mpz_sizeinbase
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1352,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1353,1
    - Dst: mpz_get_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1354,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1354,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1355,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1355,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1355,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - x
    - base
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1348
    functionDepth: 9
    functionLinenumber: 1348
    functionLinenumberEnd: 1357
    functionName: mrb_bint_to_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 2
    functionsReached:
    - mpz_get_str
    - RBIGINT
    - RSTRING_PTR
    - RSTR_SET_LEN
    - mpz_sizeinbase
    - mrb_str_new
    - strlen
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_to_s(mrb_state *mrb, mrb_value x, mrb_int base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1362,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1363,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1366,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1368,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1368,1
    - Dst: mpz_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1369,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1370,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1371,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1374,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1375,1
    - Dst: mpz_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1376,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1359
    functionDepth: 8
    functionLinenumber: 1359
    functionLinenumberEnd: 1378
    functionName: mrb_bint_and
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - mpz_clear
    - bint_new
    - mrb_float_p
    - mpz_init_set_int
    - mrb_as_bint
    - mpz_and
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_and(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1383,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1384,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1387,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1389,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1389,1
    - Dst: mpz_or
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1390,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1391,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1392,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1395,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1396,1
    - Dst: mpz_or
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1397,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1380
    functionDepth: 8
    functionLinenumber: 1380
    functionLinenumberEnd: 1399
    functionName: mrb_bint_or
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - mpz_clear
    - bint_new
    - mrb_float_p
    - mpz_init_set_int
    - mpz_or
    - mrb_as_bint
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_or(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1404,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1405,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1408,1
    - Dst: mpz_init_set_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1410,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1410,1
    - Dst: mpz_xor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1411,1
    - Dst: mpz_clear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1412,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1413,1
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1416,1
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1417,1
    - Dst: mpz_xor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1418,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1401
    functionDepth: 8
    functionLinenumber: 1401
    functionLinenumberEnd: 1420
    functionName: mrb_bint_xor
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - mpz_clear
    - bint_new
    - mrb_float_p
    - mpz_init_set_int
    - mpz_xor
    - mrb_as_bint
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_xor(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1425,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1426,1
    - Dst: mpz_neg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1428,1
    - Dst: mpz_sub_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1429,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1422
    functionDepth: 9
    functionLinenumber: 1422
    functionLinenumberEnd: 1431
    functionName: mrb_bint_rev
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mpz_sub_int
    - mpz_neg
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_rev(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1436,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1437,1
    - Dst: mpz_div_2exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1439,1
    - Dst: mpz_mul_2exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1442,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - width
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1433
    functionDepth: 8
    functionLinenumber: 1433
    functionLinenumberEnd: 1445
    functionName: mrb_bint_lshift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mpz_mul_2exp
    - mpz_div_2exp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_lshift(mrb_state *mrb, mrb_value x, mrb_int width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBIGINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1450,1
    - Dst: bint_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1451,1
    - Dst: mpz_mul_2exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1453,1
    - Dst: mpz_div_2exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1456,1
    - Dst: bint_norm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - x
    - width
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1447
    functionDepth: 8
    functionLinenumber: 1447
    functionLinenumberEnd: 1459
    functionName: mrb_bint_rshift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    functionUses: 1
    functionsReached:
    - bint_norm
    - RBIGINT
    - bint_new
    - mpz_mul_2exp
    - mpz_div_2exp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_bint_rshift(mrb_state *mrb, mrb_value x, mrb_int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: HIGH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: LOW
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: HIGH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: LOW
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: RBIGINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBIGINT(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: iabs
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iabs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: imax
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imax(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: hd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hd(x,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: dg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dg(x,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: RBIGINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBIGINT(v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:18,1
    - Dst: mrb_get_backtrace
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:20,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:21,1
    - Dst: mrb_range_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:29,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:31,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:36,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:40,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:42,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:48,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:55,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:57,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:60,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:63,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:66,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:66,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 12
    functionDepth: 14
    functionLinenumber: 12
    functionLinenumberEnd: 67
    functionName: mrb_f_caller
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_new
    - mrb_ary_new_from_values
    - mrb_get_args
    - mrb_range_beg_len
    - mrb_as_int
    - mrb_range_p
    - mrb_raisef
    - RARRAY_LEN
    - mrb_nil_value
    - mrb_get_backtrace
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_caller(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:83,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:85,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: mrb_f_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_symbol_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:104,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: mrb_f_callee
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_symbol_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_callee(mrb_state *mrb, mrb_value self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:137,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:138,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:140,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:142,1
    - Dst: mrb_float_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:146,1
    - Dst: mrb_str_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:155,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:161,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:162,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:167,1
    - Dst: mrb_ensure_integer_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:170,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 131
    functionDepth: 9
    functionLinenumber: 131
    functionLinenumberEnd: 171
    functionName: mrb_f_integer
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_obj_as_string
    - mrb_raise
    - mrb_str_to_integer
    - mrb_get_args
    - mrb_float_to_integer
    - mrb_type
    - mrb_ensure_integer_type
    - mrb_nil_p
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_integer(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:189,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:191,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:192,1
    - Dst: mrb_str_to_dbl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:192,1
    - Dst: mrb_ensure_float_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 8
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: mrb_f_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_ensure_float_type
    - mrb_float_value
    - mrb_str_to_dbl
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_float(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:212,1
    - Dst: mrb_type_convert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:215,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: mrb_f_string
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_type_convert
    - mrb_get_arg1
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_string(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:231,1
    - Dst: mrb_type_convert_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:234,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:234,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:235,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 9
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: mrb_f_array
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - mrb_ary_new_from_values
    - mrb_type_convert_check
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_array(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:259,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:261,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:261,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:261,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:262,1
    - Dst: mrb_ensure_hash_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: mrb_f_hash
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_array_p
    - mrb_hash_new
    - RARRAY_LEN
    - mrb_nil_p
    - mrb_ensure_hash_type
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_hash(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:273,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:273,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:274,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:274,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:275,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:275,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:276,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:276,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:277,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:277,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:279,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:279,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:281,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:281,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:282,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:282,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:283,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: mrb_mruby_kernel_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_module_function
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_kernel_ext_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: mrb_mruby_kernel_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_kernel_ext_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: sleep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sleep(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: usleep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usleep(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:45,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:50,1
    - Dst: usleep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:52,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:55,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:60,1
    - Dst: sleep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:62,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:64,1
    - Dst: time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:67,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: mrb_f_sleep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 0
    functionsReached:
    - time
    - mrb_raise
    - mrb_get_args
    - sleep
    - usleep
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_sleep(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:87,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:89,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:93,1
    - Dst: usleep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:96,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:98,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:102,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:113,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 73
    functionDepth: 9
    functionLinenumber: 73
    functionLinenumberEnd: 124
    functionName: mrb_f_usleep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - usleep
    - mrb_fixnum_value
    - GetSystemTimeAsFileTime
    - gettimeofday
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_usleep(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:129,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:129,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:130,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: mrb_mruby_sleep_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_REQ
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_sleep_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: mrb_mruby_sleep_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_sleep_gem_final(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mktemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:31,1
    - Dst: open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: mkstemp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - _mktemp
    - open
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mktemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:44,1
    - Dst: _mkdir
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - temp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: mkdtemp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - _mktemp
    - _mkdir
    linkageType: ''
    returnType: char
    signature: 'char *

      mkdtemp(char *temp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: umask
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: umask(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: rmdir
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmdir(path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GVNAME
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:75,1
    - Dst: GVNAME
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:75,1
    - Dst: GVNAME
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:75,1
    - Dst: GVNAME
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:75,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:86,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:86,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:86,1
    - Dst: umask
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:88,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:90,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:96,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:97,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:98,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:99,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:99,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:101,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:104,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:105,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:106,1
    - Dst: mkstemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:107,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:109,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:111,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:112,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:112,1
    - Dst: umask
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:114,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:116,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:118,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:119,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:121,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:122,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:124,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:126,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:127,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:129,1
    - Dst: unlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:132,1
    - Dst: symlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:133,1
    - Dst: basename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:133,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:134,1
    - Dst: unlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:137,1
    - Dst: socket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:138,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:140,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:143,1
    - Dst: bind
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:145,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:146,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:150,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 70
    functionDepth: 12
    functionLinenumber: 70
    functionLinenumberEnd: 155
    functionName: mrb_io_test_io_setup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - umask
    - mrb_str_new_capa
    - mrb_true_value
    - fputs
    - mrb_str_cat_cstr
    - fopen
    - GVNAME
    - RSTRING_END
    - strncpy
    - RSTRING_PTR
    - mrb_raise
    - basename
    - mrb_str_new_cstr
    - fclose
    - symlink
    - close
    - getenv
    - mrb_nil_value
    - unlink
    - strlen
    - mrb_intern_cstr
    - mkstemp
    - mrb_gv_set
    - mrb_str_cat_lit
    - mrb_raisef
    - bind
    - socket
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: GVNAME
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GVNAME(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:160,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:160,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:161,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:161,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:162,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:162,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:163,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:163,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:165,1
    - Dst: remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:166,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:166,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:168,1
    - Dst: remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:169,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:169,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:171,1
    - Dst: remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:172,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:172,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:174,1
    - Dst: remove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:175,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:175,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:178,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:178,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:178,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:179,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:179,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:179,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:180,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:180,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:180,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:181,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:181,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:181,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:182,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:182,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:182,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: mrb_io_test_io_cleanup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - remove
    - RSTRING_PTR
    - mrb_gv_set
    - mrb_nil_value
    - mrb_gv_get
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_test_io_cleanup(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:193,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:194,1
    - Dst: mkdtemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:195,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:196,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: mrb_io_test_mkdtemp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_cstr
    - mkdtemp
    - mrb_get_args
    - mrb_sys_fail
    - mrb_str_new_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_test_mkdtemp(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:206,1
    - Dst: rmdir
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:207,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:208,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: mrb_io_test_rmdir
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_get_args
    - rmdir
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_test_rmdir(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:218,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:220,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: mrb_io_win_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_win_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:236,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:237,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:237,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:238,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:238,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:240,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:240,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:241,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:241,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:242,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:242,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:244,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: mrb_mruby_io_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
    functionUses: 0
    functionsReached:
    - mrb_define_const
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_bool_value
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_io_gem_test(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: CHMOD
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHMOD(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: realpath
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realpath(N,R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: CHMOD
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHMOD(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: mrb_stat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_stat(path, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: mrb_fstat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fstat(fd, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: mrb_stat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_stat(path, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: mrb_fstat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fstat(fd, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: mrb_stat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_stat(path, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: mrb_fstat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_fstat(fd, sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:87,1
    - Dst: LockFileEx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - operation
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: flock
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - LockFileEx
    - _get_osfhandle
    linkageType: ''
    returnType: int
    signature: int flock(int fd, int operation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:101,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:105,1
    - Dst: umask
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:106,1
    - Dst: umask
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:107,1
    - Dst: umask
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:109,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 9
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: mrb_file_s_umask
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - umask
    - mrb_get_args
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_umask(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:122,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:126,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:127,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:128,1
    - Dst: UNLINK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:129,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:130,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:131,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:133,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 9
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: mrb_file_s_unlink
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_get_args
    - UNLINK
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_ensure_string_type
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_unlink(mrb_state *mrb, mrb_value obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:144,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:145,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:145,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:146,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:146,1
    - Dst: rename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:147,1
    - Dst: CHMOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:149,1
    - Dst: UNLINK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:149,1
    - Dst: rename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:149,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:150,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:151,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:152,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:155,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:156,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:157,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:157,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:157,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:158,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:160,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:161,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 163
    functionName: mrb_file_s_rename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_locale_free
    - rename
    - mrb_get_args
    - UNLINK
    - CHMOD
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_fixnum_value
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_rename(mrb_state *mrb, mrb_value obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:174,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:175,1
    - Dst: _splitpath
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:176,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:177,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:178,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:179,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:181,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:189,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:193,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:194,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:194,1
    - Dst: dirname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:196,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:197,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:198,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:200,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 165
    functionDepth: 9
    functionLinenumber: 165
    functionLinenumberEnd: 203
    functionName: mrb_file_dirname
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_locale_free
    - mrb_str_to_cstr
    - mrb_get_args
    - snprintf
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - _splitpath
    - mrb_str_new_cstr
    - dirname
    - strlen
    - strncpy
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_dirname(mrb_state *mrb, mrb_value klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:217,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:218,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:219,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:226,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:227,1
    - Dst: _splitpath
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:230,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:231,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:232,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:236,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:237,1
    - Dst: basename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:238,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:239,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:241,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 205
    functionDepth: 9
    functionLinenumber: 205
    functionLinenumberEnd: 244
    functionName: mrb_file_basename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - strncmp
    - mrb_str_to_cstr
    - mrb_get_args
    - snprintf
    - mrb_sys_fail
    - _splitpath
    - mrb_str_new_cstr
    - basename
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_basename(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:253,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:255,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:256,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:256,1
    - Dst: mrb_str_append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:257,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:260,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:260,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:261,1
    - Dst: realpath
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:262,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:262,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:263,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:264,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:267,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:268,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:268,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 13
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: mrb_file_realpath
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - realpath
    - mrb_str_new_capa
    - RSTRING_CSTR
    - mrb_locale_free
    - RSTRING_PTR
    - mrb_get_args
    - mrb_str_append
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_str_new_cstr
    - mrb_str_dup
    - mrb_str_resize
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_realpath(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETCWD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:278,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:279,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:281,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:282,1
    - Dst: mrb_utf8_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 8
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: mrb_file__getwd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_utf8_from_locale
    - mrb_sys_fail
    - mrb_str_new_cstr
    - mrb_utf8_free
    - GETCWD
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file__getwd(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: IS_FILESEP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_FILESEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: IS_VOLSEP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_VOLSEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: IS_DEVICEID
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DEVICEID(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ISALPHA
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:297,1
    - Dst: IS_VOLSEP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:297,1
    - Dst: IS_FILESEP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: is_absolute_traditional_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - ISALPHA
    - IS_VOLSEP
    - IS_FILESEP
    linkageType: ''
    returnType: int
    signature: int is_absolute_traditional_path(const char *path, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DEVICEID
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: is_absolute_unc_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - IS_DEVICEID
    linkageType: ''
    returnType: int
    signature: int is_absolute_unc_path(const char *path, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DEVICEID
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:309,1
    - Dst: IS_FILESEP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: is_absolute_device_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - IS_DEVICEID
    - IS_FILESEP
    linkageType: ''
    returnType: int
    signature: int is_absolute_device_path(const char *path, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:315,1
    - Dst: IS_FILESEP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:316,1
    - Dst: is_absolute_traditional_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:319,1
    - Dst: is_absolute_unc_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:320,1
    - Dst: is_absolute_device_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: mrb_file_is_absolute_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - is_absolute_unc_path
    - IS_FILESEP
    - is_absolute_traditional_path
    - is_absolute_device_path
    - strlen
    linkageType: ''
    returnType: int
    signature: int mrb_file_is_absolute_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: mrb_file_is_absolute_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mrb_file_is_absolute_path(const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:350,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:352,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:354,1
    - Dst: mrb_file_is_absolute_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:356,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:357,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:360,1
    - Dst: getpwnam
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:361,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:363,1
    - Dst: mrb_file_is_absolute_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:366,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:367,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:370,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:371,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:372,1
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:375,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:377,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:379,1
    - Dst: mrb_file_is_absolute_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:381,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:382,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:385,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:387,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:388,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 392
    functionName: mrb_file__gethome
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - mrb_file_is_absolute_path
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_raise
    - mrb_get_args
    - mrb_locale_from_utf8
    - mrb_get_argc
    - getenv
    - mrb_raisef
    - mrb_str_new_cstr
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file__gethome(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:397,1
    - Dst: mrb_fstat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:400,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:401,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: mrb_file_mtime
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_io_fileno
    - mrb_fstat
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_mtime(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:409,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:414,1
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:415,1
    - Dst: flock
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:417,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:427,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:431,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 405
    functionDepth: 9
    functionLinenumber: 405
    functionLinenumberEnd: 437
    functionName: mrb_file_flock
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - flock
    - mrb_get_args
    - mrb_sys_fail
    - mrb_false_value
    - mrb_fixnum_value
    - mrb_io_fileno
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_flock(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:445,1
    - Dst: mrb_fstat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:446,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:447,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:452,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:454,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: mrb_file_size
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_float_value
    - mrb_int_value
    - mrb_fstat
    - mrb_io_fileno
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_size(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ftruncate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:465,1
    - Dst: _get_osfhandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:470,1
    - Dst: _lseeki64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:475,1
    - Dst: _lseeki64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:478,1
    - Dst: SetEndOfFile
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:480,1
    - Dst: _lseeki64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - fd
    - length
    argTypes:
    - int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 489
    functionName: mrb_ftruncate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - SetEndOfFile
    - ftruncate
    - _get_osfhandle
    - _lseeki64
    linkageType: ''
    returnType: int
    signature: int mrb_ftruncate(int fd, mrb_int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:496,1
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:498,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:499,1
    - Dst: mrb_ftruncate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:500,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:501,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 7
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: mrb_file_truncate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_raise
    - mrb_as_int
    - mrb_fixnum_value
    - mrb_ftruncate
    - mrb_io_fileno
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_truncate(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:511,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:515,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:517,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:518,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:518,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:519,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:519,1
    - Dst: symlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:520,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:521,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:522,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:523,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:523,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:523,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:525,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:526,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:527,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 507
    functionDepth: 9
    functionLinenumber: 507
    functionLinenumberEnd: 530
    functionName: mrb_file_s_symlink
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_raise
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_gc_arena_save
    - mrb_locale_from_utf8
    - mrb_sys_fail
    - mrb_fixnum_value
    - mrb_format
    - symlink
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_symlink(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:537,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:539,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:541,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:542,1
    - Dst: CHMOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:543,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:544,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:545,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:547,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:548,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 532
    functionDepth: 9
    functionLinenumber: 532
    functionLinenumberEnd: 552
    functionName: mrb_file_s_chmod
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_gc_arena_restore
    - mrb_get_args
    - CHMOD
    - mrb_gc_arena_save
    - mrb_locale_from_utf8
    - mrb_sys_fail
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_chmod(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:557,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:558,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:565,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:567,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:568,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:570,1
    - Dst: readlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:571,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:573,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:575,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:577,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:578,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:580,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:581,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:582,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:583,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 554
    functionDepth: 9
    functionLinenumber: 554
    functionLinenumberEnd: 588
    functionName: mrb_file_s_readlink
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - mrb_utf8_from_locale
    - mrb_locale_free
    - mrb_raise
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_realloc
    - mrb_free
    - mrb_gc_arena_save
    - mrb_locale_from_utf8
    - mrb_sys_fail
    - readlink
    - mrb_str_new
    - mrb_nil_value
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_file_s_readlink(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:595,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:595,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:596,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:597,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:598,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:598,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:599,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:599,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:600,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:600,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:601,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:601,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:602,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:602,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:603,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:603,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:603,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:604,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:604,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:606,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:606,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:607,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:607,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:608,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:608,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:608,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:609,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:609,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:610,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:610,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:612,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:612,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:613,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:613,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:614,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:614,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:615,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:615,1
    - Dst: mrb_define_module_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:617,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:617,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:618,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:618,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:618,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:619,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:619,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:619,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:620,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:620,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:620,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:621,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:621,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:621,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:622,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:622,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:622,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:623,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:623,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:623,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:625,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:625,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:625,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:627,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:627,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:627,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:629,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:629,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:629,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:631,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:631,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:631,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:632,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:632,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:632,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:633,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:633,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:633,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:634,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:634,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:634,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:635,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:635,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:635,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:636,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:636,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:636,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:637,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:637,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:637,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:638,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:638,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:638,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:639,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:639,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:639,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:640,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:640,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:640,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:641,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:641,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:641,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:642,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:642,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:642,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:643,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:643,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:643,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:644,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:644,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:644,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:645,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:645,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:645,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:646,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:646,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:646,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:647,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:647,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:647,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:648,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:648,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 590
    functionDepth: 15
    functionLinenumber: 590
    functionLinenumberEnd: 649
    functionName: mrb_init_file
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - MRB_ARGS_OPT
    - mrb_define_const_id
    - MRB_ARGS_REST
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module_under_id
    - mrb_str_new_cstr
    - mrb_fixnum_value
    - mrb_define_class
    - mrb_nil_value
    - MRB_ARGS_ANY
    - mrb_class_get_id
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_file(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:39,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:39,1
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:41,1
    - Dst: fstat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:44,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:47,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:51,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:51,1
    - Dst: LSTAT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:54,1
    - Dst: stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:56,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - mrb
    - obj
    - st
    - do_lstat
    argTypes:
    - mrb_state*
    - mrb_value
    - struct stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: mrb_stat0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - LSTAT
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_locale_from_utf8
    - fstat
    - stat
    - mrb_data_get_ptr
    - mrb_class_get
    linkageType: ''
    returnType: int
    signature: int mrb_stat0(mrb_state *mrb, mrb_value obj, struct stat *st, int do_lstat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_stat0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - obj
    - st
    argTypes:
    - mrb_state*
    - mrb_value
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: mrb_stat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_stat0
    linkageType: ''
    returnType: int
    signature: int mrb_stat(mrb_state *mrb, mrb_value obj, struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_stat0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - obj
    - st
    argTypes:
    - mrb_state*
    - mrb_value
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 8
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: mrb_lstat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_stat0
    linkageType: ''
    returnType: int
    signature: int mrb_lstat(mrb_state *mrb, mrb_value obj, struct stat *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:98,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:100,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:101,1
    - Dst: S_ISDIR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:102,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:103,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: mrb_filetest_s_directory_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - S_ISDIR
    - mrb_stat
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_directory_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: S_ISDIR
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:119,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:127,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:129,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:130,1
    - Dst: S_ISFIFO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:131,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:132,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: mrb_filetest_s_pipe_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - mrb_get_arg1
    - mrb_true_value
    - mrb_raise
    - mrb_stat
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_pipe_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: S_ISFIFO
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISFIFO(m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:150,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:168,1
    - Dst: mrb_lstat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:170,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:171,1
    - Dst: S_ISLNK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:172,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:173,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 146
    functionDepth: 9
    functionLinenumber: 146
    functionLinenumberEnd: 178
    functionName: mrb_filetest_s_symlink_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - mrb_raise
    - S_ISLNK
    - mrb_false_value
    - mrb_lstat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_symlink_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:191,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:209,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:211,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:212,1
    - Dst: S_ISSOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:213,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:214,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 7
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: mrb_filetest_s_socket_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - mrb_raise
    - mrb_stat
    - mrb_false_value
    - S_ISSOCK
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_socket_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:233,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:235,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:236,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: mrb_filetest_s_exist_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_stat
    - mrb_false_value
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_exist_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:257,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:259,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:260,1
    - Dst: S_ISREG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:261,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:262,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: mrb_filetest_s_file_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_true_value
    - mrb_stat
    - mrb_false_value
    - S_ISREG
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_file_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: S_ISREG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:279,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:281,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:282,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:284,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 7
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: mrb_filetest_s_zero_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_stat
    - mrb_false_value
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_zero_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:302,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:304,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:305,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 7
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: mrb_filetest_s_size
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - mrb_get_arg1
    - mrb_stat
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_size(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:322,1
    - Dst: mrb_stat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:324,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:325,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:327,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 7
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: mrb_filetest_s_size_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_int_value
    - mrb_get_arg1
    - mrb_stat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_filetest_s_size_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:337,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:339,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:339,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:340,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:340,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:341,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:341,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:342,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:342,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:343,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:343,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:344,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:344,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:345,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:345,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:346,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:346,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:347,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:347,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:348,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: mrb_init_file_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_REQ
    - mrb_define_class_method
    - mrb_define_class
    linkageType: ''
    returnType: void
    signature: void mrb_init_file_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: WEXITSTATUS
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: OPEN_RDONLY_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_RDONLY_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: OPEN_WRONLY_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_WRONLY_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: OPEN_RDWR_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_RDWR_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: OPEN_READABLE_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_READABLE_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: OPEN_WRITABLE_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_WRITABLE_P(f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:83,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:85,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 7
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: io_get_open_fptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_data_get_ptr
    linkageType: ''
    returnType: struct mrb_io
    signature: 'struct mrb_io *

      io_get_open_fptr(mrb_state *mrb, mrb_value self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_defined_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:100,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:100,1
    - Dst: mrb_module_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:101,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:101,1
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:102,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:102,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:102,1
    - Dst: mrb_class_get_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:103,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:103,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:107,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:107,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:107,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:107,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:107,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:109,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:109,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:111,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - pid
    - status
    argTypes:
    - mrb_state*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: io_set_process_status
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_const_defined
    - mrb_module_get_id
    - mrb_funcall_id
    - mrb_class_get_under_id
    - mrb_intern_lit
    - mrb_class_defined_id
    - mrb_gv_set
    - mrb_fixnum_value
    - mrb_obj_value
    - WEXITSTATUS
    linkageType: ''
    returnType: void
    signature: void io_set_process_status(mrb_state *mrb, pid_t pid, int status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:131,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - mrb
    - mode
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 153
    functionName: mrb_io_modestr_to_flags
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: int
    signature: int mrb_io_modestr_to_flags(mrb_state *mrb, const char *mode)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:158,1
    - Dst: mrb_io_modestr_to_flags
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:159,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:161,1
    - Dst: mrb_io_modestr_to_flags
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:162,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:162,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:166,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:179,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - mrb
    - mode
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 222
    functionName: mrb_io_mode_to_flags
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_io_modestr_to_flags
    - RSTRING_CSTR
    - mrb_as_int
    - mrb_raisef
    - mrb_nil_p
    - mrb_string_p
    linkageType: ''
    returnType: int
    signature: int mrb_io_mode_to_flags(mrb_state *mrb, mrb_value mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:230,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:232,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:241,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - fd
    argTypes:
    - mrb_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: mrb_fd_cloexec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - fcntl
    - mrb_bug
    linkageType: ''
    returnType: void
    signature: void mrb_fd_cloexec(mrb_state *mrb, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:253,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:256,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - fildes
    argTypes:
    - mrb_state*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: mrb_cloexec_pipe
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - pipe
    - mrb_fd_cloexec
    linkageType: ''
    returnType: int
    signature: int mrb_cloexec_pipe(mrb_state *mrb, int fildes[2])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cloexec_pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:265,1
    - Dst: mrb_garbage_collect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:268,1
    - Dst: mrb_cloexec_pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - pipes
    argTypes:
    - mrb_state*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 12
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: mrb_pipe
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_garbage_collect
    - mrb_cloexec_pipe
    linkageType: ''
    returnType: int
    signature: int mrb_pipe(mrb_state *mrb, int pipes[2])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: mrb_proc_exec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - execl
    linkageType: ''
    returnType: int
    signature: int mrb_proc_exec(const char *pname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fptr_finalize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:299,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: mrb_io_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - fptr_finalize
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_io_free(mrb_state *mrb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 318
    functionName: mrb_io_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: struct mrb_io
    signature: 'struct mrb_io *

      mrb_io_alloc(mrb_state *mrb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:330,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:331,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:333,1
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:335,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:337,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: option_to_fd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_raise
    - mrb_io_fileno
    - mrb_type
    - mrb_nil_p
    - mrb_undef_p
    linkageType: ''
    returnType: int
    signature: int option_to_fd(mrb_state *mrb, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:350,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:352,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:352,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:352,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:360,1
    - Dst: mrb_io_mode_to_flags
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:362,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:363,1
    - Dst: option_to_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:364,1
    - Dst: option_to_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:365,1
    - Dst: option_to_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:366,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:368,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:368,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 8
    argNames:
    - mrb
    - klass
    - cmd
    - flags
    - doexec
    - opt_in
    - opt_out
    - opt_err
    argTypes:
    - mrb_state*
    - mrb_value
    - char**
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 345
    functionDepth: 9
    functionLinenumber: 345
    functionLinenumberEnd: 369
    functionName: mrb_io_s_popen_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_io_mode_to_flags
    - option_to_fd
    - mrb_data_object_alloc
    - mrb_obj_value
    - mrb_get_args
    - mrb_class_ptr
    - strcmp
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value mrb_io_s_popen_args(mrb_state *mrb, mrb_value klass,\n                    const
      char **cmd, int *flags, int *doexec,\n                    int *opt_in, int *opt_out,
      int *opt_err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_s_popen_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:395,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:402,1
    - Dst: CreatePipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:403,1
    - Dst: SetHandleInformation
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:404,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:405,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:409,1
    - Dst: CreatePipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:410,1
    - Dst: SetHandleInformation
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:411,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:412,1
    - Dst: ZeroMemory
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:417,1
    - Dst: ZeroMemory
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:418,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:423,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:427,1
    - Dst: CreateProcess
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:430,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:433,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:434,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:435,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:436,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:437,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:439,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:440,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:441,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:445,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:445,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:445,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:447,1
    - Dst: _open_osfhandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:448,1
    - Dst: _open_osfhandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:449,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:451,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:452,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:455,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 372
    functionDepth: 10
    functionLinenumber: 372
    functionLinenumberEnd: 458
    functionName: mrb_io_s_popen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - _open_osfhandle
    - OPEN_WRITABLE_P
    - CreateProcess
    - mrb_iv_set
    - DATA_PTR
    - mrb_intern_lit
    - OPEN_READABLE_P
    - CloseHandle
    - mrb_sys_fail
    - mrb_io_s_popen_args
    - SetHandleInformation
    - mrb_str_new_cstr
    - mrb_raisef
    - CreatePipe
    - mrb_io_alloc
    - DATA_TYPE
    - ZeroMemory
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_s_popen_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:475,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:478,1
    - Dst: pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:479,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:480,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:482,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:483,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:486,1
    - Dst: pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:487,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:488,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:489,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:490,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:492,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:493,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:498,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:499,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:500,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:503,1
    - Dst: fork
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:504,1
    - Dst: dup2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:507,1
    - Dst: dup2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:510,1
    - Dst: dup2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:513,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:515,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:516,1
    - Dst: dup2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:518,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:519,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:522,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:523,1
    - Dst: dup2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:525,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:526,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:531,1
    - Dst: mrb_proc_exec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:533,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:534,1
    - Dst: _exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:535,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:537,1
    - Dst: OPEN_RDWR_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:541,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:542,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:544,1
    - Dst: OPEN_RDONLY_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:546,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:547,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:550,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:554,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:554,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:554,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:556,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:560,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:561,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:564,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:565,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:571,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:572,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:573,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:575,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:576,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:577,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:580,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 103
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 460
    functionDepth: 10
    functionLinenumber: 460
    functionLinenumberEnd: 584
    functionName: mrb_io_s_popen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - pipe
    - mrb_intern_lit
    - mrb_sys_fail
    - mrb_io_s_popen_args
    - mrb_proc_exec
    - mrb_fd_cloexec
    - fflush
    - OPEN_READABLE_P
    - OPEN_RDWR_P
    - mrb_str_new_cstr
    - fork
    - dup2
    - DATA_TYPE
    - close
    - OPEN_RDONLY_P
    - mrb_nil_value
    - mrb_io_alloc
    - OPEN_WRITABLE_P
    - mrb_iv_set
    - _exit
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - fd
    - failed
    argTypes:
    - mrb_state*
    - int
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 600
    functionName: mrb_dup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - dup
    linkageType: ''
    returnType: int
    signature: int mrb_dup(mrb_state *mrb, int fd, mrb_bool *failed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:605,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:611,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:612,1
    - Dst: fptr_finalize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:615,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:616,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:618,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:620,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:621,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:623,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:623,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:624,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:624,1
    - Dst: mrb_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:626,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:628,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:630,1
    - Dst: mrb_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:633,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:635,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:636,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 602
    functionDepth: 8
    functionLinenumber: 602
    functionLinenumberEnd: 648
    functionName: mrb_io_initialize_copy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - close
    - mrb_get_arg1
    - fptr_finalize
    - DATA_PTR
    - mrb_fd_cloexec
    - mrb_iv_set
    - mrb_free
    - mrb_intern_lit
    - mrb_sys_fail
    - mrb_iv_get
    - io_get_open_fptr
    - mrb_dup
    - mrb_io_alloc
    - DATA_TYPE
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_initialize_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:667,1
    - Dst: _getmaxstdio
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:672,1
    - Dst: fstat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:677,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - fd
    argTypes:
    - mrb_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 650
    functionDepth: 5
    functionLinenumber: 650
    functionLinenumberEnd: 685
    functionName: check_file_descriptor
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - fstat
    - _getmaxstdio
    - getsockopt
    - mrb_sys_fail
    linkageType: ''
    returnType: void
    signature: void check_file_descriptor(mrb_state *mrb, mrb_int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:695,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:697,1
    - Dst: check_file_descriptor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:704,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:707,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:708,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:710,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:711,1
    - Dst: mrb_io_mode_to_flags
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:714,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:716,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:716,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:716,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:718,1
    - Dst: fptr_finalize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:720,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:721,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:723,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:725,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:726,1
    - Dst: OPEN_READABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:729,1
    - Dst: OPEN_WRITABLE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 687
    functionDepth: 9
    functionLinenumber: 687
    functionLinenumberEnd: 733
    functionName: mrb_io_initialize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - check_file_descriptor
    - fptr_finalize
    - DATA_TYPE
    - mrb_io_mode_to_flags
    - DATA_PTR
    - mrb_iv_set
    - OPEN_WRITABLE_P
    - mrb_get_args
    - mrb_intern_lit
    - mrb_free
    - OPEN_READABLE_P
    - mrb_hash_new
    - mrb_str_new_cstr
    - mrb_nil_value
    - mrb_io_alloc
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_initialize(mrb_state *mrb, mrb_value io)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:747,1
    - Dst: WSAGetLastError
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:748,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:754,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:762,1
    - Dst: waitpid
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:775,1
    - Dst: io_set_process_status
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:778,1
    - Dst: OpenProcess
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:781,1
    - Dst: WaitForSingleObject
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:783,1
    - Dst: GetExitCodeProcess
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:783,1
    - Dst: io_set_process_status
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:785,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:786,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:794,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 3
    argNames:
    - mrb
    - fptr
    - quiet
    argTypes:
    - mrb_state*
    - struct mrb_io*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 735
    functionDepth: 7
    functionLinenumber: 735
    functionLinenumberEnd: 796
    functionName: fptr_finalize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 3
    functionsReached:
    - closesocket
    - close
    - WaitForSingleObject
    - WSAGetLastError
    - GetExitCodeProcess
    - CloseHandle
    - mrb_sys_fail
    - io_set_process_status
    - OpenProcess
    - waitpid
    linkageType: ''
    returnType: void
    signature: void fptr_finalize(mrb_state *mrb, struct mrb_io *fptr, int quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:801,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 8
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: io_get_read_fptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - io_get_open_fptr
    linkageType: ''
    returnType: struct mrb_io
    signature: 'struct mrb_io *

      io_get_read_fptr(mrb_state *mrb, mrb_value self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_get_read_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:811,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 808
    functionDepth: 9
    functionLinenumber: 808
    functionLinenumberEnd: 813
    functionName: mrb_io_check_readable
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - io_get_read_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_check_readable(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:818,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 815
    functionDepth: 8
    functionLinenumber: 815
    functionLinenumberEnd: 823
    functionName: io_get_write_fptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - io_get_open_fptr
    linkageType: ''
    returnType: struct mrb_io
    signature: 'struct mrb_io *

      io_get_write_fptr(mrb_state *mrb, mrb_value self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:830,1
    - Dst: isatty
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:831,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:832,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 834
    functionName: mrb_io_isatty
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_false_value
    - isatty
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_isatty(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:839,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:840,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:845,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:845,1
    - Dst: mrb_io_initialize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 10
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: mrb_io_s_for_fd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_obj_alloc
    - mrb_class_ptr
    - mrb_io_initialize
    - MRB_INSTANCE_TT
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_for_fd(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:854,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:855,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:856,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 849
    functionDepth: 9
    functionLinenumber: 849
    functionLinenumberEnd: 859
    functionName: mrb_io_s_sysclose
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - close
    - mrb_get_args
    - mrb_fixnum_value
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_sysclose(mrb_state *mrb, mrb_value klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:865,1
    - Dst: open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:874,1
    - Dst: mrb_garbage_collect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:880,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:886,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:886,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:886,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:888,1
    - Dst: mrb_fd_cloexec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - mrb
    - pathname
    - flags
    - mode
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 861
    functionDepth: 12
    functionLinenumber: 861
    functionLinenumberEnd: 894
    functionName: mrb_cloexec_open
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_locale_free
    - mrb_fd_cloexec
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_garbage_collect
    - mrb_format
    - open
    linkageType: ''
    returnType: int
    signature: int mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int
      flags, mrb_int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:899,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:900,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:905,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:910,1
    - Dst: mrb_io_mode_to_flags
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:911,1
    - Dst: mrb_cloexec_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:912,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 896
    functionDepth: 13
    functionLinenumber: 896
    functionLinenumberEnd: 914
    functionName: mrb_io_s_sysopen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - mrb_io_mode_to_flags
    - mrb_get_args
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_cloexec_open
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_sysopen(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - buf
    - nbytes
    - offset
    argTypes:
    - int
    - void*
    - fsize_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: mrb_sysread_dummy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: mrb_io_read_write_size
    signature: mrb_io_read_write_size mrb_sysread_dummy(int fd, void *buf, fsize_t
      nbytes, off_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:929,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:932,1
    - Dst: mrb_io_sysread_common
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 926
    functionDepth: 9
    functionLinenumber: 926
    functionLinenumberEnd: 935
    functionName: mrb_io_sysread
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_io_sysread_common
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_sysread(mrb_state *mrb, mrb_value io)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:946,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:949,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:952,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:953,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:956,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:957,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:960,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:960,1
    - Dst: io_get_read_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:963,1
    - Dst: readfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:964,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:964,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:966,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:968,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:969,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - mrb
    - io
    - buf
    - maxlen
    - offset
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 937
    functionDepth: 11
    functionLinenumber: 937
    functionLinenumberEnd: 975
    functionName: mrb_io_sysread_common
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 1
    functionsReached:
    - readfunc
    - mrb_raise
    - RSTRING_PTR
    - io_get_read_fptr
    - RSTRING_LEN
    - mrb_sys_fail
    - mrb_str_new
    - mrb_str_resize
    - mrb_str_modify
    - mrb_nil_p
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value mrb_io_sysread_common(mrb_state *mrb,\n    mrb_io_read_write_size
      (*readfunc)(int, void *, fsize_t, off_t),\n    mrb_value io, mrb_value buf,
      mrb_int maxlen, off_t offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:984,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:989,1
    - Dst: lseek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:990,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:992,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:996,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:998,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 977
    functionDepth: 9
    functionLinenumber: 977
    functionLinenumberEnd: 1003
    functionName: mrb_io_sysseek
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - lseek
    - mrb_get_args
    - mrb_sys_fail
    - mrb_float_value
    - mrb_int_value
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_sysseek(mrb_state *mrb, mrb_value io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: io_get_write_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1013,1
    - Dst: writefunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1019,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1019,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1019,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1021,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - mrb
    - io
    - buf
    - offset
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1005
    functionDepth: 9
    functionLinenumber: 1005
    functionLinenumberEnd: 1025
    functionName: mrb_io_syswrite_common
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - io_get_write_fptr
    - RSTRING_LEN
    - mrb_sys_fail
    - mrb_int_value
    - writefunc
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value mrb_io_syswrite_common(mrb_state *mrb,\n    mrb_io_read_write_size
      (*writefunc)(int, const void *, fsize_t, off_t),\n    mrb_value io, mrb_value
      buf, off_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - buf
    - nbytes
    - offset
    argTypes:
    - int
    - void*
    - fsize_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1031
    functionName: mrb_syswrite_dummy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: mrb_io_read_write_size
    signature: mrb_io_read_write_size mrb_syswrite_dummy(int fd, const void *buf,
      fsize_t nbytes, off_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1038,1
    - Dst: mrb_io_syswrite_common
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1033
    functionDepth: 10
    functionLinenumber: 1033
    functionLinenumberEnd: 1041
    functionName: mrb_io_syswrite
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_io_syswrite_common
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_syswrite(mrb_state *mrb, mrb_value io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1047,1
    - Dst: fptr_finalize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1048,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1043
    functionDepth: 8
    functionLinenumber: 1043
    functionLinenumberEnd: 1050
    functionName: mrb_io_close
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - fptr_finalize
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_close(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1056,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1057,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1058,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1052
    functionDepth: 8
    functionLinenumber: 1052
    functionLinenumberEnd: 1061
    functionName: mrb_io_close_write
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - close
    - mrb_sys_fail
    - mrb_nil_value
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_close_write(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1067,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1069,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1063
    functionDepth: 7
    functionLinenumber: 1063
    functionLinenumberEnd: 1073
    functionName: mrb_io_closed
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_data_get_ptr
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_closed(mrb_state *mrb, mrb_value io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1079,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1082,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1075
    functionDepth: 8
    functionLinenumber: 1075
    functionLinenumberEnd: 1086
    functionName: mrb_io_pid
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_fixnum_value
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_pid(mrb_state *mrb, mrb_value io)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1093,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1095,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1101,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1102,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - time
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1111
    functionName: time2timeval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_float
    - mrb_integer
    - mrb_type
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval time2timeval(mrb_state *mrb, mrb_value time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1116,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1116,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1117,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1113
    functionDepth: 3
    functionLinenumber: 1113
    functionLinenumberEnd: 1121
    functionName: mrb_io_read_data_pending
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_iv_get
    - mrb_intern_lit
    - RSTRING_LEN
    - mrb_string_p
    linkageType: ''
    returnType: int
    signature: int mrb_io_read_data_pending(mrb_state *mrb, mrb_value io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1127,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1128,1
    - Dst: mrb_pipe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1133,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1134,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1137,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1137,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1137,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1138,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1138,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1138,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1139,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1144,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1145,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1147,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1147,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1147,1
    - Dst: mrb_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1148,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1148,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1148,1
    - Dst: mrb_io_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1149,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1154,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1155,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1124
    functionDepth: 13
    functionLinenumber: 1124
    functionLinenumberEnd: 1158
    functionName: mrb_io_s_pipe
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_data_object_alloc
    - mrb_iv_set
    - mrb_obj_value
    - mrb_class_ptr
    - mrb_intern_lit
    - mrb_sys_fail
    - mrb_pipe
    - mrb_str_new_cstr
    - mrb_nil_value
    - mrb_io_alloc
    - DATA_TYPE
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_pipe(mrb_state *mrb, mrb_value klass)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1177,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1180,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1183,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1184,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1185,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1194,1
    - Dst: time2timeval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1197,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1201,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1202,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1203,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1205,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1206,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1207,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1208,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1210,1
    - Dst: mrb_io_read_data_pending
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1211,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1213,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1226,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1227,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1229,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1230,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1231,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1231,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1233,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1237,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1246,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1247,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1249,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1250,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1251,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1251,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1253,1
    - Dst: FD_SET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1257,1
    - Dst: select
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1269,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1272,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1279,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1281,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1282,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1282,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1282,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1283,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1283,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1283,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1284,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1284,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1284,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1288,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1289,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1290,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1290,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1291,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1292,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1293,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1293,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1299,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1300,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1301,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1301,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1302,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1303,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1303,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1304,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1305,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1305,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1311,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1312,1
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1313,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1313,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1314,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1315,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1315,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1316,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1317,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1317,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 140
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1161
    functionDepth: 9
    functionLinenumber: 1161
    functionLinenumberEnd: 1324
    functionName: mrb_io_s_select
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_check_type
    - mrb_ary_new
    - select
    - FD_ZERO
    - mrb_get_args
    - FD_ISSET
    - mrb_io_read_data_pending
    - mrb_ary_push
    - mrb_sys_fail
    - RARRAY_LEN
    - mrb_argnum_error
    - time2timeval
    - mrb_nil_value
    - mrb_ary_new_capa
    - FD_SET
    - mrb_nil_p
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_s_select(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1326
    functionDepth: 8
    functionLinenumber: 1326
    functionLinenumberEnd: 1332
    functionName: mrb_io_fileno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 5
    functionsReached:
    - io_get_open_fptr
    linkageType: ''
    returnType: int
    signature: int mrb_io_fileno(mrb_state *mrb, mrb_value io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1337,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1334
    functionDepth: 9
    functionLinenumber: 1334
    functionLinenumberEnd: 1339
    functionName: mrb_io_fileno_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_io_fileno
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_fileno_m(mrb_state *mrb, mrb_value io)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1348,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1351,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1351,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1352,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1355,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1355,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1356,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1342
    functionDepth: 8
    functionLinenumber: 1342
    functionLinenumberEnd: 1358
    functionName: mrb_io_close_on_exec_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - fcntl
    - mrb_sys_fail
    - mrb_false_value
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_close_on_exec_p(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1371,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1372,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1376,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1376,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1379,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1381,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1385,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1385,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1388,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1389,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1392,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1364
    functionDepth: 9
    functionLinenumber: 1364
    functionLinenumberEnd: 1393
    functionName: mrb_io_set_close_on_exec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - fcntl
    - mrb_sys_fail
    - io_get_open_fptr
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_set_close_on_exec(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1404,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1405,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1398
    functionDepth: 9
    functionLinenumber: 1398
    functionLinenumberEnd: 1408
    functionName: mrb_io_set_sync
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_set_sync(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_get_open_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1414,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1410
    functionDepth: 8
    functionLinenumber: 1410
    functionLinenumberEnd: 1416
    functionName: mrb_io_sync
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - io_get_open_fptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_sync(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - offv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1426
    functionName: value2off
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_as_int
    linkageType: ''
    returnType: off_t
    signature: off_t value2off(mrb_state *mrb, mrb_value offv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1435,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1439,1
    - Dst: mrb_io_sysread_common
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1441,1
    - Dst: value2off
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1432
    functionDepth: 12
    functionLinenumber: 1432
    functionLinenumberEnd: 1442
    functionName: mrb_io_pread
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_io_sysread_common
    - mrb_get_args
    - value2off
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_pread(mrb_state *mrb, mrb_value io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1453,1
    - Dst: mrb_io_syswrite_common
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1455,1
    - Dst: value2off
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - io
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1448
    functionDepth: 10
    functionLinenumber: 1448
    functionLinenumberEnd: 1456
    functionName: mrb_io_pwrite
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - value2off
    - mrb_get_args
    - mrb_io_syswrite_common
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_pwrite(mrb_state *mrb, mrb_value io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1467,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1468,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1469,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1470,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1471,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1472,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - str
    - len
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1459
    functionDepth: 10
    functionLinenumber: 1459
    functionLinenumberEnd: 1477
    functionName: io_bufread
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - RSTR_SET_LEN
    - mrb_str_new
    - mrb_str_modify
    - memmove
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value io_bufread(mrb_state *mrb, mrb_value str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1486,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1487,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1487,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1488,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1488,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1489,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1489,1
    - Dst: io_bufread
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1479
    functionDepth: 11
    functionLinenumber: 1479
    functionLinenumberEnd: 1491
    functionName: mrb_io_bufread
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - io_bufread
    - mrb_str_modify
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_bufread(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1503,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1504,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1504,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1505,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1505,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1506,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1506,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1508,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1510,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1510,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1510,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1511,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1512,1
    - Dst: io_get_read_fptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1514,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1517,1
    - Dst: read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1518,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1518,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1519,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1520,1
    - Dst: mrb_utf8len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1522,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1522,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1522,1
    - Dst: io_bufread
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1493
    functionDepth: 11
    functionLinenumber: 1493
    functionLinenumberEnd: 1526
    functionName: mrb_io_readchar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - read
    - RSTRING_PTR
    - mrb_get_args
    - io_get_read_fptr
    - RSTRING_LEN
    - io_bufread
    - mrb_sys_fail
    - mrb_str_modify
    - mrb_str_resize
    - RSTRING_END
    - mrb_utf8len
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_io_readchar(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1533,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1534,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1536,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1536,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1537,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1537,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1538,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1538,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1539,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1539,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1540,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1540,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1541,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1541,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1543,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1543,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1546,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1546,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1547,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1547,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1548,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1548,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1549,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1549,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1550,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1550,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1551,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1551,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1552,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1552,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1553,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1553,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1554,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1554,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1555,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1555,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1556,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1556,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1557,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1557,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1558,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1558,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1559,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1559,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1560,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1560,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1561,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1561,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1562,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1562,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1563,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1563,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1565,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1565,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1566,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c:1566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1528
    functionDepth: 13
    functionLinenumber: 1528
    functionLinenumberEnd: 1567
    functionName: mrb_init_io
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_module_get
    - MRB_ARGS_ARG
    - mrb_include_module
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_init_io(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_init_io
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c:12,1
    - Dst: mrb_init_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c:13,1
    - Dst: mrb_init_file_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 16
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: mrb_mruby_io_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c
    functionUses: 0
    functionsReached:
    - mrb_init_file_test
    - mrb_init_file
    - mrb_init_io
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_io_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: mrb_mruby_io_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_io_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MRB_O_RDONLY_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_O_RDONLY_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MRB_O_WRONLY_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_O_WRONLY_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MRB_O_RDWR_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_O_RDWR_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MRB_O_READABLE_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_O_READABLE_P(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MRB_O_WRITABLE_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_O_WRITABLE_P(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:30,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: rational_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - mrb_raise
    linkageType: ''
    returnType: struct mrb_rational
    signature: 'struct mrb_rational *

      rational_ptr(mrb_state *mrb, mrb_value v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rational_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rational_ptr(mrb, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:52,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - c
    - p
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct mrb_rational**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: rational_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_malloc
    linkageType: ''
    returnType: struct RBasic
    signature: 'struct RBasic *

      rational_alloc(mrb_state *mrb, struct RClass *c, struct mrb_rational **p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:64,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: rational_numerator
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_numerator(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:71,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: rational_denominator
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_int_value
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_denominator(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: rat_overflow
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void rat_overflow(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rat_zerodiv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void rat_zerodiv(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:90,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:90,1
    - Dst: rat_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:95,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:99,1
    - Dst: rational_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:104,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:107,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - numerator
    - denominator
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: mrb_rational_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached:
    - MRB_SYM
    - rat_overflow
    - rat_zerodiv
    - rational_alloc
    - MRB_SET_FROZEN_FLAG
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_new(mrb_state *mrb, mrb_int numerator, mrb_int
      denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: rational_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rational_new(mrb,n,d)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: i_gcd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int i_gcd(mrb_int x, mrb_int y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rat_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:160,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:163,1
    - Dst: i_gcd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:165,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - n
    - d
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: rational_new_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rat_zerodiv
    - rational_new
    - rat_overflow
    - i_gcd
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_new_i(mrb_state *mrb, mrb_int n, mrb_int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: frexp_rat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frexp_rat(x,exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: ldexp_rat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ldexp_rat(x,exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: frexp_rat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:188,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:189,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:189,1
    - Dst: ldexp_rat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - f
    - rf
    - n
    argTypes:
    - mrb_state*
    - mrb_float
    - mrb_float*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: float_decode_internal
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - isinf
    - ldexp_rat
    - rat_overflow
    - frexp_rat
    linkageType: ''
    returnType: void
    signature: void float_decode_internal(mrb_state *mrb, mrb_float f, mrb_float *rf,
      int *n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:203,1
    - Dst: float_decode_internal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:204,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:207,1
    - Dst: ldexp_rat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:209,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:211,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:213,1
    - Dst: ldexp_rat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:216,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:222,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:234,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:239,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:243,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - mrb
    - f0
    argTypes:
    - mrb_state*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 197
    functionDepth: 6
    functionLinenumber: 197
    functionLinenumberEnd: 246
    functionName: rational_new_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new_i
    - rational_new
    - rat_overflow
    - mrb_check_num_exact
    - float_decode_internal
    - ldexp_rat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_new_f(mrb_state *mrb, mrb_float f0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:255,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:260,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:261,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:262,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:264,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:265,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:269,1
    - Dst: rational_new_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:271,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:275,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:278,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:279,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:282,1
    - Dst: rational_new_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:284,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 288
    functionName: rational_s_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new
    - mrb_integer
    - rational_new_f
    - mrb_get_args
    - mrb_integer_p
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_s_new(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct mrb_rational*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: rat_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_float
    signature: mrb_float rat_float(struct mrb_rational *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:309,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:310,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: mrb_rational_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 1
    functionsReached:
    - mrb_float_value
    - rat_float
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_to_f(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:317,1
    - Dst: rat_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:319,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: mrb_rational_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 1
    functionsReached:
    - rat_zerodiv
    - mrb_int_value
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_to_i(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: rational_to_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_to_r(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:333,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:335,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: rational_negative_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - rational_ptr
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_negative_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:343,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: fix_to_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new
    - mrb_integer
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fix_to_r(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:351,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:352,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:354,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:355,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:356,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:356,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:357,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:357,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:357,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:360,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:361,1
    - Dst: rational_new_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 9
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: rational_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new_i
    - mrb_integer
    - rational_new_f
    - mrb_get_args
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_m(mrb_state *mrb, mrb_value self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:370,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:371,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:374,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:376,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:377,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:381,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:386,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:390,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:392,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:393,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:395,1
    - Dst: mrb_complex_eq
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:408,1
    - Dst: mrb_rational_to_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:408,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:413,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:416,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 367
    functionDepth: 7
    functionLinenumber: 367
    functionLinenumberEnd: 417
    functionName: rational_eq
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_complex_eq
    - mrb_get_arg1
    - mrb_true_value
    - rat_overflow
    - mrb_integer
    - mrb_equal
    - mrb_rational_to_f
    - mrb_type
    - mrb_false_value
    - mrb_int_mul_overflow
    - mrb_bool_value
    - mrb_float
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_eq(mrb_state *mrb, mrb_value x)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:422,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:423,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:425,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:428,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:431,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:432,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:433,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:436,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:438,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:439,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:445,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:445,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:447,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:449,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:450,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:455,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:455,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:456,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:459,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:461,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:462,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:466,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:466,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:467,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:468,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:469,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:471,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 419
    functionDepth: 7
    functionLinenumber: 419
    functionLinenumberEnd: 473
    functionName: rational_cmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - rat_float
    - mrb_funcall_id
    - MRB_OPSYM
    - mrb_type
    - mrb_int_mul_overflow
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_integer_p
    - rational_ptr
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_cmp(mrb_state *mrb, mrb_value x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:478,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:480,1
    - Dst: rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: rational_minus
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new
    - rational_ptr
    - rat_overflow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_minus(mrb_state *mrb, mrb_value x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:487,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:489,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:492,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:493,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:493,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:494,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:494,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:495,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:499,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:502,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:502,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:503,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:503,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:504,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:504,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:505,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:505,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:506,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:512,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:513,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:513,1
    - Dst: mrb_complex_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:519,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:519,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:519,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:523,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:523,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 484
    functionDepth: 6
    functionLinenumber: 484
    functionLinenumberEnd: 525
    functionName: mrb_rational_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 2
    functionsReached:
    - rational_new_i
    - mrb_complex_new
    - rat_overflow
    - mrb_integer
    - rat_float
    - mrb_funcall_id
    - mrb_int_add_overflow
    - mrb_float_value
    - mrb_div_float
    - MRB_OPSYM
    - mrb_type
    - mrb_int_mul_overflow
    - mrb_complex_add
    - mrb_float
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:530,1
    - Dst: mrb_rational_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: rational_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached:
    - mrb_get_arg1
    - mrb_rational_add
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_add(mrb_state *mrb, mrb_value x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:537,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:539,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:542,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:543,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:543,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:544,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:544,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:545,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:549,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:552,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:552,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:553,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:553,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:554,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:554,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:555,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:555,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:556,1
    - Dst: mrb_complex_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:561,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:561,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:561,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:568,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:569,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:569,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 576
    functionName: mrb_rational_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 2
    functionsReached:
    - rational_new_i
    - mrb_int_sub_overflow
    - rat_overflow
    - mrb_integer
    - mrb_complex_sub
    - mrb_complex_new
    - mrb_raise
    - rat_float
    - mrb_float_value
    - mrb_div_float
    - mrb_type
    - mrb_int_mul_overflow
    - rational_ptr
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:581,1
    - Dst: mrb_rational_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 7
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: rational_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached:
    - mrb_get_arg1
    - mrb_rational_sub
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_sub(mrb_state *mrb, mrb_value x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:588,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:590,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:593,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:594,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:594,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:595,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:599,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:602,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:602,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:603,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:603,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:604,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:610,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:611,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:611,1
    - Dst: mrb_complex_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:617,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:617,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:617,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:621,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 585
    functionDepth: 6
    functionLinenumber: 585
    functionLinenumberEnd: 623
    functionName: mrb_rational_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 2
    functionsReached:
    - rational_new_i
    - mrb_complex_new
    - rat_overflow
    - mrb_integer
    - mrb_complex_mul
    - rat_float
    - mrb_funcall_id
    - mrb_float_value
    - mrb_div_float
    - MRB_OPSYM
    - mrb_type
    - mrb_int_mul_overflow
    - mrb_float
    - rational_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:628,1
    - Dst: mrb_rational_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 7
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: rational_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached:
    - mrb_rational_mul
    - mrb_get_arg1
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_mul(mrb_state *mrb, mrb_value x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:635,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:637,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:640,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:641,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:641,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:642,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:646,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:649,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:649,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:650,1
    - Dst: rat_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:650,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:651,1
    - Dst: mrb_complex_div
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:656,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:656,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:656,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:663,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:663,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:664,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:664,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 632
    functionDepth: 6
    functionLinenumber: 632
    functionLinenumberEnd: 670
    functionName: mrb_rational_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 2
    functionsReached:
    - rational_new_i
    - mrb_complex_new
    - rat_overflow
    - mrb_integer
    - mrb_raise
    - rat_float
    - mrb_complex_div
    - mrb_float_value
    - mrb_div_float
    - mrb_type
    - mrb_int_mul_overflow
    - rational_ptr
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_div(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:675,1
    - Dst: mrb_rational_div
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 672
    functionDepth: 7
    functionLinenumber: 672
    functionLinenumberEnd: 677
    functionName: rational_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 3
    functionsReached:
    - mrb_rational_div
    - mrb_get_arg1
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_div(mrb_state *mrb, mrb_value x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:682,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:683,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:687,1
    - Dst: rational_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:690,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:692,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:698,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:698,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:699,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:701,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:702,1
    - Dst: rat_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:707,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:708,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:713,1
    - Dst: mrb_rational_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:715,1
    - Dst: rational_new_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:720,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:720,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:721,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:725,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:727,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:727,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 679
    functionDepth: 7
    functionLinenumber: 679
    functionLinenumberEnd: 731
    functionName: rational_pow
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - rational_new_i
    - mrb_get_arg1
    - mrb_integer
    - rational_ptr
    - rat_float
    - mrb_float_value
    - mrb_type
    - mrb_raisef
    - mrb_float
    - mrb_rational_new
    - pow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value rational_pow(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:737,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:737,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:737,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:737,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:738,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:739,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:740,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:740,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:741,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:741,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:742,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:742,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:744,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:744,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:746,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:746,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:747,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:747,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:748,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:748,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:749,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:749,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:750,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:750,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:751,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:751,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:752,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:752,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:753,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:753,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:754,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:754,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:755,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:755,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:756,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:756,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:757,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:757,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:758,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:758,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:759,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 733
    functionDepth: 15
    functionLinenumber: 733
    functionLinenumberEnd: 760
    functionName: mrb_mruby_rational_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_ARG
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_class_get_id
    - mrb_define_class_id
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_rational_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 765
    functionName: mrb_mruby_rational_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_rational_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: isatty
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isatty(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: fileno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:22,1
    - Dst: fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:22,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:24,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:25,1
    - Dst: MultiByteToWideChar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:26,1
    - Dst: WriteConsoleW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:28,1
    - Dst: GetStdHandle
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:28,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:31,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:34,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - p
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 36
    functionName: printstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 3
    functionsReached:
    - GetStdHandle
    - fwrite
    - fileno
    - fflush
    - mrb_free
    - WriteConsoleW
    - isatty
    - MultiByteToWideChar
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void printstr(mrb_state *mrb, const char *p, mrb_int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:41,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:43,1
    - Dst: printstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:44,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:44,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 7
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: mrb_printstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - RSTRING_PTR
    - RSTRING_LEN
    - printstr
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_printstr(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:54,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mrb_mruby_print_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_REQ
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_print_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: mrb_mruby_print_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_print_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: F
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: F
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:31,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: complex_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - mrb_raise
    linkageType: ''
    returnType: struct mrb_complex
    signature: 'struct mrb_complex *

      complex_ptr(mrb_state *mrb, mrb_value v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: complex_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: complex_ptr(mrb, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:54,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - c
    - p
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct mrb_complex**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: complex_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_malloc
    linkageType: ''
    returnType: struct RBasic
    signature: 'struct RBasic *

      complex_alloc(mrb_state *mrb, struct RClass *c, struct mrb_complex **p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - cpx
    - r
    - i
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_float*
    - mrb_float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: mrb_complex_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - complex_ptr
    linkageType: ''
    returnType: void
    signature: void mrb_complex_get(mrb_state *mrb, mrb_value cpx, mrb_float *r, mrb_float
      *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:75,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:75,1
    - Dst: complex_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:77,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:80,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - real
    - imaginary
    argTypes:
    - mrb_state*
    - mrb_float
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: mrb_complex_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 8
    functionsReached:
    - MRB_SYM
    - complex_alloc
    - MRB_SET_FROZEN_FLAG
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_new(mrb_state *mrb, mrb_float real, mrb_float
      imaginary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mrb
    - ','
    - real
    - ','
    - imag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: complex_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: complex_new(mrb, real, imag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:90,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: complex_real
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_real(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:97,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: complex_imaginary
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_imaginary(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:106,1
    - Dst: complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 9
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: complex_s_rect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - complex_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_s_rect(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:113,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:116,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: mrb_complex_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 1
    functionsReached:
    - mrb_raisef
    - mrb_float_value
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_to_f(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:125,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:128,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: mrb_complex_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 1
    functionsReached:
    - mrb_raisef
    - mrb_int_value
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_to_i(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: complex_to_c
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_to_c(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:142,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:144,1
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:147,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:156,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:159,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: mrb_complex_eq
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 1
    functionsReached:
    - mrb_integer
    - mrb_equal
    - complex_ptr
    - mrb_type
    - mrb_float
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_complex_eq(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:169,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:170,1
    - Dst: mrb_complex_eq
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: complex_eq
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 2
    functionsReached:
    - mrb_bool_value
    - mrb_complex_eq
    - mrb_get_arg1
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_eq(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:176,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:178,1
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:181,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:182,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:187,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: mrb_complex_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 4
    functionsReached:
    - mrb_as_float
    - mrb_complex_new
    - mrb_type
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:196,1
    - Dst: mrb_complex_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: complex_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 5
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_add
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_add(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:203,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:205,1
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:208,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:209,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:214,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: mrb_complex_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 4
    functionsReached:
    - mrb_as_float
    - mrb_complex_new
    - mrb_type
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:223,1
    - Dst: mrb_complex_sub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 7
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: complex_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 5
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_sub
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_sub(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:230,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:232,1
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:235,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:236,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:242,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: mrb_complex_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 4
    functionsReached:
    - mrb_as_float
    - mrb_complex_new
    - mrb_type
    - complex_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:251,1
    - Dst: mrb_complex_mul
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 7
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: complex_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 5
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_mul
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_mul(mrb_state *mrb, mrb_value x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:271,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - a
    - b
    argTypes:
    - struct float_pair*
    - struct float_pair*
    - struct float_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: add_pair
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - F
    linkageType: ''
    returnType: void
    signature: "void add_pair(struct float_pair *s, struct float_pair const *a,\n
      \        struct float_pair const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - struct float_pair*
    - struct float_pair*
    - struct float_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: mul_pair
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mul_pair(struct float_pair *p, struct float_pair const *a,\n
      \        struct float_pair const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - q
    - a
    - b
    argTypes:
    - struct float_pair*
    - struct float_pair*
    - struct float_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: div_pair
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - mrb_div_float
    linkageType: ''
    returnType: void
    signature: "void div_pair(struct float_pair *q, struct float_pair const *a,\n
      \        struct float_pair const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:300,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:301,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:302,1
    - Dst: complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:303,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:303,1
    - Dst: mrb_div_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:303,1
    - Dst: complex_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:313,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:316,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:317,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:318,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:319,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:325,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:326,1
    - Dst: add_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:327,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:330,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:331,1
    - Dst: add_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:332,1
    - Dst: div_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:333,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:336,1
    - Dst: mul_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:337,1
    - Dst: add_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:339,1
    - Dst: div_pair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:340,1
    - Dst: complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:343,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:343,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - mrb
    - self
    - rhs
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 344
    functionName: mrb_complex_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 3
    functionsReached:
    - div_pair
    - complex_new
    - mul_pair
    - F
    - complex_ptr
    - mrb_div_float
    - mrb_type
    - add_pair
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_div(mrb_state *mrb, mrb_value self, mrb_value
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:349,1
    - Dst: mrb_complex_div
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: complex_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 4
    functionsReached:
    - mrb_get_arg1
    - mrb_complex_div
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value complex_div(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:357,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:357,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:357,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:357,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:358,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:360,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:361,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:361,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:361,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:362,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:362,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:362,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:363,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:363,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:363,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:364,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:364,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:365,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:365,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:366,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:366,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:367,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:367,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:368,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:368,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:369,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:369,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:370,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:370,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:371,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:371,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:372,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:372,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:373,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:373,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:374,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 353
    functionDepth: 15
    functionLinenumber: 353
    functionLinenumberEnd: 375
    functionName: mrb_mruby_complex_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_class_get_id
    - mrb_define_class_id
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_complex_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: mrb_mruby_complex_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_complex_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cfunc_env_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: return_func_name
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 0
    functionsReached:
    - mrb_cfunc_env_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value return_func_name(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:18,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:19,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:20,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:21,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:22,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 9
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: proc_new_cfunc_with_env
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 4
    functionsReached:
    - MRB_METHOD_FROM_PROC
    - mrb_get_args
    - mrb_class_ptr
    - mrb_proc_new_cfunc_with_env
    - mrb_define_method_raw
    - mrb_symbol_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value proc_new_cfunc_with_env(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:30,1
    - Dst: mrb_cfunc_env_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 9
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: return_env
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 0
    functionsReached:
    - mrb_cfunc_env_get
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value return_env(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:41,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:42,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:43,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:44,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 9
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: cfunc_env_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 6
    functionsReached:
    - MRB_METHOD_FROM_PROC
    - mrb_get_args
    - mrb_class_ptr
    - mrb_proc_new_cfunc_with_env
    - mrb_define_method_raw
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cfunc_env_get(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cfunc_env_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: cfunc_without_env
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 0
    functionsReached:
    - mrb_cfunc_env_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cfunc_without_env(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:58,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:59,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:59,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:60,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:60,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:61,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: mrb_mruby_proc_ext_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_ext_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:12,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:13,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: mrb_proc_lambda_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_STRICT_P
    - mrb_bool_value
    - mrb_proc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_lambda_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:19,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:20,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:27,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:28,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:30,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:31,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:31,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - struct RProc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: mrb_proc_source_location
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 1
    functionsReached:
    - mrb_debug_get_line
    - mrb_debug_get_filename
    - mrb_str_new_cstr
    - MRB_PROC_CFUNC_P
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_source_location(mrb_state *mrb, struct RProc *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_source_location
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:38,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: mrb_proc_source_location_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_proc_source_location
    - mrb_proc_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_source_location_m(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:44,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:45,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:46,1
    - Dst: mrb_ptr_to_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:46,1
    - Dst: mrb_cptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:46,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:48,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:52,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:54,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:55,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:56,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:58,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:60,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:60,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:63,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:67,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:68,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 12
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: mrb_proc_inspect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_ptr_to_str
    - mrb_proc_ptr
    - mrb_str_new_lit
    - mrb_debug_get_filename
    - mrb_debug_get_line
    - mrb_str_cat_cstr
    - mrb_str_concat
    - MRB_PROC_STRICT_P
    - mrb_str_cat_lit
    - MRB_PROC_CFUNC_P
    - mrb_fixnum_value
    - mrb_str_cat_str
    - mrb_cptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_inspect(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 9
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: mrb_kernel_proc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_kernel_proc(mrb_state *mrb, mrb_value self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:102,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:103,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:104,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:105,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:106,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:107,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:108,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:111,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:115,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:116,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:120,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:122,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:126,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:129,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:132,1
    - Dst: MRB_PROC_STRICT_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:135,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:136,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:137,1
    - Dst: PEEK_W
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:140,1
    - Dst: MRB_ASPEC_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:141,1
    - Dst: MRB_ASPEC_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:142,1
    - Dst: MRB_ASPEC_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:143,1
    - Dst: MRB_ASPEC_POST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:144,1
    - Dst: MRB_ASPEC_KDICT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:145,1
    - Dst: MRB_ASPEC_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:146,1
    - Dst: MRB_ASPEC_KEY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:147,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:149,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:153,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:158,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:159,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:162,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:167,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:167,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:171,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:174,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:177,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:180,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:180,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:181,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:181,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 95
    functionDepth: 9
    functionLinenumber: 95
    functionLinenumberEnd: 183
    functionName: mrb_proc_parameters
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - MRB_ASPEC_OPT
    - mrb_nil_p
    - mrb_sym_name
    - mrb_ary_new
    - MRB_ASPEC_BLOCK
    - mrb_proc_ptr
    - MRB_ASPEC_POST
    - MRB_ASPEC_REQ
    - MRB_ASPEC_REST
    - MRB_SYM
    - PEEK_W
    - MRB_ASPEC_KDICT
    - MRB_PROC_STRICT_P
    - MRB_PROC_CFUNC_P
    - mrb_ary_new_capa
    - mrb_nil_value
    - mrb_symbol_value
    - mrb_ary_push
    - MRB_ASPEC_KEY
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_proc_parameters(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:189,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:189,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:190,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:190,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:191,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:191,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:192,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:192,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:193,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:193,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:195,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:195,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:195,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:196,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:196,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: mrb_mruby_proc_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    - MRB_ARGS_BLOCK
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: mrb_mruby_proc_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_proc_ext_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_argv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c:7,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c:7,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 10
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: binding_in_c
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_funcall_argv
    - MRB_SYM
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_in_c(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c:13,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: mrb_mruby_binding_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_binding_gem_test(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:22,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:29,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:35,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:39,1
    - Dst: mrb_exc_new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - p
    - file
    argTypes:
    - mrb_state*
    - struct mrb_parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 41
    functionName: binding_eval_error_check
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_exc_raise
    - mrb_exc_new_str
    - mrb_format
    linkageType: ''
    returnType: void
    signature: void binding_eval_error_check(mrb_state *mrb, struct mrb_parser_state
      *p, const char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:57,1
    - Dst: mrb_proc_merge_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - sym
    - user
    argTypes:
    - mrb_state*
    - mrb_sym
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: expand_lvspace
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - mrb_proc_merge_lvar
    - mrb_sym_name_len
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool expand_lvspace(mrb_state *mrb, mrb_sym sym, void *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_binding_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:86,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:87,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:87,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:89,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:90,1
    - Dst: mrb_parse_nstring
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:93,1
    - Dst: binding_eval_error_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:94,1
    - Dst: mrb_binding_extract_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:98,1
    - Dst: mrb_parser_foreach_top_variable
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:102,1
    - Dst: mrb_proc_merge_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:104,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - opaque
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: binding_eval_prepare_body
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - mrb_binding_extract_env
    - mrb_assert
    - mrb_proc_merge_lvar
    - binding_eval_error_check
    - mrb_binding_extract_proc
    - mrbc_filename
    - mrb_parser_foreach_top_variable
    - MRB_PROC_CFUNC_P
    - mrb_parse_nstring
    - mrb_nil_value
    - mrbc_context_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value binding_eval_prepare_body(mrb_state *mrb, void *opaque)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:116,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:119,1
    - Dst: mrb_protect_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:121,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:122,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:123,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - binding
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: binding_eval_prepare
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - mrb_protect_error
    - mrb_exc_raise
    - mrb_get_args
    - mrb_argnum_error
    - mrbc_context_free
    - mrb_parser_free
    linkageType: ''
    returnType: void
    signature: void binding_eval_prepare(mrb_state *mrb, mrb_value binding)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: binding_eval_prepare
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:130,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:133,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:133,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:140,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:144,1
    - Dst: mrb_method_missing
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:145,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:145,1
    - Dst: mrb_ary_splice
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:148,1
    - Dst: MRB_METHOD_FUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:149,1
    - Dst: mrb_proc_new_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:150,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:150,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:151,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:154,1
    - Dst: mrb_exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - binding
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 127
    functionDepth: 10
    functionLinenumber: 127
    functionLinenumberEnd: 158
    functionName: mrb_binding_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_FUNC
    - MRB_METHOD_PROC
    - mrb_ary_new_from_values
    - mrb_method_search_vm
    - mrb_method_missing
    - mrb_proc_new_cfunc
    - mrb_exec_irep
    - mrb_ary_splice
    - MRB_PROC_SET_TARGET_CLASS
    - MRB_METHOD_FUNC_P
    - binding_eval_prepare
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_binding_eval(mrb_state *mrb, mrb_value binding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:163,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:163,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:164,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: mrb_mruby_binding_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_ARGS_ANY
    - mrb_class_get_id
    - mrb_define_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_binding_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: mrb_mruby_binding_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_binding_gem_final(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:10,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:10,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:11,1
    - Dst: MRB_SET_FROZEN_FLAG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:12,1
    - Dst: mrb_basic_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 9
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: mrb_mod_name
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_basic_ptr
    - mrb_class_path
    - mrb_class_ptr
    - MRB_SET_FROZEN_FLAG
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_name(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:20,1
    - Dst: mrb_sclass_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: mrb_mod_singleton_class_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_sclass_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_singleton_class_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:50,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:52,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:54,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:56,1
    - Dst: mrb_yield_cont
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mrb_mod_module_exec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_yield_with_class
    - mrb_get_args
    - mrb_class_ptr
    - mrb_vm_ci_target_class_set
    - mrb_yield_cont
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_mod_module_exec(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_real
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:71,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:72,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - obj
    - data
    argTypes:
    - mrb_state*
    - struct RBasic*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: add_subclasses
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_ary_push
    - mrb_class_real
    linkageType: ''
    returnType: int
    signature: int add_subclasses(mrb_state *mrb, struct RBasic *obj, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:101,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:102,1
    - Dst: mrb_objspace_each_objects
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 12
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: mrb_class_subclasses
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_objspace_each_objects
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_class_subclasses(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:116,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:116,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:117,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:117,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:118,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:118,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:118,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:119,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:119,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:119,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:122,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: mrb_mruby_class_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ANY
    - MRB_ARGS_NONE
    - MRB_ARGS_BLOCK
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_class_ext_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: mrb_mruby_class_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_class_ext_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: fiber_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fiber_ptr(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fiber_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:69,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:76,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:79,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:81,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:82,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:83,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:86,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:95,1
    - Dst: SET_NIL_VALUE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:103,1
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:112,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:118,1
    - Dst: MRB_PROC_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:118,1
    - Dst: mrb_vm_ci_proc_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:119,1
    - Dst: mrb_field_write_barrier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:120,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 65
    functionDepth: 9
    functionLinenumber: 65
    functionLinenumberEnd: 129
    functionName: fiber_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_calloc
    - mrb_proc_ptr
    - mrb_raise
    - mrb_vm_ci_proc_set
    - mrb_get_args
    - mrb_field_write_barrier
    - mrb_obj_ptr
    - fiber_ptr
    - mrb_vm_ci_target_class_set
    - MRB_PROC_CFUNC_P
    - MRB_PROC_TARGET_CLASS
    - SET_NIL_VALUE
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_init(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fiber_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:134,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:136,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - fib
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: fiber_check
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_assert
    - fiber_ptr
    linkageType: ''
    returnType: struct mrb_context
    signature: 'struct mrb_context *

      fiber_check(mrb_state *mrb, mrb_value fib)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:146,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - a
    - len
    argTypes:
    - mrb_state*
    - mrb_value*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 9
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: fiber_result
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_result(mrb_state *mrb, const mrb_value *a, mrb_int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: MARK_CONTEXT_MODIFY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_CONTEXT_MODIFY(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct mrb_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: fiber_check_cfunc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: void
    signature: void fiber_check_cfunc(mrb_state *mrb, struct mrb_context *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_write_barrier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - struct mrb_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: fiber_switch_context
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_write_barrier
    linkageType: ''
    returnType: void
    signature: void fiber_switch_context(mrb_state *mrb, struct mrb_context *c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fiber_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:179,1
    - Dst: fiber_check_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:184,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:189,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:194,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:197,1
    - Dst: fiber_switch_context
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:204,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:209,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:215,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:216,1
    - Dst: mrb_stack_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:220,1
    - Dst: MRB_PROC_ENV
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:228,1
    - Dst: fiber_result
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:231,1
    - Dst: mrb_vm_exec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:239,1
    - Dst: MARK_CONTEXT_MODIFY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:243,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 6
    argNames:
    - mrb
    - self
    - len
    - a
    - resume
    - vmexec
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value*
    - mrb_bool
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 176
    functionDepth: 10
    functionLinenumber: 176
    functionLinenumberEnd: 246
    functionName: fiber_switch
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - fiber_switch_context
    - fiber_check_cfunc
    - mrb_vm_exec
    - fiber_result
    - MRB_PROC_ENV
    - mrb_ary_new_from_values
    - mrb_raise
    - MARK_CONTEXT_MODIFY
    - mrb_stack_extend
    - fiber_check
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_switch(mrb_state *mrb, mrb_value self, mrb_int len,
      const mrb_value *a, mrb_bool resume, mrb_bool vmexec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:270,1
    - Dst: fiber_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 11
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: fiber_resume
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - fiber_switch
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_resume(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fiber_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - fib
    - len
    - a
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 11
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: mrb_fiber_resume
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - fiber_switch
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_fiber_resume(mrb_state *mrb, mrb_value fib, mrb_int len,
      const mrb_value *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fiber_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:294,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: mrb_fiber_alive_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - fiber_check
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_fiber_alive_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:302,1
    - Dst: mrb_fiber_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:304,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:305,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:307,1
    - Dst: fiber_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:307,1
    - Dst: fiber_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: fiber_eq
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - mrb_fiber_p
    - fiber_ptr
    - mrb_false_value
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_eq(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fiber_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:325,1
    - Dst: fiber_check_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:329,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:330,1
    - Dst: fiber_switch_context
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:334,1
    - Dst: MARK_CONTEXT_MODIFY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:335,1
    - Dst: fiber_result
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:336,1
    - Dst: fiber_result
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:340,1
    - Dst: fiber_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 11
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: fiber_transfer
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - fiber_switch_context
    - fiber_check_cfunc
    - fiber_result
    - mrb_get_args
    - fiber_switch
    - MARK_CONTEXT_MODIFY
    - fiber_check
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_transfer(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:354,1
    - Dst: fiber_check_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:357,1
    - Dst: fiber_switch_context
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:360,1
    - Dst: MARK_CONTEXT_MODIFY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:367,1
    - Dst: fiber_result
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - len
    - a
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 348
    functionDepth: 10
    functionLinenumber: 348
    functionLinenumberEnd: 369
    functionName: mrb_fiber_yield
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - fiber_switch_context
    - fiber_check_cfunc
    - fiber_result
    - mrb_raise
    - MARK_CONTEXT_MODIFY
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_fiber_yield(mrb_state *mrb, mrb_int len, const mrb_value
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:389,1
    - Dst: mrb_fiber_yield
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 11
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: fiber_yield
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 1
    functionsReached:
    - mrb_get_args
    - mrb_fiber_yield
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_yield(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:404,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:404,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: fiber_current
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - MRB_OBJ_ALLOC
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value fiber_current(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:417,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:418,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:420,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:420,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:420,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:421,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:421,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:422,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:422,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:423,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:423,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:424,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:424,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:426,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:426,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:427,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:427,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: mrb_mruby_fiber_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_BLOCK
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_fiber_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: mrb_mruby_fiber_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_fiber_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: NDIV
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NDIV(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: round
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 1
    functionsReached:
    - floor
    linkageType: ''
    returnType: double
    signature: double round(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: llround
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: llround(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tp
    - ','
    - tm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: gmtime_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gmtime_r(tp, tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tp
    - ','
    - tm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: localtime_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localtime_r(tp, tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: UI64
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UI64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: UI64
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UI64(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:114,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:121,1
    - Dst: UI64
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: gettimeofday
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 7
    functionsReached:
    - GetSystemTimeAsFileTime
    - mrb_assert
    - UI64
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, void *tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: gmtime_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gmtime_r(t,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: localtime_r
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localtime_r(t,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: is_leapyear
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int is_leapyear(unsigned int y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_leapyear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:156,1
    - Dst: is_leapyear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:161,1
    - Dst: is_leapyear
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: timegm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - is_leapyear
    linkageType: ''
    returnType: time_t
    signature: time_t timegm(struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - sec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: mrb_sec_value
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sec_value(mrb, sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mrb
    - ','
    - sec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: mrb_sec_value
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_sec_value(mrb, sec)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: fixable_time_t_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool fixable_time_t_p(time_t v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:237,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:241,1
    - Dst: mrb_check_num_exact
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:243,1
    - Dst: llround
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:250,1
    - Dst: llround
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:253,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:261,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:277,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - mrb
    - obj
    - usec
    argTypes:
    - mrb_state*
    - mrb_value
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 282
    functionName: mrb_to_time_t
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - llround
    - mrb_type
    - mrb_check_num_exact
    - mrb_raisef
    - mrb_float
    linkageType: ''
    returnType: time_t
    signature: time_t mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:294,1
    - Dst: localtime_r
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:297,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:302,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:303,1
    - Dst: mrb_sec_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - self
    - dealloc
    argTypes:
    - mrb_state*
    - struct mrb_time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 312
    functionName: time_update_datetime
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - localtime_r
    - gmtime_r
    - mrb_free
    - mrb_sec_value
    - mrb_raisef
    linkageType: ''
    returnType: struct mrb_time
    signature: 'struct mrb_time *

      time_update_datetime(mrb_state *mrb, struct mrb_time *self, int dealloc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:317,1
    - Dst: Data_Wrap_Struct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - tc
    - tm
    argTypes:
    - mrb_state*
    - struct RClass*
    - struct mrb_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: mrb_time_wrap
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - Data_Wrap_Struct
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_wrap(mrb_state *mrb, struct RClass *tc, struct mrb_time
      *tm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:326,1
    - Dst: NDIV
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:330,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - mrb
    - sec
    - usec
    - timezone
    argTypes:
    - mrb_state*
    - time_t
    - time_t
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: time_alloc_time
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_update_datetime
    - NDIV
    - mrb_malloc
    linkageType: ''
    returnType: struct mrb_time
    signature: 'struct mrb_time *

      time_alloc_time(mrb_state *mrb, time_t sec, time_t usec, enum mrb_timezone timezone)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_to_time_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:350,1
    - Dst: mrb_to_time_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:351,1
    - Dst: time_alloc_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - sec
    - usec
    - timezone
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 7
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: time_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_to_time_t
    - time_alloc_time
    linkageType: ''
    returnType: struct mrb_time
    signature: 'struct mrb_time *

      time_alloc(mrb_state *mrb, mrb_value sec, mrb_value usec, enum mrb_timezone
      timezone)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:359,1
    - Dst: time_alloc_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - sec
    - usec
    - timezone
    argTypes:
    - mrb_state*
    - struct RClass*
    - time_t
    - time_t
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 7
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: mrb_time_make_time
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_time_wrap
    - time_alloc_time
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_make_time(mrb_state *mrb, struct RClass *c, time_t
      sec, time_t usec, enum mrb_timezone timezone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:365,1
    - Dst: time_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - c
    - sec
    - usec
    - timezone
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_value
    - mrb_value
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 8
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: mrb_time_make
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_time_wrap
    - time_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_make(mrb_state *mrb, struct RClass *c, mrb_value
      sec, mrb_value usec, enum mrb_timezone timezone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timespec_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:378,1
    - Dst: clock_gettime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:385,1
    - Dst: time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:393,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:408,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:413,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 368
    functionDepth: 6
    functionLinenumber: 368
    functionLinenumberEnd: 420
    functionName: current_mrb_time
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time
    - clock_gettime
    - time_update_datetime
    - gettimeofday
    - timespec_get
    - mrb_malloc
    linkageType: ''
    returnType: struct mrb_time
    signature: 'struct mrb_time *

      current_mrb_time(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:426,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:426,1
    - Dst: current_mrb_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: mrb_time_now
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_time_wrap
    - mrb_class_ptr
    - current_mrb_time
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_now(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_time_make_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:432,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:432,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - sec
    - usec
    - zone
    argTypes:
    - mrb_state*
    - time_t
    - time_t
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: mrb_time_at
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_time_make_time
    - mrb_class_get_id
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_time_at(mrb_state *mrb, time_t sec, time_t usec, enum mrb_timezone
      zone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:441,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:443,1
    - Dst: mrb_time_make
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:445,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 9
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: mrb_time_at_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_get_args
    - mrb_time_make
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_at_m(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OUTINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:462,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:469,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:491,1
    - Dst: time_alloc_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:496,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 9
    argNames:
    - mrb
    - ayear
    - amonth
    - aday
    - ahour
    - amin
    - asec
    - ausec
    - timezone
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    - mrb_int
    - mrb_int
    - mrb_int
    - mrb_int
    - mrb_int
    - enum mrb_timezone
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 448
    functionDepth: 7
    functionLinenumber: 448
    functionLinenumberEnd: 497
    functionName: time_mktime
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - time_alloc_time
    - OUTINT
    linkageType: ''
    returnType: struct mrb_time
    signature: "struct mrb_time *\ntime_mktime(mrb_state *mrb, mrb_int ayear, mrb_int
      amonth, mrb_int aday,\n  mrb_int ahour, mrb_int amin, mrb_int asec, mrb_int
      ausec,\n  enum mrb_timezone timezone)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: OUTINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: OUTINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:506,1
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:508,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:508,1
    - Dst: time_mktime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 501
    functionDepth: 9
    functionLinenumber: 501
    functionLinenumberEnd: 510
    functionName: mrb_time_gm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_time_wrap
    - time_mktime
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_gm(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:520,1
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:522,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:522,1
    - Dst: time_mktime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 515
    functionDepth: 9
    functionLinenumber: 515
    functionLinenumberEnd: 524
    functionName: mrb_time_local
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_time_wrap
    - time_mktime
    - mrb_get_args
    - mrb_class_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_local(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:531,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - time
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 536
    functionName: time_get_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - DATA_GET_PTR
    linkageType: ''
    returnType: struct mrb_time
    signature: 'struct mrb_time *

      time_get_ptr(mrb_state *mrb, mrb_value time)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:541,1
    - Dst: DATA_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:545,1
    - Dst: DATA_CHECK_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:546,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 7
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: mrb_time_eq
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - DATA_GET_PTR
    - mrb_get_arg1
    - DATA_CHECK_GET_PTR
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_eq(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:555,1
    - Dst: DATA_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:558,1
    - Dst: DATA_CHECK_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:559,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:560,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:562,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:565,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:569,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:572,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 552
    functionDepth: 7
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: mrb_time_cmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - DATA_GET_PTR
    - DATA_CHECK_GET_PTR
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_cmp(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - reason
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 5
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: int_overflow
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 10
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: mrb_noreturn
    signature: mrb_noreturn int_overflow(mrb_state *mrb, const char *reason)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:586,1
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:590,1
    - Dst: mrb_to_time_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:591,1
    - Dst: __builtin_add_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:593,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:594,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:599,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:604,1
    - Dst: mrb_time_make_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:609,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 610
    functionName: mrb_time_plus
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_to_time_t
    - mrb_time_make_time
    - time_get_ptr
    - int_overflow
    - __builtin_add_overflow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_plus(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:615,1
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:618,1
    - Dst: DATA_CHECK_GET_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:619,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:625,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:630,1
    - Dst: mrb_to_time_t
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:635,1
    - Dst: __builtin_sub_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:637,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:638,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:643,1
    - Dst: int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:648,1
    - Dst: mrb_time_make_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:653,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 612
    functionDepth: 8
    functionLinenumber: 612
    functionLinenumberEnd: 655
    functionName: mrb_time_minus
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - mrb_to_time_t
    - mrb_time_make_time
    - time_get_ptr
    - int_overflow
    - mrb_float_value
    - mrb_int_value
    - DATA_CHECK_GET_PTR
    - __builtin_sub_overflow
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_minus(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:664,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 666
    functionName: mrb_time_wday
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_wday(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:675,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 670
    functionDepth: 5
    functionLinenumber: 670
    functionLinenumberEnd: 677
    functionName: mrb_time_yday
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_yday(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:686,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: mrb_time_year
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_year(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timegm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:695,1
    - Dst: abs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:696,1
    - Dst: strftime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:701,1
    - Dst: strftime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - tm
    - buf
    - len
    argTypes:
    - mrb_state*
    - struct mrb_time*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 705
    functionName: time_zonename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - strftime
    - timegm
    - abs
    linkageType: ''
    returnType: size_t
    signature: size_t time_zonename(mrb_state *mrb, struct mrb_time *tm, char *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:712,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:714,1
    - Dst: time_zonename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:717,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 8
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: mrb_time_zone
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_zonename
    - mrb_str_new_lit
    - time_get_ptr
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_zone(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:726,1
    - Dst: asctime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:732,1
    - Dst: asctime_r
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:735,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:737,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:741,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 723
    functionDepth: 8
    functionLinenumber: 723
    functionLinenumberEnd: 747
    functionName: mrb_time_asctime
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - snprintf
    - asctime
    - asctime_r
    - mrb_str_new
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_asctime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:756,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 751
    functionDepth: 5
    functionLinenumber: 751
    functionLinenumberEnd: 758
    functionName: mrb_time_day
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_day(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:768,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 763
    functionDepth: 5
    functionLinenumber: 763
    functionLinenumberEnd: 770
    functionName: mrb_time_dst_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - time_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_dst_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:780,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:781,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:784,1
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:785,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 775
    functionDepth: 6
    functionLinenumber: 775
    functionLinenumberEnd: 786
    functionName: mrb_time_getutc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - time_update_datetime
    - time_get_ptr
    - mrb_time_wrap
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_getutc(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:795,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:796,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:799,1
    - Dst: mrb_time_wrap
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:800,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 801
    functionName: mrb_time_getlocal
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - time_update_datetime
    - time_get_ptr
    - mrb_time_wrap
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_getlocal(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:810,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 812
    functionName: mrb_time_hour
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_hour(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:824,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:826,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:828,1
    - Dst: mrb_data_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:830,1
    - Dst: current_mrb_time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:833,1
    - Dst: time_mktime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:836,1
    - Dst: mrb_data_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 816
    functionDepth: 9
    functionLinenumber: 816
    functionLinenumberEnd: 840
    functionName: mrb_time_initialize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_mktime
    - DATA_PTR
    - mrb_get_args
    - mrb_free
    - current_mrb_time
    - mrb_data_init
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_initialize(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:847,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:850,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:851,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:851,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:852,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:854,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:855,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:857,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:860,1
    - Dst: mrb_data_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 844
    functionDepth: 7
    functionLinenumber: 844
    functionLinenumberEnd: 865
    functionName: mrb_time_initialize_copy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_get_arg1
    - DATA_PTR
    - mrb_raise
    - mrb_obj_equal
    - mrb_data_init
    - mrb_obj_is_instance_of
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_initialize_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:874,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 869
    functionDepth: 6
    functionLinenumber: 869
    functionLinenumberEnd: 878
    functionName: mrb_time_localtime
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_update_datetime
    - time_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_localtime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:887,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: mrb_time_mday
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_mday(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:898,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 893
    functionDepth: 5
    functionLinenumber: 893
    functionLinenumberEnd: 900
    functionName: mrb_time_min
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_min(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:909,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 904
    functionDepth: 5
    functionLinenumber: 904
    functionLinenumberEnd: 911
    functionName: mrb_time_mon
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_mon(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:920,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 915
    functionDepth: 5
    functionLinenumber: 915
    functionLinenumberEnd: 922
    functionName: mrb_time_sec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_sec(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:932,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 5
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: mrb_time_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - time_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_to_f(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:944,1
    - Dst: fixable_time_t_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:946,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:947,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 939
    functionDepth: 5
    functionLinenumber: 939
    functionLinenumberEnd: 951
    functionName: mrb_time_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_int_value
    - time_get_ptr
    - fixable_time_t_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_to_i(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:960,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 955
    functionDepth: 5
    functionLinenumber: 955
    functionLinenumberEnd: 962
    functionName: mrb_time_usec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_usec(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:971,1
    - Dst: time_update_datetime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 966
    functionDepth: 6
    functionLinenumber: 966
    functionLinenumberEnd: 975
    functionName: mrb_time_utc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_update_datetime
    - time_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_utc(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:984,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 979
    functionDepth: 5
    functionLinenumber: 979
    functionLinenumberEnd: 986
    functionName: mrb_time_utc_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - time_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_utc_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_get_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:991,1
    - Dst: strftime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:996,1
    - Dst: strftime
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:999,1
    - Dst: time_zonename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1000,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1002,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1003,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 988
    functionDepth: 8
    functionLinenumber: 988
    functionLinenumberEnd: 1005
    functionName: mrb_time_to_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - time_get_ptr
    - strftime
    - RSTR_SET_ASCII_FLAG
    - mrb_str_new
    - mrb_str_ptr
    - time_zonename
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_time_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1012,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1013,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1014,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1014,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1015,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1015,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1016,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1016,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1017,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1017,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1018,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1018,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1019,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1019,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1020,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1020,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1022,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1022,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1023,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1023,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1024,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1024,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1025,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1025,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1026,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1026,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1027,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1027,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1028,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1028,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1029,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1029,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1030,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1030,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1031,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1031,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1032,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1032,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1033,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1033,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1034,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1034,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1035,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1035,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1036,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1036,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1037,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1037,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1038,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1038,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1039,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1039,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1040,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1040,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1042,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1042,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1043,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1043,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1045,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1045,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1046,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1046,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1048,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1048,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1050,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1050,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1051,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1051,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1052,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1052,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1053,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1053,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1054,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1054,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1055,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1055,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1056,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1056,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1058,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1058,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1059,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1007
    functionDepth: 13
    functionLinenumber: 1007
    functionLinenumberEnd: 1067
    functionName: mrb_mruby_time_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_module_get
    - MRB_ARGS_ARG
    - mrb_include_module
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_time_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    functionName: mrb_mruby_time_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_time_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - enc_lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: ENC_COMP_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC_COMP_P(enc, enc_lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: mrb_float_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mrb_float_p(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TOUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:29,1
    - Dst: TOUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - s1
    - len1
    - s2
    - len2
    argTypes:
    - char*
    - mrb_int
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: str_casecmp_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - TOUPPER
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool str_casecmp_p(const char *s1, mrb_int len1, const char *s2,
      mrb_int len2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:39,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:44,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:47,1
    - Dst: RSTR_SET_ASCII_FLAG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:48,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: int_chr_binary
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_ptr
    - mrb_as_int
    - RSTR_SET_ASCII_FLAG
    - mrb_str_new
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_chr_binary(mrb_state *mrb, mrb_value num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:56,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:63,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:88,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 53
    functionDepth: 8
    functionLinenumber: 53
    functionLinenumberEnd: 91
    functionName: int_chr_utf8
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    - mrb_int
    - mrb_str_new
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_chr_utf8(mrb_state *mrb, mrb_value num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:107,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:109,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:110,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:111,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:113,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:114,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:117,1
    - Dst: TOUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:118,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 10
    functionLinenumber: 102
    functionLinenumberEnd: 126
    functionName: mrb_str_swapcase_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - TOLOWER
    - TOUPPER
    - RSTRING_PTR
    - ISLOWER
    - RSTRING_LEN
    - mrb_str_modify
    - mrb_str_ptr
    - ISUPPER
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_swapcase_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:144,1
    - Dst: mrb_str_swapcase_bang
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 11
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: mrb_str_swapcase
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_swapcase_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_swapcase(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:168,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:170,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:170,1
    - Dst: int_chr_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:172,1
    - Dst: int_chr_binary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:174,1
    - Dst: mrb_str_cat_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 12
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: mrb_str_concat_m
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_arg1
    - int_chr_utf8
    - mrb_float_p
    - int_chr_binary
    - mrb_integer_p
    - mrb_str_cat_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_concat_m(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:200,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:204,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:206,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:207,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:208,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:209,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:211,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:211,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:211,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:212,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 195
    functionDepth: 9
    functionLinenumber: 195
    functionLinenumberEnd: 217
    functionName: mrb_str_start_with
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - memcmp
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_get_args
    - RSTRING_LEN
    - mrb_gc_arena_save
    - mrb_ensure_string_type
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_start_with(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:230,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:234,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:236,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:237,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:238,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:239,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:241,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:241,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:242,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:244,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 225
    functionDepth: 9
    functionLinenumber: 225
    functionLinenumberEnd: 249
    functionName: mrb_str_end_with
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - memcmp
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_get_args
    - RSTRING_LEN
    - mrb_gc_arena_save
    - mrb_ensure_string_type
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_end_with(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - pat
    argTypes:
    - mrb_state*
    - struct tr_pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: tr_free_pattern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void tr_free_pattern(mrb_state *mrb, struct tr_pattern *pat)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:294,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:295,1
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:310,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:312,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:313,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:314,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:314,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:340,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:341,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:342,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:343,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 5
    argNames:
    - mrb
    - ret
    - v_pattern
    - flag_reverse_enable
    - pat0
    argTypes:
    - mrb_state*
    - struct tr_pattern*
    - mrb_value
    - mrb_bool
    - struct tr_pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 363
    functionName: tr_parse_pattern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_malloc_simple
    - RSTRING_PTR
    - mrb_exc_raise
    - mrb_raise
    - mrb_free
    - RSTRING_LEN
    - tr_free_pattern
    - mrb_obj_value
    linkageType: ''
    returnType: struct tr_pattern
    signature: 'struct tr_pattern *

      tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_pattern,
      mrb_bool flag_reverse_enable, struct tr_pattern *pat0)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - pat
    - pat_str
    - ch
    argTypes:
    - struct tr_pattern*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 394
    functionName: tr_find_character
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int tr_find_character(const struct tr_pattern *pat, const char
      *pat_str, int ch)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - pat
    - pat_str
    - n_th
    argTypes:
    - struct tr_pattern*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 429
    functionName: tr_get_character
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int tr_get_character(const struct tr_pattern *pat, const char *pat_str,
      mrb_int n_th)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitmap
    - ch
    argTypes:
    - uint8_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: tr_bitmap_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tr_bitmap_set(uint8_t bitmap[32], uint8_t ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bitmap
    - ch
    argTypes:
    - uint8_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: tr_bitmap_detect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool tr_bitmap_detect(uint8_t bitmap[32], uint8_t ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:453,1
    - Dst: tr_bitmap_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:463,1
    - Dst: tr_bitmap_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:468,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:472,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pat
    - pstr
    - bitmap
    argTypes:
    - struct tr_pattern*
    - mrb_value
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 482
    functionName: tr_compile_pattern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_assert
    - tr_bitmap_set
    linkageType: ''
    returnType: void
    signature: void tr_compile_pattern(const struct tr_pattern *pat, mrb_value pstr,
      uint8_t bitmap[32])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:496,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:496,1
    - Dst: tr_parse_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:497,1
    - Dst: tr_parse_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:498,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:499,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:500,1
    - Dst: tr_find_character
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:503,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:503,1
    - Dst: tr_get_character
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:508,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:508,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:515,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:516,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:517,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:524,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:525,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:528,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:528,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - mrb
    - str
    - p1
    - p2
    - squeeze
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 484
    functionDepth: 10
    functionLinenumber: 484
    functionLinenumberEnd: 532
    functionName: str_tr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - tr_get_character
    - RSTRING_PTR
    - RSTRING_LEN
    - tr_parse_pattern
    - RSTR_SET_LEN
    - tr_free_pattern
    - mrb_raisef
    - mrb_str_modify
    - mrb_str_ptr
    - tr_find_character
    - RSTRING
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool str_tr(mrb_state *mrb, mrb_value str, mrb_value p1, mrb_value
      p2, mrb_bool squeeze)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:577,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:578,1
    - Dst: str_tr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 571
    functionDepth: 11
    functionLinenumber: 571
    functionLinenumberEnd: 581
    functionName: mrb_str_tr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - str_tr
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_tr(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:595,1
    - Dst: str_tr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:596,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 590
    functionDepth: 11
    functionLinenumber: 590
    functionLinenumberEnd: 600
    functionName: mrb_str_tr_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - str_tr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_tr_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:619,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:620,1
    - Dst: str_tr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 11
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: mrb_str_tr_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - str_tr
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_tr_s(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:637,1
    - Dst: str_tr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:638,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 11
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: mrb_str_tr_s_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - str_tr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_tr_s_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:656,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:656,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:657,1
    - Dst: tr_parse_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:658,1
    - Dst: tr_compile_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:659,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:660,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:662,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:663,1
    - Dst: tr_bitmap_detect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:668,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:687,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:687,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:688,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - mrb
    - str
    - v_pat
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 644
    functionDepth: 10
    functionLinenumber: 644
    functionLinenumberEnd: 691
    functionName: str_squeeze
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTRING_LEN
    - tr_parse_pattern
    - tr_compile_pattern
    - RSTR_SET_LEN
    - tr_free_pattern
    - mrb_str_modify
    - tr_bitmap_detect
    - mrb_str_ptr
    - mrb_nil_p
    - RSTRING
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool str_squeeze(mrb_state *mrb, mrb_value str, mrb_value v_pat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:710,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:713,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:714,1
    - Dst: str_squeeze
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 707
    functionDepth: 11
    functionLinenumber: 707
    functionLinenumberEnd: 717
    functionName: mrb_str_squeeze
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - str_squeeze
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_squeeze(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:729,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:731,1
    - Dst: str_squeeze
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:732,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 726
    functionDepth: 11
    functionLinenumber: 726
    functionLinenumberEnd: 736
    functionName: mrb_str_squeeze_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - str_squeeze
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_squeeze_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:748,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:748,1
    - Dst: tr_parse_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:749,1
    - Dst: tr_compile_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:750,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:751,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:753,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:754,1
    - Dst: tr_bitmap_detect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:758,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:764,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:764,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - mrb
    - str
    - v_pat
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 738
    functionDepth: 10
    functionLinenumber: 738
    functionLinenumberEnd: 768
    functionName: str_delete
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - RSTRING_LEN
    - tr_parse_pattern
    - RSTR_SET_LEN
    - tr_free_pattern
    - mrb_str_modify
    - tr_bitmap_detect
    - mrb_str_ptr
    - tr_compile_pattern
    - RSTRING
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool str_delete(mrb_state *mrb, mrb_value str, mrb_value v_pat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:776,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:777,1
    - Dst: str_delete
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 11
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: mrb_str_delete
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - str_delete
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_delete(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:787,1
    - Dst: str_delete
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:788,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 11
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: mrb_str_delete_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - str_delete
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_delete_bang(mrb_state *mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:808,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:816,1
    - Dst: tr_parse_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:817,1
    - Dst: tr_compile_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:818,1
    - Dst: tr_free_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:819,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:821,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:822,1
    - Dst: tr_bitmap_detect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:824,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 805
    functionDepth: 9
    functionLinenumber: 805
    functionLinenumberEnd: 827
    functionName: mrb_str_count
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - tr_parse_pattern
    - tr_free_pattern
    - mrb_fixnum_value
    - tr_bitmap_detect
    - mrb_nil_value
    - tr_compile_pattern
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_count(mrb_state *mrb, mrb_value str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 7
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: mrb_str_hex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_integer
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_hex(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 835
    functionDepth: 7
    functionLinenumber: 835
    functionLinenumberEnd: 839
    functionName: mrb_str_oct
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_integer
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_oct(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_substr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: mrb_str_chr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_chr(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:876,1
    - Dst: ENC_COMP_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:878,1
    - Dst: ENC_COMP_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:879,1
    - Dst: int_chr_binary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:880,1
    - Dst: int_chr_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:884,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - num
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 870
    functionDepth: 9
    functionLinenumber: 870
    functionLinenumberEnd: 889
    functionName: mrb_int_chr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - int_chr_utf8
    - mrb_get_args
    - ENC_COMP_P
    - int_chr_binary
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_int_chr(mrb_state *mrb, mrb_value num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_chr_utf8
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 9
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: if
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 2
    functionsReached:
    - int_chr_utf8
    linkageType: ''
    returnType: else
    signature: else if (ENC_COMP_P(enc, ENC_UTF8))
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:909,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:912,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:915,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:916,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:917,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:923,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:929,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:935,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:935,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:939,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:941,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:945,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:947,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:971,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:974,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:975,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:976,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:977,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:977,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:977,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 903
    functionDepth: 12
    functionLinenumber: 903
    functionLinenumberEnd: 979
    functionName: mrb_str_succ_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_cat
    - RSTRING_PTR
    - ISALNUM
    - mrb_str_new_lit
    - RSTRING_LEN
    - mrb_str_cat_cstr
    - memcpy
    - mrb_str_cat_lit
    - mrb_str_new
    - mrb_str_modify
    - mrb_str_resize
    - mrb_str_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_succ_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:986,1
    - Dst: mrb_str_succ_bang
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 981
    functionDepth: 13
    functionLinenumber: 981
    functionLinenumberEnd: 989
    functionName: mrb_str_succ
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_succ_bang
    - mrb_str_dup
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_succ(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - p
    - limit
    argTypes:
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1018
    functionName: utf8code
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int utf8code(unsigned char* p, mrb_int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1023,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1024,1
    - Dst: utf8code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1025,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1025,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1025,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1026,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1028
    functionName: mrb_str_ord
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - utf8code
    - mrb_raise
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_ord(mrb_state* mrb, mrb_value str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1033,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1034,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1035,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - str
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1030
    functionDepth: 4
    functionLinenumber: 1030
    functionLinenumberEnd: 1036
    functionName: mrb_str_ord
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - RSTRING_PTR
    - RSTRING_LEN
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_ord(mrb_state* mrb, mrb_value str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1055,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1057,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1058,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1059,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1060,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1061,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1061,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1062,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1062,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1062,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1066,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1067,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1068,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1049
    functionDepth: 10
    functionLinenumber: 1049
    functionLinenumberEnd: 1072
    functionName: mrb_str_del_prefix_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - memcmp
    - mrb_get_args
    - RSTR_SHARED_P
    - mrb_frozen_p
    - RSTR_FSHARED_P
    - RSTR_SET_LEN
    - memmove
    - mrb_str_modify
    - mrb_nil_value
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_del_prefix_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1089,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1090,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1091,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1092,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1092,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1093,1
    - Dst: mrb_str_substr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1083
    functionDepth: 9
    functionLinenumber: 1083
    functionLinenumberEnd: 1095
    functionName: mrb_str_del_prefix
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - memcmp
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_str_dup
    - mrb_str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_del_prefix(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1113,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1115,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1116,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1117,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1118,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1119,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1119,1
    - Dst: mrb_frozen_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1120,1
    - Dst: RSTR_SHARED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1120,1
    - Dst: RSTR_FSHARED_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1120,1
    - Dst: mrb_str_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1124,1
    - Dst: RSTR_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1107
    functionDepth: 10
    functionLinenumber: 1107
    functionLinenumberEnd: 1128
    functionName: mrb_str_del_suffix_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - RSTR_PTR
    - RSTR_LEN
    - memcmp
    - mrb_get_args
    - RSTR_SHARED_P
    - mrb_frozen_p
    - RSTR_FSHARED_P
    - RSTR_SET_LEN
    - mrb_str_modify
    - mrb_nil_value
    - RSTRING
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_del_suffix_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1145,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1146,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1147,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1148,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1148,1
    - Dst: mrb_str_dup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1149,1
    - Dst: mrb_str_substr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1139
    functionDepth: 9
    functionLinenumber: 1139
    functionLinenumberEnd: 1151
    functionName: mrb_str_del_suffix
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - memcmp
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_str_dup
    - mrb_str_substr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_del_suffix(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1154
    functionName: lesser
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lesser(a,b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1171,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1172,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1172,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1174,1
    - Dst: mrb_str_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1175,1
    - Dst: lesser
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1176,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1176,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1176,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1177,1
    - Dst: RSTR_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1178,1
    - Dst: ISASCII
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1182,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1182,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1182,1
    - Dst: ISASCII
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1183,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1183,1
    - Dst: TOLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1183,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1184,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1185,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1187,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1187,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1187,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1188,1
    - Dst: RSTR_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1188,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1188,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1166
    functionDepth: 9
    functionLinenumber: 1166
    functionLinenumberEnd: 1190
    functionName: mrb_str_casecmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_str_ptr
    - RSTR_PTR
    - RSTR_LEN
    - TOLOWER
    - mrb_get_args
    - lesser
    - ISASCII
    - mrb_fixnum_value
    - mrb_nil_value
    - ISUPPER
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_casecmp(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_casecmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1202,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1203,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1204,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1199
    functionDepth: 10
    functionLinenumber: 1199
    functionLinenumberEnd: 1205
    functionName: mrb_str_casecmp_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_bool_value
    - mrb_str_casecmp
    - mrb_fixnum
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_casecmp_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1213,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1215,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1218,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1219,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1225,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1225,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1207
    functionDepth: 9
    functionLinenumber: 1207
    functionLinenumberEnd: 1229
    functionName: mrb_str_lines
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_ary_push
    - RSTRING_LEN
    - mrb_gc_arena_save
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_lines(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1236,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1236,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1237,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1237,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1238,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1238,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1239,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1239,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1240,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1240,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1241,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1241,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1242,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1242,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1243,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1243,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1244,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1244,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1245,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1245,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1246,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1246,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1247,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1247,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1248,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1248,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1249,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1249,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1250,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1250,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1251,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1251,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1252,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1252,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1253,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1253,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1254,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1254,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1255,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1255,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1256,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1256,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1257,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1257,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1258,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1258,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1259,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1259,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1260,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1260,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1261,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1261,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1262,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1262,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1263,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1263,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1264,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1264,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1265,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1265,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1267,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1267,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1269,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1269,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1270
    functionName: mrb_mruby_string_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    - MRB_ARGS_REST
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_class_get
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_string_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1275
    functionName: mrb_mruby_string_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_string_ext_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:14,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:15,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 8
    functionDepth: 9
    functionLinenumber: 8
    functionLinenumberEnd: 18
    functionName: vf_s_format_0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_0(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:28,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:29,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:30,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 9
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: vf_s_format_c
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_c(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:44,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:45,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 9
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: vf_s_format_d
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_d(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:60,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:61,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: vf_s_format_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_f(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:75,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:76,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: vf_s_format_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_i(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:91,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:92,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:93,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:95,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:95,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 9
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: vf_s_format_l
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - RSTRING_CSTR
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_l(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:108,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:109,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 9
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: vf_s_format_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_n(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:122,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:123,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:124,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 9
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: vf_s_format_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_s(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:137,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:138,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:139,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 9
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: vf_s_format_C
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_class_ptr
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_C(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:151,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:152,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: vf_s_format_v
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - RSTRING_CSTR
    - mrb_format
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value vf_s_format_v(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:162,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:163,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:163,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:168,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:169,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:171,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:173,1
    - Dst: VF_DEFINE_FORMAT_METHOD_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:174,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:175,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:176,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:177,1
    - Dst: VF_DEFINE_FORMAT_METHOD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: mrb_init_test_vformat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 0
    functionsReached:
    - VF_DEFINE_FORMAT_METHOD_n
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - mrb_define_module
    - VF_DEFINE_FORMAT_METHOD
    linkageType: ''
    returnType: void
    signature: void mrb_init_test_vformat(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: VF_DEFINE_FORMAT_METHOD
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VF_DEFINE_FORMAT_METHOD(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: VF_DEFINE_FORMAT_METHOD_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VF_DEFINE_FORMAT_METHOD_n(t,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: print_hint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_hint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:37,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:37,1
    - Dst: mrb_print_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:40,1
    - Dst: mrb_bool
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: eval_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - mrb_bool
    - mrb_top_self
    - mrb_funcall
    - mrb_print_error
    linkageType: ''
    returnType: int
    signature: int eval_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:57,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:59,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:60,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:60,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:60,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:62,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: t_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - mrb_obj_as_string
    - fwrite
    - RSTRING_PTR
    - fflush
    - mrb_get_args
    - RSTRING_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value t_print(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - endp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: UNESCAPE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNESCAPE(p, endp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: CHAR_CMP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_CMP(c1, c2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UNESCAPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:84,1
    - Dst: UNESCAPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:88,1
    - Dst: CHAR_CMP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:90,1
    - Dst: CHAR_CMP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:90,1
    - Dst: CHAR_CMP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:93,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - p
    - pat_end
    - s
    - str_end
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: str_match_bracket
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - CHAR_CMP
    - UNESCAPE
    linkageType: ''
    returnType: char
    signature: "char *\nstr_match_bracket(const char *p, const char *pat_end,\n                  const
      char *s, const char *str_end)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: UNESCAPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:113,1
    - Dst: str_match_bracket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:126,1
    - Dst: UNESCAPE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:136,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 4
    argNames:
    - pat
    - pat_len
    - str
    - str_len
    argTypes:
    - char*
    - mrb_int
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 152
    functionName: str_match_no_brace_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - UNESCAPE
    - str_match_bracket
    linkageType: ''
    returnType: mrb_bool
    signature: "mrb_bool str_match_no_brace_p(const char *pat, mrb_int pat_len,\n
      \                    const char *str, mrb_int str_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: COPY_AND_INC
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_AND_INC(dst, src, len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:175,1
    - Dst: COPY_AND_INC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:178,1
    - Dst: COPY_AND_INC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:188,1
    - Dst: COPY_AND_INC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:189,1
    - Dst: str_match_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:190,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:193,1
    - Dst: str_match_no_brace_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:196,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 35
    argCount: 5
    argNames:
    - mrb
    - pat
    - pat_len
    - str
    - str_len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 200
    functionName: str_match_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 1
    functionsReached:
    - mrb_free
    - COPY_AND_INC
    - str_match_no_brace_p
    - str_match_p
    - mrb_malloc
    linkageType: ''
    returnType: mrb_bool
    signature: "mrb_bool str_match_p(mrb_state *mrb,\n            const char *pat,
      mrb_int pat_len,\n            const char *str, mrb_int str_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:208,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:209,1
    - Dst: str_match_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: m_str_match_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - str_match_p
    - mrb_bool_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value m_str_match_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:218,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:218,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:219,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:219,1
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:221,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:226,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:226,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:228,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:228,1
    - Dst: mrb_define_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:231,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:231,1
    - Dst: mrb_init_test_vformat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:235,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:238,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:238,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - verbose
    argTypes:
    - mrb_state*
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 240
    functionName: mrb_init_test_driver
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_const
    - mrb_true_value
    - mrb_intern_lit
    - mrb_float_value
    - mrb_gv_set
    - MRB_ARGS_REQ
    - mrb_define_module
    - mrb_init_test_vformat
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_print_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:248,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:249,1
    - Dst: TEST_COUNT_PASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:261,1
    - Dst: TEST_COUNT_PASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:262,1
    - Dst: TEST_COUNT_PASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:263,1
    - Dst: TEST_COUNT_PASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:264,1
    - Dst: TEST_COUNT_PASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:265,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:269,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:269,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:271,1
    - Dst: mrb_gv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:273,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:273,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:274,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:275,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:276,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:276,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:276,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mrb_dst
    - mrb_src
    argTypes:
    - mrb_state*
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 242
    functionDepth: 8
    functionLinenumber: 242
    functionLinenumberEnd: 279
    functionName: mrb_t_pass_result
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_array_p
    - RSTRING_PTR
    - exit
    - mrb_intern_lit
    - mrb_ary_push
    - TEST_COUNT_PASS
    - RSTRING_LEN
    - RARRAY_LEN
    - mrb_str_new
    - mrb_print_error
    - mrb_gv_get
    linkageType: ''
    returnType: void
    signature: void mrb_t_pass_result(mrb_state *mrb_dst, mrb_state *mrb_src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: TEST_COUNT_PASS
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_COUNT_PASS(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_hint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:288,1
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:291,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:293,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:298,1
    - Dst: mrb_init_test_driver
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:302,1
    - Dst: mrb_load_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:303,1
    - Dst: mrbgemtest_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:304,1
    - Dst: eval_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:305,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 281
    functionDepth: 12
    functionLinenumber: 281
    functionLinenumberEnd: 309
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
    functionUses: 0
    functionsReached:
    - print_hint
    - mrb_close
    - mrbgemtest_init
    - printf
    - eval_test
    - fprintf
    - mrb_load_irep
    - mrb_init_test_driver
    - mrb_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:61,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: usage
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 9
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: mrb_extension_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_extension_p(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opts
    - argc
    - argv
    argTypes:
    - struct options*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: options_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void options_init(struct options *opts, int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: options_opt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      options_opt(struct options *opts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: options_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      options_arg(struct options *opts)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:137,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:138,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - item
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: dup_arg_item
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 1
    functionsReached:
    - memcpy
    - mrb_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      dup_arg_item(mrb_state *mrb, const char *item)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: options_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:151,1
    - Dst: options_opt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:152,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:153,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:156,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:159,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:162,1
    - Dst: options_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:163,1
    - Dst: dup_arg_item
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:165,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:171,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:172,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:174,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:176,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:180,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:184,1
    - Dst: usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:185,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:186,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:188,1
    - Dst: options_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:189,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:191,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:194,1
    - Dst: dup_arg_item
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:196,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:199,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:203,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:205,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:210,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:211,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:212,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:214,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:217,1
    - Dst: mrb_show_copyright
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:218,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:219,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:222,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:231,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:235,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:236,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:238,1
    - Dst: _setmode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:248,1
    - Dst: _fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:248,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:251,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:252,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 94
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - args
    argTypes:
    - mrb_state*
    - int
    - char**
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 256
    functionName: parse_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 2
    functionsReached:
    - options_opt
    - _fileno
    - mrb_show_version
    - exit
    - dup_arg_item
    - mrb_realloc
    - strcmp
    - usage
    - mrb_show_copyright
    - memcpy
    - options_arg
    - fopen
    - fprintf
    - options_init
    - mrb_malloc
    - _setmode
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_args(mrb_state *mrb, int argc, char **argv, struct _args
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:262,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:264,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:265,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:268,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:270,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 273
    functionName: cleanup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 1
    functionsReached:
    - fclose
    - mrb_free
    - mrb_close
    linkageType: ''
    returnType: void
    signature: void cleanup(mrb_state *mrb, struct _args *args)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:278,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:287,1
    - Dst: parse_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:291,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:293,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:297,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:298,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:300,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:302,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:302,1
    - Dst: mrb_utf8_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:303,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:306,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:307,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:307,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:307,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:309,1
    - Dst: mrb_gv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:323,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:323,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:323,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:328,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:330,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:331,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:332,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:335,1
    - Dst: mrb_extension_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:336,1
    - Dst: mrb_load_irep_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:337,1
    - Dst: mrb_load_detect_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:340,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:342,1
    - Dst: mrb_vm_ci_env
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:343,1
    - Dst: mrb_vm_ci_env_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:344,1
    - Dst: mrb_env_unshare
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:345,1
    - Dst: mrbc_cleanup_local_variables
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:346,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:350,1
    - Dst: mrb_extension_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:353,1
    - Dst: mrb_load_irep_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:354,1
    - Dst: mrb_load_detect_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:357,1
    - Dst: mrb_utf8_from_locale
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:360,1
    - Dst: abort
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:361,1
    - Dst: mrb_load_string_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:362,1
    - Dst: mrb_utf8_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:363,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:366,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:367,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:369,1
    - Dst: mrb_print_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:370,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:375,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:378,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 275
    functionDepth: 11
    functionLinenumber: 275
    functionLinenumberEnd: 381
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_load_detect_file_cxt
    - mrb_intern_lit
    - mrb_gc_arena_save
    - fopen
    - cleanup
    - mrb_vm_ci_env
    - mrbc_context_new
    - mrb_load_irep_file_cxt
    - mrb_gc_arena_restore
    - parse_args
    - mrb_str_new_cstr
    - mrb_vm_ci_env_set
    - fprintf
    - fclose
    - mrb_bool_value
    - mrb_utf8_from_locale
    - puts
    - mrbc_cleanup_local_variables
    - mrb_define_global_const
    - mrb_ary_new_capa
    - mrbc_context_free
    - mrb_open
    - mrb_print_error
    - mrb_extension_p
    - abort
    - mrb_env_unshare
    - mrb_ary_push
    - mrb_gv_set
    - mrbc_filename
    - mrb_utf8_free
    - mrb_load_string_cxt
    - mrb_undef_p
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: BIT_DIGITS
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT_DIGITS(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: EXTENDSIGN
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTENDSIGN(n, l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EXTENDSIGN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:33,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:33,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - str
    - base
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: remove_sign_bits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - strlen
    - EXTENDSIGN
    linkageType: ''
    returnType: char
    signature: 'char *

      remove_sign_bits(char *str, int base)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - base
    - p
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: sign_bits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char sign_bits(int base, const char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: remove_sign_bits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - buf
    - len
    - num
    - base
    argTypes:
    - char*
    - size_t
    - mrb_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 99
    functionName: mrb_uint_to_cstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - remove_sign_bits
    linkageType: ''
    returnType: char
    signature: 'char *

      mrb_uint_to_cstr(char *buf, size_t len, mrb_int num, int base)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_format_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:125,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:143,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:146,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:148,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 7
    argNames:
    - buf
    - buf_size
    - fmt
    - flags
    - width
    - prec
    - f
    argTypes:
    - char*
    - size_t
    - char
    - int
    - mrb_int
    - int
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 153
    functionName: fmt_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - memset
    - memmove
    - mrb_format_float
    linkageType: ''
    returnType: int
    signature: int fmt_float(char *buf, size_t buf_size, char fmt, int flags, mrb_int
      width, int prec, mrb_float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: CHECK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: PUSH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: FILL
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL(c, l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:184,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - posarg
    - nextarg
    argTypes:
    - mrb_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 192
    functionName: check_next_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void check_next_arg(mrb_state *mrb, int posarg, int nextarg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:198,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:202,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - posarg
    - n
    argTypes:
    - mrb_state*
    - int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: check_pos_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void check_pos_arg(mrb_state *mrb, int posarg, mrb_int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:213,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - posarg
    - name
    - len
    argTypes:
    - mrb_state*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: check_name_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void check_name_arg(mrb_state *mrb, int posarg, const char *name, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: GETNEXTARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETNEXTARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: GETARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: GETPOSARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETPOSARG(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: GETNTHARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETNTHARG(nth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: CHECKNAMEARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKNAMEARG(name, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: GETNUM
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETNUM(n, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: GETASTER
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETASTER(num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - p
    - end
    - valp
    argTypes:
    - mrb_state*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: get_num
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_int_read
    linkageType: ''
    returnType: char
    signature: 'char *

      get_num(mrb_state *mrb, const char *p, const char *end, int *valp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:272,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:274,1
    - Dst: mrb_check_hash_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:276,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:277,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - hash
    - argc
    - argv
    argTypes:
    - mrb_state*
    - mrb_value*
    - mrb_int
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: get_hash
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_undef_p
    - mrb_nil_p
    - mrb_check_hash_type
    linkageType: ''
    returnType: void
    signature: void get_hash(mrb_state *mrb, mrb_value *hash, mrb_int argc, const
      mrb_value *argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:546,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:549,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:550,1
    - Dst: mrb_str_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 540
    functionDepth: 9
    functionLinenumber: 540
    functionLinenumberEnd: 555
    functionName: mrb_f_sprintf
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_str_format
    - mrb_get_args
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_sprintf(mrb_state *mrb, mrb_value obj)
  - BBCount: 133
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:572,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:591,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:592,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:593,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:596,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:597,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:598,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:607,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:614,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:619,1
    - Dst: CHECK_FOR_FLAGS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:623,1
    - Dst: CHECK_FOR_FLAGS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:629,1
    - Dst: CHECK_FOR_FLAGS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:635,1
    - Dst: CHECK_FOR_FLAGS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:641,1
    - Dst: CHECK_FOR_FLAGS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:647,1
    - Dst: GETNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:654,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:656,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:657,1
    - Dst: GETPOSARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:659,1
    - Dst: CHECK_FOR_WIDTH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:663,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:676,1
    - Dst: CHECKNAMEARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:679,1
    - Dst: get_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:680,1
    - Dst: mrb_intern_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:681,1
    - Dst: mrb_hash_fetch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:683,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:683,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:683,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:685,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:686,1
    - Dst: CHECK_FOR_WIDTH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:694,1
    - Dst: GETASTER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:696,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:698,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:709,1
    - Dst: GETASTER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:715,1
    - Dst: GETNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:722,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:731,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:733,1
    - Dst: GETARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:737,1
    - Dst: mrb_check_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:741,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:742,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:743,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:744,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:747,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:748,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:753,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:759,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:762,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:762,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:763,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:768,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:770,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:771,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:773,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:776,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:777,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:780,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:781,1
    - Dst: GETARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:790,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:794,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:795,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:796,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:797,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:799,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:800,1
    - Dst: RSTRING
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:803,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:806,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:808,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:811,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:813,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:819,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:821,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:821,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:823,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:828,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:828,1
    - Dst: GETARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:840,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:861,1
    - Dst: mrb_float_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:864,1
    - Dst: mrb_str_to_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:868,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:871,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:874,1
    - Dst: mrb_int_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:911,1
    - Dst: mrb_uint_to_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:916,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:923,1
    - Dst: toupper
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:932,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:955,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:974,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:978,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:981,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:982,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:987,1
    - Dst: CHECK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:991,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:994,1
    - Dst: sign_bits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:996,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:997,1
    - Dst: PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1000,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1002,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1013,1
    - Dst: GETARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1015,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1019,1
    - Dst: isfinite
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1020,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1025,1
    - Dst: isnan
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1032,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1042,1
    - Dst: FILL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1044,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1048,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1053,1
    - Dst: frexp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1061,1
    - Dst: BIT_DIGITS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1063,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1067,1
    - Dst: CHECK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1078,1
    - Dst: fmt_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1079,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1081,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1097,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1097,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1098,1
    - Dst: mrb_warn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1098,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1101,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 458
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - fmt
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_value*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 557
    functionDepth: 11
    functionLinenumber: 557
    functionLinenumberEnd: 1104
    functionName: mrb_str_format
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 1
    functionsReached:
    - mrb_obj_as_string
    - GETARG
    - mrb_str_new_capa
    - mrb_check_type
    - mrb_inspect
    - GETNUM
    - frexp
    - mrb_undef_value
    - mrb_as_int
    - mrb_warn
    - CHECK
    - mrb_type
    - mrb_test
    - CHECKNAMEARG
    - mrb_nil_p
    - CHECK_FOR_FLAGS
    - mrb_int_to_cstr
    - BIT_DIGITS
    - fmt_float
    - RSTRING_PTR
    - PUSH
    - CHECK_FOR_WIDTH
    - GETASTER
    - mrb_raise
    - get_hash
    - mrb_check_string_type
    - mrb_float_to_integer
    - mrb_intern_check
    - memset
    - MRB_SYM
    - FILL
    - mrb_str_to_integer
    - mrb_funcall_id
    - isfinite
    - isnan
    - mrb_ensure_string_type
    - mrb_uint_to_cstr
    - sign_bits
    - memcpy
    - mrb_str_resize
    - toupper
    - mrb_hash_fetch
    - mrb_symbol_value
    - GETPOSARG
    - RSTRING
    - strlen
    - mrb_integer
    - RSTRING_LEN
    - mrb_integer_p
    - mrb_str_new
    - mrb_raisef
    - mrb_undef_p
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_str_format(mrb_state *mrb, mrb_int argc, const mrb_value
      *argv, mrb_value fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 581
    functionName: CHECK_FOR_WIDTH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FOR_WIDTH(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 588
    functionName: CHECK_FOR_FLAGS
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FOR_FLAGS(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1111,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1111,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1112,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1113
    functionName: mrb_mruby_sprintf_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_sprintf_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: mrb_mruby_sprintf_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_sprintf_gem_final(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:10,1
    - Dst: mrb_bint_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:11,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:12,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:12,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 9
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: bint_allbits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_bint_and
    - mrb_false_value
    - mrb_as_bint
    - mrb_bint_cmp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value bint_allbits(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:19,1
    - Dst: mrb_bint_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:20,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:21,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:21,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:22,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 9
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: bint_anybits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_bint_and
    - mrb_false_value
    - mrb_fixnum_value
    - mrb_as_bint
    - mrb_bint_cmp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value bint_anybits(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_as_bint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:29,1
    - Dst: mrb_bint_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:30,1
    - Dst: mrb_bint_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:31,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:31,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:32,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 9
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: bint_nobits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_bint_and
    - mrb_false_value
    - mrb_fixnum_value
    - mrb_as_bint
    - mrb_bint_cmp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value bint_nobits(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_allbits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:47,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:47,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:51,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:52,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 10
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: int_allbits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_get_args
    - bint_allbits
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_allbits(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_anybits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:66,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:66,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:70,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:71,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 10
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: int_anybits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - bint_anybits
    - mrb_integer
    - mrb_get_args
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_anybits(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bint_nobits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:85,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:85,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:89,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:90,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 10
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: int_nobits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 1
    functionsReached:
    - mrb_get_arg1
    - mrb_integer
    - mrb_get_args
    - bint_nobits
    - mrb_bool_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_nobits(mrb_state *mrb, mrb_value self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:109,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:113,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:114,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:114,1
    - Dst: mrb_bint_rem
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:115,1
    - Dst: flo_remainder
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:117,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:117,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:117,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:120,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:121,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:122,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:123,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:124,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:125,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:128,1
    - Dst: flo_remainder
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:130,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:130,1
    - Dst: mrb_as_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 10
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: int_remainder
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached:
    - flo_remainder
    - mrb_get_arg1
    - mrb_integer
    - mrb_raise
    - mrb_float_value
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_int_zerodiv
    - mrb_bint_rem
    - mrb_as_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_remainder(mrb_state *mrb, mrb_value x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:152,1
    - Dst: mrb_int_pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:153,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:155,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:156,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:158,1
    - Dst: mrb_bint_powm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:159,1
    - Dst: mrb_bigint_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:161,1
    - Dst: mrb_bint_powm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:162,1
    - Dst: mrb_bint_new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:162,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:162,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:165,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:165,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:166,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:167,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:168,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:169,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:170,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:173,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:174,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:180,1
    - Dst: mrb_int_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:181,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 146
    functionDepth: 11
    functionLinenumber: 146
    functionLinenumberEnd: 186
    functionName: int_powm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 1
    functionsReached:
    - mrb_integer
    - mrb_int_zerodiv
    - mrb_raise
    - mrb_bint_powm
    - mrb_get_args
    - mrb_int_overflow
    - mrb_int_value
    - mrb_bigint_p
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_get_argc
    - mrb_int_mul_overflow
    - mrb_int_pow
    - mrb_bint_new_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value int_powm(mrb_state *mrb, mrb_value x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:194,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:195,1
    - Dst: mrb_int_zerodiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:196,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:197,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:197,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:198,1
    - Dst: trunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 9
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: flo_remainder
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 1
    functionsReached:
    - mrb_get_args
    - trunc
    - mrb_float_value
    - mrb_int_zerodiv
    - isinf
    - mrb_float
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value flo_remainder(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:205,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:207,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:207,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:208,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:208,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:209,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:209,1
    - Dst: mrb_define_alias
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:211,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:212,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:212,1
    - Dst: mrb_define_method_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:214,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:214,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:214,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:217,1
    - Dst: mrb_define_alias
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:219,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:220,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:220,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:222,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:222,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:222,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:223,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:223,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:223,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:224,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:224,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:224,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:225,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:225,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:225,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:226,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:226,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:226,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:227,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:227,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:227,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:228,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:228,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:228,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:229,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:229,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:229,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:230,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:230,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:230,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:231,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:231,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: mrb_mruby_numeric_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_SYM
    - mrb_define_method_id
    - MRB_ARGS_ARG
    - mrb_define_const_id
    - mrb_float_value
    - MRB_ARGS_REQ
    - mrb_fixnum_value
    - mrb_define_alias
    - mrb_class_get
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_numeric_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: mrb_mruby_numeric_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_numeric_ext_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:29,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:32,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:32,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:35,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: mrb_sym_all_symbols
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_symbol_value
    - mrb_ary_push
    - mrb_ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sym_all_symbols(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:54,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:54,1
    - Dst: mrb_utf8_strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:55,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:57,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:57,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: mrb_sym_length
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_symbol
    - mrb_utf8_strlen
    - mrb_fixnum_value
    - mrb_sym_name_len
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sym_length(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:67,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:67,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:69,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:69,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:70,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: mrb_mruby_symbol_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_symbol_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: mrb_mruby_symbol_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_symbol_ext_gem_final(mrb_state* mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:25,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:28,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:32,1
    - Dst: mrb_ary_shift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:33,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:37,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 40
    functionName: args_shift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mrb_ary_shift
    - mrb_assert
    - mrb_undef_value
    - memmove
    - mrb_argnum_error
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value args_shift(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:49,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:50,1
    - Dst: mrb_ary_unshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: args_unshift
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_ary_unshift
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: void
    signature: void args_unshift(mrb_state *mrb, mrb_value obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:72,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:79,1
    - Dst: mrb_method_missing
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:80,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:83,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:84,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:85,1
    - Dst: MRB_METHOD_FUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:90,1
    - Dst: mrb_proc_new_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:91,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:91,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:92,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:95,1
    - Dst: args_unshift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:98,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - mrb
    - mid
    - recv
    - tc
    argTypes:
    - mrb_state*
    - mrb_sym*
    - mrb_value
    - struct RClass**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 10
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: method_missing_prepare
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_FUNC
    - MRB_METHOD_PROC
    - mrb_ary_new_from_values
    - mrb_method_search_vm
    - mrb_method_missing
    - mrb_class
    - mrb_proc_new_cfunc
    - mrb_symbol_value
    - MRB_PROC_SET_TARGET_CLASS
    - args_unshift
    - MRB_METHOD_FUNC_P
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      method_missing_prepare(mrb_state *mrb, mrb_sym *mid, mrb_value recv, struct
      RClass **tc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mclass
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: method_object_alloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    linkageType: ''
    returnType: struct RObject
    signature: 'struct RObject *

      method_object_alloc(mrb_state *mrb, struct RClass *mclass)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:113,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:113,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:114,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:118,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: method_extract_proc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_check_type
    - mrb_proc_ptr
    - mrb_iv_get
    - mrb_nil_p
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      method_extract_proc(mrb_state *mrb, mrb_value self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:126,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: method_extract_receiver
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_extract_receiver(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:132,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:132,1
    - Dst: mrb_check_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:133,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: method_extract_mid
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    - mrb_symbol
    - mrb_check_type
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym method_extract_mid(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:140,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:140,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:141,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:147,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: method_extract_owner
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_raise
    - mrb_class_ptr
    - mrb_iv_get
    - mrb_type
    linkageType: ''
    returnType: struct RClass
    signature: 'struct RClass *

      method_extract_owner(mrb_state *mrb, mrb_value self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:155,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:156,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:156,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:157,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:157,1
    - Dst: mrb_sclass_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:158,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:159,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - recv
    - owner
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: bind_check
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_sclass_p
    - mrb_class_ptr
    - mrb_raisef
    - mrb_module_p
    linkageType: ''
    returnType: void
    signature: void bind_check(mrb_state *mrb, mrb_value recv, mrb_value owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:170,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:170,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:171,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:171,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:172,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:172,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:173,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:173,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:174,1
    - Dst: bind_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:176,1
    - Dst: method_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:177,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:177,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:177,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:178,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:178,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:179,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:179,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:180,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:180,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:181,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:181,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:182,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:182,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: unbound_method_bind
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - bind_check
    - mrb_iv_get
    - mrb_obj_iv_set
    - mrb_obj_value
    - mrb_class_get_id
    - method_object_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value unbound_method_bind(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: IV_GET
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IV_GET(value, name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:191,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:196,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:196,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:197,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:199,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:199,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:200,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:202,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:202,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:202,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:203,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:203,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:203,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:204,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:206,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:206,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:206,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:207,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:207,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:207,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:208,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:210,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:210,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:211,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:211,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:211,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:212,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:214,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:214,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:215,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:215,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:216,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:216,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: IV_GET
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:217,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:218,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:220,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:223,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:224,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:225,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:226,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:228,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:229,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:230,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:231,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:232,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:234,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:237,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:238,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:240,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:243,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 188
    functionDepth: 7
    functionLinenumber: 188
    functionLinenumberEnd: 244
    functionName: method_eql
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_arg1
    - mrb_true_value
    - mrb_proc_ptr
    - mrb_class_ptr
    - mrb_obj_equal
    - mrb_class
    - IV_GET
    - mrb_false_value
    - MRB_PROC_CFUNC_P
    - mrb_nil_p
    - mrb_symbol
    - mrb_obj_is_instance_of
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_eql(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: method_extract_proc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:251,1
    - Dst: method_extract_mid
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:252,1
    - Dst: method_extract_owner
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:253,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:255,1
    - Dst: method_extract_receiver
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:256,1
    - Dst: bind_check
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:259,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:259,1
    - Dst: method_missing_prepare
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:263,1
    - Dst: mrb_exec_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - self
    - recv
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 11
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: mcall
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - method_extract_owner
    - method_extract_proc
    - method_extract_receiver
    - method_missing_prepare
    - bind_check
    - mrb_exec_irep
    - mrb_obj_value
    - mrb_undef_p
    - method_extract_mid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mcall(mrb_state *mrb, mrb_value self, mrb_value recv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:274,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 12
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: method_call
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mrb_undef_value
    - mcall
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_call(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: args_shift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:280,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:281,1
    - Dst: mcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 12
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: method_bcall
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mcall
    - args_shift
    - mrb_gc_protect
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_bcall(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:289,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:289,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:290,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:290,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:291,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:291,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:292,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:292,1
    - Dst: method_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:294,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:294,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:294,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:295,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:295,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:296,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:296,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:296,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:297,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:297,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:298,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:298,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:299,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:299,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 302
    functionName: method_unbind
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_obj_value
    - mrb_iv_get
    - mrb_obj_iv_set
    - mrb_nil_value
    - mrb_class_get_id
    - method_object_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_unbind(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:307,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:308,1
    - Dst: MRB_METHOD_PROC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:310,1
    - Dst: MRB_METHOD_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:311,1
    - Dst: mrb_proc_new_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:313,1
    - Dst: MRB_METHOD_FUNC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:313,1
    - Dst: MRB_METHOD_NOARG_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - cp
    - mid
    argTypes:
    - mrb_state*
    - struct RClass**
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 318
    functionName: method_search_vm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 10
    functionsReached:
    - MRB_METHOD_FUNC
    - MRB_METHOD_UNDEF_P
    - MRB_METHOD_PROC_P
    - MRB_METHOD_NOARG_P
    - MRB_METHOD_PROC
    - mrb_method_search_vm
    - mrb_proc_new_cfunc
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:323,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:323,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:324,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:324,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:325,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:325,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:326,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:326,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:331,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:333,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:336,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:339,1
    - Dst: method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:343,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:343,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:345,1
    - Dst: method_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:351,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:351,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:352,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:352,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:352,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:353,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:353,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:354,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:354,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:355,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:355,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:355,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:356,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:356,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:356,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 320
    functionDepth: 5
    functionLinenumber: 320
    functionLinenumberEnd: 359
    functionName: method_super_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_obj_class
    - method_search_vm
    - mrb_obj_value
    - mrb_class_ptr
    - mrb_iv_get
    - mrb_type
    - mrb_obj_iv_set
    - mrb_nil_value
    - mrb_symbol
    - method_object_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_super_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:364,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:364,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:365,1
    - Dst: mrb_proc_arity
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:365,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:365,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: method_arity
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_proc_ptr
    - mrb_iv_get
    - mrb_fixnum_value
    - mrb_nil_p
    - mrb_proc_arity
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_arity(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:372,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:372,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:374,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:375,1
    - Dst: mrb_proc_source_location
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:377,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 9
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: method_source_location
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_proc_ptr
    - mrb_proc_source_location
    - mrb_iv_get
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_source_location(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:383,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:383,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:385,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:386,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:386,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:387,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:388,1
    - Dst: mrb_proc_parameters
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 10
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: method_parameters
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_ary_new_from_values
    - mrb_proc_parameters
    - mrb_iv_get
    - mrb_nil_p
    - mrb_symbol_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_parameters(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:397,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:397,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:398,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:398,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:399,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:399,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:400,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:403,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:403,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:404,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:405,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:406,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:407,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:408,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:409,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:412,1
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:412,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:413,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:414,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:415,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:416,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 394
    functionDepth: 15
    functionLinenumber: 394
    functionLinenumberEnd: 420
    functionName: method_to_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_class_name
    - mrb_str_new_lit
    - mrb_obj_classname
    - mrb_class_ptr
    - mrb_str_cat_cstr
    - mrb_iv_get
    - mrb_str_concat
    - mrb_str_cat_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:428,1
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:433,1
    - Dst: MRB_SYM_Q
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:433,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:436,1
    - Dst: MRB_SYM_Q
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:436,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:436,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:436,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:437,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:449,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - mrb
    - c
    - obj
    - name
    - owner
    - proc
    - unbound
    argTypes:
    - mrb_state*
    - struct RClass*
    - mrb_value
    - mrb_sym
    - struct RClass**
    - struct RProc**
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 5
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: mrb_search_method_owner
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - method_search_vm
    - mrb_funcall_id
    - mrb_respond_to
    - MRB_SYM_Q
    - mrb_test
    - mrb_raisef
    - mrb_symbol_value
    linkageType: ''
    returnType: void
    signature: void mrb_search_method_owner(mrb_state *mrb, struct RClass *c, mrb_value
      obj, mrb_sym name, struct RClass **owner, struct RProc **proc, mrb_bool unbound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:460,1
    - Dst: mrb_search_method_owner
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:462,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:462,1
    - Dst: method_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:464,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:464,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:464,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:465,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:465,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:465,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:466,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:466,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:467,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:467,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:467,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:468,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:468,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:468,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:468,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:469,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:469,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:469,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:469,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 452
    functionDepth: 9
    functionLinenumber: 452
    functionLinenumberEnd: 472
    functionName: mrb_kernel_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_args
    - mrb_class
    - mrb_search_method_owner
    - mrb_obj_iv_set
    - mrb_obj_value
    - mrb_symbol_value
    - mrb_class_get_id
    - method_object_alloc
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_kernel_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:482,1
    - Dst: mrb_search_method_owner
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:484,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:484,1
    - Dst: method_object_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:486,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:486,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:486,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:487,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:487,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:487,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:488,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:488,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:488,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:489,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:489,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:489,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:490,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:490,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:490,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:490,1
    - Dst: mrb_obj_iv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:491,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:491,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 474
    functionDepth: 9
    functionLinenumber: 474
    functionLinenumberEnd: 494
    functionName: mrb_module_instance_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_get_args
    - mrb_class_ptr
    - mrb_search_method_owner
    - mrb_obj_iv_set
    - mrb_obj_value
    - mrb_symbol_value
    - mrb_class_get_id
    - method_object_alloc
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_module_instance_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:499,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 500
    functionName: method_owner
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 2
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_owner(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:505,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: method_receiver
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_receiver(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:511,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: method_name
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value method_name(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:517,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:517,1
    - Dst: mrb_define_class_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:518,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:518,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:520,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:521,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:521,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:522,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:522,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:523,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:523,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:524,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:524,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:525,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:525,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:526,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:526,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:527,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:527,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:528,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:528,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:529,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:529,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:530,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:530,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:530,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:531,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:531,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:532,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:532,1
    - Dst: mrb_undef_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:534,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:535,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:535,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:536,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:536,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:537,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:537,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:538,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:538,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:539,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:539,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:540,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:540,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:541,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:541,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:542,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:542,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:543,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:543,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:544,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:544,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:545,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:545,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:546,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:546,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:547,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:547,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:548,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:548,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:550,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:550,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:552,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 514
    functionDepth: 15
    functionLinenumber: 514
    functionLinenumberEnd: 553
    functionName: mrb_mruby_method_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - mrb_undef_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - MRB_ARGS_ANY
    - mrb_define_class_id
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_method_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: mrb_mruby_method_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_method_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_yield_argv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 8
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: protect_cb
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_yield_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value protect_cb(mrb_state *mrb, mrb_value b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:17,1
    - Dst: mrb_protect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:18,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:19,1
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 9
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: run_protect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - mrb_protect
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value run_protect(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:27,1
    - Dst: mrb_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: run_ensure
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_ensure
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value run_ensure(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:35,1
    - Dst: mrb_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 9
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: run_rescue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_rescue
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value run_rescue(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:44,1
    - Dst: mrb_rescue_exceptions
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 9
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: run_rescue_exceptions
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_rescue_exceptions
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value run_rescue_exceptions(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:54,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:55,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:55,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:55,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:56,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:56,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:57,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:57,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:58,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: mrb_mruby_error_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - MRB_ARGS_BLOCK
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_error_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct protect_data*::body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: protect_body
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 0
    functionsReached:
    - struct protect_data*::body
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value protect_body(mrb_state *mrb, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_protect_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - body
    - data
    - state
    argTypes:
    - mrb_state*
    - mrb_func_t
    - mrb_value
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 7
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: mrb_protect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 1
    functionsReached:
    - mrb_protect_error
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_protect(mrb_state *mrb, mrb_func_t body, mrb_value data,
      mrb_bool *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:26,1
    - Dst: mrb_protect_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:29,1
    - Dst: ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:30,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:31,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:32,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - mrb
    - body
    - b_data
    - ensure
    - e_data
    argTypes:
    - mrb_state*
    - mrb_func_t
    - mrb_value
    - mrb_func_t
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: mrb_ensure
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 1
    functionsReached:
    - mrb_gc_protect
    - mrb_protect_error
    - mrb_exc_raise
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - ensure
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_ensure(mrb_state *mrb, mrb_func_t body, mrb_value b_data,
      mrb_func_t ensure, mrb_value e_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_rescue_exceptions
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mrb
    - body
    - b_data
    - rescue
    - r_data
    argTypes:
    - mrb_state*
    - mrb_func_t
    - mrb_value
    - mrb_func_t
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: mrb_rescue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 1
    functionsReached:
    - mrb_rescue_exceptions
    linkageType: ''
    returnType: MRB_API
    signature: "MRB_API mrb_rescue(mrb_state *mrb, mrb_func_t body, mrb_value b_data,\n
      \          mrb_func_t rescue, mrb_value r_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:50,1
    - Dst: mrb_protect_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:53,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:57,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:63,1
    - Dst: rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:66,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:67,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - mrb
    - body
    - b_data
    - rescue
    - r_data
    - len
    - classes
    argTypes:
    - mrb_state*
    - mrb_func_t
    - mrb_value
    - mrb_func_t
    - mrb_value
    - mrb_int
    - struct RClass**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: mrb_rescue_exceptions
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 2
    functionsReached:
    - mrb_gc_protect
    - mrb_protect_error
    - mrb_obj_is_kind_of
    - mrb_exc_raise
    - mrb_gc_arena_restore
    - rescue
    - mrb_gc_arena_save
    linkageType: ''
    returnType: MRB_API
    signature: "MRB_API mrb_rescue_exceptions(mrb_state *mrb, mrb_func_t body, mrb_value
      b_data, mrb_func_t rescue, mrb_value r_data,\n                      mrb_int
      len, struct RClass **classes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: mrb_mruby_error_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_error_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: mrb_mruby_error_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_error_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - rand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: rand_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rand_init(rand_state *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:68,1
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - seed
    argTypes:
    - rand_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: rand_seed
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - rand_init
    - rand_uint32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rand_seed(rand_state *t, uint32_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: rotl
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotl(const uint32_t x, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:102,1
    - Dst: rotl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - rand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: rand_uint32
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 1
    functionsReached:
    - rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rand_uint32(rand_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - rand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: rand_real
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - rand_uint32
    linkageType: ''
    returnType: double
    signature: double rand_real(rand_state *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:131,1
    - Dst: rand_real
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:131,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:136,1
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - t
    - max
    argTypes:
    - mrb_state*
    - rand_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: random_rand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_int_value
    - rand_uint32
    - rand_real
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_rand(mrb_state *mrb, rand_state *t, mrb_int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - max
    argTypes:
    - rand_state*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: rand_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - rand_uint32
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int rand_i(rand_state *t, mrb_int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:151,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: get_opt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int get_opt(mrb_state* mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:160,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:160,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:161,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:161,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:161,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:162,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: random_default
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_const_get
    - mrb_obj_value
    - mrb_class_get_id
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_default(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: random_ptr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: random_ptr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mrb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: random_default_state
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: random_default_state(mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:178,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:179,1
    - Dst: rand_init
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:180,1
    - Dst: rand_seed
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 9
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: random_m_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - random_ptr
    - rand_init
    - mrb_get_args
    - rand_seed
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_m_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:193,1
    - Dst: get_opt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:195,1
    - Dst: random_rand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 10
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: random_m_rand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - random_ptr
    - random_rand
    - get_opt
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_m_rand(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:205,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:207,1
    - Dst: time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:208,1
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:208,1
    - Dst: rand_seed
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:213,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: random_m_srand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - rand_seed
    - time
    - mrb_get_args
    - rand_uint32
    - random_ptr
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_m_srand(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:221,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:224,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:226,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:227,1
    - Dst: rand_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: random_m_bytes
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - rand_uint32
    - random_ptr
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_m_bytes(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:238,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:241,1
    - Dst: random_default_state
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:242,1
    - Dst: mrb_istruct_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:244,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:244,1
    - Dst: mrb_istruct_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:245,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - r
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 251
    functionName: check_random_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - mrb_istruct_ptr
    - mrb_obj_is_kind_of
    - mrb_istruct_p
    - mrb_raise
    - mrb_class_get_id
    - random_default_state
    - mrb_undef_p
    linkageType: ''
    returnType: rand_state
    signature: 'rand_state *

      check_random_arg(mrb_state *mrb, mrb_value r)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:262,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:265,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:269,1
    - Dst: check_random_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:270,1
    - Dst: mrb_ary_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:271,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:271,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:272,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:273,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:275,1
    - Dst: rand_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 259
    functionDepth: 9
    functionLinenumber: 259
    functionLinenumberEnd: 287
    functionName: mrb_ary_shuffle_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - RARRAY_PTR
    - mrb_ary_modify
    - check_random_arg
    - mrb_ary_ptr
    - mrb_get_args
    - rand_i
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_shuffle_bang(mrb_state *mrb, mrb_value ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_from_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:299,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:299,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:299,1
    - Dst: mrb_ary_shuffle_bang
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 10
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: mrb_ary_shuffle
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_shuffle_bang
    - RARRAY_LEN
    - mrb_ary_new_from_values
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_shuffle(mrb_state *mrb, mrb_value ary)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:327,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:331,1
    - Dst: check_random_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:332,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:333,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:337,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:339,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:341,1
    - Dst: rand_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:341,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:348,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:350,1
    - Dst: rand_i
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:356,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:359,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:359,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:365,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:365,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:368,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:368,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:369,1
    - Dst: mrb_ary_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:370,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 320
    functionDepth: 9
    functionLinenumber: 320
    functionLinenumberEnd: 374
    functionName: mrb_ary_sample
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - RARRAY_PTR
    - mrb_ary_set
    - mrb_integer
    - check_random_arg
    - mrb_raise
    - mrb_get_args
    - mrb_ary_push
    - mrb_int_value
    - rand_i
    - mrb_ary_new_capa
    - RARRAY_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_sample(mrb_state *mrb, mrb_value ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_default_state
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:379,1
    - Dst: random_rand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:380,1
    - Dst: get_opt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 10
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: random_f_rand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - random_default_state
    - random_rand
    - get_opt
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_f_rand(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_default
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:386,1
    - Dst: random_m_srand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 10
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: random_f_srand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - random_m_srand
    - random_default
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_f_srand(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_default
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:393,1
    - Dst: random_m_bytes
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 10
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: random_f_bytes
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - random_default
    - random_m_bytes
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value random_f_bytes(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_static_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:403,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:405,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:405,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:406,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:406,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:408,1
    - Dst: mrb_const_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:409,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:409,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:409,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:410,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:411,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:411,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:412,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:412,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:413,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:413,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:415,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:415,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:416,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:416,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:417,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:417,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:418,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:418,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:420,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:420,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:421,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:421,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:422,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:422,1
    - Dst: mrb_obj_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:424,1
    - Dst: random_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:425,1
    - Dst: mrb_const_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:426,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:426,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:426,1
    - Dst: time
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:428,1
    - Dst: rand_seed
      Src: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 398
    functionDepth: 11
    functionLinenumber: 398
    functionLinenumberEnd: 430
    functionName: mrb_mruby_random_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_SYM
    - rand_seed
    - time
    - MRB_ARGS_OPT
    - mrb_static_assert
    - mrb_define_class_method
    - random_ptr
    - MRB_ARGS_REQ
    - mrb_obj_new
    - mrb_const_set
    - mrb_define_class
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_random_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: mrb_mruby_random_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_random_gem_final(mrb_state *mrb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:117,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:118,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:121,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:127,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:131,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:134,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:135,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:136,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:141,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:143,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:145,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:147,1
    - Dst: MRB_THROW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:150,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - s
    - message
    argTypes:
    - codegen_scope*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 151
    functionName: codegen_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_irep_decref
    - mrb_pool_close
    - mrb_free
    - MRB_THROW
    - fprintf
    - mrb_sym_name_len
    linkageType: ''
    returnType: void
    signature: void codegen_error(codegen_scope *s, const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:156,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - codegen_scope*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: codegen_palloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    - mrb_pool_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      codegen_palloc(codegen_scope *s, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_realloc_simple
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:165,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - p
    - len
    argTypes:
    - codegen_scope*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: codegen_realloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    - mrb_realloc_simple
    linkageType: ''
    returnType: void
    signature: 'void *

      codegen_realloc(codegen_scope *s, void *p, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - s
    - a
    - b
    argTypes:
    - codegen_scope*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: check_no_ext_ops
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    linkageType: ''
    returnType: void
    signature: void check_no_ext_ops(codegen_scope *s, uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: new_label
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int new_label(codegen_scope *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:190,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:198,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - s
    - pc
    - i
    argTypes:
    - codegen_scope*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 210
    functionName: emit_B
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    - codegen_realloc
    linkageType: ''
    returnType: void
    signature: void emit_B(codegen_scope *s, uint32_t pc, uint8_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:218,1
    - Dst: emit_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - pc
    - i
    argTypes:
    - codegen_scope*
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: emit_S
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - emit_B
    linkageType: ''
    returnType: void
    signature: void emit_S(codegen_scope *s, int pc, uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - codegen_scope*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: gen_B
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - emit_B
    linkageType: ''
    returnType: void
    signature: void gen_B(codegen_scope *s, uint8_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - codegen_scope*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: gen_S
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - emit_S
    linkageType: ''
    returnType: void
    signature: void gen_S(codegen_scope *s, uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - codegen_scope*
    - mrb_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 7
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: genop_0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_B
    linkageType: ''
    returnType: void
    signature: void genop_0(codegen_scope *s, mrb_code i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_no_ext_ops
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:247,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:249,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:250,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:251,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:254,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - s
    - i
    - a
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 8
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: genop_1
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - check_no_ext_ops
    - gen_S
    - gen_B
    linkageType: ''
    returnType: void
    signature: void genop_1(codegen_scope *s, mrb_code i, uint16_t a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_no_ext_ops
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:263,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:265,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:266,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:267,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:268,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:271,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:272,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:273,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:274,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:277,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:278,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:279,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:280,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:283,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:284,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - s
    - i
    - a
    - b
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 287
    functionName: genop_2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - check_no_ext_ops
    - gen_S
    - gen_B
    linkageType: ''
    returnType: void
    signature: void genop_2(codegen_scope *s, mrb_code i, uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:292,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - s
    - i
    - a
    - b
    - c
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 9
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: genop_3
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_B
    - genop_2
    linkageType: ''
    returnType: void
    signature: void genop_3(codegen_scope *s, mrb_code i, uint16_t a, uint16_t b,
      uint16_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:299,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - s
    - i
    - a
    - b
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 9
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: genop_2S
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_S
    - genop_1
    linkageType: ''
    returnType: void
    signature: void genop_2S(codegen_scope *s, mrb_code i, uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:306,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:307,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - i
    - a
    - b
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 9
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: genop_2SS
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_S
    - genop_1
    linkageType: ''
    returnType: void
    signature: void genop_2SS(codegen_scope *s, mrb_code i, uint16_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:319,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:320,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:321,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - s
    - i
    - a
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: genop_W
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_B
    linkageType: ''
    returnType: void
    signature: void genop_W(codegen_scope *s, mrb_code i, uint32_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: no_optimize
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool no_optimize(codegen_scope *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:342,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:355,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:363,1
    - Dst: READ_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - pc
    argTypes:
    - mrb_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 386
    functionName: mrb_decode_insn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - READ_B
    linkageType: ''
    returnType: struct mrb_insn_data
    signature: struct mrb_insn_data mrb_decode_insn(const mrb_code *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(i,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: OPCODE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCODE(_,x)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - s
    - pc
    argTypes:
    - codegen_scope*
    - mrb_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 472
    functionName: mrb_prev_pc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_code
    signature: 'mrb_code *

      mrb_prev_pc(codegen_scope *s, const mrb_code *pc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: pc_addr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pc_addr(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: addr_pc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addr_pc(s, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: rewind_pc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rewind_pc(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: mrb_last_insn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_decode_insn
    linkageType: ''
    returnType: struct mrb_insn_data
    signature: struct mrb_insn_data mrb_last_insn(codegen_scope *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: no_optimize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: no_peephole
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - no_optimize
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool no_peephole(codegen_scope *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:507,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - pc
    argTypes:
    - codegen_scope*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 496
    functionDepth: 8
    functionLinenumber: 496
    functionLinenumberEnd: 510
    functionName: gen_jmpdst
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_S
    - codegen_error
    linkageType: ''
    returnType: void
    signature: void gen_jmpdst(codegen_scope *s, uint32_t pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genop_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:517,1
    - Dst: gen_jmpdst
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - s
    - i
    - pc
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 9
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: genjmp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - genop_0
    - gen_jmpdst
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t genjmp(codegen_scope *s, mrb_code i, uint32_t pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: genjmp_0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: genjmp_0(s,i)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:530,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:531,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:536,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:543,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:545,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:556,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:558,1
    - Dst: check_no_ext_ops
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:569,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:570,1
    - Dst: genop_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:571,1
    - Dst: gen_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:572,1
    - Dst: genop_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:575,1
    - Dst: gen_B
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:576,1
    - Dst: gen_jmpdst
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:579,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 5
    argNames:
    - s
    - i
    - a
    - pc
    - val
    argTypes:
    - codegen_scope*
    - mrb_code
    - uint16_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 525
    functionDepth: 10
    functionLinenumber: 525
    functionLinenumberEnd: 581
    functionName: genjmp2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_S
    - genjmp
    - addr_pc
    - genop_0
    - gen_jmpdst
    - rewind_pc
    - gen_B
    - check_no_ext_ops
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t genjmp2(codegen_scope *s, mrb_code i, uint16_t a, uint32_t
      pc, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - i
    - ','
    - a
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: genjmp2_0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: genjmp2_0(s,i,a,val)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:591,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:594,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:603,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:604,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:604,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:605,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:609,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:610,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:610,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:611,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:620,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:621,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:632,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:633,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:637,1
    - Dst: genop_2S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:638,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:644,1
    - Dst: genop_2SS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:645,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:650,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:652,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:654,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:658,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:659,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:664,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:665,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:668,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:670,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:670,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:672,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:673,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:675,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:675,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:677,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:678,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:679,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:680,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:681,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:687,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:694,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 141
    argCount: 4
    argNames:
    - s
    - dst
    - src
    - nopeep
    argTypes:
    - codegen_scope*
    - uint16_t
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 588
    functionDepth: 10
    functionLinenumber: 588
    functionLinenumberEnd: 696
    functionName: gen_move
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached:
    - mrb_decode_insn
    - mrb_int_sub_overflow
    - addr_pc
    - genop_2SS
    - rewind_pc
    - get_int_operand
    - genop_3
    - mrb_int_add_overflow
    - mrb_prev_pc
    - gen_int
    - genop_1
    - genop_2
    - no_peephole
    - gen_move
    - mrb_last_insn
    - genop_2S
    linkageType: ''
    returnType: void
    signature: void gen_move(codegen_scope *s, uint16_t dst, uint16_t src, int nopeep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: search_upvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:704,1
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:706,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:707,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - s
    - dst
    - id
    argTypes:
    - codegen_scope*
    - uint16_t
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 700
    functionDepth: 10
    functionLinenumber: 700
    functionLinenumberEnd: 714
    functionName: gen_getupvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - no_peephole
    - mrb_last_insn
    - genop_3
    - search_upvar
    linkageType: ''
    returnType: void
    signature: void gen_getupvar(codegen_scope *s, uint16_t dst, mrb_sym id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: search_upvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:720,1
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:722,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:723,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:726,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - dst
    - id
    argTypes:
    - codegen_scope*
    - uint16_t
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 10
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: gen_setupvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - rewind_pc
    - genop_3
    - search_upvar
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: void
    signature: void gen_setupvar(codegen_scope *s, uint16_t dst, mrb_sym id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:735,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:736,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:739,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:742,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:743,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s
    - op
    - src
    argTypes:
    - codegen_scope*
    - uint8_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 732
    functionDepth: 9
    functionLinenumber: 732
    functionLinenumberEnd: 749
    functionName: gen_return
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - no_peephole
    - rewind_pc
    - mrb_last_insn
    - genop_1
    linkageType: ''
    returnType: void
    signature: void gen_return(codegen_scope *s, uint8_t op, uint16_t src)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 3
    argNames:
    - s
    - data
    - n
    argTypes:
    - codegen_scope*
    - struct mrb_insn_data*
    - mrb_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 798
    functionName: get_int_operand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool get_int_operand(codegen_scope *s, struct mrb_insn_data *data,
      mrb_int *n)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:803,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:805,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:809,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:812,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:816,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:816,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:818,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:818,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:821,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:824,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:825,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:829,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:830,1
    - Dst: mrb_int_add_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:835,1
    - Dst: mrb_int_sub_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:838,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:840,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:841,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - s
    - op
    - dst
    argTypes:
    - codegen_scope*
    - uint8_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 800
    functionDepth: 9
    functionLinenumber: 800
    functionLinenumberEnd: 843
    functionName: gen_addsub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_decode_insn
    - mrb_int_sub_overflow
    - addr_pc
    - rewind_pc
    - get_int_operand
    - mrb_int_add_overflow
    - mrb_prev_pc
    - gen_int
    - genop_1
    - genop_2
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: void
    signature: void gen_addsub(codegen_scope *s, uint8_t op, uint16_t dst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:848,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:850,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:854,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:856,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:856,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:860,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:860,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:861,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:865,1
    - Dst: mrb_div_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:870,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:872,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:873,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - s
    - op
    - dst
    argTypes:
    - codegen_scope*
    - uint8_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 845
    functionDepth: 9
    functionLinenumber: 845
    functionLinenumberEnd: 875
    functionName: gen_muldiv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_decode_insn
    - addr_pc
    - mrb_div_int
    - get_int_operand
    - gen_int
    - mrb_prev_pc
    - genop_1
    - mrb_int_mul_overflow
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: void
    signature: void gen_muldiv(codegen_scope *s, uint8_t op, uint16_t dst)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:882,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:883,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:884,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:888,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:890,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:890,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:894,1
    - Dst: mrb_prev_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:894,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:895,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:898,1
    - Dst: mrb_num_shift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:899,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:901,1
    - Dst: mrb_num_shift
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:903,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:905,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:917,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:920,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:923,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:929,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:930,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 3
    argNames:
    - s
    - op
    - dst
    argTypes:
    - codegen_scope*
    - mrb_sym
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 879
    functionDepth: 9
    functionLinenumber: 879
    functionLinenumberEnd: 933
    functionName: gen_binop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_decode_insn
    - addr_pc
    - mrb_num_shift
    - get_int_operand
    - gen_int
    - mrb_prev_pc
    - genop_1
    - no_peephole
    - mrb_last_insn
    - MRB_OPSYM_2
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool gen_binop(codegen_scope *s, mrb_sym op, uint16_t dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:947,1
    - Dst: PEEK_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:950,1
    - Dst: emit_S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - s
    - pos0
    argTypes:
    - codegen_scope*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 935
    functionDepth: 7
    functionLinenumber: 935
    functionLinenumberEnd: 954
    functionName: dispatch
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    - PEEK_S
    - emit_S
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dispatch(codegen_scope *s, uint32_t pos0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - s
    - pos
    argTypes:
    - codegen_scope*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 964
    functionName: dispatch_linked
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - dispatch
    linkageType: ''
    returnType: void
    signature: void dispatch_linked(codegen_scope *s, uint32_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - codegen_scope*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 975
    functionName: push_n_
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    linkageType: ''
    returnType: void
    signature: void push_n_(codegen_scope *s, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - codegen_scope*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 984
    functionName: pop_n_
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    linkageType: ''
    returnType: void
    signature: void pop_n_(codegen_scope *s, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 987
    functionName: push
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: push()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: push_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: push_n(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 989
    functionName: pop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 990
    functionName: pop_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pop_n(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: cursp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cursp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 992
    functionDepth: 5
    functionLinenumber: 992
    functionLinenumberEnd: 1001
    functionName: lit_pool_extend
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_realloc
    linkageType: ''
    returnType: mrb_pool_value
    signature: 'mrb_pool_value *

      lit_pool_extend(codegen_scope *s)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1010,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1012,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1019,1
    - Dst: lit_pool_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1023,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1028,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1032,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - s
    - p
    - base
    - neg
    argTypes:
    - codegen_scope*
    - char*
    - int
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1003
    functionDepth: 6
    functionLinenumber: 1003
    functionLinenumberEnd: 1037
    functionName: new_litbn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - lit_pool_extend
    - codegen_realloc
    - memcmp
    - memcpy
    - codegen_error
    - strlen
    linkageType: ''
    returnType: int
    signature: int new_litbn(codegen_scope *s, const char *p, int base, mrb_bool neg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1050,1
    - Dst: lit_pool_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1054,1
    - Dst: mrb_ro_data_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1056,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1063,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - s
    - str
    - len
    argTypes:
    - codegen_scope*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1039
    functionDepth: 6
    functionLinenumber: 1039
    functionLinenumberEnd: 1070
    functionName: new_lit_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - lit_pool_extend
    - codegen_realloc
    - memcmp
    - mrb_ro_data_p
    - memcpy
    linkageType: ''
    returnType: int
    signature: int new_lit_str(codegen_scope *s, const char *str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_lit_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1075,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - codegen_scope*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1072
    functionDepth: 7
    functionLinenumber: 1072
    functionLinenumberEnd: 1076
    functionName: new_lit_cstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - new_lit_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int new_lit_cstr(codegen_scope *s, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lit_pool_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1097,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - s
    - num
    argTypes:
    - codegen_scope*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1078
    functionDepth: 6
    functionLinenumber: 1078
    functionLinenumberEnd: 1108
    functionName: new_lit_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - lit_pool_extend
    linkageType: ''
    returnType: int
    signature: int new_lit_int(codegen_scope *s, mrb_int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signbit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1122,1
    - Dst: signbit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1122,1
    - Dst: lit_pool_extend
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - s
    - num
    argTypes:
    - codegen_scope*
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1111
    functionDepth: 6
    functionLinenumber: 1111
    functionLinenumberEnd: 1131
    functionName: new_lit_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - lit_pool_extend
    - signbit
    linkageType: ''
    returnType: int
    signature: int new_lit_float(codegen_scope *s, mrb_float num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1139,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1148,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - sym
    argTypes:
    - codegen_scope*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1154
    functionName: new_sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - codegen_error
    - codegen_realloc
    linkageType: ''
    returnType: int
    signature: int new_sym(codegen_scope *s, mrb_sym sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1159,1
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1160,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1161,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1164,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - s
    - op
    - dst
    - sym
    - val
    argTypes:
    - codegen_scope*
    - uint8_t
    - uint16_t
    - mrb_sym
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1156
    functionDepth: 9
    functionLinenumber: 1156
    functionLinenumberEnd: 1168
    functionName: gen_setxv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - new_sym
    - rewind_pc
    - genop_2
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: void
    signature: void gen_setxv(codegen_scope *s, uint8_t op, uint16_t dst, mrb_sym
      sym, int val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1174,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1175,1
    - Dst: genop_2S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1176,1
    - Dst: genop_2SS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1177,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1180,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1181,1
    - Dst: genop_2S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1182,1
    - Dst: genop_2SS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1183,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1186,1
    - Dst: new_lit_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - s
    - dst
    - i
    argTypes:
    - codegen_scope*
    - uint16_t
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1170
    functionDepth: 10
    functionLinenumber: 1170
    functionLinenumberEnd: 1188
    functionName: gen_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 4
    functionsReached:
    - new_lit_int
    - genop_2SS
    - genop_1
    - genop_2
    - genop_2S
    linkageType: ''
    returnType: void
    signature: void gen_int(codegen_scope *s, uint16_t dst, mrb_int i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1193,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1194,1
    - Dst: get_int_operand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1197,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1198,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1201,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1205,1
    - Dst: addr_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1211,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - s
    - sym
    - dst
    argTypes:
    - codegen_scope*
    - mrb_sym
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1190
    functionDepth: 11
    functionLinenumber: 1190
    functionLinenumberEnd: 1214
    functionName: gen_uniop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - addr_pc
    - get_int_operand
    - gen_int
    - no_peephole
    - mrb_last_insn
    - MRB_OPSYM_2
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool gen_uniop(codegen_scope *s, mrb_sym sym, uint16_t dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tree
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1226
    functionName: node_len
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int node_len(node *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1229
    functionName: nint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1230
    functionName: nchar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nchar(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1231
    functionName: nsym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nsym(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1233
    functionName: lv_name
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lv_name(lv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lv_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - id
    argTypes:
    - codegen_scope*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1246
    functionName: lv_idx
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - lv_name
    linkageType: ''
    returnType: int
    signature: int lv_idx(codegen_scope *s, mrb_sym id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1256,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1266,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1280,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1285,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1286,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1288,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1289,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1291,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1292,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - s
    - id
    - idx
    argTypes:
    - codegen_scope*
    - mrb_sym
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1248
    functionDepth: 4
    functionLinenumber: 1248
    functionLinenumberEnd: 1298
    functionName: search_upvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 2
    functionsReached:
    - MRB_PROC_SCOPE_P
    - lv_idx
    - codegen_error
    - MRB_PROC_CFUNC_P
    - MRB_OPSYM_2
    linkageType: ''
    returnType: int
    signature: int search_upvar(codegen_scope *s, mrb_sym id, int *idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1309,1
    - Dst: scope_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1311,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1313,1
    - Dst: genop_W
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1317,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1319,1
    - Dst: gen_massignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1322,1
    - Dst: loop_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1325,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1326,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1329,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1330,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1331,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1331,1
    - Dst: loop_pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1332,1
    - Dst: scope_finish
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1333,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1335,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1335,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1336,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1336,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1337,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1338,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1338,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1339,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - s
    - tree
    argTypes:
    - codegen_scope*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1300
    functionDepth: 10
    functionLinenumber: 1300
    functionLinenumberEnd: 1340
    functionName: for_body
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - genop_W
    - pop
    - new_label
    - cursp
    - gen_return
    - gen_massignment
    - scope_new
    - loop_push
    - scope_finish
    - push
    - new_sym
    - MRB_SYM_2
    - gen_assignment
    - genop_3
    - codegen
    - genop_2
    - loop_pop
    linkageType: ''
    returnType: void
    signature: void for_body(codegen_scope *s, node *tree)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: scope_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1346,1
    - Dst: loop_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1351,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1352,1
    - Dst: genop_W
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1356,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1368,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1373,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1377,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1380,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1387,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1390,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1391,1
    - Dst: MRB_ARGS_REST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1392,1
    - Dst: MRB_ARGS_POST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1393,1
    - Dst: MRB_ARGS_KEY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1394,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1395,1
    - Dst: genop_W
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1396,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1403,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1405,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1406,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1409,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1415,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1417,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1418,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1419,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1420,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1422,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1422,1
    - Dst: gen_getupvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1425,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1425,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1431,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1442,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1442,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1443,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1443,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1448,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1450,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1450,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1454,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1454,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1454,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1455,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1455,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1456,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1457,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1458,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1460,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1460,1
    - Dst: gen_getupvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1463,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1463,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1465,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1466,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1468,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1468,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1468,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1470,1
    - Dst: genop_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1477,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1487,1
    - Dst: gen_massignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1488,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1499,1
    - Dst: gen_massignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1500,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1508,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1509,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1511,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1511,1
    - Dst: loop_pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1514,1
    - Dst: scope_finish
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1516,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 117
    argCount: 3
    argNames:
    - s
    - tree
    - blk
    argTypes:
    - codegen_scope*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1342
    functionDepth: 11
    functionLinenumber: 1342
    functionLinenumberEnd: 1518
    functionName: lambda_body
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - genop_W
    - dispatch
    - gen_return
    - scope_new
    - MRB_ARGS_REST
    - scope_finish
    - genjmp_0
    - codegen
    - MRB_ARGS_POST
    - MRB_ARGS_KEY
    - genjmp2_0
    - mrb_assert
    - gen_getupvar
    - genop_2
    - gen_move
    - new_label
    - new_sym
    - nint
    - gen_massignment
    - codegen_error
    - MRB_ARGS_REQ
    - loop_pop
    - pop
    - cursp
    - genop_0
    - MRB_ARGS_OPT
    - MRB_ARGS_BLOCK
    - loop_push
    - lv_idx
    - node_len
    - nsym
    linkageType: ''
    returnType: int
    signature: int lambda_body(codegen_scope *s, node *tree, int blk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: scope_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1523,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1525,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1526,1
    - Dst: genop_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1528,1
    - Dst: scope_finish
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - tree
    - val
    argTypes:
    - codegen_scope*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1520
    functionDepth: 10
    functionLinenumber: 1520
    functionLinenumberEnd: 1536
    functionName: scope_body
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - genop_0
    - gen_return
    - scope_new
    - scope_finish
    - codegen
    linkageType: ''
    returnType: int
    signature: int scope_body(codegen_scope *s, node *tree, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1546
    functionName: nosplat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - nint
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool nosplat(node *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1555,1
    - Dst: codegen_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1556,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1562,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - s
    - a
    argTypes:
    - codegen_scope*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1548
    functionDepth: 5
    functionLinenumber: 1548
    functionLinenumberEnd: 1567
    functionName: attrsym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - memcpy
    - codegen_palloc
    - mrb_intern
    - mrb_sym_name_len
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym attrsym(codegen_scope *s, mrb_sym a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1581,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1585,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1593,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1595,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1596,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1599,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1599,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1602,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1602,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1604,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1609,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1610,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1610,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1611,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1615,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1617,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1617,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1618,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1618,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1619,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1627,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1629,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1630,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1630,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1635,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1636,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1636,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - s
    - t
    - val
    - limit
    argTypes:
    - codegen_scope*
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1573
    functionDepth: 9
    functionLinenumber: 1573
    functionLinenumberEnd: 1640
    functionName: gen_values
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - pop
    - cursp
    - nint
    - push
    - codegen
    - genop_1
    - genop_2
    - pop_n
    linkageType: ''
    returnType: int
    signature: int gen_values(codegen_scope *s, node *t, int val, int limit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1646,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1652,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1654,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1654,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1655,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1659,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1661,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1661,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1664,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1665,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1665,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1667,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1669,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1671,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1671,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1672,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1672,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1673,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1679,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1680,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1684,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1685,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1687,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1687,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1690,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1691,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1691,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1693,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1700,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1701,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1701,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1702,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1707,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1708,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1708,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1709,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 4
    argNames:
    - s
    - tree
    - val
    - limit
    argTypes:
    - codegen_scope*
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1642
    functionDepth: 9
    functionLinenumber: 1642
    functionLinenumberEnd: 1714
    functionName: gen_hash
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - pop
    - cursp
    - nint
    - push
    - genop_2
    - codegen
    - genop_1
    - pop_n
    linkageType: ''
    returnType: int
    signature: int gen_hash(codegen_scope *s, node *tree, int val, int limit)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1719,1
    - Dst: no_optimize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1720,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1720,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1724,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1727,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1730,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1731,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1731,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1732,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1732,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1737,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1741,1
    - Dst: gen_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1746,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1751,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1752,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1756,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1756,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1758,1
    - Dst: gen_addsub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1759,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1759,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1761,1
    - Dst: gen_addsub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1762,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1762,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1764,1
    - Dst: gen_muldiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1765,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1765,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1767,1
    - Dst: gen_muldiv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1768,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1768,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1770,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1771,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1771,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1773,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1774,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1774,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1776,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1777,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1777,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1779,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1780,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1780,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1782,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1783,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1783,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1785,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1786,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1786,1
    - Dst: gen_uniop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1788,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1788,1
    - Dst: gen_binop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1791,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1791,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1795,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1795,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1795,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1798,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1798,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1798,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1801,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1804,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 82
    argCount: 4
    argNames:
    - s
    - tree
    - val
    - safe
    argTypes:
    - codegen_scope*
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1716
    functionDepth: 12
    functionLinenumber: 1716
    functionLinenumberEnd: 1806
    functionName: gen_call
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_binop
    - dispatch
    - codegen
    - genjmp2_0
    - genop_3
    - push
    - no_optimize
    - gen_move
    - gen_muldiv
    - new_sym
    - gen_uniop
    - gen_addsub
    - gen_hash
    - gen_values
    - pop
    - cursp
    - genop_1
    - nsym
    - MRB_OPSYM_2
    linkageType: ''
    returnType: void
    signature: void gen_call(codegen_scope *s, node *tree, int val, int safe)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1812,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1824,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1825,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1826,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1837,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1841,1
    - Dst: gen_setxv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1848,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1848,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1852,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1852,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1855,1
    - Dst: gen_setupvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1860,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1860,1
    - Dst: gen_setxv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1864,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1864,1
    - Dst: gen_setxv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1867,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1867,1
    - Dst: gen_setxv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1870,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1870,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1874,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1874,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1876,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1877,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1878,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1880,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1880,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1881,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1881,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1883,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1884,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1884,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1885,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1892,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1894,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1895,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1896,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1898,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1901,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1904,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1907,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1908,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1908,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1909,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1909,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1914,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1917,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1922,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1923,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1923,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1924,1
    - Dst: gen_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1927,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1932,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1933,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1933,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1935,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1939,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1940,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1943,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1943,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1946,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1946,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1951,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1952,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1952,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1956,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1957,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1957,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1960,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1961,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1961,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1964,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1964,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1964,1
    - Dst: attrsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1964,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1967,1
    - Dst: gen_massignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1974,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1982,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1985,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 154
    argCount: 5
    argNames:
    - s
    - tree
    - rhs
    - sp
    - val
    argTypes:
    - codegen_scope*
    - node*
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1808
    functionDepth: 11
    functionLinenumber: 1808
    functionLinenumberEnd: 1986
    functionName: gen_assignment
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached:
    - dispatch
    - codegen
    - genjmp2_0
    - pop_n
    - genop_3
    - push
    - genop_2
    - gen_move
    - attrsym
    - gen_setxv
    - new_sym
    - nint
    - gen_massignment
    - codegen_error
    - gen_hash
    - gen_values
    - pop
    - cursp
    - gen_setupvar
    - lv_idx
    - genop_1
    - nsym
    - MRB_OPSYM_2
    linkageType: ''
    returnType: void
    signature: void gen_assignment(codegen_scope *s, node *tree, node *rhs, int sp,
      int val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:1998,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2000,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2001,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2002,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2003,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2017,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2017,1
    - Dst: push_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2018,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2019,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2020,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2020,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2023,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2023,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2028,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2028,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2034,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2034,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - s
    - tree
    - rhs
    - val
    argTypes:
    - codegen_scope*
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1988
    functionDepth: 12
    functionLinenumber: 1988
    functionLinenumberEnd: 2037
    functionName: gen_massignment
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - pop
    - cursp
    - genop_3
    - push
    - push_n
    - gen_assignment
    - gen_move
    - pop_n
    linkageType: ''
    returnType: void
    signature: void gen_massignment(codegen_scope *s, node *tree, int rhs, int val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2042,1
    - Dst: no_peephole
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2043,1
    - Dst: mrb_last_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2044,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2046,1
    - Dst: rewind_pc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2047,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2048,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2049,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2053,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2053,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2054,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2039
    functionDepth: 9
    functionLinenumber: 2039
    functionLinenumberEnd: 2055
    functionName: gen_intern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - pop
    - cursp
    - rewind_pc
    - push
    - genop_2
    - genop_1
    - no_peephole
    - mrb_last_insn
    linkageType: ''
    returnType: void
    signature: void gen_intern(codegen_scope *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2064,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2066,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2070,1
    - Dst: gen_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2079,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2084,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2084,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2085,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2085,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2086,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2090,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2092,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2093,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2093,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2096,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2096,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2099,1
    - Dst: gen_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2107,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2109,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2111,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2112,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2112,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2115,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2115,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2117,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2121,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2123,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 4
    argNames:
    - s
    - tree
    - sym
    - val
    argTypes:
    - codegen_scope*
    - node*
    - mrb_bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2057
    functionDepth: 10
    functionLinenumber: 2057
    functionLinenumberEnd: 2128
    functionName: gen_literal_array
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - pop
    - cursp
    - nint
    - push
    - codegen
    - gen_intern
    - genop_1
    - genop_2
    - pop_n
    linkageType: ''
    returnType: void
    signature: void gen_literal_array(codegen_scope *s, node *tree, mrb_bool sym,
      int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2133,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - codegen_scope*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2130
    functionDepth: 9
    functionLinenumber: 2130
    functionLinenumberEnd: 2136
    functionName: raise_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - new_lit_cstr
    - genop_1
    linkageType: ''
    returnType: void
    signature: void raise_error(codegen_scope *s, const char *msg)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2141,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2144,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2160,1
    - Dst: mrb_int_mul_overflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 5
    argNames:
    - s
    - p
    - base
    - neg
    - overflow
    argTypes:
    - codegen_scope*
    - char*
    - int
    - mrb_bool
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2182
    functionName: readint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - codegen_error
    - strlen
    - mrb_int_mul_overflow
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int readint(codegen_scope *s, const char *p, int base, mrb_bool
      neg, mrb_bool *overflow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2187,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2188,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2189,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2190,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2190,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2193,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - tree
    argTypes:
    - codegen_scope*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2184
    functionDepth: 9
    functionLinenumber: 2184
    functionLinenumberEnd: 2196
    functionName: gen_retval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - pop
    - cursp
    - nint
    - codegen
    - genop_1
    linkageType: ''
    returnType: void
    signature: void gen_retval(codegen_scope *s, node *tree)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tree
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2198
    functionDepth: 0
    functionLinenumber: 2198
    functionLinenumberEnd: 2210
    functionName: true_always
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - nint
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool true_always(node *tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tree
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2222
    functionName: false_always
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - nint
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool false_always(node *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2233,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2233,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2236,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2236,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - ainfo
    - lv
    argTypes:
    - codegen_scope*
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2224
    functionDepth: 11
    functionLinenumber: 2224
    functionLinenumberEnd: 2239
    functionName: gen_blkmove
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - gen_move
    - cursp
    - push
    - genop_3
    linkageType: ''
    returnType: void
    signature: void gen_blkmove(codegen_scope *s, uint16_t ainfo, int lv)
  - BBCount: 266
    BranchProfiles: []
    Callsites:
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2249,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2249,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2250,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2257,1
    - Dst: mrb_parser_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2260,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2261,1
    - Dst: mrb_debug_info_append_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2263,1
    - Dst: mrb_parser_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2267,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2270,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2276,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2276,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2277,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2280,1
    - Dst: loop_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2293,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2294,1
    - Dst: catch_handler_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2295,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2297,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2298,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2301,1
    - Dst: catch_handler_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2302,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2308,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2310,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2311,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2316,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2319,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2320,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2321,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2321,1
    - Dst: push_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2322,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2322,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2323,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2324,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2324,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2324,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2324,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2328,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2331,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2331,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2331,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2331,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2332,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2334,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2335,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2335,1
    - Dst: genjmp2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2337,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2337,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2343,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2344,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2346,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2348,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2351,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2352,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2354,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2357,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2360,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2361,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2364,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2366,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2368,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2371,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2373,1
    - Dst: loop_pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2374,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2380,1
    - Dst: catch_handler_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2385,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2387,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2389,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2390,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2391,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2392,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2393,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2394,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2395,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2396,1
    - Dst: catch_handler_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2397,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2400,1
    - Dst: lambda_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2406,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2408,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2408,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2409,1
    - Dst: lambda_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2415,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2417,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2417,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2418,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2429,1
    - Dst: true_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2432,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2433,1
    - Dst: false_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2436,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2437,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2440,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2442,1
    - Dst: MRB_SYM_Q_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2443,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2446,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2450,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2452,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2455,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2455,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2456,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2457,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2460,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2460,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2462,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2463,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2465,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2466,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2467,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2468,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2471,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2477,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2477,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2480,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2480,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2482,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2483,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2486,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2486,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2487,1
    - Dst: true_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2497,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2498,1
    - Dst: false_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2501,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2502,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2505,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2506,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2507,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2507,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2508,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2509,1
    - Dst: true_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2517,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2518,1
    - Dst: false_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2521,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2522,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2525,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2526,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2527,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2527,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2528,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2529,1
    - Dst: true_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2536,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2539,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2539,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2540,1
    - Dst: false_always
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2545,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2548,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2548,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2549,1
    - Dst: loop_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2556,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2559,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2560,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2561,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2563,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2563,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2566,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2566,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2568,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2569,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2570,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2571,1
    - Dst: loop_pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2572,1
    - Dst: for_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2577,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2578,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2589,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2590,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2597,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2599,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2599,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2600,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2600,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2600,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2600,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2600,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2601,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2602,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2602,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2602,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2602,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2605,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2605,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2605,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2605,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2609,1
    - Dst: genjmp2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2611,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2611,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2616,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2617,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2619,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2620,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2621,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2623,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2627,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2628,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2628,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2629,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2630,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2631,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2632,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2632,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2634,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2638,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2641,1
    - Dst: scope_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2648,1
    - Dst: gen_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2653,1
    - Dst: gen_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2656,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2660,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2661,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2663,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2663,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2664,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2664,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2665,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2670,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2671,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2673,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2673,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2674,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2674,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2675,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2681,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2681,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2683,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2684,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2685,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2685,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2686,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2692,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2692,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2694,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2694,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2695,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2695,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2696,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2704,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2707,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2708,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2708,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2710,1
    - Dst: gen_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2718,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2720,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2721,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2721,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2722,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2728,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2732,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2739,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2741,1
    - Dst: nosplat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2741,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2745,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2755,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2759,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2760,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2783,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2784,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2784,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2787,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2787,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2789,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2789,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2796,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2799,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2799,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2800,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2800,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2807,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2809,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2810,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2815,1
    - Dst: gen_massignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2816,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2818,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2826,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2828,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2832,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2833,1
    - Dst: loop_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2838,1
    - Dst: new_label
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2839,1
    - Dst: catch_handler_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2840,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2842,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2843,1
    - Dst: genjmp_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2845,1
    - Dst: catch_handler_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2847,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2848,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2849,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2850,1
    - Dst: loop_pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2851,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2853,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2859,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2860,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2862,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2863,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2863,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2864,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2866,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2871,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2877,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2877,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2879,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2879,1
    - Dst: push_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2881,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2881,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2882,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2882,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2883,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2886,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2893,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2896,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2896,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2898,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2898,1
    - Dst: genjmp2_0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2901,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2901,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2903,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2904,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2906,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2906,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2908,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2910,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2911,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2911,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2914,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2917,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2918,1
    - Dst: attrsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2918,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2918,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2919,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2919,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2922,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2922,1
    - Dst: dispatch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2924,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2927,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2928,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2928,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2929,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2929,1
    - Dst: gen_addsub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2932,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2932,1
    - Dst: gen_addsub
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2935,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2935,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2938,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2938,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2941,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2941,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2944,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2944,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2947,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2947,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2950,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2950,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2953,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2953,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2956,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2957,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2957,1
    - Dst: gen_assignment
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2960,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2960,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2964,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2964,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2967,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2968,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2968,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2971,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2974,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2975,1
    - Dst: attrsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2975,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2975,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2976,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2976,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2987,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2996,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:2999,1
    - Dst: gen_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3004,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3011,1
    - Dst: gen_blkmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3013,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3015,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3015,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3016,1
    - Dst: gen_blkmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3020,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3022,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3022,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3023,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3027,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3028,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3028,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3029,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3039,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3041,1
    - Dst: genop_2S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3051,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3051,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3052,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3052,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3052,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3053,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3053,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3053,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3057,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3061,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3062,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3068,1
    - Dst: gen_blkmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3071,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3076,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3076,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3077,1
    - Dst: gen_retval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3083,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3086,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3086,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3089,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3089,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3092,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3092,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3094,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3111,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3112,1
    - Dst: gen_values
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3114,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3117,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3120,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3120,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3121,1
    - Dst: genop_2S
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3122,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3122,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3124,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3124,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3124,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3124,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3125,1
    - Dst: loop_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3130,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3131,1
    - Dst: raise_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3136,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3139,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3140,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3144,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3145,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3148,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3148,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3150,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3150,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3152,1
    - Dst: raise_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3157,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3160,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3162,1
    - Dst: raise_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3174,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3177,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3179,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3185,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3185,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3188,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3188,1
    - Dst: gen_getupvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3191,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3191,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3191,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3193,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3199,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3201,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3201,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3203,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3209,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3209,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3211,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3211,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3212,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3218,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3218,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3220,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3220,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3221,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3227,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3227,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3229,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3229,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3230,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3236,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3236,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3238,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3238,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3239,1
    - Dst: nchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3245,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3246,1
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3246,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3248,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3248,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3249,1
    - Dst: mrb_format
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3259,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3259,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3260,1
    - Dst: mrb_intern_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3260,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3261,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3261,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3262,1
    - Dst: lv_idx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3272,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3272,1
    - Dst: gen_getupvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3275,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3275,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3275,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3278,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3278,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3280,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3283,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3290,1
    - Dst: readint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3294,1
    - Dst: new_litbn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3296,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3297,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3297,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3300,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3300,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3302,1
    - Dst: mrb_float_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3310,1
    - Dst: new_lit_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3311,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3313,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3313,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3314,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3321,1
    - Dst: mrb_float_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3327,1
    - Dst: new_lit_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3328,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3330,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3330,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3331,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3339,1
    - Dst: readint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3343,1
    - Dst: new_litbn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3345,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3346,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3346,1
    - Dst: gen_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3349,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3349,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3351,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3357,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3358,1
    - Dst: push_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3359,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3359,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3360,1
    - Dst: gen_uniop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3361,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3361,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3362,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3362,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3362,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3364,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3367,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3377,1
    - Dst: new_lit_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3378,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3380,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3380,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3381,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3393,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3393,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3394,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3397,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3400,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3401,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3401,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3402,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3402,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3403,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3411,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3412,1
    - Dst: gen_literal_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3420,1
    - Dst: gen_literal_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3424,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3430,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3430,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3432,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3432,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3433,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3434,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3437,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3439,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3441,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3442,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3442,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3443,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3443,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3444,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3447,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3448,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3449,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3449,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3450,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3450,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3451,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3458,1
    - Dst: new_lit_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3459,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3462,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3462,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3463,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3464,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3464,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3465,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3465,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3466,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3467,1
    - Dst: MRB_OPSYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3467,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3468,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3468,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3469,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3478,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3478,1
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3479,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3482,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3482,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3483,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3483,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3484,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3485,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3485,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3486,1
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3489,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3490,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3490,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3493,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3493,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3495,1
    - Dst: new_lit_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3498,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3499,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3499,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3500,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3504,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3505,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3506,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3506,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3507,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3507,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3508,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3515,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3515,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3520,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3520,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3521,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3521,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3522,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3523,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3526,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3527,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3527,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3528,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3528,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3529,1
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3535,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3536,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3537,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3537,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3538,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3539,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3539,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3540,1
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3544,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3545,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3545,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3546,1
    - Dst: new_lit_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3551,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3552,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3552,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3553,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3556,1
    - Dst: pop_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3557,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3558,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3558,1
    - Dst: genop_3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3559,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3559,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3560,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3566,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3567,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3576,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3576,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3578,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3578,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3579,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3584,1
    - Dst: gen_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3586,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3592,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3592,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3593,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3599,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3599,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3600,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3606,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3606,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3607,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3613,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3613,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3614,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3620,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3620,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3621,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3621,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3623,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3625,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3625,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3626,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3636,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3636,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3637,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3641,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3641,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3642,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3653,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3653,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3654,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3657,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3657,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3658,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3661,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3664,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3667,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3667,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3668,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3670,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3670,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3671,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3671,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3672,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3672,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3674,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3675,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3675,1
    - Dst: scope_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3678,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3679,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3679,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3682,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3692,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3692,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3693,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3696,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3696,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3697,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3700,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3702,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3703,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3703,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3704,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3704,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3705,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3707,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3707,1
    - Dst: scope_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3710,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3711,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3711,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3714,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3723,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3724,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3725,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3725,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3726,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3728,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3728,1
    - Dst: scope_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3731,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3732,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3732,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3735,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3742,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3742,1
    - Dst: lambda_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3743,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3745,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3745,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3746,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3747,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3747,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3748,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3748,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3749,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3750,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3750,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3751,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3758,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3758,1
    - Dst: lambda_body
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3759,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3761,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3762,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3763,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3763,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3764,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3765,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3765,1
    - Dst: pop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3766,1
    - Dst: genop_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3767,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3767,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3768,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3773,1
    CyclomaticComplexity: 345
    EdgeCount: 345
    ICount: 1248
    argCount: 3
    argNames:
    - s
    - tree
    - val
    argTypes:
    - codegen_scope*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 2241
    functionDepth: 13
    functionLinenumber: 2241
    functionLinenumberEnd: 3781
    functionName: codegen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 10
    functionsReached:
    - genjmp
    - dispatch
    - mrb_parser_get_filename
    - gen_return
    - gen_call
    - new_lit_float
    - lambda_body
    - mrb_intern_lit
    - genjmp_0
    - gen_assignment
    - codegen
    - mrb_intern
    - raise_error
    - genjmp2_0
    - pop_n
    - gen_retval
    - catch_handler_set
    - mrb_debug_info_append_file
    - MRB_SYM_Q_2
    - scope_body
    - loop_break
    - mrb_assert
    - mrb_intern_str
    - genop_3
    - push
    - gen_int
    - false_always
    - gen_getupvar
    - genop_2
    - mrb_format
    - mrb_float_read
    - gen_move
    - attrsym
    - nosplat
    - gen_blkmove
    - genjmp2
    - new_lit_cstr
    - for_body
    - new_label
    - new_sym
    - nint
    - gen_massignment
    - nchar
    - dispatch_linked
    - MRB_SYM_2
    - codegen_error
    - new_litbn
    - gen_uniop
    - gen_literal_array
    - mrb_sym_name_len
    - push_n
    - true_always
    - loop_pop
    - gen_hash
    - gen_values
    - pop
    - gen_addsub
    - genop_2S
    - cursp
    - loop_push
    - lv_idx
    - catch_handler_new
    - genop_1
    - new_lit_str
    - nsym
    - gen_intern
    - readint
    - MRB_OPSYM_2
    linkageType: ''
    returnType: void
    signature: void codegen(codegen_scope *s, node *tree, int val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_add_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3790,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3796,1
    - Dst: mrb_add_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3798,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3783
    functionDepth: 5
    functionLinenumber: 3783
    functionLinenumberEnd: 3806
    functionName: scope_add_irep
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_error
    - mrb_add_irep
    - codegen_realloc
    linkageType: ''
    returnType: void
    signature: void scope_add_irep(codegen_scope *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3812,1
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3813,1
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3817,1
    - Dst: scope_add_irep
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3828,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3831,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3834,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3837,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3840,1
    - Dst: node_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3843,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3850,1
    - Dst: lv_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3852,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3854,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3856,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3860,1
    - Dst: mrb_debug_info_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3867,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - mrb
    - prev
    - nlv
    argTypes:
    - mrb_state*
    - codegen_scope*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3878
      start: 3808
    functionDepth: 6
    functionLinenumber: 3808
    functionLinenumberEnd: 3878
    functionName: scope_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - scope_add_irep
    - mrb_assert
    - mrb_pool_open
    - mrb_gc_arena_save
    - codegen_error
    - node_len
    - mrb_debug_info_alloc
    - lv_name
    - mrb_pool_alloc
    - mrb_malloc
    linkageType: ''
    returnType: codegen_scope
    signature: 'codegen_scope *

      scope_new(mrb_state *mrb, codegen_scope *prev, node *nlv)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: codegen_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3887,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3892,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3895,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3901,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3903,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3904,1
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3905,1
    - Dst: mrb_parser_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3907,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3908,1
    - Dst: mrb_debug_info_append_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3910,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3913,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3918,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3919,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3880
    functionDepth: 5
    functionLinenumber: 3880
    functionLinenumberEnd: 3920
    functionName: scope_finish
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - mrb_parser_get_filename
    - codegen_realloc
    - mrb_pool_close
    - mrb_gc_arena_restore
    - mrb_free
    - memcpy
    - codegen_error
    - mrb_sym_name_len
    - mrb_debug_info_append_file
    linkageType: ''
    returnType: void
    signature: void scope_finish(codegen_scope *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3925,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - codegen_scope*
    - enum looptype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3922
    functionDepth: 5
    functionLinenumber: 3922
    functionLinenumberEnd: 3934
    functionName: loop_push
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - codegen_palloc
    - cursp
    linkageType: ''
    returnType: struct loopinfo
    signature: 'struct loopinfo *

      loop_push(codegen_scope *s, enum looptype t)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3940,1
    - Dst: raise_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3941,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3950,1
    - Dst: gen_retval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3953,1
    - Dst: raise_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3968,1
    - Dst: gen_move
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3977,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3977,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3980,1
    - Dst: genjmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3983,1
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3988,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3988,1
    - Dst: gen_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3990,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3990,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - s
    - tree
    argTypes:
    - codegen_scope*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3936
    functionDepth: 14
    functionLinenumber: 3936
    functionLinenumberEnd: 3993
    functionName: loop_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached:
    - genjmp
    - cursp
    - gen_return
    - codegen
    - genop_1
    - raise_error
    - gen_move
    - gen_retval
    linkageType: ''
    returnType: void
    signature: void loop_break(codegen_scope *s, node *tree)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: genop_1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3999,1
    - Dst: cursp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:3999,1
    - Dst: dispatch_linked
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4001,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - codegen_scope*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3995
    functionDepth: 9
    functionLinenumber: 3995
    functionLinenumberEnd: 4004
    functionName: loop_pop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - genop_1
    - cursp
    - push
    - dispatch_linked
    linkageType: ''
    returnType: void
    signature: void loop_pop(codegen_scope *s, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codegen_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - codegen_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 4006
    functionDepth: 5
    functionLinenumber: 4006
    functionLinenumberEnd: 4012
    functionName: catch_handler_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached:
    - codegen_realloc
    linkageType: ''
    returnType: int
    signature: int catch_handler_new(codegen_scope *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4019,1
    - Dst: uint8_to_bin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4022,1
    - Dst: mrb_irep_catch_handler_pack
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4023,1
    - Dst: mrb_irep_catch_handler_pack
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4024,1
    - Dst: mrb_irep_catch_handler_pack
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - s
    - ent
    - type
    - begin
    - end
    - target
    argTypes:
    - codegen_scope*
    - int
    - enum mrb_catch_type
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4026
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4026
    functionName: catch_handler_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 1
    functionsReached:
    - mrb_irep_catch_handler_pack
    - mrb_assert
    - uint8_to_bin
    linkageType: ''
    returnType: void
    signature: void catch_handler_set(codegen_scope *s, int ent, enum mrb_catch_type
      type, uint32_t begin, uint32_t end, uint32_t target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scope_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4031,1
    - Dst: MRB_TRY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4043,1
    - Dst: codegen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4045,1
    - Dst: mrb_proc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4046,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4047,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4048,1
    - Dst: MRB_CATCH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4056,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4057,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4058,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - mrb
    - p
    - val
    argTypes:
    - mrb_state*
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4028
    functionDepth: 14
    functionLinenumber: 4028
    functionLinenumberEnd: 4063
    functionName: generate_code
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - mrb_proc_new
    - mrb_irep_decref
    - mrb_pool_close
    - MRB_END_EXC
    - scope_new
    - MRB_CATCH
    - MRB_TRY
    - codegen
    linkageType: ''
    returnType: struct RProc
    signature: 'struct RProc *

      generate_code(mrb_state *mrb, parser_state *p, int val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - p
    argTypes:
    - mrb_state*
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4069
      start: 4065
    functionDepth: 15
    functionLinenumber: 4065
    functionLinenumberEnd: 4069
    functionName: mrb_generate_code
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 3
    functionsReached:
    - generate_code
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrb_generate_code(mrb_state *mrb, parser_state *p)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4078,1
    - Dst: mrb_irep_remove_lv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c:4083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4071
    functionDepth: 1
    functionLinenumber: 4071
    functionLinenumberEnd: 4085
    functionName: mrb_irep_remove_lv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    functionUses: 2
    functionsReached:
    - mrb_irep_remove_lv
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_irep_remove_lv(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: identchar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identchar(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stack
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: BITSTACK_PUSH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITSTACK_PUSH(stack, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: BITSTACK_POP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITSTACK_POP(stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: BITSTACK_LEXPOP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITSTACK_LEXPOP(stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: BITSTACK_SET_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITSTACK_SET_P(stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: COND_PUSH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_PUSH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: COND_POP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: COND_LEXPOP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_LEXPOP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: COND_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: CMDARG_PUSH
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMDARG_PUSH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: CMDARG_POP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMDARG_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: CMDARG_LEXPOP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMDARG_LEXPOP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: CMDARG_P
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMDARG_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: SET_LINENO
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_LINENO(c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: NODE_LINENO
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE_LINENO(c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: nsym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nsym(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: nint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: intn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: typen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typen(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: intern_cstr_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym intern_cstr_gen(parser_state *p, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: intern_cstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intern_cstr(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - s
    - len
    argTypes:
    - parser_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: intern_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_intern
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym intern_gen(parser_state *p, const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: intern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intern(s,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: intern_op
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intern_op(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - cons
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: cons_free_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cons_free_gen(parser_state *p, node *cons)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: cons_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cons_free(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:168,1
    - Dst: MRB_THROW
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - parser_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: parser_palloc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_pool_alloc
    - MRB_THROW
    linkageType: ''
    returnType: void
    signature: 'void *

      parser_palloc(parser_state *p, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: parser_pfree
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parser_pfree(ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p
    - car
    - cdr
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: cons_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - parser_palloc
    linkageType: ''
    returnType: node
    signature: 'node *

      cons_gen(parser_state *p, node *car, node *cdr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: cons
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cons(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: list1_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list1_gen(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: list1
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:213,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: list2_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list2_gen(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: list2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list2(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:220,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:220,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - a
    - b
    - c
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: list3_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list3_gen(parser_state *p, node *a, node *b, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: list3
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list3(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:227,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:227,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:227,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - a
    - b
    - c
    - d
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: list4_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list4_gen(parser_state *p, node *a, node *b, node *c, node *d)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: list4
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list4(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:234,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:234,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:234,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:234,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - p
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: list5_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list5_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: list5
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list5(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - a
    - b
    - c
    - d
    - e
    - f
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: list6_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      list6_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e, node
      *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: list6
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list6(a,b,c,d,e,f)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: append_gen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: 'node *

      append_gen(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: append
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: append(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: push
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: push(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:264,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - s
    - len
    argTypes:
    - parser_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: parser_strndup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - memcpy
    - parser_palloc
    linkageType: ''
    returnType: char
    signature: 'char *

      parser_strndup(parser_state *p, const char *s, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: strndup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strndup(s,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:276,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: parser_strdup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - parser_strndup
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      parser_strdup(parser_state *p, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: strdup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strdup(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - i
    - s
    argTypes:
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: dump_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dump_int(uint16_t i, char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: local_switch
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      local_switch(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - prev
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: local_resume
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void local_resume(parser_state *p, node *prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: local_nest
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: void
    signature: void local_nest(parser_state *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: local_unnest
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void local_unnest(parser_state *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:341,1
    - Dst: MRB_PROC_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:348,1
    - Dst: MRB_PROC_SCOPE_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 362
    functionName: local_var_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - MRB_PROC_CFUNC_P
    - MRB_PROC_SCOPE_P
    - sym
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool local_var_p(parser_state *p, mrb_sym sym)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:370,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:372,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:374,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:380,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 382
    functionName: local_add_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    - push
    - nsym
    - mrb_sym_name_len
    - sym
    linkageType: ''
    returnType: void
    signature: void local_add_f(parser_state *p, mrb_sym sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:387,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: local_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - local_var_p
    - local_add_f
    linkageType: ''
    returnType: void
    signature: void local_add(parser_state *p, mrb_sym sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - blk
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: local_add_blk
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - local_add_f
    linkageType: ''
    returnType: void
    signature: void local_add_blk(parser_state *p, mrb_sym blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:403,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - kwd
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: local_add_kw
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intern_op
    - local_add_f
    linkageType: ''
    returnType: void
    signature: void local_add_kw(parser_state *p, mrb_sym kwd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: locals_node
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: 'node *

      locals_node(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:415,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: nvars_nest
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: void
    signature: void nvars_nest(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:421,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: nvars_block
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: void
    signature: void nvars_block(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: nvars_unnest
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nvars_unnest(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:434,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:434,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - body
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: new_scope
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - locals_node
    linkageType: ''
    returnType: node
    signature: 'node *

      new_scope(parser_state *p, node *body)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:442,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - body
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: new_begin
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - list2
    linkageType: ''
    returnType: node
    signature: 'node *

      new_begin(parser_state *p, node *body)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: newline_node
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: newline_node(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - body
    - resq
    - els
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: new_rescue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_rescue(parser_state *p, node *body, node *resq, node *els)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:459,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:459,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - body
    - resq
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: new_mod_rescue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list3
    - new_rescue
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_mod_rescue(parser_state *p, node *body, node *resq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:466,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:466,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: new_ensure
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_ensure(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: new_nil
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_nil(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: new_true
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_true(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: new_false
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_false(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:494,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:494,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:494,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - mrb_sym
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: new_alias
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_alias(parser_state *p, mrb_sym a, mrb_sym b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:501,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - a
    - b
    - c
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: new_if
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_if(parser_state *p, node *a, node *b, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:509,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - a
    - b
    - c
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: new_unless
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_unless(parser_state *p, node *a, node *b, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:517,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:518,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: new_while
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_while(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:525,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:526,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: new_until
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_until(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:533,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - v
    - o
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: new_for
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_for(parser_state *p, node *v, node *o, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:541,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: new_case
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - list2
    linkageType: ''
    returnType: node
    signature: 'node *

      new_case(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: new_postexe
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_postexe(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: new_self
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_self(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:570,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:570,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:570,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:571,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - p
    - a
    - b
    - c
    - pass
    argTypes:
    - parser_state*
    - node*
    - mrb_sym
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: new_call
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - nint
    - list4
    - nsym
    - NODE_LINENO
    linkageType: ''
    returnType: node
    signature: 'node *

      new_call(parser_state *p, node *a, mrb_sym b, node *c, int pass)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:580,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:580,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - b
    - c
    argTypes:
    - parser_state*
    - mrb_sym
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: new_fcall
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nsym
    - NODE_LINENO
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_fcall(parser_state *p, mrb_sym b, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:589,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - a
    - b
    - c
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: new_callargs
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_callargs(parser_state *p, node *a, node *b, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 597
    functionName: new_super
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_super(parser_state *p, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: new_zsuper
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_zsuper(parser_state *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:613,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:616,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:616,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:619,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: new_yield
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    - cons
    - push
    linkageType: ''
    returnType: node
    signature: 'node *

      new_yield(parser_state *p, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: new_return
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_return(parser_state *p, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: new_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_break(parser_state *p, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: new_next
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_next(parser_state *p, node *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 650
    functionName: new_redo
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_redo(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: new_retry
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      new_retry(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:663,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: new_dot2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dot2(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:670,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: new_dot3
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dot3(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:677,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:678,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:678,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - b
    - c
    argTypes:
    - parser_state*
    - node*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: new_colon2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_colon2(parser_state *p, node *b, mrb_sym c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:685,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: new_colon3
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_colon3(parser_state *p, mrb_sym c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:692,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:693,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: new_and
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_and(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:700,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:701,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: new_or
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_or(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: new_array
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_array(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:715,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: new_splat
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_splat(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: new_hash
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_hash(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: new_kw_hash
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_kw_hash(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:737,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: new_sym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 6
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_sym(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - str
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 740
    functionDepth: 5
    functionLinenumber: 740
    functionLinenumberEnd: 747
    functionName: new_strsym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_intern
    linkageType: ''
    returnType: mrb_sym
    signature: mrb_sym new_strsym(parser_state *p, node* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:753,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 754
    functionName: new_lvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_lvar(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:760,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: new_gvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_gvar(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:767,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 768
    functionName: new_ivar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_ivar(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:774,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: new_cvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_cvar(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:781,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - num
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 782
    functionName: new_nvar
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: node
    signature: 'node *

      new_nvar(parser_state *p, int num)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:788,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: new_const
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_const(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:795,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: new_undef
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nsym
    - list2
    linkageType: ''
    returnType: node
    signature: 'node *

      new_undef(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:802,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:803,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:803,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - c
    - s
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: new_class
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    - locals_node
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_class(parser_state *p, node *c, node *s, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:810,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:811,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:811,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - o
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: new_sclass
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    - list3
    - locals_node
    linkageType: ''
    returnType: node
    signature: 'node *

      new_sclass(parser_state *p, node *o, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:818,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:818,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - m
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: new_module
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - list3
    - cons
    - locals_node
    linkageType: ''
    returnType: node
    signature: 'node *

      new_module(parser_state *p, node *m, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list5
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:825,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - m
    - a
    - b
    argTypes:
    - parser_state*
    - mrb_sym
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: new_def
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nsym
    - list5
    linkageType: ''
    returnType: node
    signature: 'node *

      new_def(parser_state *p, mrb_sym m, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:833,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:834,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - p
    - d
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 838
    functionName: defn_setup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intn
    - locals_node
    - local_resume
    linkageType: ''
    returnType: void
    signature: void defn_setup(parser_state *p, node *d, node *a, node *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:844,1
    - Dst: list6
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:845,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - p
    - o
    - m
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - mrb_sym
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 846
    functionName: new_sdef
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - nsym
    - list6
    linkageType: ''
    returnType: node
    signature: 'node *

      new_sdef(parser_state *p, node *o, mrb_sym m, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:853,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:854,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - p
    - d
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 858
    functionName: defs_setup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intn
    - locals_node
    - local_resume
    linkageType: ''
    returnType: void
    signature: void defs_setup(parser_state *p, node *d, node *a, node *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:864,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: new_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_arg(parser_state *p, mrb_sym sym)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:871,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:876,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:876,1
    - Dst: local_add_margs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:879,1
    - Dst: local_add_margs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 884
    functionName: local_add_margs
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - local_add_f
    - local_add_margs
    - sym
    - typen
    linkageType: ''
    returnType: void
    signature: void local_add_margs(parser_state *p, node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:890,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - lv
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: local_add_lv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - local_add_f
    - sym
    linkageType: ''
    returnType: void
    signature: void local_add_lv(parser_state *p, node *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_add_margs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:906,1
    - Dst: local_add_margs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:907,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:908,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:909,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:909,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:910,1
    - Dst: local_add_lv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:913,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - p
    - m
    - opt
    - rest
    - m2
    - tail
    argTypes:
    - parser_state*
    - node*
    - node*
    - mrb_sym
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 901
    functionDepth: 5
    functionLinenumber: 901
    functionLinenumberEnd: 918
    functionName: new_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - local_add_margs
    - nsym
    - local_add_lv
    linkageType: ''
    returnType: node
    signature: 'node *

      new_args(parser_state *p, node *m, node *opt, mrb_sym rest, node *m2, node *tail)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_add_kw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:927,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:927,1
    - Dst: local_add_blk
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:930,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:936,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:936,1
    - Dst: local_add_lv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:941,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:943,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:943,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:947,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:947,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - p
    - kws
    - kwrest
    - blk
    argTypes:
    - parser_state*
    - node*
    - node*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 921
    functionDepth: 5
    functionLinenumber: 921
    functionLinenumberEnd: 948
    functionName: new_args_tail
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - local_add_blk
    - local_add_f
    - local_add_lv
    - local_add_kw
    - list4
    - nsym
    - sym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_args_tail(parser_state *p, node *kws, node *kwrest, mrb_sym blk)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:954,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:955,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - kw
    - def_arg
    argTypes:
    - parser_state*
    - mrb_sym
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 956
    functionName: new_kw_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - nsym
    - list3
    linkageType: ''
    returnType: node
    signature: 'node *

      new_kw_arg(parser_state *p, mrb_sym kw, node *def_arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:962,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 963
    functionName: new_kw_rest_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nsym
    linkageType: ''
    returnType: node
    signature: 'node *

      new_kw_rest_args(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:968,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:969,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:970,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:971,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:972,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:973,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - m
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 965
    functionDepth: 6
    functionLinenumber: 965
    functionLinenumberEnd: 974
    functionName: new_args_dots
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intern_op
    - local_add_f
    - new_kw_rest_args
    - new_args_tail
    - new_args
    linkageType: ''
    returnType: node
    signature: 'node *

      new_args_dots(parser_state *p, node *m)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 981
    functionName: new_block_arg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_block_arg(parser_state *p, node *a)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:986,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:992,1
    - Dst: intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1003,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1004,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1004,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1005,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1005,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1007,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 983
    functionDepth: 6
    functionLinenumber: 983
    functionLinenumberEnd: 1011
    functionName: setup_numparams
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intn
    - yyerror
    - intern_cstr
    - nsym
    - cons
    - new_arg
    - new_args
    linkageType: ''
    returnType: node
    signature: 'node *

      setup_numparams(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_numparams
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1017,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1018,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1014
    functionDepth: 7
    functionLinenumber: 1014
    functionLinenumberEnd: 1019
    functionName: new_block
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - locals_node
    - setup_numparams
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_block(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1025,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1026
    functionName: new_lambda
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - locals_node
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_lambda(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1032,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1033,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1034
    functionName: new_asgn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_asgn(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1040,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1041,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: new_masgn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_masgn(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1048,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1049
    functionName: new_masgn_param
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_masgn_param(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1055,1
    - Dst: list4
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1056,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - a
    - op
    - b
    argTypes:
    - parser_state*
    - node*
    - mrb_sym
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1057
    functionName: new_op_asgn
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - nsym
    - list4
    linkageType: ''
    returnType: node
    signature: 'node *

      new_op_asgn(parser_state *p, node *a, mrb_sym op, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1062,1
    - Dst: new_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1062,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1062,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1062,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1063,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1063,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1063,1
    - Dst: strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1063,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - imaginary
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: new_imaginary
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - new_const
    - strdup
    - new_call
    - nint
    - list2
    - MRB_SYM_2
    - new_callargs
    - list3
    linkageType: ''
    returnType: node
    signature: 'node *

      new_imaginary(parser_state *p, node *imaginary)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    - Dst: new_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - rational
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1070
    functionName: new_rational
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - new_const
    - new_call
    - list1
    - MRB_SYM_2
    - new_callargs
    linkageType: ''
    returnType: node
    signature: 'node *

      new_rational(parser_state *p, node *rational)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1076,1
    - Dst: strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1076,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1076,1
    - Dst: new_rational
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1078,1
    - Dst: new_imaginary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - p
    - s
    - base
    - suffix
    argTypes:
    - parser_state*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1073
    functionDepth: 3
    functionLinenumber: 1073
    functionLinenumberEnd: 1084
    functionName: new_int
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 11
    functionsReached:
    - strdup
    - nint
    - new_imaginary
    - list3
    - new_rational
    linkageType: ''
    returnType: node
    signature: 'node *

      new_int(parser_state *p, const char *s, int base, int suffix)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1091,1
    - Dst: strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1091,1
    - Dst: new_rational
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1093,1
    - Dst: new_imaginary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - s
    - suffix
    argTypes:
    - parser_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1099
    functionName: new_float
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 2
    functionsReached:
    - cons
    - new_rational
    - strdup
    - new_imaginary
    linkageType: ''
    returnType: node
    signature: 'node *

      new_float(parser_state *p, const char *s, int suffix)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1106,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1106,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1106,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - s
    - len
    argTypes:
    - parser_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: new_str
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 12
    functionsReached:
    - cons
    - nint
    - strndup
    linkageType: ''
    returnType: node
    signature: 'node *

      new_str(parser_state *p, const char *s, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1114
    functionName: new_dstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dstr(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1120
    functionName: string_node_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - typen
    linkageType: ''
    returnType: int
    signature: int string_node_p(node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1126,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1127,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1133
    functionName: composite_string_node
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_pool_realloc
    - memcpy
    - cons_free
    linkageType: ''
    returnType: node
    signature: 'node *

      composite_string_node(parser_state *p, node *a, node *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1138,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1139,1
    - Dst: composite_string_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1141,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1142,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1148,1
    - Dst: composite_string_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1150,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1151,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1161,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1163,1
    - Dst: composite_string_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1165,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1166,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1170,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1175,1
    - Dst: string_node_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1175,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1178,1
    - Dst: composite_string_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1179,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1180,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1182,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1187,1
    - Dst: new_dstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1193,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1194
    functionName: concat_string
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - composite_string_node
    - list2
    - push
    - new_dstr
    - cons_free
    - string_node_p
    linkageType: ''
    returnType: node
    signature: 'node *

      concat_string(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1200,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1200,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1200,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - s
    - len
    argTypes:
    - parser_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1201
    functionName: new_xstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    - strndup
    linkageType: ''
    returnType: node
    signature: 'node *

      new_xstr(parser_state *p, const char *s, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1208
    functionName: new_dxstr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dxstr(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    functionName: new_dsym
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dsym(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1221,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1221,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - p1
    - p2
    - p3
    argTypes:
    - parser_state*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: new_regx
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_regx(parser_state *p, const char *p1, const char* p2, const char* p3)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1228,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1229
    functionName: new_dregx
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_dregx(parser_state *p, node *a, node *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1235,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: new_back_ref
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: node
    signature: 'node *

      new_back_ref(parser_state *p, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1242,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1243
    functionName: new_nth_ref
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: node
    signature: 'node *

      new_nth_ref(parser_state *p, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1249,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1251
    functionName: new_heredoc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - parser_palloc
    linkageType: ''
    returnType: node
    signature: 'node *

      new_heredoc(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p
    - id
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1256
    functionName: new_bv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_bv(parser_state *p, mrb_sym id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1262
    functionName: new_literal_delim
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_literal_delim(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: new_words
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_words(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1276
    functionName: new_symbols
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_symbols(parser_state *p, node *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1284,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1285,1
    - Dst: intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - recv
    - m
    argTypes:
    - parser_state*
    - node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1286
    functionName: call_uni_op
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - void_expr_error
    - intern_cstr
    - new_call
    linkageType: ''
    returnType: node
    signature: 'node *

      call_uni_op(parser_state *p, node *recv, const char *m)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1292,1
    - Dst: intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1292,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1292,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - recv
    - m
    - arg1
    argTypes:
    - parser_state*
    - node*
    - char*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1293
    functionName: call_bin_op
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intern_cstr
    - new_call
    - new_callargs
    - list1
    linkageType: ''
    returnType: node
    signature: 'node *

      call_bin_op(parser_state *p, node *recv, const char *m, node *arg1)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1304
    functionName: args_with_block
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    linkageType: ''
    returnType: void
    signature: void args_with_block(parser_state *p, node *a, node *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1309,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1311,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1315,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - defn
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1319
    functionName: endless_method_name
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    - identchar
    - sym
    - mrb_sym_name_len
    linkageType: ''
    returnType: void
    signature: void endless_method_name(parser_state *p, node *defn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1326,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1329,1
    - Dst: args_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1330,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1337,1
    - Dst: args_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - parser_state*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1343
    functionName: call_with_block
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 10
    functionsReached:
    - new_callargs
    - args_with_block
    - typen
    linkageType: ''
    returnType: void
    signature: void call_with_block(parser_state *p, node *a, node *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1349
    functionName: new_negate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      new_negate(parser_state *p, node *n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1355
    functionName: cond
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: 'node *

      cond(node *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1361,1
    - Dst: new_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1367
    functionName: ret_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    - new_array
    linkageType: ''
    returnType: node
    signature: 'node *

      ret_args(parser_state *p, node *n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1372,1
    - Dst: local_add
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1373,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - lhs
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1369
    functionDepth: 5
    functionLinenumber: 1369
    functionLinenumberEnd: 1375
    functionName: assignable
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intn
    - local_add
    - sym
    linkageType: ''
    returnType: void
    signature: void assignable(parser_state *p, node *lhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1382,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1383,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1383,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1384,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1384,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - lhs
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1391
    functionName: var_reference
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons_free
    - local_var_p
    - new_fcall
    - intn
    - sym
    linkageType: ''
    returnType: node
    signature: 'node *

      var_reference(parser_state *p, node *lhs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1396,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1399,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1400,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1402,1
    - Dst: new_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1403,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - sym
    argTypes:
    - parser_state*
    - mrb_sym
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1393
    functionDepth: 5
    functionLinenumber: 1393
    functionLinenumberEnd: 1409
    functionName: label_reference
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - new_lvar
    - new_const
    - local_var_p
    - new_fcall
    - mrb_sym_name
    - ISUPPER
    linkageType: ''
    returnType: node
    signature: 'node *

      label_reference(parser_state *p, mrb_sym sym)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - p
    - type
    - term
    - paren
    argTypes:
    - parser_state*
    - string_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1431
    functionName: new_strterm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - parser_palloc
    linkageType: ''
    returnType: parser_lex_strterm
    signature: 'parser_lex_strterm *

      new_strterm(parser_state *p, string_type type, int term, int paren)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_pfree
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1439
    functionName: end_strterm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - parser_pfree
    linkageType: ''
    returnType: void
    signature: void end_strterm(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1447
    functionName: push_strterm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    linkageType: ''
    returnType: node
    signature: 'node *

      push_strterm(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1455
    functionName: pop_strterm
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons_free
    linkageType: ''
    returnType: void
    signature: void pop_strterm(parser_state *p, node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1465
    functionName: parsing_heredoc_info
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: parser_heredoc_info
    signature: 'parser_heredoc_info *

      parsing_heredoc_info(parser_state *p)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1472,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1475,1
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1467
    functionDepth: 4
    functionLinenumber: 1467
    functionLinenumberEnd: 1477
    functionName: heredoc_treat_nextline
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - parsing_heredoc_info
    - new_strterm
    - append
    linkageType: ''
    returnType: void
    signature: void heredoc_treat_nextline(parser_state *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1485,1
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:1489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1479
    functionDepth: 2
    functionLinenumber: 1479
    functionLinenumberEnd: 1491
    functionName: heredoc_end
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - end_strterm
    - parsing_heredoc_info
    linkageType: ''
    returnType: void
    signature: void heredoc_end(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - str_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1493
    functionName: is_strterm_type
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_strterm_type(p,str_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - Val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1502
    functionName: YY_CAST
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_CAST(Type, Val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - Val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1503
    functionName: YY_REINTERPRET_CAST
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_REINTERPRET_CAST(Type, Val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - Val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1505
    functionName: YY_CAST
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_CAST(Type, Val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - Val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1506
    functionName: YY_REINTERPRET_CAST
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_REINTERPRET_CAST(Type, Val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1788
    functionName: YYSIZEOF
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYSIZEOF(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1800
    functionName: YY_
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_(Msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1804
    functionName: YY_
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_(Msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1826
    functionName: YYUSE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYUSE(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1840
    functionName: YY_INITIAL_VALUE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INITIAL_VALUE(Value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1863
    functionName: YY_ASSERT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_ASSERT(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1951
    functionName: YYSTACK_BYTES
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYSTACK_BYTES(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Stack_alloc
    - ','
    - Stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1959
    functionDepth: 0
    functionLinenumber: 1959
    functionLinenumberEnd: 1969
    functionName: YYSTACK_RELOCATE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYSTACK_RELOCATE(Stack_alloc, Stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Dst
    - ','
    - Src
    - ','
    - Count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1979
    functionName: YYCOPY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCOPY(Dst, Src, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Dst
    - ','
    - Src
    - ','
    - Count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1988
    functionName: YYCOPY
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCOPY(Dst, Src, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - YYX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 0
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: YYTRANSLATE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYTRANSLATE(YYX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Yyn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2222
    functionDepth: 0
    functionLinenumber: 2222
    functionLinenumberEnd: 2224
    functionName: yypact_value_is_default
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yypact_value_is_default(Yyn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Yyn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2229
    functionName: yytable_value_is_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yytable_value_is_error(Yyn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5454
      start: 5453
    functionDepth: 0
    functionLinenumber: 5453
    functionLinenumberEnd: 5454
    functionName: YYRECOVERING
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYRECOVERING()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Token
    - ','
    - Value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5471
      start: 5455
    functionDepth: 0
    functionLinenumber: 5455
    functionLinenumberEnd: 5471
    functionName: YYBACKUP
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYBACKUP(Token, Value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5491
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5491
    functionName: YYDPRINTF
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYDPRINTF(Args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - File
    - ','
    - Loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5495
      start: 5494
    functionDepth: 0
    functionLinenumber: 5494
    functionLinenumberEnd: 5495
    functionName: YY_LOCATION_PRINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCATION_PRINT(File, Loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Title
    - ','
    - Type
    - ','
    - Value
    - ','
    - Location
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5508
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5508
    functionName: YY_SYMBOL_PRINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SYMBOL_PRINT(Title, Type, Value, Location)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5518,1
    - Dst: YYUSE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5519,1
    - Dst: YYPRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - p
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5529
      start: 5514
    functionDepth: 1
    functionLinenumber: 5514
    functionLinenumberEnd: 5529
    functionName: yy_symbol_value_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - YYUSE
    - YYPRINT
    linkageType: ''
    returnType: void
    signature: void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const *
      const yyvaluep, parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5539,1
    - Dst: yy_symbol_value_print
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5542,1
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - p
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5544
      start: 5536
    functionDepth: 2
    functionLinenumber: 5536
    functionLinenumberEnd: 5544
    functionName: yy_symbol_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yy_symbol_value_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const
      yyvaluep, parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5554,1
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5558,1
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yybottom
    - yytop
    argTypes:
    - yy_state_t*
    - yy_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5561
      start: 5551
    functionDepth: 0
    functionLinenumber: 5551
    functionLinenumberEnd: 5561
    functionName: yy_stack_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Bottom
    - ','
    - Top
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5568
      start: 5563
    functionDepth: 0
    functionLinenumber: 5563
    functionLinenumberEnd: 5568
    functionName: YY_STACK_PRINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STACK_PRINT(Bottom, Top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5580,1
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5585,1
    - Dst: yy_symbol_print
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5586,1
    - Dst: YYFPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - yyssp
    - yyvsp
    - yyrule
    - p
    argTypes:
    - yy_state_t*
    - YYSTYPE*
    - int
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5592
      start: 5574
    functionDepth: 3
    functionLinenumber: 5574
    functionLinenumberEnd: 5592
    functionName: yy_reduce_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yy_symbol_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule,
      parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5599
      start: 5594
    functionDepth: 0
    functionLinenumber: 5594
    functionLinenumberEnd: 5599
    functionName: YY_REDUCE_PRINT
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_REDUCE_PRINT(Rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5632
    functionDepth: 0
    functionLinenumber: 5632
    functionLinenumberEnd: 5633
    functionName: yystrlen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yystrlen(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - yystr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5642
      start: 5635
    functionDepth: 0
    functionLinenumber: 5635
    functionLinenumberEnd: 5642
    functionName: yystrlen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yystrlen (const char *yystr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - yydest
    - yysrc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5652
    functionDepth: 0
    functionLinenumber: 5652
    functionLinenumberEnd: 5662
    functionName: yystpcpy
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yystpcpy (char *yydest, const char *yysrc)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yystpcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5711,1
    - Dst: yystrlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5713,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - yyres
    - yystr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5714
      start: 5674
    functionDepth: 1
    functionLinenumber: 5674
    functionLinenumberEnd: 5714
    functionName: yytnamerr
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yystpcpy
    - yystrlen
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yytnamerr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5766,1
    - Dst: yypact_value_is_default
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5769,1
    - Dst: yytable_value_is_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5782,1
    - Dst: yytnamerr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5793,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5810,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5810,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5811,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5811,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5812,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5812,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5813,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5813,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5814,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5814,1
    - Dst: YYCASE_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5815,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5815,1
    - Dst: yystrlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5822,1
    - Dst: yytnamerr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5847,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - yymsg_alloc
    - yymsg
    - yyssp
    - yytoken
    argTypes:
    - YYPTRDIFF_T*
    - char**
    - yy_state_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5857
      start: 5725
    functionDepth: 2
    functionLinenumber: 5725
    functionLinenumberEnd: 5857
    functionName: yysyntax_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - YYCASE_
    - yytnamerr
    - YY_
    - yypact_value_is_default
    - yytable_value_is_error
    - yystrlen
    linkageType: ''
    returnType: int
    signature: "int yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,\n                yy_state_t
      *yyssp, int yytoken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5809
      start: 5805
    functionDepth: 0
    functionLinenumber: 5805
    functionLinenumberEnd: 5809
    functionName: YYCASE_
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCASE_(N, S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5867,1
    - Dst: YYUSE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5868,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - yymsg
    - yytype
    - yyvaluep
    - p
    argTypes:
    - char*
    - int
    - YYSTYPE*
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5876
      start: 5864
    functionDepth: 1
    functionLinenumber: 5864
    functionLinenumberEnd: 5876
    functionName: yydestruct
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - YYUSE
    - YY_SYMBOL_PRINT
    linkageType: ''
    returnType: void
    signature: void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep,
      parser_state *p)
  - BBCount: 537
    BranchProfiles: []
    Callsites:
    - Dst: YYDPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5949,1
    - Dst: YYDPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5971,1
    - Dst: YY_ASSERT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5972,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5974,1
    - Dst: yyoverflow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5997,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5997,1
    - Dst: YYSIZEOF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5998,1
    - Dst: YYSIZEOF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:5999,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6015,1
    - Dst: YYSTACK_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6016,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6016,1
    - Dst: YYSTACK_BYTES
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6016,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6019,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6020,1
    - Dst: YYSTACK_FREE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6023,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6032,1
    - Dst: yypact_value_is_default
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6055,1
    - Dst: YYDPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6063,1
    - Dst: yylex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6064,1
    - Dst: YYDPRINTF
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6070,1
    - Dst: YYTRANSLATE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6074,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6075,1
    - Dst: yytable_value_is_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6086,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6098,1
    - Dst: YY_REDUCE_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6137,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6144,1
    - Dst: new_scope
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6152,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6153,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6169,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6177,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6178,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6186,1
    - Dst: newline_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6186,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6194,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6202,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6203,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6211,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6212,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6213,1
    - Dst: new_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6223,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6224,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6227,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6228,1
    - Dst: new_ensure
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6235,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6238,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6238,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6256,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6264,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6265,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6273,1
    - Dst: newline_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6273,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6281,1
    - Dst: new_alias
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6295,1
    - Dst: new_if
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6311,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6311,1
    - Dst: new_unless
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6319,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6319,1
    - Dst: new_while
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6327,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6327,1
    - Dst: new_until
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6335,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6335,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6343,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6351,1
    - Dst: new_postexe
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6352,1
    - Dst: new_masgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6360,1
    - Dst: new_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6368,1
    - Dst: new_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6368,1
    - Dst: new_masgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6376,1
    - Dst: new_masgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6384,1
    - Dst: new_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6384,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6392,1
    - Dst: assignable
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6393,1
    - Dst: new_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6394,1
    - Dst: new_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6402,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6410,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6418,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6418,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6418,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6426,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6426,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6434,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6434,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6442,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6451,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6451,1
    - Dst: endless_method_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6460,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6461,1
    - Dst: defn_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6462,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6463,1
    - Dst: endless_method_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6473,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6474,1
    - Dst: defn_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6475,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6475,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6476,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6486,1
    - Dst: defs_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6487,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6488,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6499,1
    - Dst: defs_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6500,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6500,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6501,1
    - Dst: backref_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6511,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6512,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6520,1
    - Dst: new_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6528,1
    - Dst: new_or
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6536,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6544,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6544,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6552,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6552,1
    - Dst: new_def
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6560,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6560,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6560,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6563,1
    - Dst: new_sdef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6579,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6579,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6579,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6583,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6592,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6603,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6611,1
    - Dst: nvars_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6612,1
    - Dst: new_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6620,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6621,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6622,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6630,1
    - Dst: args_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6638,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6639,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6647,1
    - Dst: args_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6655,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6656,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6664,1
    - Dst: args_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6672,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6673,1
    - Dst: new_super
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6681,1
    - Dst: new_yield
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6689,1
    - Dst: new_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6697,1
    - Dst: ret_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6697,1
    - Dst: new_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6705,1
    - Dst: ret_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6705,1
    - Dst: new_next
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6713,1
    - Dst: ret_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6713,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6745,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6753,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6753,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6761,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6769,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6777,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6777,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6785,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6785,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6793,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6801,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6809,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6809,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6817,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6817,1
    - Dst: new_masgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6825,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6833,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6841,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6849,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6857,1
    - Dst: assignable
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6865,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6873,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6873,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6881,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6889,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6897,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6906,1
    - Dst: new_colon2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6907,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6916,1
    - Dst: new_colon3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6917,1
    - Dst: backref_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6925,1
    - Dst: assignable
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6934,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6942,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6942,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6950,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6958,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6966,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6975,1
    - Dst: new_colon2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6976,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6985,1
    - Dst: new_colon3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6986,1
    - Dst: backref_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:6994,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7003,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7011,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7019,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7019,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7019,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7027,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7027,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7027,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7035,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7036,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7036,1
    - Dst: new_undef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7062,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7076,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7076,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7083,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7089,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7095,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7101,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7107,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7113,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7119,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7125,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7131,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7137,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7143,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7149,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7155,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7161,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7167,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7173,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7179,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7185,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7191,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7197,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7203,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7209,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7215,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7221,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7227,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7233,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7239,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7245,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7251,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7257,1
    - Dst: new_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7264,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7272,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7280,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7280,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7280,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7288,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7288,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7296,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7296,1
    - Dst: new_op_asgn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7304,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7304,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7312,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7313,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7321,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7322,1
    - Dst: backref_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7330,1
    - Dst: new_begin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7331,1
    - Dst: new_dot2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7339,1
    - Dst: new_dot2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7347,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7347,1
    - Dst: new_dot2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7355,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7355,1
    - Dst: new_dot3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7363,1
    - Dst: new_dot3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7371,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7371,1
    - Dst: new_dot3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7379,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7379,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7387,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7395,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7403,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7411,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7419,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7427,1
    - Dst: new_negate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7435,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7435,1
    - Dst: new_negate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7443,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7443,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7451,1
    - Dst: new_negate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7459,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7467,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7475,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7483,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7491,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7499,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7507,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7515,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7523,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7531,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7539,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7547,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7555,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7563,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7571,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7571,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7579,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7579,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7587,1
    - Dst: call_bin_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7595,1
    - Dst: new_and
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7603,1
    - Dst: new_or
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7611,1
    - Dst: new_if
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7619,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7619,1
    - Dst: new_if
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7627,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7627,1
    - Dst: endless_method_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7636,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7637,1
    - Dst: defn_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7638,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7639,1
    - Dst: endless_method_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7649,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7650,1
    - Dst: defn_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7651,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7651,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7652,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7662,1
    - Dst: defs_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7663,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7664,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7675,1
    - Dst: defs_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7676,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7676,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7677,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7696,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7704,1
    - Dst: new_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7704,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7712,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7712,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7713,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7729,1
    - Dst: new_mod_rescue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7730,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7746,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7747,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7748,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7749,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7749,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7749,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7749,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7750,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7750,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7750,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7750,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7750,1
    - Dst: new_block_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7751,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7751,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7759,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7760,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7761,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7762,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7762,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7762,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7763,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7763,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7763,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7763,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7764,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7764,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7764,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7764,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7764,1
    - Dst: new_block_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7765,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7765,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7768,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7778,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7779,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7787,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7787,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7788,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7796,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7796,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7797,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7805,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7806,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7806,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7807,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7815,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7816,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7824,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7824,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7825,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7833,1
    - Dst: new_kw_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7833,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7834,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7842,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7843,1
    - Dst: CMDARG_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7852,1
    - Dst: new_block_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7869,1
    - Dst: new_block_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7877,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7901,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7902,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7903,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7911,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7911,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7911,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7911,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7919,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7919,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7920,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7928,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7929,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7937,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7937,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7945,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7946,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7954,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7954,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7962,1
    - Dst: new_splat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7962,1
    - Dst: new_nvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7970,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:7978,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8034,1
    - Dst: new_colon2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8050,1
    - Dst: new_colon3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8058,1
    - Dst: new_array
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8066,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8067,1
    - Dst: new_hash
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8075,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8076,1
    - Dst: new_return
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8084,1
    - Dst: new_yield
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8092,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8100,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8100,1
    - Dst: call_uni_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8108,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8108,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8116,1
    - Dst: new_callargs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8116,1
    - Dst: call_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8124,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8133,1
    - Dst: nvars_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8134,1
    - Dst: new_lambda
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8154,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8155,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8156,1
    - Dst: CMDARG_LEXPOP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8158,1
    - Dst: new_if
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8166,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8166,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8167,1
    - Dst: new_unless
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8175,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8175,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8176,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8183,1
    - Dst: COND_POP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8189,1
    - Dst: new_while
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8196,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8196,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8197,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8204,1
    - Dst: COND_POP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8210,1
    - Dst: new_until
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8217,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8217,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8218,1
    - Dst: new_case
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8226,1
    - Dst: new_case
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8234,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8241,1
    - Dst: COND_POP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8247,1
    - Dst: new_for
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8254,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8255,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8264,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8265,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8266,1
    - Dst: new_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8274,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8275,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8276,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8277,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8294,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8294,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8294,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8295,1
    - Dst: new_sclass
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8304,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8305,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8306,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8307,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8309,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8318,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8319,1
    - Dst: nvars_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8320,1
    - Dst: new_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8328,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8329,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8330,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8331,1
    - Dst: defn_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8340,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8341,1
    - Dst: defs_setup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8351,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8352,1
    - Dst: new_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8362,1
    - Dst: new_next
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8370,1
    - Dst: new_redo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8378,1
    - Dst: new_retry
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8386,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8395,1
    - Dst: new_if
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8403,1
    - Dst: cond
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8403,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8419,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8419,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8427,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8435,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8435,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8443,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8443,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8451,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8451,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8452,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8452,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8460,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8460,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8468,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8468,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8476,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8476,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8484,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8484,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8485,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8485,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8493,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8493,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8501,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8501,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8509,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8517,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8525,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8533,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8549,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8557,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8565,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8573,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8581,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8589,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8597,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8605,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8613,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8621,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8629,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8637,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8645,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8653,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8661,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8669,1
    - Dst: local_add_blk
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8677,1
    - Dst: local_add_blk
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8694,1
    - Dst: local_add_blk
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8709,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8742,1
    - Dst: new_bv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8743,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8783,1
    - Dst: nvars_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8784,1
    - Dst: new_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8792,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8793,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8794,1
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8802,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8803,1
    - Dst: call_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8806,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8816,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8824,1
    - Dst: call_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8825,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8833,1
    - Dst: call_with_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8834,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8842,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8850,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8858,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8866,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8874,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8874,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8882,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8882,1
    - Dst: new_super
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8890,1
    - Dst: new_zsuper
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8898,1
    - Dst: new_call
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8906,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8906,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8914,1
    - Dst: nvars_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8915,1
    - Dst: new_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8924,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8925,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8926,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8927,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8935,1
    - Dst: nvars_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8936,1
    - Dst: new_block
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8945,1
    - Dst: SET_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8946,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8947,1
    - Dst: nvars_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8948,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8956,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8956,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8965,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8965,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8977,1
    - Dst: list3
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8977,1
    - Dst: append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8978,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:8986,1
    - Dst: concat_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9010,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9027,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9028,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9031,1
    - Dst: new_dstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9033,1
    - Dst: append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9041,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9049,1
    - Dst: push_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9057,1
    - Dst: pop_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9065,1
    - Dst: list2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9066,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9074,1
    - Dst: new_literal_delim
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9074,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9082,1
    - Dst: new_literal_delim
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9082,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9099,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9100,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9103,1
    - Dst: new_dxstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9105,1
    - Dst: new_dregx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9121,1
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9129,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9130,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9130,1
    - Dst: heredoc_end
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9131,1
    - Dst: heredoc_end
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9139,1
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9147,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9148,1
    - Dst: heredoc_treat_nextline
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9149,1
    - Dst: push_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9157,1
    - Dst: pop_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9165,1
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9166,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9167,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9167,1
    - Dst: new_words
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9175,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9175,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9184,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9185,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9188,1
    - Dst: new_words
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9190,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9199,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9209,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9210,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9213,1
    - Dst: new_dsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9215,1
    - Dst: new_dstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9215,1
    - Dst: new_strsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9231,1
    - Dst: new_strsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9239,1
    - Dst: new_symbols
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9247,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9247,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9256,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9257,1
    - Dst: new_symbols
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9259,1
    - Dst: new_negate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9267,1
    - Dst: new_negate
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9275,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9283,1
    - Dst: new_ivar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9291,1
    - Dst: new_gvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9299,1
    - Dst: new_cvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9307,1
    - Dst: new_const
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9315,1
    - Dst: assignable
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9323,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9331,1
    - Dst: var_reference
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9339,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9347,1
    - Dst: new_self
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9355,1
    - Dst: new_true
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9363,1
    - Dst: new_false
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9371,1
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9379,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9383,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9383,1
    - Dst: dump_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9393,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9394,1
    - Dst: new_fcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9402,1
    - Dst: MRB_SYM_2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9402,1
    - Dst: new_args_dots
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9445,1
    - Dst: new_args_dots
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9453,1
    - Dst: new_args_dots
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9469,1
    - Dst: new_args_dots
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9477,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9485,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9493,1
    - Dst: new_kw_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9494,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9494,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9494,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9495,1
    - Dst: new_kw_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9503,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9504,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9512,1
    - Dst: new_kw_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9513,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9513,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9513,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9514,1
    - Dst: new_kw_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9522,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9523,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9531,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9539,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9547,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9555,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9563,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9571,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9579,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9587,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9595,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9603,1
    - Dst: new_args_tail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9619,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9627,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9635,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9643,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9651,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9659,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9667,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9675,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9683,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9691,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9699,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9707,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9715,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9723,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9731,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9739,1
    - Dst: new_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9740,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9748,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9757,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9766,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9775,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9784,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9801,1
    - Dst: new_arg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9810,1
    - Dst: local_switch
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9818,1
    - Dst: new_masgn_param
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9826,1
    - Dst: local_resume
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9827,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9828,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9836,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9844,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9852,1
    - Dst: local_nest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9853,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9862,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9863,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9863,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9863,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9863,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9864,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9872,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9873,1
    - Dst: nsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9873,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9873,1
    - Dst: locals_node
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9873,1
    - Dst: local_unnest
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9874,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9882,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9890,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9898,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9906,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9914,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9923,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9924,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9940,1
    - Dst: new_nil
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9965,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9980,1
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9983,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:9993,1
    - Dst: list1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10014,1
    - Dst: NODE_LINENO
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10015,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10023,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10031,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10032,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10033,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10041,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10042,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10042,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10050,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10050,1
    - Dst: label_reference
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10050,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10058,1
    - Dst: typen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10059,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10060,1
    - Dst: new_dsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10060,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10063,1
    - Dst: new_sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10063,1
    - Dst: new_strsym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10063,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10072,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10073,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10073,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10081,1
    - Dst: new_kw_rest_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10081,1
    - Dst: new_lvar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10081,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10081,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10149,1
    - Dst: YYPOPSTACK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10151,1
    - Dst: YY_STACK_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10153,1
    - Dst: YYTRANSLATE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10177,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10184,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10184,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10189,1
    - Dst: YYSTACK_FREE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10197,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10198,1
    - Dst: YYSTACK_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10198,1
    - Dst: YY_CAST
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10198,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10211,1
    - Dst: yydestruct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10234,1
    - Dst: YYPOPSTACK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10256,1
    - Dst: YY_STACK_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10258,1
    - Dst: yypact_value_is_default
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10272,1
    - Dst: yydestruct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10288,1
    - Dst: YYPOPSTACK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10290,1
    - Dst: YY_STACK_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10292,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10328,1
    - Dst: YY_
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10328,1
    - Dst: YYTRANSLATE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10342,1
    - Dst: yydestruct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10343,1
    - Dst: YYPOPSTACK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10348,1
    - Dst: YY_STACK_PRINT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10349,1
    - Dst: yydestruct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10352,1
    - Dst: YYPOPSTACK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10354,1
    - Dst: YYSTACK_FREE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10358,1
    - Dst: YYSTACK_FREE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10362,1
    CyclomaticComplexity: 568
    EdgeCount: 568
    ICount: 2386
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10365
      start: 5885
    functionDepth: 8
    functionLinenumber: 5885
    functionLinenumberEnd: 10365
    functionName: yyparse
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - new_sclass
    - nvars_unnest
    - new_rescue
    - list2
    - new_next
    - new_super
    - new_false
    - new_break
    - new_lvar
    - defn_setup
    - assignable
    - YYSTACK_BYTES
    - local_add_f
    - push
    - call_bin_op
    - NODE_LINENO
    - cons
    - heredoc_end
    - new_def
    - new_strsym
    - new_postexe
    - new_redo
    - new_ensure
    - YY_STACK_PRINT
    - new_dregx
    - list1
    - yyoverflow
    - parsing_heredoc_info
    - new_callargs
    - yytable_value_is_error
    - new_dot3
    - typen
    - new_sdef
    - ret_args
    - new_fcall
    - nsym
    - locals_node
    - push_strterm
    - new_args
    - new_undef
    - new_colon2
    - new_nil
    - local_var_p
    - CMDARG_PUSH
    - COND_PUSH
    - var_reference
    - new_gvar
    - new_hash
    - endless_method_name
    - nvars_nest
    - concat_string
    - new_words
    - YY_ASSERT
    - yypact_value_is_default
    - new_kw_arg
    - args_with_block
    - call_with_block
    - heredoc_treat_nextline
    - new_asgn
    - new_nvar
    - YYSIZEOF
    - append
    - void_expr_error
    - new_call
    - nint
    - YYSTACK_ALLOC
    - YYTRANSLATE
    - YY_REDUCE_PRINT
    - nvars_block
    - YY_SYMBOL_PRINT
    - new_while
    - strlen
    - yylex
    - yydestruct
    - YY_
    - new_dstr
    - new_symbols
    - new_kw_hash
    - CMDARG_LEXPOP
    - new_yield
    - local_add_blk
    - new_dot2
    - new_bv
    - intn
    - new_splat
    - new_scope
    - YY_CAST
    - new_kw_rest_args
    - new_block
    - new_retry
    - cons_free
    - YYPOPSTACK
    - new_array
    - new_alias
    - new_masgn
    - new_true
    - backref_error
    - new_sym
    - new_dsym
    - local_resume
    - MRB_SYM_2
    - new_str
    - new_op_asgn
    - new_self
    - new_unless
    - new_dxstr
    - call_uni_op
    - new_cvar
    - new_begin
    - new_return
    - new_and
    - new_for
    - new_until
    - new_zsuper
    - yywarning
    - new_negate
    - SET_LINENO
    - local_nest
    - new_arg
    - new_args_dots
    - YYSTACK_FREE
    - COND_POP
    - new_class
    - new_case
    - YYDPRINTF
    - new_or
    - new_lambda
    - cond
    - new_module
    - new_args_tail
    - label_reference
    - local_unnest
    - new_if
    - new_int
    - new_colon3
    - newline_node
    - pop_strterm
    - mrb_sym_name_len
    - defs_setup
    - new_literal_delim
    - new_const
    - new_ivar
    - yyerror
    - intern_op
    - local_switch
    - dump_int
    - new_masgn_param
    - new_block_arg
    - YYSTACK_RELOCATE
    - list3
    - new_mod_rescue
    linkageType: ''
    returnType: int
    signature: int yyparse (parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5940
      start: 5939
    functionDepth: 0
    functionLinenumber: 5939
    functionLinenumberEnd: 5940
    functionName: YYPOPSTACK
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYPOPSTACK(N)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10379,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10380,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10383,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10388,1
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10389,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10396
      start: 10370
    functionDepth: 3
    functionLinenumber: 10370
    functionLinenumberEnd: 10396
    functionName: yyerror
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 7
    functionsReached:
    - parser_palloc
    - memcpy
    - fprintf
    - mrb_sym_name_len
    - strlen
    linkageType: ''
    returnType: void
    signature: void yyerror(parser_state *p, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10403,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10405,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - msg
    - c
    argTypes:
    - parser_state*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10407
      start: 10398
    functionDepth: 4
    functionLinenumber: 10398
    functionLinenumberEnd: 10407
    functionName: yyerror_c
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    - strncat
    - strncpy
    linkageType: ''
    returnType: void
    signature: void yyerror_c(parser_state *p, const char *msg, char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10418,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10419,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10422,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10427,1
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10428,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10435
      start: 10409
    functionDepth: 3
    functionLinenumber: 10409
    functionLinenumberEnd: 10435
    functionName: yywarning
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - parser_palloc
    - memcpy
    - fprintf
    - mrb_sym_name_len
    - strlen
    linkageType: ''
    returnType: void
    signature: void yywarning(parser_state *p, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10442,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10444,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10444,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10445,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10445,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p
    - msg
    - s
    argTypes:
    - parser_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10447
      start: 10437
    functionDepth: 4
    functionLinenumber: 10437
    functionLinenumberEnd: 10447
    functionName: yywarning_s
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yywarning
    - strncat
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: void yywarning_s(parser_state *p, const char *msg, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10454,1
    - Dst: yyerror_c
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10457,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10457,1
    - Dst: yyerror_c
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10460,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10460,1
    - Dst: mrb_bug
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10465
      start: 10449
    functionDepth: 5
    functionLinenumber: 10449
    functionLinenumberEnd: 10465
    functionName: backref_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - intn
    - yyerror_c
    - mrb_bug
    linkageType: ''
    returnType: void
    signature: void backref_error(parser_state *p, node *n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10473,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10480,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10485,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10486,1
    - Dst: void_expr_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10500
      start: 10467
    functionDepth: 4
    functionLinenumber: 10467
    functionLinenumberEnd: 10500
    functionName: void_expr_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 20
    functionsReached:
    - yyerror
    - void_expr_error
    - intn
    linkageType: ''
    returnType: void
    signature: void void_expr_error(parser_state *p, node *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10517,1
    - Dst: feof
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10523
      start: 10506
    functionDepth: 0
    functionLinenumber: 10506
    functionLinenumberEnd: 10523
    functionName: nextc0
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - feof
    - fgetc
    linkageType: ''
    returnType: int
    signature: int nextc0(parser_state *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10533,1
    - Dst: cons_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10536,1
    - Dst: nextc0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10539,1
    - Dst: nextc0
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10546,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10550,1
    - Dst: parser_state*::cxt::partial_hook
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10557,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10561
      start: 10525
    functionDepth: 1
    functionLinenumber: 10525
    functionLinenumberEnd: 10561
    functionName: nextc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - intn
    - nextc0
    - parser_state*::cxt::partial_hook
    - cons_free
    - pushback
    linkageType: ''
    returnType: int
    signature: int nextc(parser_state *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10569,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10570
      start: 10563
    functionDepth: 1
    functionLinenumber: 10563
    functionLinenumberEnd: 10570
    functionName: pushback
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - cons
    - nint
    linkageType: ''
    returnType: void
    signature: void pushback(parser_state *p, int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - p
    - term
    argTypes:
    - parser_state*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10582
      start: 10572
    functionDepth: 2
    functionLinenumber: 10572
    functionLinenumberEnd: 10582
    functionName: skip
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 8
    functionsReached:
    - nextc
    linkageType: ''
    returnType: void
    signature: void skip(parser_state *p, char term)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10591,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10594,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10594,1
    - Dst: append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10603
      start: 10584
    functionDepth: 2
    functionLinenumber: 10584
    functionLinenumberEnd: 10603
    functionName: peekc_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nextc
    - append
    - push
    - nint
    linkageType: ''
    returnType: int
    signature: int peekc_n(parser_state *p, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peekc_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - p
    - c
    - n
    argTypes:
    - parser_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10609
      start: 10605
    functionDepth: 3
    functionLinenumber: 10605
    functionLinenumberEnd: 10609
    functionName: peek_n
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - peekc_n
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool peek_n(parser_state *p, int c, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10611
      start: 10610
    functionDepth: 0
    functionLinenumber: 10610
    functionLinenumberEnd: 10611
    functionName: peek
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: peek(p,c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10615,1
    - Dst: peek_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10621,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10631
      start: 10612
    functionDepth: 4
    functionLinenumber: 10612
    functionLinenumberEnd: 10631
    functionName: peeks
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - peek_n
    - strlen
    - memcmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool peeks(parser_state *p, const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10641,1
    - Dst: peeks
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10650,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10651,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10654,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10666
      start: 10633
    functionDepth: 5
    functionLinenumber: 10633
    functionLinenumberEnd: 10666
    functionName: skips
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nextc
    - strlen
    - peeks
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool skips(parser_state *p, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10679
      start: 10669
    functionDepth: 0
    functionLinenumber: 10669
    functionLinenumberEnd: 10679
    functionName: newtok
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: int
    signature: int newtok(parser_state *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10726,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10727,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10730,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10736
      start: 10681
    functionDepth: 4
    functionLinenumber: 10681
    functionLinenumberEnd: 10736
    functionName: tokadd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_realloc
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void tokadd(parser_state *p, int32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10742
      start: 10738
    functionDepth: 0
    functionLinenumber: 10738
    functionLinenumberEnd: 10742
    functionName: toklast
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int toklast(parser_state *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10752
      start: 10744
    functionDepth: 4
    functionLinenumber: 10744
    functionLinenumberEnd: 10752
    functionName: tokfix
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yyerror
    linkageType: ''
    returnType: void
    signature: void tokfix(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10758
      start: 10754
    functionDepth: 0
    functionLinenumber: 10754
    functionLinenumberEnd: 10758
    functionName: tok
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tok(parser_state *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10764
      start: 10760
    functionDepth: 0
    functionLinenumber: 10760
    functionLinenumberEnd: 10764
    functionName: toklen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int toklen(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10767
      start: 10766
    functionDepth: 0
    functionLinenumber: 10766
    functionLinenumberEnd: 10767
    functionName: IS_ARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10768
      start: 10767
    functionDepth: 0
    functionLinenumber: 10767
    functionLinenumberEnd: 10768
    functionName: IS_END
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10769
      start: 10768
    functionDepth: 0
    functionLinenumber: 10768
    functionLinenumberEnd: 10769
    functionName: IS_BEG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BEG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10770
      start: 10769
    functionDepth: 0
    functionLinenumber: 10769
    functionLinenumberEnd: 10770
    functionName: IS_SPCARG
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SPCARG(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10771
      start: 10770
    functionDepth: 0
    functionLinenumber: 10770
    functionLinenumberEnd: 10771
    functionName: IS_LABEL_POSSIBLE
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LABEL_POSSIBLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10772
      start: 10771
    functionDepth: 0
    functionLinenumber: 10771
    functionLinenumberEnd: 10772
    functionName: IS_LABEL_SUFFIX
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LABEL_SUFFIX(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - start
    - len
    - retlen
    argTypes:
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10787
      start: 10773
    functionDepth: 0
    functionLinenumber: 10773
    functionLinenumberEnd: 10787
    functionName: scan_oct
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t scan_oct(const int *start, int len, int *retlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - p
    - start
    - len
    - retlen
    argTypes:
    - parser_state*
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10806
      start: 10789
    functionDepth: 0
    functionLinenumber: 10789
    functionLinenumberEnd: 10806
    functionName: scan_hex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int32_t
    signature: int32_t scan_hex(parser_state *p, const int *start, int len, int *retlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10817,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10820,1
    - Dst: ISXDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10823,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10826,1
    - Dst: ISXDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10828,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10829,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10835,1
    - Dst: scan_hex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10837,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10839,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - p
    - limit
    argTypes:
    - parser_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10843
      start: 10808
    functionDepth: 4
    functionLinenumber: 10808
    functionLinenumberEnd: 10843
    functionName: read_escape_unicode
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - ISXDIGIT
    - nextc
    - yyerror
    - scan_hex
    - pushback
    linkageType: ''
    returnType: int32_t
    signature: int32_t read_escape_unicode(parser_state *p, int limit)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10851,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10884,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10887,1
    - Dst: scan_oct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10891,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10901,1
    - Dst: ISXDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10903,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10904,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10909,1
    - Dst: scan_hex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10912,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10916,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10918,1
    - Dst: read_escape_unicode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10919,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10921,1
    - Dst: read_escape_unicode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10924,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10936,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10937,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10938,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10941,1
    - Dst: read_escape
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10942,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10950,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10951,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10952,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10956,1
    - Dst: read_escape
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10957,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10967,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 115
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10973
      start: 10846
    functionDepth: 5
    functionLinenumber: 10846
    functionLinenumberEnd: 10973
    functionName: read_escape
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - ISXDIGIT
    - nextc
    - scan_oct
    - yyerror
    - read_escape_unicode
    - scan_hex
    - peek
    - read_escape
    - pushback
    linkageType: ''
    returnType: int32_t
    signature: int32_t read_escape(parser_state *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:10986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - hinfo
    - str
    - len
    - spaces
    - offset
    argTypes:
    - parser_heredoc_info*
    - char*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10996
      start: 10975
    functionDepth: 1
    functionLinenumber: 10975
    functionLinenumberEnd: 10996
    functionName: heredoc_count_indent
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    linkageType: ''
    returnType: void
    signature: void heredoc_count_indent(parser_heredoc_info *hinfo, const char *str,
      size_t len, size_t spaces, size_t *offset)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11015,1
    - Dst: heredoc_count_indent
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11023,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11025,1
    - Dst: heredoc_count_indent
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11038,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - p
    - hinfo
    argTypes:
    - parser_state*
    - parser_heredoc_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 10998
    functionDepth: 2
    functionLinenumber: 10998
    functionLinenumberEnd: 11044
    functionName: heredoc_remove_indent
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strndup
    - heredoc_count_indent
    linkageType: ''
    returnType: void
    signature: void heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11049,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11049,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - p
    - hinfo
    - pair
    - escaped
    - nspaces
    - empty_line
    argTypes:
    - parser_state*
    - parser_heredoc_info*
    - node*
    - node*
    - node*
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11056
      start: 11046
    functionDepth: 1
    functionLinenumber: 11046
    functionLinenumberEnd: 11056
    functionName: heredoc_push_indented
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - cons
    - push
    linkageType: ''
    returnType: void
    signature: void heredoc_push_indented(parser_state *p, parser_heredoc_info *hinfo,
      node *pair, node *escaped, node *nspaces, mrb_bool empty_line)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: parsing_heredoc_info
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11066,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11078,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11079,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11083,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11084,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11091,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11092,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11094,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11099,1
    - Dst: heredoc_remove_indent
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11100,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11109,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11110,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11112,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11113,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11114,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11115,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11119,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11119,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11119,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11122,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11122,1
    - Dst: heredoc_push_indented
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11123,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11130,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11136,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11148,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11151,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11157,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11157,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11158,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11158,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11164,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11168,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11169,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11171,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11173,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11175,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11175,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11177,1
    - Dst: read_escape_unicode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11178,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11180,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11186,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11187,1
    - Dst: read_escape
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11187,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11198,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11199,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11202,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11207,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11209,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11212,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11212,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11212,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11216,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11216,1
    - Dst: heredoc_push_indented
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11217,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11224,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11225,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11228,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11229,1
    - Dst: heredoc_treat_nextline
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11234,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11239,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11240,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11241,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11245,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11246,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11247,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11247,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11247,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11255,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11258,1
    - Dst: end_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11260,1
    - Dst: new_xstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11263,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11263,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11263,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11270,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11270,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11270,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11277,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11278,1
    - Dst: ISALPHA
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11278,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11286,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11289,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11290,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11293,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11294,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11295,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11296,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11298,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11299,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11299,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11299,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11300,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11310,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11316,1
    - Dst: new_regx
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11321,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11325,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11325,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11325,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 243
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11328
      start: 11058
    functionDepth: 6
    functionLinenumber: 11058
    functionLinenumberEnd: 11328
    functionName: parse_string
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - newtok
    - toklen
    - end_strterm
    - ISALPHA
    - new_regx
    - tok
    - strcat
    - read_escape_unicode
    - push
    - heredoc_treat_nextline
    - ISSPACE
    - strcpy
    - strncmp
    - nint
    - strncat
    - tokfix
    - parsing_heredoc_info
    - heredoc_push_indented
    - heredoc_remove_indent
    - new_str
    - pushback
    - strlen
    - new_xstr
    - nextc
    - strndup
    - yyerror
    - tokadd
    - peek
    - read_escape
    linkageType: ''
    returnType: int
    signature: int parse_string(parser_state *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11338,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11339,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11339,1
    - Dst: ISASCII
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11353,1
    - Dst: ISALPHA
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11353,1
    - Dst: append
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11356,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11367
      start: 11330
    functionDepth: 2
    functionLinenumber: 11330
    functionLinenumberEnd: 11367
    functionName: number_literal_suffix
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nextc
    - append
    - nint
    - push
    - ISALPHA
    - ISASCII
    - pushback
    linkageType: ''
    returnType: int
    signature: int number_literal_suffix(parser_state *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11380,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11381,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11382,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11390,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11396,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11397,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11402,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11405,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11413,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11414,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11415,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11416,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11419,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11421,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11422,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11422,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11423,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11425,1
    - Dst: new_heredoc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11426,1
    - Dst: strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11428,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11428,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11428,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11429,1
    - Dst: push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11439,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11444
      start: 11369
    functionDepth: 5
    functionLinenumber: 11369
    functionLinenumberEnd: 11444
    functionName: heredoc_identifier
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - nextc
    - strndup
    - yyerror
    - newtok
    - tokadd
    - new_heredoc
    - push
    - toklen
    - tokfix
    - identchar
    - ISSPACE
    - tok
    - pushback
    linkageType: ''
    returnType: int
    signature: int heredoc_identifier(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11451
      start: 11446
    functionDepth: 4
    functionLinenumber: 11446
    functionLinenumberEnd: 11451
    functionName: arg_ambiguous
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - yywarning
    linkageType: ''
    returnType: int
    signature: int arg_ambiguous(parser_state *p)
  - BBCount: 352
    BranchProfiles: []
    Callsites:
    - Dst: is_strterm_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11466,1
    - Dst: parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11468,1
    - Dst: parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11471,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11477,1
    - Dst: skip
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11493,1
    - Dst: heredoc_treat_nextline
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11498,1
    - Dst: parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11509,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11520,1
    - Dst: skip
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11527,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11531,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11532,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11536,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11539,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11540,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11544,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11550,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11561,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11562,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11563,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11567,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11568,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11569,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11572,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11581,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11585,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11586,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11587,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11590,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11606,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11622,1
    - Dst: peeks
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11629,1
    - Dst: peekc_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11630,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11631,1
    - Dst: skips
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11633,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11634,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11637,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11638,1
    - Dst: skip
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11639,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11652,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11653,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11656,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11665,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11669,1
    - Dst: IS_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11673,1
    - Dst: IS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11674,1
    - Dst: heredoc_identifier
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11675,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11689,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11692,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11696,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11697,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11701,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11704,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11714,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11718,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11719,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11723,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11726,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11730,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11734,1
    - Dst: parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11735,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11749,1
    - Dst: IS_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11753,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11757,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11759,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11762,1
    - Dst: IS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11763,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11792,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11793,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11794,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11798,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11802,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11804,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11805,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11806,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11807,1
    - Dst: read_escape
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11812,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11813,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11816,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11818,1
    - Dst: new_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11819,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11819,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11819,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11824,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11826,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11827,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11831,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11839,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11843,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11844,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11845,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11848,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11863,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11865,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11866,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11870,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11874,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11884,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11888,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11894,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11898,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11902,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11902,1
    - Dst: arg_ambiguous
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11902,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11904,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11905,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11912,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11916,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11922,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11926,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11934,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11934,1
    - Dst: arg_ambiguous
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11934,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11936,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11937,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11943,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11948,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11950,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11951,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11954,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11957,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11959,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11960,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11975,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11977,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11978,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11982,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11983,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11986,1
    - Dst: ISXDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11987,1
    - Dst: ISXDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11994,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11996,1
    - Dst: tolower
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11996,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11997,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:11999,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12000,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12001,1
    - Dst: no_digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12002,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12005,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12006,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12006,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12011,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12021,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12022,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12024,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12025,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12026,1
    - Dst: no_digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12027,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12030,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12031,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12031,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12036,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12037,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12044,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12046,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12047,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12049,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12050,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12051,1
    - Dst: no_digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12052,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12055,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12056,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12056,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12065,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12066,1
    - Dst: no_digits
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12067,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12082,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12083,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12085,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12086,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12087,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12089,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12090,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12090,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12094,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12100,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12103,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12106,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12107,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12108,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12118,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12127,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12128,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12129,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12134,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12135,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12144,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12151,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12155,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12157,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12169,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12173,1
    - Dst: yyerror_c
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12176,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12178,1
    - Dst: yywarning_s
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12181,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12181,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12182,1
    - Dst: mrb_float_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12189,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12189,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12190,1
    - Dst: yywarning_s
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12191,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12191,1
    - Dst: yywarning_s
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12194,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12194,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12197,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12199,1
    - Dst: new_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12202,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12202,1
    - Dst: number_literal_suffix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12206,1
    - Dst: new_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12207,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12207,1
    - Dst: COND_LEXPOP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12216,1
    - Dst: CMDARG_LEXPOP
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12217,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12225,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12227,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12227,1
    - Dst: IS_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12234,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12235,1
    - Dst: IS_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12239,1
    - Dst: ISSPACE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12239,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12240,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12244,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12249,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12250,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12253,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12254,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12258,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12259,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12260,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12272,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12273,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12283,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12296,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12297,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12307,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12310,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12317,1
    - Dst: CMDARG_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12318,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12327,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12328,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12331,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12334,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12337,1
    - Dst: IS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12340,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12344,1
    - Dst: CMDARG_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12345,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12353,1
    - Dst: CMDARG_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12354,1
    - Dst: IS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12357,1
    - Dst: COND_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12363,1
    - Dst: CMDARG_PUSH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12364,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12369,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12376,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12380,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12384,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12386,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12391,1
    - Dst: ISALNUM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12392,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12393,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12398,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12410,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12414,1
    - Dst: parse_string
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12415,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12418,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12422,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12426,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12430,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12434,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12438,1
    - Dst: new_strterm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12442,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12446,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12450,1
    - Dst: intern_op
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12451,1
    - Dst: IS_SPCARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12455,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12464,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12469,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12470,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12472,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12477,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12478,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12479,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12480,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12483,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12502,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12503,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12504,1
    - Dst: intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12505,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12505,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12505,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12509,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12510,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12511,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12512,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12514,1
    - Dst: intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12515,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12515,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12515,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12523,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12524,1
    - Dst: new_back_ref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12527,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12534,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12535,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12536,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12537,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12539,1
    - Dst: mrb_int_read
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12541,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12541,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12543,1
    - Dst: new_nth_ref
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12546,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12551,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12552,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12557,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12562,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12563,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12564,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12566,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12567,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12571,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12574,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12578,1
    - Dst: yyerror_c
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12580,1
    - Dst: yyerror_c
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12583,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12587,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12588,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12594,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12598,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12603,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12607,1
    - Dst: newtok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12611,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12616,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12617,1
    - Dst: identchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12619,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12620,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12621,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12621,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12621,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12624,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12626,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12629,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12630,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12633,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12636,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12640,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12647,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12654,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12654,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12654,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12655,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12662,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12665,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12668,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12671,1
    - Dst: yywarning
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12674,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12677,1
    - Dst: toklast
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12687,1
    - Dst: toklast
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12687,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12692,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12692,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12692,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12693,1
    - Dst: peek_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12693,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12695,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12696,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12699,1
    - Dst: nextc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12701,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12701,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12701,1
    - Dst: peek
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12702,1
    - Dst: peek_n
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12702,1
    - Dst: tokadd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12704,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12705,1
    - Dst: pushback
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12708,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12711,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12711,1
    - Dst: IS_LABEL_POSSIBLE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12719,1
    - Dst: IS_LABEL_SUFFIX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12720,1
    - Dst: tokfix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12722,1
    - Dst: intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12723,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12723,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12723,1
    - Dst: mrb_reserved_word
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12731,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12731,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12731,1
    - Dst: intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12737,1
    - Dst: COND_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12749,1
    - Dst: CMDARG_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12750,1
    - Dst: IS_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12766,1
    - Dst: IS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12766,1
    - Dst: intern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12782,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12782,1
    - Dst: toklen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12782,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12785,1
    - Dst: tok
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12785,1
    - Dst: local_var_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12785,1
    CyclomaticComplexity: 388
    EdgeCount: 388
    ICount: 1265
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12791
      start: 11455
    functionDepth: 7
    functionLinenumber: 11455
    functionLinenumberEnd: 12791
    functionName: parser_yylex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - newtok
    - is_strterm_type
    - CMDARG_P
    - tolower
    - CMDARG_LEXPOP
    - yywarning
    - toklen
    - toklast
    - local_var_p
    - CMDARG_PUSH
    - skip
    - tok
    - COND_PUSH
    - intn
    - ISDIGIT
    - yywarning_s
    - parse_string
    - IS_ARG
    - ISXDIGIT
    - ISLOWER
    - IS_BEG
    - identchar
    - mrb_int_read
    - heredoc_treat_nextline
    - number_literal_suffix
    - ISSPACE
    - mrb_float_read
    - new_back_ref
    - new_strterm
    - new_float
    - skips
    - strcpy
    - arg_ambiguous
    - mrb_reserved_word
    - intern
    - strncmp
    - peeks
    - new_int
    - nint
    - strncat
    - tokfix
    - COND_LEXPOP
    - peek_n
    - COND_P
    - new_str
    - pushback
    - yyerror_c
    - nextc
    - peekc_n
    - intern_op
    - yyerror
    - ISALNUM
    - tokadd
    - no_digits
    - IS_LABEL_POSSIBLE
    - IS_SPCARG
    - IS_LABEL_SUFFIX
    - intern_cstr
    - peek
    - read_escape
    - IS_END
    - new_nth_ref
    - ISUPPER
    - heredoc_identifier
    linkageType: ''
    returnType: int
    signature: int parser_yylex(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11982
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11982
    functionName: no_digits
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: no_digits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_yylex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lval
    - p
    argTypes:
    - void*
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12798
      start: 12793
    functionDepth: 8
    functionLinenumber: 12793
    functionLinenumberEnd: 12798
    functionName: yylex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 2
    functionsReached:
    - parser_yylex
    linkageType: ''
    returnType: int
    signature: int yylex(void *lval, parser_state *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parser_set_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12804,1
    - Dst: cons
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12809,1
    - Dst: local_add_f
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - p
    - cxt
    argTypes:
    - parser_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12821
      start: 12800
    functionDepth: 4
    functionLinenumber: 12800
    functionLinenumberEnd: 12821
    functionName: parser_init_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - local_add_f
    - mrb_parser_set_filename
    - cons
    linkageType: ''
    returnType: void
    signature: void parser_init_cxt(parser_state *p, mrbc_context *cxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12831,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12837,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - cxt
    argTypes:
    - parser_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12842
      start: 12823
    functionDepth: 3
    functionLinenumber: 12823
    functionLinenumberEnd: 12842
    functionName: parser_update_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_realloc
    - intn
    - sym
    linkageType: ''
    returnType: void
    signature: void parser_update_cxt(parser_state *p, mrbc_context *cxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MRB_TRY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12854,1
    - Dst: parser_init_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12861,1
    - Dst: yyparse
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12863,1
    - Dst: parser_update_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12869,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12871,1
    - Dst: MRB_CATCH
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12874,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12877,1
    - Dst: MRB_END_EXC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - parser_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12884
      start: 12847
    functionDepth: 9
    functionLinenumber: 12847
    functionLinenumberEnd: 12884
    functionName: mrb_parser_parse
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - MRB_END_EXC
    - yyerror
    - parser_init_cxt
    - mrb_parser_dump
    - MRB_CATCH
    - MRB_TRY
    - parser_update_cxt
    - yyparse
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_parser_parse(parser_state *p, mrbc_context *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_pool_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12893,1
    - Dst: mrb_pool_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12926
      start: 12886
    functionDepth: 2
    functionLinenumber: 12886
    functionLinenumberEnd: 12926
    functionName: 'parser_state*

      mrb_parser_new(mrb_state *mrb)'
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_pool_alloc
    - mrb_pool_open
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API parser_state*

      mrb_parser_new(mrb_state *mrb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12931,1
    - Dst: mrb_pool_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12934
      start: 12928
    functionDepth: 1
    functionLinenumber: 12928
    functionLinenumberEnd: 12934
    functionName: mrb_parser_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached:
    - mrb_free
    - mrb_pool_close
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_parser_free(parser_state *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_calloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12940
      start: 12936
    functionDepth: 5
    functionLinenumber: 12936
    functionLinenumberEnd: 12940
    functionName: 'mrbc_context*

      mrbc_context_new(mrb_state *mrb)'
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_calloc
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API mrbc_context*

      mrbc_context_new(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12945,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12946,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - cxt
    argTypes:
    - mrb_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12948
      start: 12942
    functionDepth: 0
    functionLinenumber: 12942
    functionLinenumberEnd: 12948
    functionName: mrbc_context_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrbc_context_free(mrb_state *mrb, mrbc_context *cxt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12954,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12955,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12957,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - c
    - s
    argTypes:
    - mrb_state*
    - mrbc_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12964
      start: 12950
    functionDepth: 4
    functionLinenumber: 12950
    functionLinenumberEnd: 12964
    functionName: mrbc_filename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached:
    - memcpy
    - mrb_free
    - mrb_malloc
    - strlen
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API *

      mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - c
    - data
    argTypes:
    - mrb_state*
    - mrbc_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12971
      start: 12966
    functionDepth: 0
    functionLinenumber: 12966
    functionLinenumberEnd: 12971
    functionName: mrbc_partial_hook
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrbc_partial_hook(mrb_state *mrb, mrbc_context *c, int (*func)(struct
      mrb_parser_state*), void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - c
    argTypes:
    - mrb_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12981
      start: 12973
    functionDepth: 0
    functionLinenumber: 12973
    functionLinenumberEnd: 12981
    functionName: mrbc_cleanup_local_variables
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 2
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrbc_cleanup_local_variables(mrb_state *mrb, mrbc_context *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:12990,1
    - Dst: yyerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13002,1
    - Dst: parser_palloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13007,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - struct mrb_parser_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13013
      start: 12983
    functionDepth: 4
    functionLinenumber: 12983
    functionLinenumberEnd: 13013
    functionName: mrb_parser_set_filename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - yyerror
    - mrb_intern_cstr
    - memmove
    - parser_palloc
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_parser_set_filename(struct mrb_parser_state *p, const char
      *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - idx
    argTypes:
    - struct mrb_parser_state*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13021
      start: 13015
    functionDepth: 0
    functionLinenumber: 13015
    functionLinenumberEnd: 13021
    functionName: mrb_parser_get_filename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_parser_get_filename(struct mrb_parser_state* p, uint16_t
      idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parser_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13029,1
    - Dst: mrb_parser_parse
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - mrb
    - f
    - prebuf
    - prebufsize
    - c
    argTypes:
    - mrb_state*
    - FILE*
    - void*
    - size_t
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13042
      start: 13024
    functionDepth: 10
    functionLinenumber: 13024
    functionLinenumberEnd: 13042
    functionName: mrb_parse_file_continue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_parser_parse
    - mrb_parser_new
    linkageType: ''
    returnType: struct mrb_parser_state
    signature: 'struct mrb_parser_state *

      mrb_parse_file_continue(mrb_state *mrb, FILE *f, const void *prebuf, size_t
      prebufsize, mrbc_context *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parse_file_continue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13048
      start: 13044
    functionDepth: 11
    functionLinenumber: 13044
    functionLinenumberEnd: 13048
    functionName: 'parser_state*

      mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c)'
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_parse_file_continue
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API parser_state*

      mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parser_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13056,1
    - Dst: mrb_parser_parse
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13063
      start: 13051
    functionDepth: 10
    functionLinenumber: 13051
    functionLinenumberEnd: 13063
    functionName: 'parser_state*

      mrb_parse_nstring(mrb_state *mrb, const char *s, size_t len, mrbc_context *c)'
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_parser_parse
    - mrb_parser_new
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API parser_state*

      mrb_parse_nstring(mrb_state *mrb, const char *s, size_t len, mrbc_context *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parse_nstring
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13068,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13069
      start: 13065
    functionDepth: 1
    functionLinenumber: 13065
    functionLinenumberEnd: 13069
    functionName: 'parser_state*

      mrb_parse_string(mrb_state *mrb, const char *s, mrbc_context *c)'
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - strlen
    - mrb_parse_nstring
    linkageType: ''
    returnType: MRB_API
    signature: 'MRB_API parser_state*

      mrb_parse_string(mrb_state *mrb, const char *s, mrbc_context *c)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13080,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13087,1
    - Dst: dump_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13088,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13089,1
    - Dst: strncat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13090,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13090,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13091,1
    - Dst: mrb_exc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13091,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13091,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13092,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13093,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13097,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13097,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13099,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13100,1
    - Dst: mrb_generate_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13103,1
    - Dst: mrb_parser_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13104,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13107,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13107,1
    - Dst: mrb_undef_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13109,1
    - Dst: mrb_codedump_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13112,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13113,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13124,1
    - Dst: mrb_vm_ci_target_class_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13126,1
    - Dst: mrb_top_run
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13128,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13128,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - mrb
    - p
    - c
    argTypes:
    - mrb_state*
    - struct mrb_parser_state*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13131
      start: 13071
    functionDepth: 16
    functionLinenumber: 13071
    functionLinenumberEnd: 13131
    functionName: mrb_load_exec
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - strcat
    - mrb_exc_new
    - mrb_exc_new_lit
    - mrb_nil_value
    - mrb_undef_value
    - mrb_top_self
    - strncat
    - mrb_codedump_all
    - dump_int
    - mrb_obj_ptr
    - mrb_vm_ci_target_class_set
    - mrb_generate_code
    - MRB_PROC_SET_TARGET_CLASS
    - mrb_obj_value
    - mrb_parser_free
    - mrb_top_run
    - strlen
    - strcpy
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_exec(mrb_state *mrb, struct mrb_parser_state *p, mrbc_context
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_exec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13137,1
    - Dst: mrb_parse_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - f
    - c
    argTypes:
    - mrb_state*
    - FILE*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13138
      start: 13134
    functionDepth: 17
    functionLinenumber: 13134
    functionLinenumberEnd: 13138
    functionName: mrb_load_file_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - mrb_parse_file
    - mrb_load_exec
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - f
    argTypes:
    - mrb_state*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13144
      start: 13140
    functionDepth: 18
    functionLinenumber: 13140
    functionLinenumberEnd: 13144
    functionName: mrb_load_file
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_load_file_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_file(mrb_state *mrb, FILE *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13164,1
    - Dst: fread
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13167,1
    - Dst: memcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13169,1
    - Dst: memchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13170,1
    - Dst: mrb_load_exec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13171,1
    - Dst: mrb_parse_file_continue
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13171,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13176,1
    - Dst: bin_to_uint32
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13179,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13180,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13181,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13183,1
    - Dst: fread
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13184,1
    - Dst: mrb_load_irep_buf_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13190,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13191,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - mrb
    - fp
    - c
    argTypes:
    - mrb_state*
    - FILE*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13194
      start: 13154
    functionDepth: 17
    functionLinenumber: 13154
    functionLinenumberEnd: 13194
    functionName: mrb_load_detect_file_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - bin_to_uint32
    - memcmp
    - RSTRING_PTR
    - fread
    - memchr
    - mrb_parse_file_continue
    - mrb_load_irep_buf_cxt
    - memcpy
    - mrb_str_new
    - mrb_str_resize
    - mrb_load_exec
    - mrb_nil_value
    - mrb_string_p
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_detect_file_cxt(mrb_state *mrb, FILE *fp, mrbc_context
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_exec
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13200,1
    - Dst: mrb_parse_nstring
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - s
    - len
    - c
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13201
      start: 13197
    functionDepth: 17
    functionLinenumber: 13197
    functionLinenumberEnd: 13201
    functionName: mrb_load_nstring_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_parse_nstring
    - mrb_load_exec
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_nstring_cxt(mrb_state *mrb, const char *s, size_t
      len, mrbc_context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_nstring_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - s
    - len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13207
      start: 13203
    functionDepth: 18
    functionLinenumber: 13203
    functionLinenumberEnd: 13207
    functionName: mrb_load_nstring
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_load_nstring_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_nstring(mrb_state *mrb, const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_nstring_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13212,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - s
    - c
    argTypes:
    - mrb_state*
    - char*
    - mrbc_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13213
      start: 13209
    functionDepth: 18
    functionLinenumber: 13209
    functionLinenumberEnd: 13213
    functionName: mrb_load_string_cxt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - strlen
    - mrb_load_nstring_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_string_cxt(mrb_state *mrb, const char *s, mrbc_context
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_load_string_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13219
      start: 13215
    functionDepth: 19
    functionLinenumber: 13215
    functionLinenumberEnd: 13219
    functionName: mrb_load_string
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 3
    functionsReached:
    - mrb_load_string_cxt
    linkageType: ''
    returnType: MRB_API
    signature: MRB_API mrb_load_string(mrb_state *mrb, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13226,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13228,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - offset
    argTypes:
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13231
      start: 13223
    functionDepth: 0
    functionLinenumber: 13223
    functionLinenumberEnd: 13231
    functionName: dump_prefix
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - putc
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_prefix(node *tree, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - tree
    - offset
    argTypes:
    - mrb_state*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13240
      start: 13233
    functionDepth: 1
    functionLinenumber: 13233
    functionLinenumberEnd: 13240
    functionName: dump_recur
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 2
    functionsReached:
    - mrb_parser_dump
    linkageType: ''
    returnType: void
    signature: void dump_recur(mrb_state *mrb, node *tree, int offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13246,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13247,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13248,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13252,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13253,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13258,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13259,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13259,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13259,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13260,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13267,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13269,1
    - Dst: MRB_OPSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13270,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13271,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13273,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13273,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13277,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13278,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13279,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13284,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13284,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - mrb
    - n
    - offset
    argTypes:
    - mrb_state*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13287
      start: 13242
    functionDepth: 5
    functionLinenumber: 13242
    functionLinenumberEnd: 13287
    functionName: dump_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_parser_dump
    - MRB_OPSYM
    - printf
    - dump_recur
    - dump_prefix
    - mrb_sym_name
    - intn
    - sym
    linkageType: ''
    returnType: void
    signature: void dump_args(mrb_state *mrb, node *n, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13298,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13306,1
    - Dst: mrb_str_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13307,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13308,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - str
    - len
    argTypes:
    - mrb_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13310
      start: 13295
    functionDepth: 8
    functionLinenumber: 13295
    functionLinenumberEnd: 13310
    functionName: str_dump
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 3
    functionsReached:
    - mrb_str_dump
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - mrb_str_new
    linkageType: ''
    returnType: char
    signature: 'char *

      str_dump(mrb_state *mrb, const char *str, int len)'
  - BBCount: 128
    BranchProfiles: []
    Callsites:
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13321,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13322,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13326,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13327,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13331,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13333,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13334,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13335,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13341,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13342,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13346,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13347,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13348,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13351,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13352,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13353,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13356,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13357,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13358,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13365,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13366,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13367,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13372,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13373,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13374,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13375,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13376,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13377,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13378,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13382,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13383,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13388,1
    - Dst: dump_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13391,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13393,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13394,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13395,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13399,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13400,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13401,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13402,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13403,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13404,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13405,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13407,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13408,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13409,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13414,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13415,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13416,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13420,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13421,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13422,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13426,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13428,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13432,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13433,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13434,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13435,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13436,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13437,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13443,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13444,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13445,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13446,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13447,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13448,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13449,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13453,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13454,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13455,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13456,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13457,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13458,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13459,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13463,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13464,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13465,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13470,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13471,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13472,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13477,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13478,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13479,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13484,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13485,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13486,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13492,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13493,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13494,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13496,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13497,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13498,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13502,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13508,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13509,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13510,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13513,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13514,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13514,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13514,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13519,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13531,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13533,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13535,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13539,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13540,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13541,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13542,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13542,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13543,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13546,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13547,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13548,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13551,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13552,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13553,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13556,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13557,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13558,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13565,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13566,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13567,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13571,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13572,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13573,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13577,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13578,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13579,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13580,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13580,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13580,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13584,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13584,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13584,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13588,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13589,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13593,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13595,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13596,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13597,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13598,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13599,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13600,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13606,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13608,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13609,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13610,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13611,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13612,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13613,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13619,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13620,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13624,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13625,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13626,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13627,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13628,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13629,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13630,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13634,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13635,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13636,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13641,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13642,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13643,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13648,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13649,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13650,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13651,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13652,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13655,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13660,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13661,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13662,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13666,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13667,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13668,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13672,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13673,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13674,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13675,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13677,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13678,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13678,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13678,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13678,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13680,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13684,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13686,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13687,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13688,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13690,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13691,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13692,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13698,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13700,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13701,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13702,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13704,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13705,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13706,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13712,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13713,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13717,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13718,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13722,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13723,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13727,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13728,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13732,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13736,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13740,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13740,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13740,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13744,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13744,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13744,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13748,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13748,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13748,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13752,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13752,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13752,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13756,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13756,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13760,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13760,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13760,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13764,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13765,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13766,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13767,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13768,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13769,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13770,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13774,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13774,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13778,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13778,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13782,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13782,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13782,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13786,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13787,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13791,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13791,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13795,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13799,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13800,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13804,1
    - Dst: str_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13804,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13804,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13804,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13808,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13809,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13813,1
    - Dst: str_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13813,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13813,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13813,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13817,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13818,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13822,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13826,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13827,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13828,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13829,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13831,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13832,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13835,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13836,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13841,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13841,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13841,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13842,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13846,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13847,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13851,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13852,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13856,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13857,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13861,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13865,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13869,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13873,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13877,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13881,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13882,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13882,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13883,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13883,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13887,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13891,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13891,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13891,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13895,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13899,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13900,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13901,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13902,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13902,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13902,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13904,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13905,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13906,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13906,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13906,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13909,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13910,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13911,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13911,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13911,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13914,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13915,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13916,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13918,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13919,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13920,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13924,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13925,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13926,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13927,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13927,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13927,1
    - Dst: nint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13929,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13930,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13931,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13931,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13931,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13934,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13935,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13936,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13936,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13936,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13938,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13939,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13940,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13944,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13945,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13946,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13947,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13948,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13952,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13953,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13954,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13954,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13954,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13961,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13962,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13963,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13966,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13967,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13967,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13967,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13972,1
    - Dst: dump_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13977,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13979,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13983,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13984,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13986,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13987,1
    - Dst: mrb_sym_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13987,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13987,1
    - Dst: dump_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13990,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13993,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13997,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:13998,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14002,1
    - Dst: dump_recur
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14003,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14007,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14012,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14018,1
    - Dst: intn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14018,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14019,1
    - Dst: dump_prefix
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14023,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14024,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14024,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14024,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14029,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14029,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14029,1
    - Dst: mrb_parser_dump
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14030,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14035,1
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14035,1
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14035,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14037,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14041,1
    CyclomaticComplexity: 140
    EdgeCount: 140
    ICount: 631
    argCount: 3
    argNames:
    - mrb
    - tree
    - offset
    argTypes:
    - mrb_state*
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14045
      start: 13313
    functionDepth: 9
    functionLinenumber: 13313
    functionLinenumberEnd: 14045
    functionName: mrb_parser_dump
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 4
    functionsReached:
    - mrb_assert
    - dump_args
    - mrb_parser_dump
    - nint
    - printf
    - dump_recur
    - dump_prefix
    - mrb_sym_name
    - intn
    - sym
    - mrb_sym_dump
    - str_dump
    linkageType: ''
    returnType: void
    signature: void mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14057,1
    - Dst: func
      Src: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c:14058,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - mrb
    - p
    - func
    - user
    argTypes:
    - mrb_state*
    - struct mrb_parser_state*
    - mrb_parser_foreach_top_variable_func*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14061
      start: 14050
    functionDepth: 1
    functionLinenumber: 14050
    functionLinenumberEnd: 14061
    functionName: mrb_parser_foreach_top_variable
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    functionUses: 1
    functionsReached:
    - func
    - sym
    linkageType: ''
    returnType: void
    signature: void mrb_parser_foreach_top_variable(mrb_state *mrb, struct mrb_parser_state
      *p, mrb_parser_foreach_top_variable_func *func, void *user)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mktemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:24,1
    - Dst: open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: mkstemp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
    functionUses: 1
    functionsReached:
    - _mktemp
    - open
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mkstemp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:44,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:46,1
    - Dst: close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:48,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:49,1
    - Dst: unlink
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:51,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:52,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: mrb_sockettest_tmppath
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
    functionUses: 0
    functionsReached:
    - close
    - mkstemp
    - mrb_sys_fail
    - mrb_str_new_cstr
    - unlink
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sockettest_tmppath(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:61,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: mrb_sockettest_win_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sockettest_win_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:71,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: mrb_sockettest_cygwin_p
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_sockettest_cygwin_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:80,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:81,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:81,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:82,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:82,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:83,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: mrb_mruby_socket_gem_test
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_socket_gem_test(mrb_state* mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:64,1
    - Dst: getnameinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:65,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:74,1
    - Dst: getnameinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - cnt
    argTypes:
    - int
    - void*
    - char*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: inet_ntop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 1
    functionsReached:
    - memcpy
    - getnameinfo
    linkageType: ''
    returnType: char
    signature: char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:89,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:91,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:99,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: inet_pton
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 1
    functionsReached:
    - memcpy
    - printf
    - getaddrinfo
    - freeaddrinfo
    linkageType: ''
    returnType: int
    signature: int inet_pton(int af, const char *src, void *dst)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:118,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:119,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:121,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:123,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:125,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:126,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:127,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:130,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:133,1
    - Dst: RSTRING_CSTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:134,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:135,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:136,1
    - Dst: mrb_integer_to_str
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:136,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:137,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:140,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:145,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:146,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:149,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:150,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:153,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:154,1
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:157,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:157,1
    - Dst: mrb_cptr_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:158,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:159,1
    - Dst: mrb_cptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:159,1
    - Dst: mrb_cv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:160,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:160,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:160,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:163,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:165,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:165,1
    - Dst: mrb_cv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:167,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:167,1
    - Dst: mrb_cptr_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:167,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:170,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:171,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:171,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:171,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:171,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:171,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:172,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:173,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:176,1
    - Dst: mrb_cv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:177,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:177,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 109
    functionDepth: 9
    functionLinenumber: 109
    functionLinenumberEnd: 180
    functionName: mrb_addrinfo_getaddrinfo
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - getaddrinfo
    - gai_strerror
    - mrb_gc_arena_save
    - mrb_cptr_p
    - mrb_fixnum_value
    - mrb_nil_p
    - mrb_cv_set
    - mrb_cptr_value
    - mrb_ary_new
    - mrb_raise
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_get_args
    - mrb_cv_get
    - mrb_string_p
    - MRB_SYM
    - mrb_funcall_id
    - mrb_integer_to_str
    - mrb_nil_value
    - mrb_cptr
    - RSTRING_CSTR
    - mrb_integer
    - freeaddrinfo
    - mrb_ary_push
    - mrb_integer_p
    - mrb_str_new
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_addrinfo_getaddrinfo(mrb_state *mrb, mrb_value klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:190,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:191,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:192,1
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:194,1
    - Dst: MRB_IVSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:194,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:195,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:196,1
    - Dst: getnameinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:198,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:198,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:198,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:198,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:198,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:200,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:200,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:202,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:203,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:203,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:203,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:204,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:205,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:205,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:205,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 182
    functionDepth: 11
    functionLinenumber: 182
    functionLinenumberEnd: 208
    functionName: mrb_addrinfo_getnameinfo
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - mrb_raise
    - MRB_IVSYM
    - RSTRING_PTR
    - mrb_get_args
    - gai_strerror
    - RSTRING_LEN
    - mrb_ary_push
    - mrb_iv_get
    - mrb_ary_new_capa
    - mrb_str_resize
    - mrb_raisef
    - getnameinfo
    - strlen
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_addrinfo_getnameinfo(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:216,1
    - Dst: MRB_IVSYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:216,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:217,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:218,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:219,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:220,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:222,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: mrb_addrinfo_unix_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_raise
    - MRB_IVSYM
    - RSTRING_LEN
    - mrb_iv_get
    - mrb_str_new_cstr
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_addrinfo_unix_path(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:244,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:245,1
    - Dst: ntohs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:247,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:248,1
    - Dst: getnameinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:249,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:249,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:250,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:251,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:251,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:251,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:252,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:253,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:253,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:254,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:254,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:255,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - mrb
    - sa
    - salen
    argTypes:
    - mrb_state*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 227
    functionDepth: 11
    functionLinenumber: 227
    functionLinenumberEnd: 258
    functionName: sa2addrlist
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - mrb_raise
    - RSTRING_PTR
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_str_new_cstr
    - mrb_str_resize
    - mrb_ary_new_capa
    - mrb_nil_value
    - mrb_fixnum_value
    - getnameinfo
    - strlen
    - ntohs
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sa2addrlist(mrb_state *mrb, const struct sockaddr *sa, socklen_t
      salen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_io_fileno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - sock
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 9
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: socket_fd
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_io_fileno
    linkageType: ''
    returnType: int
    signature: int socket_fd(mrb_state *mrb, mrb_value sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: socket_family
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - getsockname
    linkageType: ''
    returnType: int
    signature: int socket_family(int s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:289,1
    - Dst: getpeereid
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:290,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:291,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:293,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:294,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:294,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:295,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:295,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:298,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 10
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: mrb_basicsocket_getpeereid
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - getpeereid
    - socket_fd
    - mrb_raise
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_ary_new_capa
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_getpeereid(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:310,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:310,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:311,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 10
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: mrb_basicsocket_getpeername
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new
    - getpeername
    - socket_fd
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_getpeername(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:323,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:323,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:324,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 10
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: mrb_basicsocket_getsockname
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - getsockname
    - mrb_str_new
    - socket_fd
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_getsockname(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:338,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:339,1
    - Dst: getsockopt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:341,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:342,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:343,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:343,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:343,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:343,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:343,1
    - Dst: socket_family
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:344,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:345,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:346,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:346,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:346,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:346,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 329
    functionDepth: 10
    functionLinenumber: 329
    functionLinenumberEnd: 347
    functionName: mrb_basicsocket_getsockopt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - socket_fd
    - mrb_get_args
    - mrb_const_get
    - mrb_funcall_id
    - mrb_sys_fail
    - socket_family
    - mrb_str_new
    - mrb_fixnum_value
    - mrb_obj_value
    - mrb_class_get_id
    - getsockopt
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_getsockopt(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:356,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:357,1
    - Dst: recv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:358,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:358,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:358,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:360,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 11
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: mrb_basicsocket_recv
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - socket_fd
    - RSTRING_PTR
    - mrb_get_args
    - recv
    - mrb_sys_fail
    - mrb_str_resize
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_recv(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:373,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:374,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:376,1
    - Dst: recvfrom
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:377,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:377,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:377,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:377,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:379,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:380,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:381,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:382,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:383,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 365
    functionDepth: 11
    functionLinenumber: 365
    functionLinenumberEnd: 386
    functionName: mrb_basicsocket_recvfrom
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - socket_fd
    - RSTRING_PTR
    - mrb_get_args
    - recvfrom
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_str_resize
    - mrb_ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_recvfrom(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:395,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:396,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:397,1
    - Dst: send
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:398,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:398,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:398,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:398,1
    - Dst: sendto
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:400,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:403,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 388
    functionDepth: 10
    functionLinenumber: 388
    functionLinenumberEnd: 405
    functionName: mrb_basicsocket_send
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - socket_fd
    - send
    - RSTRING_PTR
    - sendto
    - mrb_get_args
    - RSTRING_LEN
    - mrb_sys_fail
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_send(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:416,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:417,1
    - Dst: ioctlsocket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:419,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:421,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:423,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:425,1
    - Dst: fcntl
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:430,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:431,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 407
    functionDepth: 10
    functionLinenumber: 407
    functionLinenumberEnd: 434
    functionName: mrb_basicsocket_setnonblock
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - ioctlsocket
    - socket_fd
    - mrb_get_args
    - fcntl
    - mrb_sys_fail
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_setnonblock(mrb_state *mrb, mrb_value self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:443,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:445,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:446,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:448,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:449,1
    - Dst: mrb_true_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:451,1
    - Dst: mrb_false_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:451,1
    - Dst: mrb_test
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:452,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:453,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:454,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:456,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:457,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:459,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:460,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:463,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:466,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:466,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:467,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:468,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:468,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:468,1
    - Dst: mrb_as_int
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:469,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:469,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:469,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:470,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:470,1
    - Dst: mrb_ensure_string_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:471,1
    - Dst: mrb_argnum_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:473,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:476,1
    - Dst: setsockopt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:477,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:477,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:477,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:478,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 436
    functionDepth: 15
    functionLinenumber: 436
    functionLinenumberEnd: 480
    functionName: mrb_basicsocket_setsockopt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_true_p
    - mrb_obj_classname
    - mrb_as_int
    - mrb_sys_fail
    - mrb_argnum_error
    - mrb_test
    - mrb_fixnum_value
    - setsockopt
    - mrb_raise
    - RSTRING_PTR
    - mrb_get_args
    - mrb_string_p
    - MRB_SYM
    - socket_fd
    - mrb_funcall_id
    - mrb_ensure_string_type
    - mrb_integer
    - RSTRING_LEN
    - strcmp
    - mrb_false_p
    - mrb_integer_p
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_setsockopt(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:487,1
    - Dst: shutdown
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:488,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:488,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:489,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 10
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: mrb_basicsocket_shutdown
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - socket_fd
    - mrb_get_args
    - mrb_sys_fail
    - mrb_fixnum_value
    - shutdown
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_shutdown(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:498,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:500,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 493
    functionDepth: 9
    functionLinenumber: 493
    functionLinenumberEnd: 506
    functionName: mrb_basicsocket_set_is_socket
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - mrb_get_args
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_basicsocket_set_is_socket(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:515,1
    - Dst: inet_ntop
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:517,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:518,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 9
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: mrb_ipsocket_ntop
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - mrb_str_new_cstr
    - inet_ntop
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ipsocket_ntop(mrb_state *mrb, mrb_value klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:529,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:531,1
    - Dst: inet_pton
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:536,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:538,1
    - Dst: inet_pton
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:541,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:543,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:545,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:548,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:549,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 522
    functionDepth: 9
    functionLinenumber: 522
    functionLinenumberEnd: 550
    functionName: mrb_ipsocket_pton
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - memcpy
    - inet_pton
    - mrb_str_new
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ipsocket_pton(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:562,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:564,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:565,1
    - Dst: recvfrom
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:567,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:567,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:570,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:572,1
    - Dst: sa2addrlist
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:573,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:574,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:575,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 552
    functionDepth: 12
    functionLinenumber: 552
    functionLinenumberEnd: 578
    functionName: mrb_ipsocket_recvfrom
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - socket_fd
    - RSTRING_PTR
    - mrb_get_args
    - sa2addrlist
    - recvfrom
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_str_resize
    - mrb_ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ipsocket_recvfrom(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:591,1
    - Dst: gethostname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:592,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:592,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:593,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:594,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:594,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - cls
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 580
    functionDepth: 11
    functionLinenumber: 580
    functionLinenumberEnd: 596
    functionName: mrb_socket_gethostname
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - RSTRING_PTR
    - mrb_sys_fail
    - mrb_str_resize
    - gethostname
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_gethostname(mrb_state *mrb, mrb_value cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:604,1
    - Dst: accept
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:605,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:607,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 598
    functionDepth: 9
    functionLinenumber: 598
    functionLinenumberEnd: 610
    functionName: mrb_socket_accept
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_sys_fail
    - mrb_get_args
    - mrb_fixnum_value
    - accept
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_accept(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:620,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:622,1
    - Dst: accept
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:623,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:623,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:625,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:628,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:629,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:630,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:630,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 612
    functionDepth: 11
    functionLinenumber: 612
    functionLinenumberEnd: 633
    functionName: mrb_socket_accept2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - RSTRING_PTR
    - mrb_get_args
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_str_resize
    - mrb_ary_new_capa
    - mrb_fixnum_value
    - accept
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_accept2(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:641,1
    - Dst: bind
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:642,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:642,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:642,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:643,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 9
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: mrb_socket_bind
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_sys_fail
    - mrb_nil_value
    - bind
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_bind(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:654,1
    - Dst: connect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:655,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:655,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:655,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:656,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 648
    functionDepth: 9
    functionLinenumber: 648
    functionLinenumberEnd: 659
    functionName: mrb_socket_connect
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_sys_fail
    - connect
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_connect(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:666,1
    - Dst: listen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:667,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:668,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 661
    functionDepth: 9
    functionLinenumber: 661
    functionLinenumberEnd: 671
    functionName: mrb_socket_listen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - listen
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_listen(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:679,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:680,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:681,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:683,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 9
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: mrb_socket_sockaddr_family
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_sockaddr_family(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:691,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:692,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:697,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:698,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:699,1
    - Dst: mrb_str_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:701,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:702,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:707,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:707,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:707,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:708,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 687
    functionDepth: 11
    functionLinenumber: 687
    functionLinenumberEnd: 712
    functionName: mrb_socket_sockaddr_un
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_capa
    - mrb_raise
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - memcpy
    - mrb_str_resize
    - mrb_raisef
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_sockaddr_un(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:718,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:719,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:725,1
    - Dst: socketpair
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:726,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:727,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:730,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:731,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:731,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:732,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 714
    functionDepth: 9
    functionLinenumber: 714
    functionLinenumberEnd: 735
    functionName: mrb_socket_socketpair
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - mrb_ary_push
    - mrb_sys_fail
    - mrb_ary_new_capa
    - mrb_fixnum_value
    - mrb_nil_value
    - socketpair
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_socketpair(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:743,1
    - Dst: socket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:744,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:746,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 737
    functionDepth: 9
    functionLinenumber: 737
    functionLinenumberEnd: 748
    functionName: mrb_socket_socket
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - socket
    - mrb_get_args
    - mrb_fixnum_value
    - mrb_sys_fail
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_socket_socket(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:753,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:754,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:758,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 750
    functionDepth: 7
    functionLinenumber: 750
    functionLinenumberEnd: 759
    functionName: mrb_tcpsocket_allocate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - MRB_INSTANCE_TT
    - mrb_class_ptr
    - mrb_obj_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_tcpsocket_allocate(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:770,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:770,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:771,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 767
    functionDepth: 10
    functionLinenumber: 767
    functionLinenumberEnd: 773
    functionName: mrb_win32_basicsocket_close
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - closesocket
    - mrb_raise
    - socket_fd
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_win32_basicsocket_close(mrb_state *mrb, mrb_value self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:779,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:782,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:784,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:787,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:788,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:790,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:791,1
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:794,1
    - Dst: recv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:795,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:795,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:800,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:802,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:806,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:809,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:810,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 775
    functionDepth: 11
    functionLinenumber: 775
    functionLinenumberEnd: 816
    functionName: mrb_win32_basicsocket_sysread
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - socket_fd
    - RSTRING_PTR
    - mrb_raise
    - mrb_get_args
    - RSTRING_LEN
    - recv
    - mrb_sys_fail
    - mrb_str_new_cstr
    - mrb_str_new
    - mrb_str_resize
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_win32_basicsocket_sysread(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:821,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 4
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: mrb_win32_basicsocket_sysseek
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_win32_basicsocket_sysseek(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_fd
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:832,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:833,1
    - Dst: send
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:834,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:834,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:834,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:836,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 825
    functionDepth: 10
    functionLinenumber: 825
    functionLinenumberEnd: 838
    functionName: mrb_win32_basicsocket_syswrite
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - socket_fd
    - send
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_sys_fail
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_win32_basicsocket_syswrite(mrb_state *mrb, mrb_value
      self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:851,1
    - Dst: MAKEWORD
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:851,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:853,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:856,1
    - Dst: mrb_mod_cv_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:857,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:857,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:857,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:858,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:858,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:858,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:859,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:859,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:861,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:861,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:864,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:864,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:866,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:867,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:867,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:867,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:868,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:868,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:869,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:869,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:870,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:870,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:871,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:871,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:872,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:872,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:873,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:873,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:873,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:875,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:875,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:875,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:878,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:878,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:878,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:879,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:879,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:880,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:880,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:882,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:883,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:883,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:884,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:884,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:885,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:885,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:885,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:887,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:888,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:888,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:889,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:891,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:894,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:895,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:895,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:896,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:896,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:897,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:897,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:898,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:898,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:899,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:899,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:900,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:900,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:901,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:901,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:904,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:904,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:907,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:907,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:908,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:908,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:912,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:923,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:923,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:924,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:924,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:924,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:925,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:925,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:926,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:926,1
    - Dst: mrb_define_module_under
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 842
    functionDepth: 6
    functionLinenumber: 842
    functionLinenumberEnd: 937
    functionName: mrb_mruby_socket_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - mrb_mod_cv_set
    - MRB_ARGS_OPT
    - mrb_raise
    - mrb_define_module_under
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - mrb_nil_value
    - WSAStartup
    - mrb_class_get_id
    - MAKEWORD
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_socket_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: define_const
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_const(SYM)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_mod_cv_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:943,1
    - Dst: mrb_class_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:943,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:943,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:943,1
    - Dst: mrb_cptr_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:944,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:945,1
    - Dst: mrb_cptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:945,1
    - Dst: WSACleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 950
    functionName: mrb_mruby_socket_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_mod_cv_get
    - freeaddrinfo
    - mrb_cptr_p
    - mrb_cptr
    - mrb_class_get_id
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_socket_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_module_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:19,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:19,1
    - Dst: mrb_class_get_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:20,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:20,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - func
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: domain_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_raisef
    - mrb_class_get_under_id
    - mrb_module_get_id
    linkageType: ''
    returnType: void
    signature: void domain_error(mrb_state *mrb, const char *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:33,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:36,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:40,1
    - Dst: sqrt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:40,1
    - Dst: _copysign
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: asinh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - fabs
    - log
    - sqrt
    - _copysign
    linkageType: ''
    returnType: double
    signature: double asinh(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:54,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:58,1
    - Dst: sqrt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: acosh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double acosh(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:69,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:77,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: atanh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - fabs
    - log
    linkageType: ''
    returnType: double
    signature: double atanh(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:90,1
    - Dst: pow
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:91,1
    - Dst: _copysign
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: cbrt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 2
    functionsReached:
    - fabs
    - _copysign
    - pow
    linkageType: ''
    returnType: double
    signature: double cbrt(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:114,1
    - Dst: erfc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:115,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: erf
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - erfc
    - fabs
    linkageType: ''
    returnType: double
    signature: double erf(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:142,1
    - Dst: erf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:143,1
    - Dst: erfc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:146,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:158,1
    - Dst: exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 160
    functionName: erfc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 2
    functionsReached:
    - erf
    - exp
    - erfc
    - fabs
    linkageType: ''
    returnType: double
    signature: double erfc(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:173,1
    - Dst: log10
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: log2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - log10
    linkageType: ''
    returnType: double
    signature: double log2(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:194,1
    - Dst: sin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:195,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 9
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: math_sin
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_args
    - sin
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_sin(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:212,1
    - Dst: cos
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:213,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 9
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: math_cos
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - cos
    - mrb_get_args
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_cos(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:229,1
    - Dst: tan
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:230,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 9
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: math_tan
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_args
    - tan
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_tan(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:251,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:253,1
    - Dst: asin
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:255,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: math_asin
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - domain_error
    - mrb_get_args
    - asin
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_asin(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:271,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:273,1
    - Dst: acos
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:275,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 9
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: math_acos
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - acos
    - domain_error
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_acos(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:291,1
    - Dst: atan
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:292,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 9
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: math_atan
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - atan
    - mrb_get_args
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_atan(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:321,1
    - Dst: atan2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:322,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 9
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: math_atan2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - atan2
    - mrb_get_args
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_atan2(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:344,1
    - Dst: sinh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:345,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 9
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: math_sinh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - sinh
    - mrb_get_args
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_sinh(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:361,1
    - Dst: cosh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:362,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 9
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: math_cosh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - cosh
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_cosh(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:379,1
    - Dst: tanh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:380,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 9
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: math_tanh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_args
    - tanh
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_tanh(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:401,1
    - Dst: asinh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:403,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 9
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: math_asinh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_args
    - asinh
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_asinh(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:419,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:421,1
    - Dst: acosh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:423,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 9
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: math_acosh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - domain_error
    - mrb_get_args
    - acosh
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_acosh(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:439,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:441,1
    - Dst: atanh
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:443,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 9
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: math_atanh
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - atanh
    - domain_error
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_atanh(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:468,1
    - Dst: exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:469,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: math_exp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - exp
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_exp(mrb_state *mrb, mrb_value obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:495,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:497,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:499,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:502,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:504,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 489
    functionDepth: 9
    functionLinenumber: 489
    functionLinenumberEnd: 507
    functionName: math_log
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - domain_error
    - mrb_get_args
    - log
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_log(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:526,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:528,1
    - Dst: log2
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:530,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 9
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: math_log2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - domain_error
    - mrb_get_args
    - log2
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_log2(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:551,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:553,1
    - Dst: log10
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:555,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 546
    functionDepth: 9
    functionLinenumber: 546
    functionLinenumberEnd: 558
    functionName: math_log10
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - log10
    - domain_error
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_log10(mrb_state *mrb, mrb_value obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:572,1
    - Dst: domain_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:574,1
    - Dst: sqrt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:576,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 567
    functionDepth: 9
    functionLinenumber: 567
    functionLinenumberEnd: 579
    functionName: math_sqrt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - domain_error
    - mrb_get_args
    - sqrt
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_sqrt(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:618,1
    - Dst: cbrt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:619,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 9
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: math_cbrt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - cbrt
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_cbrt(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:642,1
    - Dst: frexp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:643,1
    - Dst: mrb_assoc_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:645,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:645,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 636
    functionDepth: 9
    functionLinenumber: 636
    functionLinenumberEnd: 646
    functionName: math_frexp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - frexp
    - mrb_get_args
    - mrb_float_value
    - mrb_fixnum_value
    - mrb_assoc_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_frexp(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:663,1
    - Dst: ldexp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:664,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 657
    functionDepth: 9
    functionLinenumber: 657
    functionLinenumberEnd: 667
    functionName: math_ldexp
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - ldexp
    - mrb_get_args
    - mrb_float_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_ldexp(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:683,1
    - Dst: hypot
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:684,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 687
    functionName: math_hypot
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - hypot
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_hypot(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:700,1
    - Dst: erf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:701,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 695
    functionDepth: 9
    functionLinenumber: 695
    functionLinenumberEnd: 704
    functionName: math_erf
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - erf
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_erf(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:718,1
    - Dst: erfc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:719,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 713
    functionDepth: 9
    functionLinenumber: 713
    functionLinenumberEnd: 722
    functionName: math_erfc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_get_args
    - erfc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value math_erfc(mrb_state *mrb, mrb_value obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:729,1
    - Dst: mrb_define_class_under_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:731,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:731,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:734,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:734,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:734,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:736,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:736,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:736,1
    - Dst: atan
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:736,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:740,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:740,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:740,1
    - Dst: mrb_define_const_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:742,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:742,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:742,1
    - Dst: exp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:742,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:745,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:745,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:746,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:746,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:747,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:747,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:749,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:749,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:750,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:750,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:751,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:751,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:752,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:752,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:754,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:754,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:755,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:755,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:756,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:756,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:758,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:758,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:759,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:759,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:760,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:760,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:762,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:762,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:763,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:763,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:763,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:764,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:764,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:765,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:765,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:766,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:766,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:767,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:767,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:769,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:769,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:770,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:770,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:772,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:772,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:774,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:774,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:775,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 725
    functionDepth: 15
    functionLinenumber: 725
    functionLinenumberEnd: 776
    functionName: mrb_mruby_math_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_module_function
    - exp
    - MRB_ARGS_OPT
    - atan
    - mrb_define_const_id
    - mrb_float_value
    - mrb_define_class_under_id
    - MRB_ARGS_REQ
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_math_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: mrb_mruby_math_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_math_gem_final(mrb_state* mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_eq
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - tag
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: find_catcher
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c
    functionUses: 0
    functionsReached:
    - mrb_obj_eq
    linkageType: ''
    returnType: mrb_callinfo
    signature: 'mrb_callinfo *

      find_catcher(mrb_state *mrb, mrb_value tag)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:89,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:90,1
    - Dst: find_catcher
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:93,1
    - Dst: MRB_OBJ_ALLOC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:95,1
    - Dst: mrb_break_value_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:96,1
    - Dst: mrb_break_proc_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:97,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:98,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:98,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:102,1
    - Dst: mrb_obj_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:102,1
    - Dst: mrb_exc_get_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:102,1
    - Dst: MRB_ERROR_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:102,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 11
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: mrb_f_throw
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c
    functionUses: 0
    functionsReached:
    - MRB_OBJ_ALLOC
    - mrb_exc_raise
    - mrb_obj_value
    - mrb_get_args
    - mrb_break_proc_set
    - mrb_exc_get_id
    - find_catcher
    - mrb_obj_new
    - mrb_break_value_set
    - MRB_ERROR_SYM
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_f_throw(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MRB_PRESYM_INIT_SYMBOLS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:113,1
    - Dst: MRB_PRESYM_INIT_SYMBOLS
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:114,1
    - Dst: MRB_METHOD_FROM_PROC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:115,1
    - Dst: mrb_define_method_raw
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:116,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:116,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:118,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: mrb_mruby_catch_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c
    functionUses: 0
    functionsReached:
    - MRB_SYM
    - mrb_define_method
    - MRB_METHOD_FROM_PROC
    - MRB_ARGS_ARG
    - mrb_define_method_raw
    - MRB_PRESYM_INIT_SYMBOLS
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_catch_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: mrb_mruby_catch_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_catch_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_float
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: mrb_complex_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 11
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_new(mrb_state *mrb, mrb_float x, mrb_float y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: mrb_complex_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 5
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: mrb_complex_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 5
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: mrb_complex_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 5
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: mrb_complex_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 4
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_div(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: mrb_complex_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 1
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_to_i(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: mrb_complex_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 1
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_complex_to_f(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: mrb_rational_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 4
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_new(mrb_state *mrb, mrb_int x, mrb_int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: mrb_rational_add
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 3
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_add(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: mrb_rational_sub
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 3
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_sub(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: mrb_rational_mul
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 3
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_mul(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - x
    - y
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: mrb_rational_div
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 3
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_div(mrb_state *mrb, mrb_value x, mrb_value y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: mrb_rational_to_i
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 1
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_to_i(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - x
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: mrb_rational_to_f
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
    functionUses: 2
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_rational_to_f(mrb_state *mrb, mrb_value x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:55,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: usage
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 10
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:67,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:70,1
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:71,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:79,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:80,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - mrb
    - infile
    - ext
    argTypes:
    - mrb_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: get_outfilename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    - strrchr
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      get_outfilename(mrb_state *mrb, char *infile, const char *ext)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:104,1
    - Dst: get_outfilename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:110,1
    - Dst: get_outfilename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:113,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:128,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:136,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:147,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:155,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:156,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:157,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:159,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:163,1
    - Dst: mrb_show_copyright
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:164,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:165,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:167,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:171,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:175,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 92
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - args
    argTypes:
    - mrb_state*
    - int
    - char**
    - struct mrbc_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 189
    functionName: parse_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 3
    functionsReached:
    - get_outfilename
    - mrb_show_version
    - exit
    - strcmp
    - fprintf
    - mrb_show_copyright
    linkageType: ''
    returnType: int
    signature: int parse_args(mrb_state *mrb, int argc, char **argv, struct mrbc_args
      *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:194,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct mrbc_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: cleanup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 2
    functionsReached:
    - mrb_free
    - mrb_close
    linkageType: ''
    returnType: void
    signature: void cleanup(mrb_state *mrb, struct mrbc_args *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:205,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:211,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:213,1
    - Dst: mrb_parser_set_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct mrb_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: partial_hook
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 1
    functionsReached:
    - fclose
    - fopen
    - fprintf
    - mrb_parser_set_filename
    linkageType: ''
    returnType: int
    signature: int partial_hook(struct mrb_parser_state *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:229,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:240,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:241,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:242,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:245,1
    - Dst: mrbc_partial_hook
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:249,1
    - Dst: mrb_load_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:252,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:253,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:254,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:255,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct mrbc_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 220
    functionDepth: 18
    functionLinenumber: 220
    functionLinenumberEnd: 259
    functionName: load_file
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 0
    functionsReached:
    - fclose
    - mrbc_partial_hook
    - mrb_load_file_cxt
    - mrbc_filename
    - fopen
    - fprintf
    - mrbc_context_free
    - mrb_nil_value
    - mrb_undef_p
    - mrbc_context_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value load_file(mrb_state *mrb, struct mrbc_args *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_irep_remove_lv
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:268,1
    - Dst: mrb_dump_irep_cstruct
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:272,1
    - Dst: mrb_dump_irep_cfunc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:275,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:278,1
    - Dst: mrb_dump_irep_binary
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:282,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - wfp
    - outfile
    - proc
    - args
    argTypes:
    - mrb_state*
    - FILE*
    - char*
    - struct RProc*
    - struct mrbc_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 288
    functionName: dump_file
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 0
    functionsReached:
    - mrb_dump_irep_cstruct
    - mrb_dump_irep_cfunc
    - mrb_irep_remove_lv
    - fprintf
    - mrb_dump_irep_binary
    linkageType: ''
    returnType: int
    signature: int dump_file(mrb_state *mrb, FILE *wfp, const char *outfile, struct
      RProc *proc, struct mrbc_args *args)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open_core
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:293,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:300,1
    - Dst: parse_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:304,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:306,1
    - Dst: usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:307,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:311,1
    - Dst: get_outfilename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:316,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:319,1
    - Dst: load_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:325,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:326,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:327,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:331,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:335,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:340,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:343,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:344,1
    - Dst: fprintf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:349,1
    - Dst: dump_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:352,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:352,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:353,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c:354,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 359
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 0
    functionsReached:
    - get_outfilename
    - fclose
    - mrb_proc_ptr
    - fputs
    - load_file
    - parse_args
    - strcmp
    - dump_file
    - fopen
    - printf
    - fprintf
    - usage
    - mrb_nil_p
    - cleanup
    - mrb_open_core
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: mrb_init_mrblib
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_init_mrblib(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: mrb_init_mrbgems
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_init_mrbgems(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: mrb_final_mrbgems
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_final_mrbgems(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:34,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:36,1
    - Dst: mrb_check_array_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:37,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:37,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:38,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:38,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:39,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:39,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: mrb_ary_assoc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_check_array_type
    - mrb_get_arg1
    - mrb_equal
    - RARRAY_LEN
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_assoc(mrb_state *mrb, mrb_value ary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:64,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:66,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:67,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:68,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:69,1
    - Dst: mrb_equal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:70,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:70,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: mrb_ary_rassoc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_get_arg1
    - mrb_array_p
    - mrb_equal
    - RARRAY_LEN
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_rassoc(mrb_state *mrb, mrb_value ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:93,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ary
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: mrb_ary_at
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_at(mrb_state *mrb, mrb_value ary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - ary
    - n
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: ary_ref
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 4
    functionsReached:
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:110,1
    - Dst: mrb_get_values_at
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:112,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 9
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: mrb_ary_values_at
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_get_values_at
    - mrb_get_args
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_values_at(mrb_state *mrb, mrb_value self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:141,1
    - Dst: mrb_ary_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:146,1
    - Dst: mrb_get_argc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:148,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:149,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:151,1
    - Dst: mrb_range_beg_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:152,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:152,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:155,1
    - Dst: mrb_ary_delete_at
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:157,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:160,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:162,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:164,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:165,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:166,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:169,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:170,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:172,1
    - Dst: mrb_ary_resize
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 10
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: mrb_ary_slice_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_get_arg1
    - mrb_ary_modify
    - mrb_ary_resize
    - mrb_ary_ptr
    - mrb_range_beg_len
    - mrb_ary_delete_at
    - mrb_get_args
    - ARY_LEN
    - mrb_ary_push
    - mrb_type
    - mrb_ary_new_capa
    - ARY_PTR
    - mrb_get_argc
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_slice_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:198,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:199,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:200,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:203,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 9
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: mrb_ary_compact
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_new
    - mrb_ary_push
    - RARRAY_LEN
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_compact(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:224,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:226,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:227,1
    - Dst: mrb_ary_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:229,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:231,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:236,1
    - Dst: ARY_SET_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:237,1
    - Dst: RARRAY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: mrb_ary_compact_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_modify
    - mrb_ary_ptr
    - RARRAY
    - ARY_LEN
    - ARY_PTR
    - ARY_SET_LEN
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_compact_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:262,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:264,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:265,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:266,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 281
    functionName: mrb_ary_rotate
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_ary_new
    - mrb_get_args
    - mrb_ary_push
    - RARRAY_LEN
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_rotate(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - beg
    - end
    argTypes:
    - mrb_value*
    - mrb_int
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: rev
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rev(mrb_value *p, mrb_int beg, mrb_int end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:313,1
    - Dst: mrb_ary_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:315,1
    - Dst: ARY_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:316,1
    - Dst: ARY_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:317,1
    - Dst: mrb_ary_modify
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:320,1
    - Dst: rev
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:339,1
    - Dst: rev
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:343,1
    - Dst: rev
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 309
    functionDepth: 9
    functionLinenumber: 309
    functionLinenumberEnd: 349
    functionName: mrb_ary_rotate_bang
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_ary_modify
    - rev
    - mrb_ary_ptr
    - mrb_get_args
    - ARY_LEN
    - ARY_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ary_rotate_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:356,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:356,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:357,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:357,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:358,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:358,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:359,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:359,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:360,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:360,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:361,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:361,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:362,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:362,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:363,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:363,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:364,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: mrb_mruby_array_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ARG
    - MRB_ARGS_OPT
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_array_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: mrb_mruby_array_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_array_ext_gem_final(mrb_state* mrb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:7,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - a
    - b
    - excl
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - mrb_bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 4
    functionDepth: 3
    functionLinenumber: 4
    functionLinenumberEnd: 17
    functionName: r_less
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_cmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool r_less(mrb_state *mrb, mrb_value a, mrb_value b, mrb_bool
      excl)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:40,1
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:41,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:44,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:45,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:47,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:47,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:47,1
    - Dst: mrb_range_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:49,1
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:50,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:51,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:52,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:55,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:55,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:55,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:58,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:60,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:60,1
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:60,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:62,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:62,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:62,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:63,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:65,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:67,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:67,1
    - Dst: mrb_cmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:67,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:69,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:69,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:69,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:70,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:74,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:75,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:75,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:75,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:77,1
    - Dst: mrb_bool_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:78,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:78,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:78,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:80,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:80,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:80,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:82,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:82,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:82,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:83,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:87,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:87,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:88,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:89,1
    - Dst: r_less
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:91,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:91,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:92,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:94,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 37
    functionDepth: 7
    functionLinenumber: 37
    functionLinenumberEnd: 95
    functionName: range_cover
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - r_less
    - mrb_get_arg1
    - mrb_true_value
    - RANGE_EXCL
    - RANGE_END
    - mrb_range_p
    - mrb_range_ptr
    - mrb_false_value
    - mrb_nil_p
    - mrb_bool_value
    - mrb_cmp
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_cover(mrb_state *mrb, mrb_value range)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:112,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:118,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:119,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:120,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:120,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:120,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:121,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:124,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:125,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:126,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:128,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:129,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:134,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:135,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:137,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:138,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:145,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:145,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:145,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:149,1
    - Dst: floor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:153,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:156,1
    - Dst: floor
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:157,1
    - Dst: isinf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:159,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:160,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:161,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 164
    functionName: range_size
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - RANGE_EXCL
    - mrb_integer
    - mrb_float_p
    - RANGE_END
    - mrb_float_value
    - mrb_range_ptr
    - fabs
    - mrb_integer_p
    - mrb_fixnum_value
    - mrb_nil_p
    - isinf
    - mrb_float
    - floor
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_size(mrb_state *mrb, mrb_value range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_range_ptr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:169,1
    - Dst: RANGE_BEG
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:173,1
    - Dst: RANGE_END
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:174,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:175,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:175,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:176,1
    - Dst: RANGE_EXCL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:179,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:181,1
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:181,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:182,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:183,1
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:186,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - range
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: range_size
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached:
    - RANGE_BEG
    - RANGE_EXCL
    - mrb_integer
    - RANGE_END
    - mrb_int_value
    - mrb_range_ptr
    - mrb_integer_p
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value range_size(mrb_state *mrb, mrb_value range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:195,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:197,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:197,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:198,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: mrb_mruby_range_ext_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    - MRB_ARGS_REQ
    - mrb_class_get
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_range_ext_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: mrb_mruby_range_ext_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_range_ext_gem_final(mrb_state* mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_integer_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:26,1
    - Dst: mrb_integer
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:27,1
    - Dst: mrb_float_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:31,1
    - Dst: mrb_float
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:32,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:36,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:36,1
    - Dst: mrb_complex_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:37,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - mrb
    - c
    - r
    - i
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_float*
    - mrb_float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: cmath_get_complex
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - mrb_integer
    - mrb_obj_is_kind_of
    - mrb_raise
    - mrb_float_p
    - mrb_integer_p
    - mrb_complex_get
    - mrb_float
    - mrb_class_get
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool cmath_get_complex(mrb_state *mrb, mrb_value c, mrb_float *r,
      mrb_float *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: F
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: F
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CX
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CX(r,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: CX
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CX(r,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:65,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:65,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mrb_complex
    - mrb_float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: CXDIVf
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - creal
    - cimag
    - CX
    linkageType: ''
    returnType: mrb_complex
    signature: mrb_complex CXDIVf(mrb_complex x, mrb_float y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:74,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:76,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:79,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:79,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:80,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:81,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:81,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:82,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:82,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:85,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:85,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:86,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:87,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:87,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:88,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:88,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mrb_complex
    - mrb_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: CXDIVc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - creal
    - cimag
    - CX
    linkageType: ''
    returnType: mrb_complex
    signature: mrb_complex CXDIVc(mrb_complex a, mrb_complex b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: CX
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CX(r,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: creal
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: creal(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: cimag
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cimag(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: FC
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FC(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: CX
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CX(r,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: CXDIVf
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CXDIVf(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: CXDIVc
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CXDIVc(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: FC
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FC(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 141
    functionName: DEF_CMATH_METHOD
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_CMATH_METHOD(name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:152,1
    - Dst: cmath_get_complex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:159,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:160,1
    - Dst: FC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:161,1
    - Dst: CXDIVc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:162,1
    - Dst: FC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:162,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:162,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:163,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:163,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:163,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:165,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:165,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:166,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:166,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 9
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: cmath_log
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - CXDIVc
    - FC
    - creal
    - mrb_complex_new
    - mrb_get_args
    - cimag
    - F
    - CX
    - mrb_float_value
    - cmath_get_complex
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cmath_log(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:172,1
    - Dst: cmath_get_complex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:174,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:175,1
    - Dst: CXDIVf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:176,1
    - Dst: FC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:176,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:176,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:177,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:177,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:177,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:179,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: cmath_log10
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - FC
    - mrb_get_arg1
    - mrb_complex_new
    - creal
    - log
    - CXDIVf
    - cimag
    - F
    - CX
    - mrb_float_value
    - cmath_get_complex
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cmath_log10(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:185,1
    - Dst: cmath_get_complex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:187,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:188,1
    - Dst: CXDIVf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:189,1
    - Dst: FC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:189,1
    - Dst: log
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:189,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:190,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:190,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:190,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:192,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 7
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: cmath_log2
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - FC
    - mrb_get_arg1
    - mrb_complex_new
    - creal
    - log
    - CXDIVf
    - cimag
    - F
    - CX
    - mrb_float_value
    - cmath_get_complex
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cmath_log2(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_arg1
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:198,1
    - Dst: cmath_get_complex
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:200,1
    - Dst: CX
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:201,1
    - Dst: FC
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:202,1
    - Dst: mrb_complex_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:203,1
    - Dst: creal
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:203,1
    - Dst: cimag
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:203,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:205,1
    - Dst: F
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: cmath_sqrt
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - FC
    - mrb_get_arg1
    - mrb_complex_new
    - creal
    - cimag
    - F
    - CX
    - mrb_float_value
    - cmath_get_complex
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value cmath_sqrt(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:239,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:241,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:241,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:243,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:243,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:244,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:244,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:245,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:245,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:247,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:247,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:248,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:248,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:249,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:249,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:251,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:251,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:252,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:252,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:253,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:253,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:255,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:255,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:256,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:256,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:257,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:257,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:259,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:259,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:260,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:260,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:260,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:261,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:261,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:262,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:262,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:263,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 235
    functionDepth: 13
    functionLinenumber: 235
    functionLinenumberEnd: 264
    functionName: mrb_mruby_cmath_gem_init
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - mrb_module_get
    - MRB_ARGS_OPT
    - mrb_include_module
    - MRB_ARGS_REQ
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_cmath_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: mrb_mruby_cmath_gem_final
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_cmath_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: mrb_debug_strnlen
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t mrb_debug_strnlen(const char *s, size_t maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_strnlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:19,1
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:20,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mrb
    - s
    - size
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: mrdb_strndup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_debug_strnlen
    - mrb_malloc_simple
    linkageType: ''
    returnType: char
    signature: 'char *

      mrdb_strndup(mrb_state *mrb, const char *s, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:31,1
    - Dst: mrb_malloc_simple
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:32,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - s
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: mrdb_strdup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_malloc_simple
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      mrdb_strdup(mrb_state *mrb, const char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - error
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: print_api_common_error
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void print_api_common_error(int32_t error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ul
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: STRTOUL
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRTOUL(ul,s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:73,1
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:77,1
    - Dst: ISCNTRL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:77,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:78,1
    - Dst: STRTOUL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - args
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: parse_breakpoint_no
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - STRTOUL
    - ISBLANK
    - strlen
    - ISDIGIT
    - ISCNTRL
    linkageType: ''
    returnType: int32_t
    signature: int32_t parse_breakpoint_no(char* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:94,1
    - Dst: print_api_common_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mrb
    - mrdb
    - func
    argTypes:
    - mrb_state*
    - mrdb_state*
    - all_command_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: exe_set_command_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - func
    - print_api_common_error
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool exe_set_command_all(mrb_state *mrb, mrdb_state *mrdb, all_command_func
      func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_breakpoint_no
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:111,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:113,1
    - Dst: func
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:116,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:118,1
    - Dst: print_api_common_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - mrdb
    - func
    argTypes:
    - mrb_state*
    - mrdb_state*
    - select_command_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: exe_set_command_select
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - func
    - printf
    - parse_breakpoint_no
    - print_api_common_error
    linkageType: ''
    returnType: void
    signature: void exe_set_command_select(mrb_state *mrb, mrdb_state *mrdb, select_command_func
      func)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:131,1
    - Dst: ISCNTRL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:131,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:132,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:136,1
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:140,1
    - Dst: ISCNTRL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:140,1
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:141,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:142,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:148,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - args
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: check_bptype
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    - printf
    - ISBLANK
    - strlen
    - ISDIGIT
    - ISCNTRL
    linkageType: ''
    returnType: mrb_debug_bptype
    signature: mrb_debug_bptype check_bptype(char* args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:162,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:167,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bp
    argTypes:
    - mrb_debug_breakpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 175
    functionName: print_breakpoint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_breakpoint(mrb_debug_breakpoint *bp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_get_breaknum
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:185,1
    - Dst: print_api_common_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:187,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:191,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:194,1
    - Dst: mrb_debug_get_break_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:196,1
    - Dst: print_api_common_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:198,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:201,1
    - Dst: print_breakpoint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:203,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 207
    functionName: info_break_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    - print_api_common_error
    - mrb_debug_get_break_all
    - mrb_debug_get_breaknum
    - print_breakpoint
    - mrb_free
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void info_break_all(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_breakpoint_no
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:221,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:223,1
    - Dst: mrb_debug_get_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:227,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:229,1
    - Dst: print_api_common_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:233,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:238,1
    - Dst: print_breakpoint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 242
    functionName: info_break_select
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    - print_api_common_error
    - print_breakpoint
    - parse_breakpoint_no
    - mrb_debug_get_break
    - printf
    linkageType: ''
    returnType: void
    signature: void info_break_select(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:254,1
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:259,1
    - Dst: check_bptype
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:261,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:265,1
    - Dst: check_bptype
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:269,1
    - Dst: STRTOUL
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:274,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:277,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:280,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:287,1
    - Dst: ISLOWER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:287,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:292,1
    - Dst: ISUPPER
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:297,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:301,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:311,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 6
    argNames:
    - mrb
    - mrdb
    - file
    - line
    - cname
    - method
    argTypes:
    - mrb_state*
    - mrdb_state*
    - char**
    - uint32_t*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 322
    functionName: parse_breakcommand
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    - check_bptype
    - strrchr
    - ISLOWER
    - mrb_debug_get_filename
    - STRTOUL
    - printf
    - ISUPPER
    linkageType: ''
    returnType: mrb_debug_bptype
    signature: mrb_debug_bptype parse_breakcommand(mrb_state *mrb, mrdb_state *mrdb,
      const char **file, uint32_t *line, char **cname, char **method)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: parse_breakcommand
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:335,1
    - Dst: mrb_debug_set_break_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:338,1
    - Dst: mrb_debug_set_break_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:341,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:350,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:353,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:356,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:362,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:365,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:368,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:371,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:374,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:377,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 385
    functionName: dbgcmd_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - puts
    - mrb_debug_set_break_line
    - parse_breakcommand
    - mrb_debug_set_break_method
    - printf
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_break(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: info_break_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:391,1
    - Dst: info_break_select
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: dbgcmd_info_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - info_break_select
    - info_break_all
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_info_break(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exe_set_command_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:405,1
    - Dst: exe_set_command_select
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 411
    functionName: dbgcmd_delete
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - exe_set_command_select
    - exe_set_command_all
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_delete(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exe_set_command_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:418,1
    - Dst: exe_set_command_select
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: dbgcmd_enable
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - exe_set_command_select
    - exe_set_command_all
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_enable(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exe_set_command_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:431,1
    - Dst: exe_set_command_select
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 436
    functionName: dbgcmd_disable
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
    functionUses: 0
    functionsReached:
    - exe_set_command_select
    - exe_set_command_all
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_disable(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:80,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: usage
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 11
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:115,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:116,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:117,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:124,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:125,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:127,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:129,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:133,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:138,1
    - Dst: mrb_show_version
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:139,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:140,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:142,1
    - Dst: mrb_show_copyright
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:143,1
    - Dst: exit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:144,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:153,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:157,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:159,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:166,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:167,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 4
    argNames:
    - mrb
    - argc
    - argv
    - args
    argTypes:
    - mrb_state*
    - int
    - char**
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 171
    functionName: parse_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 4
    functionsReached:
    - mrb_show_version
    - exit
    - mrb_realloc
    - strcmp
    - memcpy
    - fopen
    - printf
    - mrb_show_copyright
    - strlen
    - mrb_malloc
    linkageType: ''
    returnType: int
    signature: int parse_args(mrb_state *mrb, int argc, char **argv, struct _args
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:177,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:179,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:181,1
    - Dst: mrdb_state_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:182,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - args
    argTypes:
    - mrb_state*
    - struct _args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: cleanup
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 3
    functionsReached:
    - fclose
    - mrdb_state_free
    - mrb_free
    - mrb_close
    linkageType: ''
    returnType: void
    signature: void cleanup(mrb_state *mrb, struct _args *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: mrb_debug_context_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: mrb_debug_context
    signature: 'mrb_debug_context *

      mrb_debug_context_new(mrb_state *mrb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: mrb_debug_context_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_debug_context_new
    linkageType: ''
    returnType: mrb_debug_context
    signature: 'mrb_debug_context *

      mrb_debug_context_get(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbg
    argTypes:
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: mrb_debug_context_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_debug_context_set(mrb_debug_context *dbg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_delete_break_all
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:219,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: mrb_debug_context_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_debug_delete_break_all
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_debug_context_free(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:228,1
    - Dst: mrb_debug_context_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:232,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: mrdb_state_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_debug_context_get
    - mrb_malloc
    linkageType: ''
    returnType: mrdb_state
    signature: 'mrdb_state *

      mrdb_state_new(mrb_state *mrb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrdb_state_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: mrdb_state_get
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrdb_state_new
    linkageType: ''
    returnType: mrdb_state
    signature: 'mrdb_state *

      mrdb_state_get(mrb_state *mrb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrdb
    argTypes:
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: mrdb_state_set
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrdb_state_set(mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:257,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:259,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: mrdb_state_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 1
    functionsReached:
    - mrb_free
    - mrb_debug_context_free
    linkageType: ''
    returnType: void
    signature: void mrdb_state_free(mrb_state *mrb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:272,1
    - Dst: feof
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:276,1
    - Dst: clearerr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:277,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:278,1
    - Dst: getchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:283,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:287,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 293
    functionName: get_command
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - feof
    - getchar
    - printf
    - clearerr
    - strcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      get_command(mrb_state *mrb, mrdb_state *mrdb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:300,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:306,1
    - Dst: strpbrk
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:310,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - pp
    argTypes:
    - mrb_state*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 323
    functionName: pick_out_word
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - strchr
    - ISBLANK
    - strlen
    - strpbrk
    linkageType: ''
    returnType: char
    signature: 'char *

      pick_out_word(mrb_state *mrb, char **pp)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pick_out_word
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:333,1
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:339,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:346,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:348,1
    - Dst: pick_out_word
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:356,1
    - Dst: ISBLANK
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:359,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:368,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:370,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:378,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:380,1
    - Dst: pick_out_word
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:390,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 53
    argCount: 3
    argNames:
    - mrb
    - mrdb
    - buf
    argTypes:
    - mrb_state*
    - mrdb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 398
    functionName: parse_command
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - pick_out_word
    - ISBLANK
    - strlen
    - strncmp
    linkageType: ''
    returnType: debug_command
    signature: 'debug_command *

      parse_command(mrb_state *mrb, mrdb_state *mrdb, char *buf)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_get_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:410,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:416,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:422,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:425,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 435
    functionName: print_info_stopped_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - printf
    - mrb_debug_get_break
    linkageType: ''
    returnType: void
    signature: void print_info_stopped_break(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: print_info_stopped_step_next
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_info_stopped_step_next(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_get_source
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:448,1
    - Dst: mrb_debug_list
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:451,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: print_info_stopped_code
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - mrb_debug_get_source
    - mrb_debug_list
    linkageType: ''
    returnType: void
    signature: void print_info_stopped_code(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_info_stopped_break
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:461,1
    - Dst: print_info_stopped_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:462,1
    - Dst: print_info_stopped_step_next
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:466,1
    - Dst: print_info_stopped_code
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 472
    functionName: print_info_stopped
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - print_info_stopped_break
    - print_info_stopped_code
    - print_info_stopped_step_next
    linkageType: ''
    returnType: void
    signature: void print_info_stopped(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:483,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:484,1
    - Dst: get_command
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:485,1
    - Dst: parse_command
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:488,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:491,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:495,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:498,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:500,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 506
    functionName: get_and_parse_command
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - puts
    - get_command
    - fflush
    - printf
    - parse_command
    linkageType: ''
    returnType: debug_command
    signature: 'debug_command *

      get_and_parse_command(mrb_state *mrb, mrdb_state *mrdb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_context_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:517,1
    - Dst: mrb_decode_insn
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:523,1
    - Dst: mrb_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:527,1
    - Dst: mrb_vm_ci_target_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:531,1
    - Dst: mrb_debug_check_breakpoint_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - mrb
    - irep
    - pc
    - regs
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_code*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 508
    functionDepth: 6
    functionLinenumber: 508
    functionLinenumberEnd: 547
    functionName: check_method_breakpoint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_decode_insn
    - mrb_class
    - mrb_debug_context_get
    - mrb_debug_check_breakpoint_method
    - mrb_vm_ci_target_class
    linkageType: ''
    returnType: int32_t
    signature: int32_t check_method_breakpoint(mrb_state *mrb, const mrb_irep *irep,
      const mrb_code *pc, mrb_value *regs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_context_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:556,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:558,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:573,1
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:574,1
    - Dst: check_method_breakpoint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:598,1
    - Dst: mrb_debug_check_breakpoint_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:605,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:619,1
    - Dst: mrb_debug_context*::break_hook
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:633,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 4
    argNames:
    - mrb
    - irep
    - pc
    - regs
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_code*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 549
    functionDepth: 7
    functionLinenumber: 549
    functionLinenumberEnd: 636
    functionName: mrb_code_fetch_hook
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - mrb_debug_check_breakpoint_line
    - puts
    - mrb_debug_context*::break_hook
    - mrb_debug_get_filename
    - mrb_debug_get_line
    - mrb_debug_context_get
    - check_method_breakpoint
    linkageType: ''
    returnType: void
    signature: void mrb_code_fetch_hook(mrb_state *mrb, const mrb_irep *irep, const
      mrb_code *pc, mrb_value *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrdb_state_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:643,1
    - Dst: print_info_stopped
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:645,1
    - Dst: get_and_parse_command
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:648,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:649,1
    - Dst: debug_command*::func
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - dbg
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 8
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: mrb_debug_break_hook
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrb_assert
    - print_info_stopped
    - mrdb_state_get
    - get_and_parse_command
    - debug_command*::func
    linkageType: ''
    returnType: mrdb_exemode
    signature: mrdb_exemode mrb_debug_break_hook(mrb_state *mrb, mrb_debug_context
      *dbg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:661,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:673,1
    - Dst: parse_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:678,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:680,1
    - Dst: usage
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:681,1
    - Dst: mrdb_state_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:686,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:687,1
    - Dst: mrb_load_irep_file
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:704,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:707,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:708,1
    - Dst: mrb_load_file_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:709,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:710,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:712,1
    - Dst: mrb_obj_classname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:713,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:713,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:714,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:715,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:718,1
    - Dst: mrdb_state_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:719,1
    - Dst: mrb_debug_context_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:720,1
    - Dst: mrdb_state_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:722,1
    - Dst: mrb_debug_context_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:723,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:725,1
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:726,1
    - Dst: mrdb_state_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:728,1
    - Dst: mrb_debug_context_set
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:729,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:734,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:736,1
    - Dst: mrb_print_error
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:738,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:741,1
    - Dst: mrb_p
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:742,1
    - Dst: get_and_parse_command
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:750,1
    - Dst: mrb_assert
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:751,1
    - Dst: debug_command*::func
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:757,1
    - Dst: cleanup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c:760,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 658
    functionDepth: 18
    functionLinenumber: 658
    functionLinenumberEnd: 763
    functionName: main
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    functionUses: 0
    functionsReached:
    - mrdb_state_get
    - fputs
    - mrb_obj_classname
    - cleanup
    - mrbc_context_new
    - mrb_assert
    - mrb_load_irep_file
    - parse_args
    - printf
    - mrb_debug_context_get
    - usage
    - mrb_obj_value
    - debug_command*::func
    - puts
    - get_and_parse_command
    - mrb_debug_context_set
    - mrbc_context_free
    - mrb_open
    - mrb_p
    - mrb_load_file_cxt
    - strcmp
    - mrbc_filename
    - mrdb_state_set
    - mrb_print_error
    - mrb_undef_p
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:29,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:32,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - file
    argTypes:
    - mrb_state*
    - source_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: source_file_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 0
    functionsReached:
    - fclose
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void source_file_free(mrb_state *mrb, source_file *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:45,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:47,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:48,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:51,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:52,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:54,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:55,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:56,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - mrb
    - dir
    - base
    argTypes:
    - mrb_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: build_path
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 0
    functionsReached:
    - strcat
    - strcmp
    - memset
    - strlen
    - mrb_malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      build_path(mrb_state *mrb, const char *dir, const char *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:73,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:74,1
    - Dst: mrdb_strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - path
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: dirname
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 1
    functionsReached:
    - mrdb_strndup
    - strrchr
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      dirname(mrb_state *mrb, const char *path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:84,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:86,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:87,1
    - Dst: source_file_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:90,1
    - Dst: mrdb_strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:95,1
    - Dst: source_file_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - mrb
    - dbg
    - filename
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: source_file_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 0
    functionsReached:
    - source_file_free
    - fopen
    - memset
    - mrb_malloc
    - mrdb_strdup
    linkageType: ''
    returnType: source_file
    signature: 'source_file *

      source_file_new(mrb_state *mrb, mrb_debug_context *dbg, char *filename)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:110,1
    - Dst: fgetc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:122,1
    - Dst: ungetc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - s
    - fp
    argTypes:
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: remove_newlines
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 0
    functionsReached:
    - ungetc
    - fgetc
    - strlen
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool remove_newlines(char *s, FILE *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:145,1
    - Dst: remove_newlines
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:146,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:150,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:153,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - file
    - line_min
    - line_max
    argTypes:
    - source_file*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 167
    functionName: show_lines
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 0
    functionsReached:
    - printf
    - fgets
    - remove_newlines
    linkageType: ''
    returnType: void
    signature: void show_lines(source_file *file, uint16_t line_min, uint16_t line_max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:176,1
    - Dst: dirname
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:182,1
    - Dst: mrb_debug_get_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:182,1
    - Dst: build_path
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:190,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:194,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:195,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:199,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - mrb
    - mrdb
    - srcpath
    - filename
    argTypes:
    - mrb_state*
    - mrdb_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: mrb_debug_get_source
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 1
    functionsReached:
    - strrchr
    - mrb_free
    - mrb_debug_get_filename
    - fopen
    - build_path
    - fclose
    - dirname
    linkageType: ''
    returnType: char
    signature: 'char *

      mrb_debug_get_source(mrb_state *mrb, mrdb_state *mrdb, const char *srcpath,
      const char *filename)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:218,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:220,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:221,1
    - Dst: source_file_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:229,1
    - Dst: show_lines
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:230,1
    - Dst: source_file_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:231,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - dbg
    - filename
    - line_min
    - line_max
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 238
    functionName: mrb_debug_list
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    functionUses: 1
    functionsReached:
    - source_file_new
    - strrchr
    - show_lines
    - source_file_free
    - strcmp
    - printf
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_list(mrb_state *mrb, mrb_debug_context *dbg, char
      *filename, uint16_t line_min, uint16_t line_max)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:53,1
    - Dst: mrb_packed_int_decode
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:54,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - info_file
    - lineno
    argTypes:
    - mrb_irep_debug_info_file*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 62
    functionName: check_lineno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - mrb_packed_int_decode
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_lineno(mrb_irep_debug_info_file *info_file, uint16_t
      lineno)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dbg
    - bpno
    argTypes:
    - mrb_debug_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: get_break_index
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t get_break_index(mrb_debug_context *dbg, uint32_t bpno)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:91,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:94,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - bp
    argTypes:
    - mrb_state*
    - mrb_debug_breakpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: free_breakpoint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void free_breakpoint(mrb_state *mrb, mrb_debug_breakpoint *bp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name_len
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:116,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:117,1
    - Dst: check_lineno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:120,1
    - Dst: check_file_lineno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - mrb
    - irep
    - file
    - lineno
    argTypes:
    - mrb_state*
    - struct mrb_irep*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 133
    functionName: check_file_lineno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - check_lineno
    - check_file_lineno
    - strcmp
    - mrb_sym_name_len
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_file_lineno(mrb_state *mrb, const struct mrb_irep *irep,
      const char *file, uint16_t lineno)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mrb_sym_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:147,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:150,1
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:151,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:158,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:159,1
    - Dst: MRB_METHOD_CFUNC_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:162,1
    - Dst: mrb_class_defined
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:166,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:171,1
    - Dst: mrb_intern_check_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:172,1
    - Dst: mrb_method_search_vm
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:173,1
    - Dst: MRB_METHOD_UNDEF_P
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:174,1
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:178,1
    - Dst: mrb_class_name
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:179,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - mrb
    - bp
    - class_obj
    - method_sym
    - isCfunc
    argTypes:
    - mrb_state*
    - mrb_debug_breakpoint*
    - struct RClass*
    - mrb_sym
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 135
    functionDepth: 14
    functionLinenumber: 135
    functionLinenumberEnd: 186
    functionName: compare_break_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - MRB_METHOD_UNDEF_P
    - mrb_intern_check_cstr
    - mrb_class_name
    - MRB_METHOD_CFUNC_P
    - mrb_method_search_vm
    - strcmp
    - mrb_class_defined
    - mrb_sym_name
    - mrb_class_get
    linkageType: ''
    returnType: int32_t
    signature: int32_t compare_break_method(mrb_state *mrb, mrb_debug_breakpoint *bp,
      struct RClass *class_obj, mrb_sym method_sym, mrb_bool* isCfunc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_file_lineno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:208,1
    - Dst: mrdb_strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - mrb
    - dbg
    - file
    - lineno
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 229
    functionName: mrb_debug_set_break_line
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - mrdb_strdup
    - check_file_lineno
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_set_break_line(mrb_state *mrb, mrb_debug_context
      *dbg, const char *file, uint16_t lineno)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrdb_strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:251,1
    - Dst: mrdb_strdup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:257,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - mrb
    - dbg
    - class_name
    - method_name
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: mrb_debug_set_break_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - mrb_free
    - mrdb_strdup
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_set_break_method(mrb_state *mrb, mrb_debug_context
      *dbg, const char *class_name, const char *method_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - dbg
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: mrb_debug_get_breaknum
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_get_breaknum(mrb_state *mrb, mrb_debug_context *dbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - mrb
    - dbg
    - size
    - bp
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - uint32_t
    - mrb_debug_breakpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 303
    functionName: mrb_debug_get_break_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_get_break_all(mrb_state *mrb, mrb_debug_context *dbg,
      uint32_t size, mrb_debug_breakpoint *bp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_break_index
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - mrb
    - dbg
    - bpno
    - bp
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - uint32_t
    - mrb_debug_breakpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: mrb_debug_get_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 2
    functionsReached:
    - get_break_index
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_get_break(mrb_state *mrb, mrb_debug_context *dbg,
      uint32_t bpno, mrb_debug_breakpoint *bp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_break_index
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:337,1
    - Dst: free_breakpoint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - mrb
    - dbg
    - bpno
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 356
    functionName: mrb_debug_delete_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - free_breakpoint
    - get_break_index
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_delete_break(mrb_state *mrb, mrb_debug_context *dbg,
      uint32_t bpno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_breakpoint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - dbg
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 374
    functionName: mrb_debug_delete_break_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - free_breakpoint
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_delete_break_all(mrb_state *mrb, mrb_debug_context
      *dbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_break_index
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - dbg
    - bpno
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: mrb_debug_enable_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - get_break_index
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_enable_break(mrb_state *mrb, mrb_debug_context *dbg,
      uint32_t bpno)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - dbg
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 409
    functionName: mrb_debug_enable_break_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_enable_break_all(mrb_state *mrb, mrb_debug_context
      *dbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_break_index
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - dbg
    - bpno
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: mrb_debug_disable_break
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - get_break_index
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_disable_break(mrb_state *mrb, mrb_debug_context *dbg,
      uint32_t bpno)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - dbg
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: mrb_debug_disable_break_all
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_disable_break_all(mrb_state *mrb, mrb_debug_context
      *dbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_debug_get_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - mrb
    - irep
    - pc
    - line
    argTypes:
    - mrb_state*
    - mrb_irep*
    - mrb_code*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: check_start_pc_for_line
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 0
    functionsReached:
    - mrb_debug_get_line
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool check_start_pc_for_line(mrb_state *mrb, const mrb_irep *irep,
      const mrb_code *pc, uint16_t line)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_start_pc_for_line
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:468,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:478,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - mrb
    - dbg
    - file
    - line
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 492
    functionName: mrb_debug_check_breakpoint_line
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - strcmp
    - check_start_pc_for_line
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_check_breakpoint_line(mrb_state *mrb, mrb_debug_context
      *dbg, const char *file, uint16_t line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: compare_break_method
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c:510,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - mrb
    - dbg
    - class_obj
    - method_sym
    - isCfunc
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - struct RClass*
    - mrb_sym
    - mrb_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 495
    functionDepth: 15
    functionLinenumber: 495
    functionLinenumberEnd: 523
    functionName: mrb_debug_check_breakpoint_method
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
    functionUses: 1
    functionsReached:
    - compare_break_method
    linkageType: ''
    returnType: int32_t
    signature: int32_t mrb_debug_check_breakpoint_method(mrb_state *mrb, mrb_debug_context
      *dbg, struct RClass *class_obj, mrb_sym method_sym, mrb_bool* isCfunc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:25,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:29,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:32,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:34,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:35,1
    - Dst: mrb_debug_eval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:38,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:38,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:38,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:41,1
    - Dst: fwrite
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:42,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:42,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:42,1
    - Dst: putc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:43,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 12
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: dbgcmd_print
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
    functionUses: 0
    functionsReached:
    - puts
    - fwrite
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - putc
    - RSTRING_LEN
    - mrb_gc_arena_save
    - mrb_str_cat_cstr
    - mrb_str_new_cstr
    - mrb_str_cat_lit
    - printf
    - mrb_debug_eval
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_print(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbgcmd_print
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 13
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: dbgcmd_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
    functionUses: 0
    functionsReached:
    - dbgcmd_print
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_eval(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:67,1
    - Dst: mrb_debug_eval
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:69,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:71,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:72,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:72,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: dbgcmd_info_local
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - printf
    - mrb_str_cat_lit
    - mrb_debug_eval
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_info_local(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:22,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:25,1
    - Dst: mrb_load_nstring_cxt
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:29,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - mrb
    - dbg
    - expr
    - len
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 18
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: mrdb_check_syntax
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
    functionUses: 0
    functionsReached:
    - mrbc_filename
    - mrbc_context_new
    - mrb_load_nstring_cxt
    - mrbc_context_free
    linkageType: ''
    returnType: void
    signature: void mrdb_check_syntax(mrb_state *mrb, mrb_debug_context *dbg, const
      char *expr, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrdb_check_syntax
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:47,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:49,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:55,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:65,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:66,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:67,1
    - Dst: mrb_funcall_id
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:71,1
    - Dst: MRB_SYM
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:71,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:75,1
    - Dst: mrb_inspect
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - mrb
    - dbg
    - expr
    - len
    - exc
    - direct_eval
    argTypes:
    - mrb_state*
    - mrb_debug_context*
    - char*
    - size_t
    - mrb_bool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 34
    functionDepth: 19
    functionLinenumber: 34
    functionLinenumberEnd: 84
    functionName: mrb_debug_eval
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
    functionUses: 2
    functionsReached:
    - MRB_SYM
    - mrb_inspect
    - mrb_funcall
    - mrb_str_cat
    - mrb_obj_is_kind_of
    - mrb_str_new_lit
    - mrb_funcall_id
    - mrdb_check_syntax
    - mrb_str_cat_lit
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const
      char *expr, size_t len, mrb_bool *exc, int direct_eval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c:21,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c:22,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 28
    functionName: dbgcmd_run
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - puts
    - mrb_define_class
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c:37,1
    - Dst: puts
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: dbgcmd_continue
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
    functionUses: 0
    functionsReached:
    - sscanf
    - puts
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_continue(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: dbgcmd_step
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_step(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: dbgcmd_next
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_next(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: listcmd_parser_state_new
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: listcmd_parser_state
    signature: 'listcmd_parser_state *

      listcmd_parser_state_new(mrb_state *mrb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:154,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - st
    argTypes:
    - mrb_state*
    - listcmd_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: listcmd_parser_state_free
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void listcmd_parser_state_free(mrb_state *mrb, listcmd_parser_state
      *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:170,1
    - Dst: atoi
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - sp
    - n
    argTypes:
    - char**
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: parse_uint
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - atoi
    - ISDIGIT
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool parse_uint(char **sp, uint16_t *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sp
    - c
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: skip_char
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool skip_char(char **sp, char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_uint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:200,1
    - Dst: skip_char
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:207,1
    - Dst: parse_uint
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - mrb
    - sp
    - st
    argTypes:
    - mrb_state*
    - char**
    - listcmd_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 217
    functionName: parse_lineno
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - parse_uint
    - skip_char
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool parse_lineno(mrb_state *mrb, char **sp, listcmd_parser_state
      *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:226,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:230,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:234,1
    - Dst: mrdb_strndup
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - mrb
    - sp
    - st
    argTypes:
    - mrb_state*
    - char**
    - listcmd_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: parse_filename
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - strchr
    - mrb_free
    - mrdb_strndup
    - strlen
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool parse_filename(mrb_state *mrb, char **sp, listcmd_parser_state
      *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:257,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:257,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:261,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:264,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:264,1
    - Dst: memset
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:265,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:265,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:266,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - mrb
    - filename
    - ext
    argTypes:
    - mrb_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: replace_ext
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - strcat
    - strrchr
    - strchr
    - memset
    - strlen
    - mrb_malloc
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      replace_ext(mrb_state *mrb, const char *filename, const char *ext)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parse_lineno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:282,1
    - Dst: parse_filename
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:283,1
    - Dst: skip_char
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:284,1
    - Dst: parse_lineno
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:285,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:304,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:318,1
    - Dst: replace_ext
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:319,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 3
    argNames:
    - mrb
    - mrdb
    - st
    argTypes:
    - mrb_state*
    - mrdb_state*
    - listcmd_parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 329
    functionName: parse_listcmd_args
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - parse_lineno
    - skip_char
    - strcmp
    - parse_filename
    - printf
    - replace_ext
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool parse_listcmd_args(mrb_state *mrb, mrdb_state *mrdb, listcmd_parser_state
      *st)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:342,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:343,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:345,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:348,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - pattern
    - cmd
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 361
    functionName: check_cmd_pattern
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    - strcmp
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool check_cmd_pattern(const char *pattern, const char *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_cmd_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:372,1
    - Dst: check_cmd_pattern
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - cmd1
    - cmd2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: get_help_msg
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - check_cmd_pattern
    linkageType: ''
    returnType: help_msg
    signature: 'help_msg *

      get_help_msg(char *cmd1, char *cmd2)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:384,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:388,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: show_short_help
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool show_short_help(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_help_msg
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:402,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cmd1
    - cmd2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: show_long_help
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - get_help_msg
    - printf
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool show_long_help(char *cmd1, char *cmd2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: listcmd_parser_state_new
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:413,1
    - Dst: parse_listcmd_args
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:415,1
    - Dst: mrb_debug_get_source
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:416,1
    - Dst: mrb_debug_list
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:419,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:422,1
    - Dst: listcmd_parser_state_free
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 409
    functionDepth: 6
    functionLinenumber: 409
    functionLinenumberEnd: 428
    functionName: dbgcmd_list
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - parse_listcmd_args
    - mrb_free
    - listcmd_parser_state_free
    - mrb_debug_list
    - listcmd_parser_state_new
    - mrb_debug_get_source
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_list(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: show_short_help
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:439,1
    - Dst: show_long_help
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:442,1
    - Dst: show_long_help
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:445,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:453,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:455,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 461
    functionName: dbgcmd_help
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - show_long_help
    - show_short_help
    - printf
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_help(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:474,1
    - Dst: fflush
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:475,1
    - Dst: getchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:477,1
    - Dst: getchar
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:482,1
    - Dst: printf
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:492,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:503,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c:504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - mrb
    - mrdb
    argTypes:
    - mrb_state*
    - mrdb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 507
    functionName: dbgcmd_quit
    functionSourceFile: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - fflush
    - printf
    - getchar
    - mrb_define_class
    linkageType: ''
    returnType: dbgcmd_state
    signature: dbgcmd_state dbgcmd_quit(mrb_state *mrb, mrdb_state *mrdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: ok
    functionSourceFile: /src/h2o/deps/picotest/picotest.h
    functionUses: 190
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ok(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - cb
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: subtest
    functionSourceFile: /src/h2o/deps/picotest/picotest.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: subtest(name, cb, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: indent
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void indent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/deps/picotest/picotest.c:38,1
    - Dst: indent
      Src: /src/h2o/deps/picotest/picotest.c:43,1
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:44,1
    - Dst: va_start
      Src: /src/h2o/deps/picotest/picotest.c:46,1
    - Dst: vprintf
      Src: /src/h2o/deps/picotest/picotest.c:47,1
    - Dst: va_end
      Src: /src/h2o/deps/picotest/picotest.c:48,1
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:50,1
    - Dst: fflush
      Src: /src/h2o/deps/picotest/picotest.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: note
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 15
    functionsReached:
    - indent
    - va_start
    - fflush
    - format
    - printf
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void note(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/deps/picotest/picotest.c:54,1
    - Dst: indent
      Src: /src/h2o/deps/picotest/picotest.c:61,1
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:63,1
    - Dst: va_start
      Src: /src/h2o/deps/picotest/picotest.c:64,1
    - Dst: vprintf
      Src: /src/h2o/deps/picotest/picotest.c:65,1
    - Dst: va_end
      Src: /src/h2o/deps/picotest/picotest.c:66,1
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:68,1
    - Dst: fflush
      Src: /src/h2o/deps/picotest/picotest.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cond
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: _ok
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 0
    functionsReached:
    - indent
    - va_start
    - fflush
    - format
    - printf
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void _ok(int cond, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indent
      Src: /src/h2o/deps/picotest/picotest.c:74,1
    - Dst: printf
      Src: /src/h2o/deps/picotest/picotest.c:75,1
    - Dst: fflush
      Src: /src/h2o/deps/picotest/picotest.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: done_testing
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 3
    functionsReached:
    - fflush
    - printf
    - indent
    linkageType: ''
    returnType: int
    signature: int done_testing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotest/picotest.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: enter_subtest
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 0
    functionsReached:
    - note
    linkageType: ''
    returnType: void
    signature: void enter_subtest(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done_testing
      Src: /src/h2o/deps/picotest/picotest.c:92,1
    - Dst: _ok
      Src: /src/h2o/deps/picotest/picotest.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: exit_subtest
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 0
    functionsReached:
    - _ok
    - done_testing
    linkageType: ''
    returnType: void
    signature: void exit_subtest(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/picotest/picotest.c:103,1
    - Dst: va_arg
      Src: /src/h2o/deps/picotest/picotest.c:107,1
    - Dst: va_end
      Src: /src/h2o/deps/picotest/picotest.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: test_is_at
    functionSourceFile: /src/h2o/deps/picotest/picotest.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - va_arg
    linkageType: ''
    returnType: int
    signature: int test_is_at(int index, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/h2o/deps/neverbleed/test.c:61,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:63,1
    - Dst: OBJ_nid2sn
      Src: /src/h2o/deps/neverbleed/test.c:63,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/h2o/deps/neverbleed/test.c:66,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/neverbleed/test.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ssl_ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: setup_ecc_key
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_tmp_ecdh
    - EC_KEY_free
    - OBJ_nid2sn
    - fprintf
    - EC_KEY_new_by_curve_name
    linkageType: ''
    returnType: void
    signature: void setup_ecc_key(SSL_CTX *ssl_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/test.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: boringssl_free_pkey_callback
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void boringssl_free_pkey_callback(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/test.c:82,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/h2o/deps/neverbleed/test.c:84,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/test.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: boringssl_get_pkey_index
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_new_index
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int boringssl_get_pkey_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/h2o/deps/neverbleed/test.c:96,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/deps/neverbleed/test.c:97,1
    - Dst: boringssl_get_pkey_index
      Src: /src/h2o/deps/neverbleed/test.c:97,1
    - Dst: SSL_get_signature_algorithm_digest
      Src: /src/h2o/deps/neverbleed/test.c:98,1
    - Dst: SSL_is_signature_algorithm_rsa_pss
      Src: /src/h2o/deps/neverbleed/test.c:99,1
    - Dst: neverbleed_start_digestsign
      Src: /src/h2o/deps/neverbleed/test.c:101,1
    - Dst: neverbleed_transaction_write
      Src: /src/h2o/deps/neverbleed/test.c:102,1
    - Dst: neverbleed_transaction_read
      Src: /src/h2o/deps/neverbleed/test.c:103,1
    - Dst: neverbleed_finish_digestsign
      Src: /src/h2o/deps/neverbleed/test.c:104,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/test.c:106,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/test.c:107,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - ssl
    - out
    - outlen
    - max_out
    - signature_algorithm
    - in
    - len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t*
    - size_t
    - uint16_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (digestlen <= max_out)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/h2o/deps/neverbleed/test.c
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: boringssl_sign
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_data
    - assert
    - neverbleed_start_digestsign
    - neverbleed_transaction_write
    - neverbleed_transaction_read
    - free
    - memcpy
    - neverbleed_finish_digestsign
    - SSL_get_SSL_CTX
    - boringssl_get_pkey_index
    - SSL_is_signature_algorithm_rsa_pss
    - SSL_get_signature_algorithm_digest
    linkageType: ''
    returnType: enum ssl_private_key_result_t
    signature: "enum ssl_private_key_result_t boringssl_sign(SSL *ssl, uint8_t *out,
      size_t *outlen, size_t max_out,\n                                                    uint16_t
      signature_algorithm, const uint8_t *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/h2o/deps/neverbleed/test.c:120,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/deps/neverbleed/test.c:121,1
    - Dst: boringssl_get_pkey_index
      Src: /src/h2o/deps/neverbleed/test.c:121,1
    - Dst: neverbleed_start_decrypt
      Src: /src/h2o/deps/neverbleed/test.c:123,1
    - Dst: neverbleed_transaction_write
      Src: /src/h2o/deps/neverbleed/test.c:124,1
    - Dst: neverbleed_transaction_read
      Src: /src/h2o/deps/neverbleed/test.c:125,1
    - Dst: neverbleed_finish_decrypt
      Src: /src/h2o/deps/neverbleed/test.c:126,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/test.c:128,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/test.c:129,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/test.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - max_out
    - in
    - len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (digestlen <= max_out)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/h2o/deps/neverbleed/test.c
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: boringssl_decrypt
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_data
    - neverbleed_finish_decrypt
    - assert
    - neverbleed_transaction_read
    - free
    - memcpy
    - SSL_get_SSL_CTX
    - boringssl_get_pkey_index
    - neverbleed_start_decrypt
    - neverbleed_transaction_write
    linkageType: ''
    returnType: enum ssl_private_key_result_t
    signature: "enum ssl_private_key_result_t boringssl_decrypt(SSL *ssl, uint8_t
      *out, size_t *outlen, size_t max_out, const uint8_t *in,\n                                                       size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get0_privatekey
      Src: /src/h2o/deps/neverbleed/test.c:138,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/neverbleed/test.c:139,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/h2o/deps/neverbleed/test.c:140,1
    - Dst: boringssl_get_pkey_index
      Src: /src/h2o/deps/neverbleed/test.c:140,1
    - Dst: SSL_CTX_set_private_key_method
      Src: /src/h2o/deps/neverbleed/test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: setup_boringssl_key_method
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ex_data
    - EVP_PKEY_up_ref
    - SSL_CTX_get0_privatekey
    - SSL_CTX_set_private_key_method
    - boringssl_get_pkey_index
    linkageType: ''
    returnType: void
    signature: void setup_boringssl_key_method(SSL_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/neverbleed/test.c:154,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:155,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/test.c:155,1
    - Dst: setsockopt
      Src: /src/h2o/deps/neverbleed/test.c:159,1
    - Dst: htonl
      Src: /src/h2o/deps/neverbleed/test.c:161,1
    - Dst: htons
      Src: /src/h2o/deps/neverbleed/test.c:162,1
    - Dst: bind
      Src: /src/h2o/deps/neverbleed/test.c:163,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:164,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/test.c:164,1
    - Dst: listen
      Src: /src/h2o/deps/neverbleed/test.c:167,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:168,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/test.c:168,1
    - Dst: accept
      Src: /src/h2o/deps/neverbleed/test.c:177,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:180,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/test.c:180,1
    - Dst: SSL_new
      Src: /src/h2o/deps/neverbleed/test.c:183,1
    - Dst: SSL_set_fd
      Src: /src/h2o/deps/neverbleed/test.c:184,1
    - Dst: SSL_accept
      Src: /src/h2o/deps/neverbleed/test.c:185,1
    - Dst: SSL_read
      Src: /src/h2o/deps/neverbleed/test.c:186,1
    - Dst: SSL_write
      Src: /src/h2o/deps/neverbleed/test.c:189,1
    - Dst: strlen
      Src: /src/h2o/deps/neverbleed/test.c:189,1
    - Dst: SSL_shutdown
      Src: /src/h2o/deps/neverbleed/test.c:190,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:192,1
    - Dst: SSL_free
      Src: /src/h2o/deps/neverbleed/test.c:194,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/test.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - port
    - ctx
    argTypes:
    - unsigned short
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: dumb_https_server
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - close
    - SSL_accept
    - SSL_set_fd
    - setsockopt
    - htons
    - bind
    - SSL_write
    - SSL_shutdown
    - htonl
    - SSL_free
    - SSL_new
    - fprintf
    - strlen
    - strerror
    - socket
    - SSL_read
    - listen
    - accept
    linkageType: ''
    returnType: int
    signature: int dumb_https_server(unsigned short port, SSL_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_load_error_strings
      Src: /src/h2o/deps/neverbleed/test.c:208,1
    - Dst: SSL_library_init
      Src: /src/h2o/deps/neverbleed/test.c:209,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/neverbleed/test.c:210,1
    - Dst: neverbleed_init
      Src: /src/h2o/deps/neverbleed/test.c:211,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:212,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/deps/neverbleed/test.c:215,1
    - Dst: SSLv23_server_method
      Src: /src/h2o/deps/neverbleed/test.c:215,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/deps/neverbleed/test.c:216,1
    - Dst: setup_ecc_key
      Src: /src/h2o/deps/neverbleed/test.c:218,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:223,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/test.c:226,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/test.c:228,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:231,1
    - Dst: sscanf
      Src: /src/h2o/deps/neverbleed/test.c:234,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:235,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/deps/neverbleed/test.c:238,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:239,1
    - Dst: neverbleed_load_private_key_file
      Src: /src/h2o/deps/neverbleed/test.c:243,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:244,1
    - Dst: setup_boringssl_key_method
      Src: /src/h2o/deps/neverbleed/test.c:248,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/deps/neverbleed/test.c:251,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/test.c:252,1
    - Dst: dumb_https_server
      Src: /src/h2o/deps/neverbleed/test.c:258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 259
    functionName: main
    functionSourceFile: /src/h2o/deps/neverbleed/test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_options
    - neverbleed_init
    - neverbleed_load_private_key_file
    - dumb_https_server
    - SSL_CTX_new
    - SSLv23_server_method
    - OpenSSL_add_all_algorithms
    - strcmp
    - SSL_CTX_use_certificate_chain_file
    - sscanf
    - fprintf
    - SSL_CTX_use_PrivateKey_file
    - SSL_load_error_strings
    - setup_ecc_key
    - setup_boringssl_key_method
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - rsa
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: RSA_get0_key
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_get0_key(const RSA *rsa, const BIGNUM **n, const BIGNUM **e,
      const BIGNUM **d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:120,1
    - Dst: BN_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:121,1
    - Dst: BN_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - rsa
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: RSA_set0_key
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: int RSA_set0_key(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: RSA_set_flags
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_set_flags(RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_up_ref(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: NEVERBLEED_MULTITHREAD_ONCE
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVERBLEED_MULTITHREAD_ONCE(block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/h2o/deps/neverbleed/neverbleed.c:180,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:185,1
    - Dst: vfprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:186,1
    - Dst: fputs
      Src: /src/h2o/deps/neverbleed/neverbleed.c:188,1
    - Dst: fputc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - fmt
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: warnvf
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - fputs
    - vfprintf
    - fprintf
    - fputc
    - strerror_r
    linkageType: ''
    returnType: void
    signature: void warnvf(const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/deps/neverbleed/neverbleed.c:192,1
    - Dst: va_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:196,1
    - Dst: warnvf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:197,1
    - Dst: va_end
      Src: /src/h2o/deps/neverbleed/neverbleed.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: warnf
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - format
    - va_end
    - warnvf
    - va_start
    linkageType: ''
    returnType: void
    signature: void warnf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/deps/neverbleed/neverbleed.c:201,1
    - Dst: va_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:205,1
    - Dst: warnvf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:206,1
    - Dst: va_end
      Src: /src/h2o/deps/neverbleed/neverbleed.c:207,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: dief
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - warnvf
    - va_start
    - abort
    - format
    - va_end
    linkageType: ''
    returnType: void
    signature: void dief(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/h2o/deps/neverbleed/neverbleed.c:214,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:219,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:221,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:222,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: dirname
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - memcpy
    - malloc
    - strrchr
    - dief
    linkageType: ''
    returnType: char
    signature: char *dirname(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:230,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: set_cloexec
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 8
    functionsReached:
    - fcntl
    - dief
    linkageType: ''
    returnType: void
    signature: void set_cloexec(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - p
    - sz
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 250
    functionName: read_nbytes
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int read_nbytes(int fd, void *p, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/h2o/deps/neverbleed/neverbleed.c:259,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: iobuf_dispose
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 3
    functionsReached:
    - free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void iobuf_dispose(neverbleed_iobuf_t *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:288,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - extra
    argTypes:
    - neverbleed_iobuf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 292
    functionName: iobuf_reserve
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - realloc
    - dief
    linkageType: ''
    returnType: void
    signature: void iobuf_reserve(neverbleed_iobuf_t *buf, size_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_reserve
      Src: /src/h2o/deps/neverbleed/neverbleed.c:296,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - v
    argTypes:
    - neverbleed_iobuf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: iobuf_push_num
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - memcpy
    - iobuf_reserve
    linkageType: ''
    returnType: void
    signature: void iobuf_push_num(neverbleed_iobuf_t *buf, size_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/neverbleed/neverbleed.c:303,1
    - Dst: iobuf_reserve
      Src: /src/h2o/deps/neverbleed/neverbleed.c:304,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - neverbleed_iobuf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: iobuf_push_str
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - memcpy
    - iobuf_reserve
    - strlen
    linkageType: ''
    returnType: void
    signature: void iobuf_push_str(neverbleed_iobuf_t *buf, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:311,1
    - Dst: iobuf_reserve
      Src: /src/h2o/deps/neverbleed/neverbleed.c:312,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - p
    - l
    argTypes:
    - neverbleed_iobuf_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: iobuf_push_bytes
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - memcpy
    - iobuf_reserve
    linkageType: ''
    returnType: void
    signature: void iobuf_push_bytes(neverbleed_iobuf_t *buf, const void *p, size_t
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_iobuf_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:319,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - v
    argTypes:
    - neverbleed_iobuf_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: iobuf_shift_num
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - memcpy
    - neverbleed_iobuf_size
    linkageType: ''
    returnType: int
    signature: int iobuf_shift_num(neverbleed_iobuf_t *buf, size_t *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/neverbleed/neverbleed.c:328,1
    - Dst: neverbleed_iobuf_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: iobuf_shift_str
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - memchr
    - neverbleed_iobuf_size
    linkageType: ''
    returnType: char
    signature: char *iobuf_shift_str(neverbleed_iobuf_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:339,1
    - Dst: neverbleed_iobuf_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - l
    argTypes:
    - neverbleed_iobuf_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: iobuf_shift_bytes
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_shift_num
    - neverbleed_iobuf_size
    linkageType: ''
    returnType: void
    signature: void *iobuf_shift_bytes(neverbleed_iobuf_t *buf, size_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_iobuf_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:351,1
    - Dst: writev
      Src: /src/h2o/deps/neverbleed/neverbleed.c:361,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - fd
    argTypes:
    - neverbleed_iobuf_t*
    - int
    assertStmts:
    - condition: (r != 0)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: iobuf_write
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - writev
    - assert
    - neverbleed_iobuf_size
    linkageType: ''
    returnType: int
    signature: int iobuf_write(neverbleed_iobuf_t *buf, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_nbytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:382,1
    - Dst: iobuf_reserve
      Src: /src/h2o/deps/neverbleed/neverbleed.c:384,1
    - Dst: read_nbytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - fd
    argTypes:
    - neverbleed_iobuf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: iobuf_read
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_reserve
    - read_nbytes
    linkageType: ''
    returnType: int
    signature: int iobuf_read(neverbleed_iobuf_t *buf, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: neverbleed_iobuf_dispose
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 3
    functionsReached:
    - iobuf_dispose
    linkageType: ''
    returnType: void
    signature: void neverbleed_iobuf_dispose(neverbleed_iobuf_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:398,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:400,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:400,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - thdata
    argTypes:
    - neverbleed_iobuf_t*
    - struct st_neverbleed_thread_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: iobuf_transaction_write
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - strerror
    - dief
    - iobuf_write
    linkageType: ''
    returnType: void
    signature: void iobuf_transaction_write(neverbleed_iobuf_t *buf, struct st_neverbleed_thread_data_t
      *thdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:409,1
    - Dst: iobuf_read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:410,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:412,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:412,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - thdata
    argTypes:
    - neverbleed_iobuf_t*
    - struct st_neverbleed_thread_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 417
    functionName: iobuf_transaction_read
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_dispose
    - strerror
    - dief
    - iobuf_read
    linkageType: ''
    returnType: void
    signature: void iobuf_transaction_read(neverbleed_iobuf_t *buf, struct st_neverbleed_thread_data_t
      *thdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_transaction_cb
      Src: /src/h2o/deps/neverbleed/neverbleed.c:425,1
    - Dst: iobuf_transaction_write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:427,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - thdata
    argTypes:
    - neverbleed_iobuf_t*
    - struct st_neverbleed_thread_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: iobuf_transaction_no_response
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - neverbleed_transaction_cb
    - iobuf_transaction_write
    - iobuf_dispose
    linkageType: ''
    returnType: void
    signature: void iobuf_transaction_no_response(neverbleed_iobuf_t *buf, struct
      st_neverbleed_thread_data_t *thdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_transaction_cb
      Src: /src/h2o/deps/neverbleed/neverbleed.c:438,1
    - Dst: iobuf_transaction_write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:440,1
    - Dst: iobuf_transaction_read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - thdata
    argTypes:
    - neverbleed_iobuf_t*
    - struct st_neverbleed_thread_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: iobuf_transaction
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - neverbleed_transaction_cb
    - iobuf_transaction_read
    - iobuf_transaction_write
    linkageType: ''
    returnType: void
    signature: void iobuf_transaction(neverbleed_iobuf_t *buf, struct st_neverbleed_thread_data_t
      *thdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:467,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:470,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:470,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:472,1
    - Dst: unlink_dir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:473,1
    - Dst: closedir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:475,1
    - Dst: unlink
      Src: /src/h2o/deps/neverbleed/neverbleed.c:477,1
    - Dst: rmdir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 479
    functionName: unlink_dir
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 1
    functionsReached:
    - snprintf
    - strcmp
    - opendir
    - unlink_dir
    - rmdir
    - unlink
    - closedir
    linkageType: ''
    returnType: void
    signature: void unlink_dir(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:470,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:470,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:472,1
    - Dst: unlink_dir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - unlink_dir
    - snprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void FOREACH_DIRENT(dp, entp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:485,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:486,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _thdata
    argTypes:
    - void*
    assertStmts:
    - condition: (thdata->fd >= 0)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: dispose_thread_data
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - close
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void dispose_thread_data(void *_thdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/h2o/deps/neverbleed/neverbleed.c:494,1
    - Dst: pthread_getspecific
      Src: /src/h2o/deps/neverbleed/neverbleed.c:497,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:501,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:503,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:504,1
    - Dst: socket
      Src: /src/h2o/deps/neverbleed/neverbleed.c:509,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:510,1
    - Dst: socket
      Src: /src/h2o/deps/neverbleed/neverbleed.c:512,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:513,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/neverbleed/neverbleed.c:514,1
    - Dst: connect
      Src: /src/h2o/deps/neverbleed/neverbleed.c:516,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:518,1
    - Dst: write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:519,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:522,1
    - Dst: pthread_setspecific
      Src: /src/h2o/deps/neverbleed/neverbleed.c:523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - nb
    argTypes:
    - neverbleed_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 526
    functionName: get_thread_data
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - close
    - set_cloexec
    - malloc
    - pthread_setspecific
    - dief
    - pthread_getspecific
    - write
    - connect
    - socket
    - getpid
    linkageType: ''
    returnType: struct st_neverbleed_thread_data_t
    signature: struct st_neverbleed_thread_data_t *get_thread_data(neverbleed_t *nb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nb
    argTypes:
    - neverbleed_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: neverbleed_get_fd
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 4
    functionsReached:
    - get_thread_data
    linkageType: ''
    returnType: int
    signature: int neverbleed_get_fd(neverbleed_t *nb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:536,1
    - Dst: iobuf_transaction_read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nb
    - buf
    argTypes:
    - neverbleed_t*
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: neverbleed_transaction_read
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - get_thread_data
    - iobuf_transaction_read
    linkageType: ''
    returnType: void
    signature: void neverbleed_transaction_read(neverbleed_t *nb, neverbleed_iobuf_t
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:542,1
    - Dst: iobuf_transaction_write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nb
    - buf
    argTypes:
    - neverbleed_t*
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: neverbleed_transaction_write
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - get_thread_data
    - iobuf_transaction_write
    linkageType: ''
    returnType: void
    signature: void neverbleed_transaction_write(neverbleed_t *nb, neverbleed_iobuf_t
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:552,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:555,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:556,1
    - Dst: iobuf_transaction_no_response
      Src: /src/h2o/deps/neverbleed/neverbleed.c:558,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: do_exdata_free_callback
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - free
    - get_thread_data
    - iobuf_push_str
    - iobuf_transaction_no_response
    linkageType: ''
    returnType: void
    signature: void do_exdata_free_callback(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:566,1
    - Dst: get_rsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:566,1
    - Dst: do_exdata_free_callback
      Src: /src/h2o/deps/neverbleed/neverbleed.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts:
    - condition: (idx == get_rsa_exdata_idx())
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: rsa_exdata_free_callback
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - assert
    - get_rsa_exdata_idx
    - do_exdata_free_callback
    linkageType: ''
    returnType: void
    signature: void rsa_exdata_free_callback(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NEVERBLEED_MULTITHREAD_ONCE
      Src: /src/h2o/deps/neverbleed/neverbleed.c:573,1
    - Dst: RSA_get_ex_new_index
      Src: /src/h2o/deps/neverbleed/neverbleed.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: get_rsa_exdata_idx
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 1
    functionsReached:
    - NEVERBLEED_MULTITHREAD_ONCE
    - RSA_get_ex_new_index
    linkageType: ''
    returnType: int
    signature: int get_rsa_exdata_idx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_ex_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:581,1
    - Dst: get_rsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:581,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:584,1
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - rsa
    - exdata
    - thdata
    argTypes:
    - RSA*
    - struct st_neverbleed_rsa_exdata_t**
    - struct st_neverbleed_thread_data_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: get_privsep_data
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - RSA_get_ex_data
    - get_thread_data
    - dief
    - get_rsa_exdata_idx
    linkageType: ''
    returnType: void
    signature: "void get_privsep_data(const RSA *rsa, struct st_neverbleed_rsa_exdata_t
      **exdata,\n                             struct st_neverbleed_thread_data_t **thdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bssl_qat_async_finish_job
      Src: /src/h2o/deps/neverbleed/neverbleed.c:646,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:647,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:649,1
    - Dst: OPENSSL_cleanse
      Src: /src/h2o/deps/neverbleed/neverbleed.c:651,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct engine_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: offload_free_request
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_free
    - free
    - RSA_free
    - bssl_qat_async_finish_job
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void offload_free_request(struct engine_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - epollfd
    - op
    - fd
    - event
    argTypes:
    - int
    - int
    - int
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: do_epoll_ctl
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - epoll_ctl
    linkageType: ''
    returnType: int
    signature: int do_epoll_ctl(int epollfd, int op, int fd, struct epoll_event *event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/h2o/deps/neverbleed/neverbleed.c:672,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:673,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/h2o/deps/neverbleed/neverbleed.c:674,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:675,1
    - Dst: do_epoll_ctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:677,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct engine_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 679
    functionName: register_wait_fd
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - do_epoll_ctl
    - dief
    - ASYNC_WAIT_CTX_get_all_fds
    linkageType: ''
    returnType: void
    signature: void register_wait_fd(struct engine_request *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_write
      Src: /src/h2o/deps/neverbleed/neverbleed.c:693,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:694,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:697,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:698,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - cleanup
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 704
    functionName: send_responses
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_dispose
    - free
    - warnf
    - iobuf_write
    linkageType: ''
    returnType: int
    signature: int send_responses(int cleanup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:710,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:712,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: daemon_get_rsa
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - EVP_PKEY_get1_RSA
    linkageType: ''
    returnType: RSA
    signature: RSA *daemon_get_rsa(size_t key_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:723,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 740
    functionName: allocate_slot
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - realloc
    - dief
    linkageType: ''
    returnType: size_t
    signature: size_t allocate_slot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:744,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:746,1
    - Dst: allocate_slot
      Src: /src/h2o/deps/neverbleed/neverbleed.c:748,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/neverbleed/neverbleed.c:750,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts:
    - condition: (pkey != NULL)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 755
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 755
    functionName: daemon_set_pkey
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - allocate_slot
    - EVP_PKEY_up_ref
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t daemon_set_pkey(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:766,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:768,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:769,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:770,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:771,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:773,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:775,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:775,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:777,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:779,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - cmd
    - flen
    - from
    - _to
    - rsa
    - padding
    argTypes:
    - char*
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 783
    functionName: priv_encdec_proxy
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - get_privsep_data
    - iobuf_push_num
    - iobuf_transaction
    - memcpy
    - iobuf_shift_num
    - iobuf_push_str
    - iobuf_shift_bytes
    - dief
    - iobuf_dispose
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: int priv_encdec_proxy(const char *cmd, int flen, const unsigned char
      *from, unsigned char *_to, RSA *rsa, int padding)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:795,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:795,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:796,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:798,1
    - Dst: daemon_get_rsa
      Src: /src/h2o/deps/neverbleed/neverbleed.c:801,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:803,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:806,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:808,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:808,1
    - Dst: func
      Src: /src/h2o/deps/neverbleed/neverbleed.c:810,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:811,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:812,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:814,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - name
    - buf
    argTypes:
    - char*
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 818
    functionName: priv_encdec_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - warnf
    - func
    - iobuf_shift_num
    - RSA_free
    - iobuf_shift_bytes
    - RSA_size
    - dief
    - iobuf_dispose
    - daemon_get_rsa
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: "int priv_encdec_stub(const char *name,\n                            int
      (*func)(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int
      padding),\n                            neverbleed_iobuf_t *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv_encdec_proxy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 822
    functionDepth: 5
    functionLinenumber: 822
    functionLinenumberEnd: 825
    functionName: priv_enc_proxy
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - priv_encdec_proxy
    linkageType: ''
    returnType: int
    signature: int priv_enc_proxy(int flen, const unsigned char *from, unsigned char
      *to, RSA *rsa, int padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv_encdec_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: priv_enc_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - priv_encdec_stub
    linkageType: ''
    returnType: int
    signature: int priv_enc_stub(neverbleed_iobuf_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv_encdec_proxy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 5
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: priv_dec_proxy
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - priv_encdec_proxy
    linkageType: ''
    returnType: int
    signature: int priv_dec_proxy(int flen, const unsigned char *from, unsigned char
      *to, RSA *rsa, int padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv_encdec_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 4
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: priv_dec_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - priv_encdec_stub
    linkageType: ''
    returnType: int
    signature: int priv_dec_stub(neverbleed_iobuf_t *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:851,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:853,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:854,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:855,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:856,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:857,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:859,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:859,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:861,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:863,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - _sigret
    - _siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 868
    functionName: sign_proxy
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - get_privsep_data
    - iobuf_push_num
    - iobuf_transaction
    - memcpy
    - iobuf_shift_num
    - iobuf_push_str
    - iobuf_shift_bytes
    - dief
    - iobuf_dispose
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: "int sign_proxy(int type, const unsigned char *m, unsigned int m_len,
      unsigned char *_sigret, unsigned *_siglen,\n                      const RSA
      *rsa)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:878,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:878,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:878,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:880,1
    - Dst: daemon_get_rsa
      Src: /src/h2o/deps/neverbleed/neverbleed.c:883,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:885,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:888,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:890,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:890,1
    - Dst: RSA_sign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:892,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:893,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:894,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:896,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 900
    functionName: sign_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - RSA_sign
    - warnf
    - iobuf_shift_num
    - RSA_free
    - iobuf_shift_bytes
    - RSA_size
    - dief
    - iobuf_dispose
    - daemon_get_rsa
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: int sign_stub(neverbleed_iobuf_t *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:911,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:912,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:913,1
    - Dst: RSA_new_method
      Src: /src/h2o/deps/neverbleed/neverbleed.c:918,1
    - Dst: RSA_set_ex_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:919,1
    - Dst: get_rsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:919,1
    - Dst: BN_hex2bn
      Src: /src/h2o/deps/neverbleed/neverbleed.c:920,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:921,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:922,1
    - Dst: BN_hex2bn
      Src: /src/h2o/deps/neverbleed/neverbleed.c:924,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:925,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:926,1
    - Dst: RSA_set0_key
      Src: /src/h2o/deps/neverbleed/neverbleed.c:928,1
    - Dst: RSA_set_flags
      Src: /src/h2o/deps/neverbleed/neverbleed.c:930,1
    - Dst: EVP_PKEY_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:933,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:934,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - nb
    - key_index
    - ebuf
    - nbuf
    argTypes:
    - neverbleed_t*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 938
    functionName: create_pkey
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - RSA_set0_key
    - malloc
    - RSA_set_ex_data
    - abort
    - EVP_PKEY_set1_RSA
    - BN_hex2bn
    - RSA_set_flags
    - RSA_free
    - fprintf
    - EVP_PKEY_new
    - RSA_new_method
    - get_rsa_exdata_idx
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *create_pkey(neverbleed_t *nb, size_t key_index, const char
      *ebuf, const char *nbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:946,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/h2o/deps/neverbleed/neverbleed.c:948,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: daemon_get_ecdsa
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - EVP_PKEY_get1_EC_KEY
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *daemon_get_ecdsa(size_t key_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:962,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:962,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:962,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:964,1
    - Dst: daemon_get_ecdsa
      Src: /src/h2o/deps/neverbleed/neverbleed.c:967,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:969,1
    - Dst: ECDSA_sign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:973,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:974,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:976,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:978,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 982
    functionName: ecdsa_sign_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - EC_KEY_free
    - warnf
    - iobuf_shift_num
    - daemon_get_ecdsa
    - iobuf_shift_bytes
    - iobuf_dispose
    - ECDSA_sign
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: int ecdsa_sign_stub(neverbleed_iobuf_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:987,1
    - Dst: get_ecdsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:987,1
    - Dst: do_exdata_free_callback
      Src: /src/h2o/deps/neverbleed/neverbleed.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts:
    - condition: (idx == get_ecdsa_exdata_idx())
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 989
      start: 985
    functionDepth: 5
    functionLinenumber: 985
    functionLinenumberEnd: 989
    functionName: ecdsa_exdata_free_callback
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - get_ecdsa_exdata_idx
    - assert
    - do_exdata_free_callback
    linkageType: ''
    returnType: void
    signature: void ecdsa_exdata_free_callback(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NEVERBLEED_MULTITHREAD_ONCE
      Src: /src/h2o/deps/neverbleed/neverbleed.c:994,1
    - Dst: EC_KEY_get_ex_new_index
      Src: /src/h2o/deps/neverbleed/neverbleed.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 998
    functionName: get_ecdsa_exdata_idx
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 1
    functionsReached:
    - NEVERBLEED_MULTITHREAD_ONCE
    - EC_KEY_get_ex_new_index
    linkageType: ''
    returnType: int
    signature: int get_ecdsa_exdata_idx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get_ex_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1003,1
    - Dst: get_ecdsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1003,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1006,1
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ec_key
    - exdata
    - thdata
    argTypes:
    - EC_KEY*
    - struct st_neverbleed_rsa_exdata_t**
    - struct st_neverbleed_thread_data_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1009
    functionName: ecdsa_get_privsep_data
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - get_thread_data
    - get_ecdsa_exdata_idx
    - dief
    - EC_KEY_get_ex_data
    linkageType: ''
    returnType: void
    signature: "void ecdsa_get_privsep_data(const EC_KEY *ec_key, struct st_neverbleed_rsa_exdata_t
      **exdata,\n                                   struct st_neverbleed_thread_data_t
      **thdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ecdsa_get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1020,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1027,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1032,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1034,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1035,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1036,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1037,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1038,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1040,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1040,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1042,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1044,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - type
    - m
    - m_len
    - _sigret
    - _siglen
    - kinv
    - rp
    - ec_key
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1011
    functionDepth: 4
    functionLinenumber: 1011
    functionLinenumberEnd: 1049
    functionName: ecdsa_sign_proxy
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - iobuf_transaction
    - ecdsa_get_privsep_data
    - iobuf_shift_num
    - memcpy
    - dief
    - iobuf_push_str
    - iobuf_shift_bytes
    - iobuf_dispose
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: "int ecdsa_sign_proxy(int type, const unsigned char *m, int m_len,
      unsigned char *_sigret, unsigned int *_siglen,\n                            const
      BIGNUM *kinv, const BIGNUM *rp, EC_KEY *ec_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1059,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1060,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1061,1
    - Dst: EC_KEY_new_method
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1066,1
    - Dst: EC_KEY_set_ex_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1067,1
    - Dst: get_ecdsa_exdata_idx
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1067,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1069,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1071,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1072,1
    - Dst: EC_KEY_set_group
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1075,1
    - Dst: EC_POINT_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1077,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1078,1
    - Dst: EC_POINT_oct2point
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1079,1
    - Dst: fprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1080,1
    - Dst: abort
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1081,1
    - Dst: EC_KEY_set_public_key
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1083,1
    - Dst: EVP_PKEY_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1085,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1086,1
    - Dst: EC_POINT_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1088,1
    - Dst: EC_GROUP_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1089,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 5
    argNames:
    - nb
    - key_index
    - curve_name
    - pubkey
    - pubkey_len
    argTypes:
    - neverbleed_t*
    - size_t
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (ec_pubkey != NULL)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 1093
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1093
    functionName: ecdsa_create_pkey
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set1_EC_KEY
    - malloc
    - EC_POINT_free
    - EC_POINT_oct2point
    - EC_KEY_set_public_key
    - EC_POINT_new
    - EC_KEY_free
    - abort
    - EC_KEY_set_ex_data
    - get_ecdsa_exdata_idx
    - EC_KEY_new_method
    - EC_GROUP_new_by_curve_name
    - EC_KEY_set_group
    - EC_GROUP_free
    - fprintf
    - EVP_PKEY_new
    - assert
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ecdsa_create_pkey(neverbleed_t *nb, size_t key_index, int
      curve_name, const void *pubkey, size_t pubkey_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1101,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1104,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1109
    functionName: daemon_get_pkey
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *daemon_get_pkey(size_t key_index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1115,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1117,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1119,1
    - Dst: bssl_qat_async_start_job
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1120,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1123,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1124,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1126,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - pkey
    argTypes:
    - neverbleed_iobuf_t*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1130
    functionName: bssl_offload_create_request
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - malloc
    - EVP_PKEY_get1_RSA
    - dief
    - RSA_size
    - bssl_qat_async_start_job
    linkageType: ''
    returnType: struct engine_request
    signature: struct engine_request *bssl_offload_create_request(neverbleed_iobuf_t
      *buf, EVP_PKEY *pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1139,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1141,1
    - Dst: EVP_DigestInit_ex
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1142,1
    - Dst: EVP_DigestUpdate
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1142,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1143,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1144,1
    - Dst: EVP_MD_CTX_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1145,1
    - Dst: bssl_offload_create_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1148,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1149,1
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1154,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1155,1
    - Dst: EVP_MD_type
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1160,1
    - Dst: RSA_add_pkcs1_prefix
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1162,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1163,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1165,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1166,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1168,1
    - Dst: OPENSSL_cleanse
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1172,1
    - Dst: bssl_engine_get_rsa_method
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1175,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1177,1
    - Dst: RSA_METHOD*::sign_raw
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1179,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1180,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1182,1
    - Dst: register_wait_fd
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 6
    argNames:
    - buf
    - pkey
    - md
    - signdata
    - signlen
    - rsa_pss
    argTypes:
    - neverbleed_iobuf_t*
    - EVP_PKEY*
    - EVP_MD*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1186
    functionName: bssl_offload_digestsign
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - RSA_add_pkcs1_prefix
    - OPENSSL_free
    - EVP_MD_CTX_free
    - register_wait_fd
    - bssl_offload_create_request
    - EVP_DigestInit_ex
    - bssl_engine_get_rsa_method
    - memcpy
    - RSA_padding_add_PKCS1_PSS_mgf1
    - dief
    - EVP_DigestUpdate
    - EVP_DigestFinal_ex
    - RSA_size
    - EVP_MD_type
    - RSA_METHOD*::sign_raw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "void bssl_offload_digestsign(neverbleed_iobuf_t *buf, EVP_PKEY *pkey,
      const EVP_MD *md, const void *signdata, size_t signlen,\n                                    int
      rsa_pss)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bssl_offload_create_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1190,1
    - Dst: bssl_engine_get_rsa_method
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1193,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1195,1
    - Dst: RSA_METHOD*::decrypt
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1197,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1198,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1202,1
    - Dst: register_wait_fd
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1205,1
    - Dst: offload_free_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - buf
    - pkey
    - src
    - len
    argTypes:
    - neverbleed_iobuf_t*
    - EVP_PKEY*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1211
    functionName: bssl_offload_decrypt
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - RSA_METHOD*::decrypt
    - register_wait_fd
    - warnf
    - bssl_offload_create_request
    - bssl_engine_get_rsa_method
    - offload_free_request
    - dief
    linkageType: ''
    returnType: int
    signature: int bssl_offload_decrypt(neverbleed_iobuf_t *buf, EVP_PKEY *pkey, const
      void *src, size_t len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1224,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1224,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1225,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1225,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1227,1
    - Dst: daemon_get_pkey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1230,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1232,1
    - Dst: EVP_get_digestbynid
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1236,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1238,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1246,1
    - Dst: bssl_offload_digestsign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1247,1
    - Dst: EVP_MD_CTX_create
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1258,1
    - Dst: EVP_DigestSignInit
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1260,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1262,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1263,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1264,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1266,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1270,1
    - Dst: EVP_DigestSignFinal
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1272,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1275,1
    - Dst: EVP_DigestSignFinal
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1278,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1282,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1283,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1285,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1288,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 68
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1294
    functionName: digestsign_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    - EVP_PKEY_free
    - EVP_DigestSignInit
    - EVP_DigestSignFinal
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_DigestSignUpdate
    - bssl_offload_digestsign
    - warnf
    - iobuf_shift_num
    - EVP_get_digestbynid
    - EVP_PKEY_id
    - iobuf_shift_bytes
    - EVP_PKEY_CTX_set_rsa_padding
    - iobuf_push_bytes
    - iobuf_dispose
    - EVP_MD_CTX_create
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - daemon_get_pkey
    linkageType: ''
    returnType: int
    signature: int digestsign_stub(neverbleed_iobuf_t *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_base_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1304,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1306,1
    - Dst: get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1307,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1308,1
    - Dst: ecdsa_get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1313,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1313,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1317,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1322,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1323,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1324,1
    - Dst: EVP_MD_nid
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1324,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1325,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - buf
    - pkey
    - md
    - input
    - len
    - rsa_pss
    argTypes:
    - neverbleed_iobuf_t*
    - EVP_PKEY*
    - EVP_MD*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1296
    functionDepth: 3
    functionLinenumber: 1296
    functionLinenumberEnd: 1327
    functionName: neverbleed_start_digestsign
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 3
    functionsReached:
    - get_privsep_data
    - iobuf_push_num
    - EVP_PKEY_get1_RSA
    - EVP_PKEY_base_id
    - ecdsa_get_privsep_data
    - RSA_free
    - dief
    - iobuf_push_str
    - EVP_PKEY_get0_EC_KEY
    - EVP_MD_nid
    - iobuf_push_bytes
    linkageType: ''
    returnType: void
    signature: "void neverbleed_start_digestsign(neverbleed_iobuf_t *buf, EVP_PKEY
      *pkey, const EVP_MD *md, const void *input, size_t len,\n                                 int
      rsa_pss)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1333,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1335,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1337,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1338,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1339,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - digest
    - digest_len
    argTypes:
    - neverbleed_iobuf_t*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1342
    functionName: neverbleed_finish_digestsign
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 3
    functionsReached:
    - malloc
    - memcpy
    - iobuf_shift_bytes
    - dief
    - iobuf_dispose
    linkageType: ''
    returnType: void
    signature: void neverbleed_finish_digestsign(neverbleed_iobuf_t *buf, void **digest,
      size_t *digest_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1354,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1354,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1356,1
    - Dst: daemon_get_pkey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1359,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1361,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1365,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1366,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1367,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1369,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1369,1
    - Dst: bssl_offload_decrypt
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1374,1
    - Dst: RSA_private_decrypt
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1381,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1383,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1388,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1389,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts:
    - condition: (rsa != NULL)
      pos:
        line_end: 1365
        line_start: 1365
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 1398
      start: 1344
    functionDepth: 4
    functionLinenumber: 1344
    functionLinenumberEnd: 1398
    functionName: decrypt_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - warnf
    - EVP_PKEY_get1_RSA
    - RSA_private_decrypt
    - iobuf_shift_num
    - iobuf_push_bytes
    - iobuf_shift_bytes
    - RSA_size
    - dief
    - bssl_offload_decrypt
    - iobuf_dispose
    - daemon_get_pkey
    - assert
    linkageType: ''
    returnType: int
    signature: int decrypt_stub(neverbleed_iobuf_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1406,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1407,1
    - Dst: get_privsep_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1408,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1409,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1413,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1414,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - pkey
    - input
    - len
    argTypes:
    - neverbleed_iobuf_t*
    - EVP_PKEY*
    - void*
    - size_t
    assertStmts:
    - condition: (rsa != NULL)
      pos:
        line_end: 1406
        line_start: 1406
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1400
    functionDepth: 3
    functionLinenumber: 1400
    functionLinenumberEnd: 1416
    functionName: neverbleed_start_decrypt
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - get_privsep_data
    - iobuf_push_num
    - EVP_PKEY_get1_RSA
    - RSA_free
    - iobuf_push_str
    - iobuf_push_bytes
    - assert
    linkageType: ''
    returnType: void
    signature: void neverbleed_start_decrypt(neverbleed_iobuf_t *buf, EVP_PKEY *pkey,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: neverbleed_finish_digestsign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - digest
    - digest_len
    argTypes:
    - neverbleed_iobuf_t*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1421
    functionName: neverbleed_finish_decrypt
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 1
    functionsReached:
    - neverbleed_finish_digestsign
    linkageType: ''
    returnType: void
    signature: void neverbleed_finish_decrypt(neverbleed_iobuf_t *buf, void **digest,
      size_t *digest_len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1425,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1431,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1432,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1433,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1435,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1435,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1437,1
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1444,1
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1444,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1446,1
    - Dst: create_pkey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1448,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1456,1
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1456,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1458,1
    - Dst: ecdsa_create_pkey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1460,1
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1467,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1469,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1472,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1477,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1480,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1481,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1485,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - nb
    - ctx
    - fn
    - errbuf
    argTypes:
    - neverbleed_t*
    - SSL_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1423
    functionDepth: 4
    functionLinenumber: 1423
    functionLinenumberEnd: 1487
    functionName: neverbleed_load_private_key_file
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - SSL_CTX_use_PrivateKey
    - create_pkey
    - get_thread_data
    - iobuf_transaction
    - snprintf
    - iobuf_shift_num
    - ecdsa_create_pkey
    - iobuf_push_str
    - dief
    - iobuf_shift_str
    - iobuf_shift_bytes
    - iobuf_dispose
    linkageType: ''
    returnType: int
    signature: int neverbleed_load_private_key_file(neverbleed_t *nb, SSL_CTX *ctx,
      const char *fn, char *errbuf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1504,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1505,1
    - Dst: fopen
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1509,1
    - Dst: strerror_r
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1510,1
    - Dst: PEM_read_PrivateKey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1514,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1515,1
    - Dst: EVP_PKEY_base_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1519,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1523,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1525,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1526,1
    - Dst: RSA_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1528,1
    - Dst: RSA_get0_key
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1532,1
    - Dst: BN_bn2hex
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1533,1
    - Dst: BN_bn2hex
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1534,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1542,1
    - Dst: EC_KEY_get0_group
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1544,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1545,1
    - Dst: EC_POINT_point2oct
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1546,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1547,1
    - Dst: EC_POINT_point2oct
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1548,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1550,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1553,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1558,1
    - Dst: EVP_PKEY_base_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1558,1
    - Dst: daemon_set_pkey
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1563,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1566,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1567,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1568,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1571,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1572,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1576,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1576,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1577,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1581,1
    - Dst: RSA_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1584,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1586,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1588,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1590,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1593,1
    - Dst: fclose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1596,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1489
    functionDepth: 3
    functionLinenumber: 1489
    functionLinenumberEnd: 1599
    functionName: load_key_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_public_key
    - fopen
    - RSA_get0_key
    - RSA_free
    - free
    - warnf
    - EVP_PKEY_get1_RSA
    - EC_KEY_get0_group
    - dief
    - fclose
    - BN_bn2hex
    - iobuf_push_num
    - malloc
    - EVP_PKEY_free
    - OPENSSL_free
    - PEM_read_PrivateKey
    - EC_POINT_point2oct
    - snprintf
    - EVP_PKEY_get0_EC_KEY
    - iobuf_push_bytes
    - EC_GROUP_get_curve_name
    - EVP_PKEY_base_id
    - daemon_set_pkey
    - iobuf_push_str
    - RSA_size
    - iobuf_shift_str
    - iobuf_dispose
    - strerror_r
    linkageType: ''
    returnType: int
    signature: int load_key_stub(neverbleed_iobuf_t *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1603,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1607,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1608,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1609,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1610,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1612,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1614,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - nb
    - user
    - change_socket_ownership
    argTypes:
    - neverbleed_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1601
    functionDepth: 4
    functionLinenumber: 1601
    functionLinenumberEnd: 1619
    functionName: neverbleed_setuidgid
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 1
    functionsReached:
    - iobuf_push_num
    - get_thread_data
    - iobuf_transaction
    - iobuf_shift_num
    - iobuf_push_str
    - dief
    - iobuf_dispose
    linkageType: ''
    returnType: int
    signature: int neverbleed_setuidgid(neverbleed_t *nb, const char *user, int change_socket_ownership)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1629,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1629,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1631,1
    - Dst: getpwnam_r
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1636,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1637,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1641,1
    - Dst: chown
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1647,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1648,1
    - Dst: dirname
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1649,1
    - Dst: chown
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1650,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1651,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1652,1
    - Dst: setgid
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1656,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1657,1
    - Dst: initgroups
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1660,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1661,1
    - Dst: setuid
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1664,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1665,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1671,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1672,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1621
    functionDepth: 3
    functionLinenumber: 1621
    functionLinenumberEnd: 1674
    functionName: setuidgid_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - getpwnam_r
    - free
    - warnf
    - setuid
    - iobuf_shift_num
    - dief
    - iobuf_dispose
    - iobuf_shift_str
    - setgid
    - initgroups
    - dirname
    - chown
    linkageType: ''
    returnType: int
    signature: int setuidgid_stub(neverbleed_iobuf_t *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1679,1
    - Dst: iobuf_push_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1683,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1684,1
    - Dst: iobuf_transaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1685,1
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1687,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1689,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - nb
    - cpuset
    argTypes:
    - neverbleed_t*
    - NEVERBLEED_CPU_SET_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1677
    functionDepth: 4
    functionLinenumber: 1677
    functionLinenumberEnd: 1694
    functionName: neverbleed_setaffinity
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - get_thread_data
    - iobuf_transaction
    - iobuf_shift_num
    - iobuf_push_str
    - dief
    - iobuf_dispose
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: int neverbleed_setaffinity(neverbleed_t *nb, NEVERBLEED_CPU_SET_T *cpuset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1703,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1705,1
    - Dst: assert
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1709,1
    - Dst: memcpy
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1710,1
    - Dst: pthread_setaffinity_np
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1713,1
    - Dst: pthread_self
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1713,1
    - Dst: cpuset_size
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1713,1
    - Dst: pthread_setaffinity_np
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1715,1
    - Dst: pthread_self
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1715,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1725,1
    - Dst: iobuf_push_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts:
    - condition: (cpuset_len == sizeof(NEVERBLEED_CPU_SET_T))
      pos:
        line_end: 1708
        line_start: 1708
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    constantsTouched: []
    func_position:
      end: 1728
      start: 1696
    functionDepth: 3
    functionLinenumber: 1696
    functionLinenumberEnd: 1728
    functionName: setaffinity_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - iobuf_push_num
    - cpuset_size
    - pthread_setaffinity_np
    - warnf
    - memcpy
    - pthread_self
    - iobuf_shift_bytes
    - iobuf_dispose
    - assert
    linkageType: ''
    returnType: int
    signature: int setaffinity_stub(neverbleed_iobuf_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1738,1
    - Dst: unlink_dir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1746,1
    - Dst: dirname
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1746,1
    - Dst: _exit
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - _close_notify_fd
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1731
    functionDepth: 2
    functionLinenumber: 1731
    functionLinenumberEnd: 1749
    functionName: daemon_close_notify_thread
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - unlink_dir
    - dirname
    - _exit
    - read
    linkageType: ''
    returnType: void
    signature: void *daemon_close_notify_thread(void *_close_notify_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobuf_shift_num
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1755,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1757,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1761,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1764,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1768,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1751
    functionDepth: 3
    functionLinenumber: 1751
    functionLinenumberEnd: 1773
    functionName: del_pkey_stub
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - warnf
    - pthread_mutex_lock
    - iobuf_shift_num
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int del_pkey_stub(neverbleed_iobuf_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stub
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1776
    functionName: offload_start
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offload_start(stub, buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_epoll_ctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1784,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1785,1
    - Dst: bssl_qat_async_ctx_copy_result
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1788,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1789,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1791,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1793,1
    - Dst: iobuf_push_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1794,1
    - Dst: offload_free_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct engine_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1780
    functionDepth: 3
    functionLinenumber: 1780
    functionLinenumberEnd: 1800
    functionName: offload_resume
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - do_epoll_ctl
    - offload_free_request
    - dief
    - iobuf_dispose
    - bssl_qat_async_ctx_copy_result
    - iobuf_push_bytes
    linkageType: ''
    returnType: int
    signature: int offload_resume(struct engine_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct engine_request*::stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _req
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1808
    functionName: offload_jobfunc
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - struct engine_request*::stub
    linkageType: ''
    returnType: int
    signature: int offload_jobfunc(void *_req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1815,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1819,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1821,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1824,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1825,1
    - Dst: ASYNC_start_job
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1828,1
    - Dst: register_wait_fd
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1830,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1836,1
    - Dst: offload_free_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1811
    functionDepth: 2
    functionLinenumber: 1811
    functionLinenumberEnd: 1843
    functionName: offload_start
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - malloc
    - ASYNC_start_job
    - register_wait_fd
    - offload_free_request
    - dief
    - stub
    - ASYNC_WAIT_CTX_new
    linkageType: ''
    returnType: int
    signature: int offload_start(int (*stub)(neverbleed_iobuf_t *), neverbleed_iobuf_t
      *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_start_job
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1849,1
    - Dst: do_epoll_ctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1854,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1855,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1858,1
    - Dst: offload_free_request
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct engine_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1867
    functionName: offload_resume
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - offload_free_request
    - do_epoll_ctl
    - dief
    - ASYNC_start_job
    linkageType: ''
    returnType: int
    signature: int offload_resume(struct engine_request *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: epoll_wait
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1886,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1890,1
    - Dst: offload_resume
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1897,1
    - Dst: send_responses
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1899,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1909,1
    - Dst: FD_SET
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1911,1
    - Dst: select
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1913,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1916,1
    - Dst: nanosleep
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1922,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - cleanup
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1878
    functionDepth: 4
    functionLinenumber: 1878
    functionLinenumberEnd: 1925
    functionName: wait_for_data
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - select
    - FD_ZERO
    - offload_resume
    - dief
    - FD_SET
    - epoll_wait
    - nanosleep
    - send_responses
    linkageType: ''
    returnType: int
    signature: int wait_for_data(int cleanup)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create1
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1934,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1935,1
    - Dst: do_epoll_ctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1938,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1939,1
    - Dst: read_nbytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1945,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1946,1
    - Dst: memcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1949,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1950,1
    - Dst: wait_for_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1956,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1958,1
    - Dst: malloc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1959,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1961,1
    - Dst: iobuf_read
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1964,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1966,1
    - Dst: iobuf_shift_str
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1969,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1971,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1975,1
    - Dst: offload_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1976,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1978,1
    - Dst: offload_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1979,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1981,1
    - Dst: offload_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1982,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1985,1
    - Dst: ecdsa_sign_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1986,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1991,1
    - Dst: digestsign_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1992,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1994,1
    - Dst: offload_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1995,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1997,1
    - Dst: offload_start
      Src: /src/h2o/deps/neverbleed/neverbleed.c:1998,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2000,1
    - Dst: load_key_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2001,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2003,1
    - Dst: del_pkey_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2004,1
    - Dst: iobuf_dispose
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2006,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2009,1
    - Dst: setuidgid_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2010,1
    - Dst: strcmp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2013,1
    - Dst: setaffinity_stub
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2014,1
    - Dst: warnf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2018,1
    - Dst: send_responses
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2027,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2032,1
    - Dst: wait_for_data
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2035,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2037,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2039,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 100
    argCount: 1
    argNames:
    - _sock_fd
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 1927
    functionDepth: 5
    functionLinenumber: 1927
    functionLinenumberEnd: 2043
    functionName: daemon_conn_thread
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - offload_start
    - digestsign_stub
    - setuidgid_stub
    - free
    - do_epoll_ctl
    - warnf
    - load_key_stub
    - dief
    - send_responses
    - close
    - malloc
    - memcmp
    - del_pkey_stub
    - read_nbytes
    - iobuf_read
    - setaffinity_stub
    - strcmp
    - epoll_create1
    - iobuf_shift_str
    - iobuf_dispose
    - ecdsa_sign_stub
    - wait_for_data
    linkageType: ''
    returnType: void
    signature: void *daemon_conn_thread(void *_sock_fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2051,1
    - Dst: sysconf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2055,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2057
    functionName: my_closefrom
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - close
    - sysconf
    - syscall
    linkageType: ''
    returnType: void
    signature: void my_closefrom(int lowfd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2080,1
    - Dst: closefrom
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2083,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - listen_fd
    - close_notify_fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2084
    functionName: cleanup_fds
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - close
    - closefrom
    linkageType: ''
    returnType: void
    signature: void cleanup_fds(int listen_fd, int close_notify_fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_fds
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2092,1
    - Dst: pthread_attr_init
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2093,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2094,1
    - Dst: ENGINE_load_qat
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2100,1
    - Dst: bssl_qat_set_default_string
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2101,1
    - Dst: ENGINE_QAT_PTR_GET
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2102,1
    - Dst: ENGINE_by_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2104,1
    - Dst: ENGINE_init
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2105,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2106,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2107,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2112,1
    - Dst: pthread_create
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2118,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2119,1
    - Dst: accept
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2122,1
    - Dst: pthread_create
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2124,1
    - Dst: dief
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2125,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - listen_fd
    - close_notify_fd
    - tempdir
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2086
    functionDepth: 2
    functionLinenumber: 2086
    functionLinenumberEnd: 2127
    functionName: daemon_main
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - cleanup_fds
    - bssl_qat_set_default_string
    - pthread_create
    - ENGINE_set_default_RSA
    - ENGINE_load_qat
    - ENGINE_QAT_PTR_GET
    - pthread_attr_init
    - pthread_attr_setdetachstate
    - dief
    - ENGINE_by_id
    - accept
    linkageType: ''
    returnType: void
    signature: void daemon_main(int listen_fd, int close_notify_fd, const char *tempdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2133,1
    - Dst: sigemptyset
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2134,1
    - Dst: sigaction
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2137
    functionName: set_signal_handler
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 6
    functionsReached:
    - memset
    - sigaction
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void set_signal_handler(int signo, void (*cb)(int signo))
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2166,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2167,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2167,1
    - Dst: set_cloexec
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2170,1
    - Dst: strdup
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2171,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2172,1
    - Dst: mkdtemp
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2175,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2176,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2176,1
    - Dst: memset
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2179,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2181,1
    - Dst: RAND_bytes
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2182,1
    - Dst: socket
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2183,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2184,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2184,1
    - Dst: bind
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2187,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2188,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2188,1
    - Dst: listen
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2191,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2192,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2192,1
    - Dst: fork
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2195,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2198,1
    - Dst: strerror
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2198,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2201,1
    - Dst: prctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2203,1
    - Dst: prctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2204,1
    - Dst: procctl
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2207,1
    - Dst: setpflags
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2209,1
    - Dst: ptrace
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2211,1
    - Dst: set_signal_handler
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2213,1
    - Dst: neverbleed_post_fork_cb
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2215,1
    - Dst: daemon_main
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2217,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2222,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2224,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2239,1
    - Dst: RSA_meth_dup
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2240,1
    - Dst: RSA_meth_set1_name
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2242,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2243,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2244,1
    - Dst: RSA_meth_set_sign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2245,1
    - Dst: RSA_PKCS1_SSLeay
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2247,1
    - Dst: EC_KEY_get_default_method
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2257,1
    - Dst: EC_KEY_METHOD_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2258,1
    - Dst: EC_KEY_METHOD_set_sign
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2261,1
    - Dst: ENGINE_new
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2264,1
    - Dst: ENGINE_set_id
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2264,1
    - Dst: ENGINE_set_name
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2265,1
    - Dst: ENGINE_set_RSA
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2265,1
    - Dst: ENGINE_set_EC
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2267,1
    - Dst: snprintf
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2270,1
    - Dst: ENGINE_add
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2273,1
    - Dst: pthread_key_create
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2278,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2280,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2284,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2286,1
    - Dst: unlink_dir
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2288,1
    - Dst: free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2289,1
    - Dst: close
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2292,1
    - Dst: ENGINE_free
      Src: /src/h2o/deps/neverbleed/neverbleed.c:2294,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 105
    argCount: 2
    argNames:
    - nb
    - errbuf
    argTypes:
    - neverbleed_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2160
    functionDepth: 3
    functionLinenumber: 2160
    functionLinenumberEnd: 2298
    functionName: neverbleed_init
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.c
    functionUses: 2
    functionsReached:
    - RSA_meth_set_sign
    - EC_KEY_METHOD_new
    - procctl
    - pipe
    - ENGINE_set_name
    - ptrace
    - daemon_main
    - ENGINE_free
    - setpflags
    - listen
    - EC_KEY_get_default_method
    - ENGINE_set_EC
    - ENGINE_add
    - free
    - RAND_bytes
    - ENGINE_set_RSA
    - fork
    - strerror
    - memset
    - RSA_meth_dup
    - close
    - set_cloexec
    - RSA_meth_set_priv_enc
    - ENGINE_new
    - snprintf
    - unlink_dir
    - prctl
    - set_signal_handler
    - neverbleed_post_fork_cb
    - RSA_PKCS1_OpenSSL
    - RSA_meth_set_priv_dec
    - RSA_PKCS1_SSLeay
    - strdup
    - EC_KEY_METHOD_set_sign
    - ENGINE_set_id
    - mkdtemp
    - pthread_key_create
    - bind
    - socket
    - RSA_meth_set1_name
    linkageType: ''
    returnType: int
    signature: int neverbleed_init(neverbleed_t *nb, char *errbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - neverbleed_iobuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: neverbleed_iobuf_size
    functionSourceFile: /src/h2o/deps/neverbleed/neverbleed.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t neverbleed_iobuf_size(neverbleed_iobuf_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/minicrypto.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: test_secp256r1_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - test_key_exchange
    linkageType: ''
    returnType: void
    signature: void test_secp256r1_key_exchange(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/minicrypto.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: test_x25519_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - test_key_exchange
    linkageType: ''
    returnType: void
    signature: void test_x25519_key_exchange(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/t/minicrypto.c:53,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/t/minicrypto.c:53,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:54,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:56,1
    - Dst: secp256r1sha256_sign
      Src: /src/h2o/deps/picotls/t/minicrypto.c:56,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:56,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:58,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/minicrypto.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: test_secp256r1_sign
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_dispose
    - uECC_make_key
    - ok
    - uECC_secp256r1
    - secp256r1sha256_sign
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_secp256r1_sign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/minicrypto.c:75,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/minicrypto.c:76,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/minicrypto.c:78,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/minicrypto.c:79,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:80,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:81,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:82,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/minicrypto.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:85,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/minicrypto.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:89,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:90,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:94,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/minicrypto.c:97,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:98,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:99,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:102,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:103,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/minicrypto.c:106,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:111,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:112,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/minicrypto.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:116,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:117,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/minicrypto.c:120,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:121,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/minicrypto.c:124,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:125,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:130,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/minicrypto.c:130,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/minicrypto.c:132,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/minicrypto.c:133,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/minicrypto.c:134,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/minicrypto.c:135,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/minicrypto.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx_peer->key_exchanges[0] != NULL && ctx_peer->key_exchanges[0]->id
        == PTLS_GROUP_SECP256R1)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/deps/picotls/t/minicrypto.c
    - condition: (ctx_peer->key_exchanges[1] == NULL)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/picotls/t/minicrypto.c
    constantsTouched: []
    func_position:
      end: 137
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 137
    functionName: test_hrr
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - ptls_new
    - ptls_handshake
    - ptls_buffer_dispose
    - memcmp
    - ptls_send
    - ptls_free
    - ptls_receive
    - ok
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_hrr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/t/minicrypto.c:146,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:147,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/t/minicrypto.c:151,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:152,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/t/minicrypto.c:155,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: test_asn1_empty_input
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - ok
    - ptls_asn1_get_expected_type_and_length
    linkageType: ''
    returnType: void
    signature: void test_asn1_empty_input(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - depth
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: build_nested_asn1_sequence
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t build_nested_asn1_sequence(uint8_t *buf, size_t depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_nested_asn1_sequence
      Src: /src/h2o/deps/picotls/t/minicrypto.c:183,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:184,1
    - Dst: ptls_asn1_validation
      Src: /src/h2o/deps/picotls/t/minicrypto.c:184,1
    - Dst: build_nested_asn1_sequence
      Src: /src/h2o/deps/picotls/t/minicrypto.c:186,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/minicrypto.c:187,1
    - Dst: ptls_asn1_validation
      Src: /src/h2o/deps/picotls/t/minicrypto.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: test_asn1_recursion
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 0
    functionsReached:
    - build_nested_asn1_sequence
    - ptls_asn1_validation
    - ok
    linkageType: ''
    returnType: void
    signature: void test_asn1_recursion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:195,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:196,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:197,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:199,1
    - Dst: ptls_minicrypto_init_secp256r1sha256_sign_certificate
      Src: /src/h2o/deps/picotls/t/minicrypto.c:202,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/minicrypto.c:203,1
    - Dst: ADD_FFX_AES128_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/minicrypto.c:212,1
    - Dst: ADD_FFX_CHACHA20_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/minicrypto.c:213,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:215,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:216,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:217,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/minicrypto.c:218,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/minicrypto.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 221
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/minicrypto.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_minicrypto_init_secp256r1sha256_sign_certificate
    - ADD_FFX_AES128_ALGORITHMS
    - ADD_FFX_CHACHA20_ALGORITHMS
    - subtest
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/picotls/t/fusion.c:37,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/fusion.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - _p
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: tostr
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 3
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: char
    signature: char *tostr(const void *_p, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/fusion.c:59,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/t/fusion.c:60,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:61,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:62,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/fusion.c:65,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: test_loadn128
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - memcmp
    - loadn128
    - memcpy
    - ok
    - memset
    linkageType: ''
    returnType: void
    signature: void test_loadn128(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesecb_init
      Src: /src/h2o/deps/picotls/t/fusion.c:77,1
    - Dst: ptls_fusion_aesecb_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:78,1
    - Dst: ptls_fusion_aesecb_dispose
      Src: /src/h2o/deps/picotls/t/fusion.c:79,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:80,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:80,1
    - Dst: tostr
      Src: /src/h2o/deps/picotls/t/fusion.c:80,1
    - Dst: ptls_fusion_aesecb_init
      Src: /src/h2o/deps/picotls/t/fusion.c:82,1
    - Dst: ptls_fusion_aesecb_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:83,1
    - Dst: ptls_fusion_aesecb_dispose
      Src: /src/h2o/deps/picotls/t/fusion.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:85,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:85,1
    - Dst: tostr
      Src: /src/h2o/deps/picotls/t/fusion.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: test_ecb
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - tostr
    - strcmp
    - ptls_fusion_aesecb_encrypt
    - ptls_fusion_aesecb_init
    - ptls_fusion_aesecb_dispose
    - ok
    linkageType: ''
    returnType: void
    signature: void test_ecb(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/fusion.c:93,1
    - Dst: calc_aesgcm_context_size
      Src: /src/h2o/deps/picotls/t/fusion.c:93,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:99,1
    - Dst: setup_one_ghash_entry
      Src: /src/h2o/deps/picotls/t/fusion.c:107,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:117,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:118,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:118,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:119,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:120,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:123,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:124,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:124,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:125,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:128,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:128,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:136,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:137,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:137,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:138,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:139,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:142,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:143,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:143,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:144,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:144,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:148,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:148,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:156,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:157,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:157,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/t/fusion.c:158,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:158,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:159,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:160,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:163,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:164,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:164,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:165,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:165,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:166,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:166,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:170,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:170,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:179,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:180,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:180,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/t/fusion.c:181,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:181,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:182,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:183,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:183,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:184,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:185,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:188,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:189,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:189,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:190,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:190,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:191,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:191,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:192,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:192,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:193,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:194,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:194,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:195,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:198,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:198,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:207,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:208,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:208,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/t/fusion.c:209,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:209,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:210,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/t/fusion.c:211,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/t/fusion.c:211,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/t/fusion.c:212,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:213,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:216,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:217,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:217,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:218,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:218,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:219,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:219,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:220,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:220,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:221,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/t/fusion.c:222,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:222,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/t/fusion.c:223,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:223,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/t/fusion.c:224,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:227,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:227,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/fusion.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 234
    functionName: test_gfmul
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - gfmul_firststep128
    - malloc
    - setup_one_ghash_entry
    - gfmul_reduce256
    - memcmp
    - gfmul_firststep256
    - _mm256_setzero_si256
    - _mm256_castsi256_si128
    - gfmul_nextstep128
    - gfmul_nextstep256
    - gfmul_reduce128
    - _mm_setzero_si128
    - free
    - ok
    - _mm_loadu_si128
    - calc_aesgcm_context_size
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: void test_gfmul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_new
      Src: /src/h2o/deps/picotls/t/fusion.c:242,1
    - Dst: ptls_fusion_aesgcm_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:244,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:244,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:245,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:245,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/fusion.c:246,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:247,1
    - Dst: ptls_fusion_aesgcm_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:247,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:247,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:248,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:248,1
    - Dst: ptls_fusion_aesgcm_free
      Src: /src/h2o/deps/picotls/t/fusion.c:249,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/t/fusion.c:266,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:268,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:269,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:269,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:270,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:270,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:271,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:271,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:272,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:272,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 275
    functionName: gcm_basic
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_new
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_new_direct
    - ptls_fusion_aesgcm_free
    - _mm_setzero_si128
    - ptls_aead_free
    - ptls_fusion_aesgcm_decrypt
    - ptls_fusion_aesgcm_encrypt
    - ok
    - memset
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void gcm_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_new
      Src: /src/h2o/deps/picotls/t/fusion.c:281,1
    - Dst: ptls_fusion_aesgcm_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:283,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:283,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:284,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:284,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:285,1
    - Dst: ptls_fusion_aesgcm_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:285,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/t/fusion.c:285,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:286,1
    - Dst: ptls_fusion_aesgcm_free
      Src: /src/h2o/deps/picotls/t/fusion.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: gcm_capacity
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_new
    - memcmp
    - ptls_fusion_aesgcm_free
    - _mm_setzero_si128
    - ptls_fusion_aesgcm_decrypt
    - ptls_fusion_aesgcm_encrypt
    - ok
    linkageType: ''
    returnType: void
    signature: void gcm_capacity(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_new
      Src: /src/h2o/deps/picotls/t/fusion.c:293,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:310,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:311,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:312,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:313,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:314,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:315,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:316,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:317,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:318,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:319,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:321,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:322,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:323,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:325,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:326,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:327,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:329,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:330,1
    - Dst: DOIT
      Src: /src/h2o/deps/picotls/t/fusion.c:332,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/fusion.c:336,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/fusion.c:337,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/fusion.c:341,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/fusion.c:342,1
    - Dst: ptls_fusion_aesgcm_free
      Src: /src/h2o/deps/picotls/t/fusion.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 344
    functionName: gcm_test_vectors
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_new
    - malloc
    - ptls_cipher_new
    - DOIT
    - free
    - ptls_fusion_aesgcm_free
    - ptls_cipher_free
    linkageType: ''
    returnType: void
    signature: void gcm_test_vectors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - aad
    - ','
    - aadlen
    - ','
    - ptlen
    - ','
    - expected_tag
    - ','
    - expected_supp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: DOIT
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOIT(aad, aadlen, ptlen, expected_tag, expected_supp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/t/fusion.c:361,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:366,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:367,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:368,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:368,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:369,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:369,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:370,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:370,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:371,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:371,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:372,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:373,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:374,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:374,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:375,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:376,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:377,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:377,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:378,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:378,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 380
    functionName: gcm_iv96
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_new_direct
    - ptls_aead_free
    - ptls_aead_decrypt
    - ok
    - ptls_aead_xor_iv
    linkageType: ''
    returnType: void
    signature: void gcm_iv96(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/fusion.c:387,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/fusion.c:388,1
    - Dst: fputc
      Src: /src/h2o/deps/picotls/t/fusion.c:397,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/t/fusion.c:398,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:403,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:404,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:405,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:406,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:407,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:408,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:412,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:413,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/fusion.c:417,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/fusion.c:418,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/t/fusion.c:421,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:423,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:427,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:430,1
    - Dst: ptls_aead_encrypt_v
      Src: /src/h2o/deps/picotls/t/fusion.c:433,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:435,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:437,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/fusion.c:440,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/t/fusion.c:443,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/fusion.c:445,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:446,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:448,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:450,1
    - Dst: fputc
      Src: /src/h2o/deps/picotls/t/fusion.c:454,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/t/fusion.c:455,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:457,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/fusion.c:458,1
    - Dst: fputc
      Src: /src/h2o/deps/picotls/t/fusion.c:462,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/t/fusion.c:463,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/fusion.c:464,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:465,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 466
    functionName: test_generated
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - memset
    - ptls_cipher_new
    - ptls_aead_encrypt
    - memcmp
    - note
    - fflush
    - ptls_aead_new_direct
    - ptls_aead_encrypt_v
    - ptls_aead_free
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ptls_cipher_init
    - ptls_aead_decrypt
    - ok
    - fputc
    - ptls_aead_xor_iv
    linkageType: ''
    returnType: void
    signature: void test_generated(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/fusion.c:477,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/fusion.c:478,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:480,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/fusion.c:481,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:483,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/fusion.c:484,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/fusion.c:484,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:486,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/fusion.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 488
    functionName: test_generated_set_capacity
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_free
    - ptls_aead_new
    - ok
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void test_generated_set_capacity(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:496,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:498,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:503,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:505,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:509,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:515,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:517,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - e1
    - e2
    - can_multivec
    argTypes:
    - ptls_aead_algorithm_t*
    - ptls_aead_algorithm_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 520
    functionName: test_generated_all
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_generated_all(ptls_aead_algorithm_t *e1, ptls_aead_algorithm_t
      *e2, int can_multivec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_generated_all
      Src: /src/h2o/deps/picotls/t/fusion.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: test_fusion_aes128gcm
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - test_generated_all
    linkageType: ''
    returnType: void
    signature: void test_fusion_aes128gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_generated_all
      Src: /src/h2o/deps/picotls/t/fusion.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: test_fusion_aes256gcm
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - test_generated_all
    linkageType: ''
    returnType: void
    signature: void test_fusion_aes256gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:534,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: test_fusion_aesgcm
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_fusion_aesgcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_generated_all
      Src: /src/h2o/deps/picotls/t/fusion.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: test_non_temporal_aes128gcm
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - test_generated_all
    linkageType: ''
    returnType: void
    signature: void test_non_temporal_aes128gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_generated_all
      Src: /src/h2o/deps/picotls/t/fusion.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: test_non_temporal_aes256gcm
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - test_generated_all
    linkageType: ''
    returnType: void
    signature: void test_non_temporal_aes256gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:550,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: test_non_temporal
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_non_temporal(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_is_supported_by_cpu
      Src: /src/h2o/deps/picotls/t/fusion.c:556,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/fusion.c:557,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/fusion.c:558,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:563,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:564,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:565,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:566,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:567,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:568,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:569,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:570,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:571,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:572,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:576,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/fusion.c:577,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/fusion.c:580,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/fusion.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 584
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/fusion.c
    functionUses: 1
    functionsReached:
    - subtest
    - ptls_fusion_is_supported_by_cpu
    - note
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/cli.c:63,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/cli.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - delta
    argTypes:
    - ptls_buffer_t*
    - size_t
    assertStmts:
    - condition: (delta <= buf->off)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/h2o/deps/picotls/t/cli.c
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: shift_buffer
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void shift_buffer(ptls_buffer_t *buf, size_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/h2o/deps/picotls/t/cli.c:73,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:74,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/cli.c:74,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:75,1
    - Dst: ptls_log_add_fd
      Src: /src/h2o/deps/picotls/t/cli.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: setup_ptlslog
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strerror
    - ptls_log_add_fd
    - open
    linkageType: ''
    returnType: void
    signature: void setup_ptlslog(const char *fn)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/cli.c:86,1
    - Dst: ptls_context_t*::get_time::cb
      Src: /src/h2o/deps/picotls/t/cli.c:94,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/cli.c:96,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/cli.c:97,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/cli.c:98,1
    - Dst: fcntl
      Src: /src/h2o/deps/picotls/t/cli.c:100,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:101,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/t/cli.c:106,1
    - Dst: open
      Src: /src/h2o/deps/picotls/t/cli.c:109,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:110,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/cli.c:110,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/cli.c:117,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/cli.c:118,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:119,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/picotls/t/cli.c:131,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/picotls/t/cli.c:132,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/picotls/t/cli.c:133,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/cli.c:134,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/cli.c:136,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/cli.c:137,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/cli.c:140,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/cli.c:141,1
    - Dst: select
      Src: /src/h2o/deps/picotls/t/cli.c:147,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/picotls/t/cli.c:150,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/picotls/t/cli.c:150,1
    - Dst: read
      Src: /src/h2o/deps/picotls/t/cli.c:153,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/cli.c:163,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/cli.c:165,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/t/cli.c:165,1
    - Dst: ech_save_retry_configs
      Src: /src/h2o/deps/picotls/t/cli.c:166,1
    - Dst: shift_buffer
      Src: /src/h2o/deps/picotls/t/cli.c:169,1
    - Dst: ptls_update_key
      Src: /src/h2o/deps/picotls/t/cli.c:171,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/cli.c:176,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/t/cli.c:176,1
    - Dst: ech_save_retry_configs
      Src: /src/h2o/deps/picotls/t/cli.c:177,1
    - Dst: repeat_while_eintr
      Src: /src/h2o/deps/picotls/t/cli.c:180,1
    - Dst: write
      Src: /src/h2o/deps/picotls/t/cli.c:180,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:181,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/cli.c:185,1
    - Dst: repeat_while_eintr
      Src: /src/h2o/deps/picotls/t/cli.c:189,1
    - Dst: write
      Src: /src/h2o/deps/picotls/t/cli.c:189,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:195,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/picotls/t/cli.c:206,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/picotls/t/cli.c:206,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/cli.c:207,1
    - Dst: read
      Src: /src/h2o/deps/picotls/t/cli.c:209,1
    - Dst: close
      Src: /src/h2o/deps/picotls/t/cli.c:216,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/cli.c:221,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/cli.c:223,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/cli.c:238,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:239,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/cli.c:245,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:246,1
    - Dst: write
      Src: /src/h2o/deps/picotls/t/cli.c:255,1
    - Dst: shift_buffer
      Src: /src/h2o/deps/picotls/t/cli.c:262,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/cli.c:271,1
    - Dst: ptls_send_alert
      Src: /src/h2o/deps/picotls/t/cli.c:272,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:273,1
    - Dst: repeat_while_eintr
      Src: /src/h2o/deps/picotls/t/cli.c:276,1
    - Dst: write
      Src: /src/h2o/deps/picotls/t/cli.c:276,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/cli.c:277,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/cli.c:280,1
    - Dst: shutdown
      Src: /src/h2o/deps/picotls/t/cli.c:281,1
    - Dst: ptls_context_t*::get_time::cb
      Src: /src/h2o/deps/picotls/t/cli.c:289,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/picotls/t/cli.c:290,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:291,1
    - Dst: close
      Src: /src/h2o/deps/picotls/t/cli.c:296,1
    - Dst: close
      Src: /src/h2o/deps/picotls/t/cli.c:298,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/cli.c:299,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/cli.c:300,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/cli.c:301,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/cli.c:302,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 200
    argCount: 7
    argNames:
    - sockfd
    - ctx
    - server_name
    - input_file
    - hsprop
    - request_key_update
    - keep_sender_open
    argTypes:
    - int
    - ptls_context_t*
    - char*
    - char*
    - ptls_handshake_properties_t*
    - int
    - int
    assertStmts:
    - condition: (ptls_is_server(tls) || hsprop->client.early_data_acceptance != PTLS_EARLY_DATA_ACCEPTANCE_UNKNOWN)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/h2o/deps/picotls/t/cli.c
    - condition: (!ptls_is_server(tls))
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/h2o/deps/picotls/t/cli.c
    constantsTouched: []
    func_position:
      end: 305
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 305
    functionName: handle_connection
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 0
    functionsReached:
    - ptls_context_t*::get_time::cb
    - read
    - FD_ZERO
    - ptls_is_server
    - shift_buffer
    - assert
    - ech_save_retry_configs
    - ptls_get_cipher
    - select
    - ptls_send
    - ptls_buffer_reserve
    - fprintf
    - repeat_while_eintr
    - write
    - strerror
    - FD_SET
    - memset
    - close
    - ptls_set_server_name
    - perror
    - ptls_update_key
    - fcntl
    - ptls_receive
    - ptls_buffer_init
    - ptls_buffer_dispose
    - ptls_send_alert
    - ptls_handshake
    - FD_ISSET
    - ptls_free
    - shutdown
    - open
    - ptls_new
    linkageType: ''
    returnType: int
    signature: "int handle_connection(int sockfd, ptls_context_t *ctx, const char
      *server_name, const char *input_file,\n                             ptls_handshake_properties_t
      *hsprop, int request_key_update, int keep_sender_open)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/picotls/t/cli.c:312,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:313,1
    - Dst: setsockopt
      Src: /src/h2o/deps/picotls/t/cli.c:316,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:317,1
    - Dst: bind
      Src: /src/h2o/deps/picotls/t/cli.c:320,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:321,1
    - Dst: listen
      Src: /src/h2o/deps/picotls/t/cli.c:324,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:325,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:329,1
    - Dst: ntohs
      Src: /src/h2o/deps/picotls/t/cli.c:329,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:331,1
    - Dst: accept
      Src: /src/h2o/deps/picotls/t/cli.c:332,1
    - Dst: handle_connection
      Src: /src/h2o/deps/picotls/t/cli.c:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - sa
    - salen
    - ctx
    - input_file
    - hsprop
    - request_key_update
    argTypes:
    - struct sockaddr*
    - socklen_t
    - ptls_context_t*
    - char*
    - ptls_handshake_properties_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 337
    functionName: run_server
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 1
    functionsReached:
    - perror
    - setsockopt
    - accept
    - handle_connection
    - fprintf
    - bind
    - socket
    - listen
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int run_server(struct sockaddr *sa, socklen_t salen, ptls_context_t
      *ctx, const char *input_file,\n                      ptls_handshake_properties_t
      *hsprop, int request_key_update)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/picotls/t/cli.c:344,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:345,1
    - Dst: connect
      Src: /src/h2o/deps/picotls/t/cli.c:348,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/t/cli.c:349,1
    - Dst: handle_connection
      Src: /src/h2o/deps/picotls/t/cli.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - sa
    - salen
    - ctx
    - server_name
    - input_file
    - hsprop
    - request_key_update
    - keep_sender_open
    argTypes:
    - struct sockaddr*
    - socklen_t
    - ptls_context_t*
    - char*
    - char*
    - ptls_handshake_properties_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: run_client
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 1
    functionsReached:
    - connect
    - handle_connection
    - socket
    - perror
    linkageType: ''
    returnType: int
    signature: "int run_client(struct sockaddr *sa, socklen_t salen, ptls_context_t
      *ctx, const char *server_name, const char *input_file,\n                      ptls_handshake_properties_t
      *hsprop, int request_key_update, int keep_sender_open)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/cli.c:359,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/cli.c:433,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/cli.c:436,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/cli.c:437,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/cli.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 440
    functionName: usage
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 12
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/h2o/deps/picotls/t/cli.c:444,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/picotls/t/cli.c:445,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/h2o/deps/picotls/t/cli.c:448,1
    - Dst: ENGINE_register_all_ciphers
      Src: /src/h2o/deps/picotls/t/cli.c:449,1
    - Dst: ENGINE_register_all_digests
      Src: /src/h2o/deps/picotls/t/cli.c:450,1
    - Dst: res_init
      Src: /src/h2o/deps/picotls/t/cli.c:453,1
    - Dst: getopt
      Src: /src/h2o/deps/picotls/t/cli.c:472,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:487,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:488,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:497,1
    - Dst: setup_ptlslog
      Src: /src/h2o/deps/picotls/t/cli.c:510,1
    - Dst: load_private_key
      Src: /src/h2o/deps/picotls/t/cli.c:513,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/cli.c:525,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/cli.c:525,1
    - Dst: setup_session_file
      Src: /src/h2o/deps/picotls/t/cli.c:531,1
    - Dst: ech_setup_configs
      Src: /src/h2o/deps/picotls/t/cli.c:537,1
    - Dst: ech_setup_key
      Src: /src/h2o/deps/picotls/t/cli.c:540,1
    - Dst: setup_log_event
      Src: /src/h2o/deps/picotls/t/cli.c:543,1
    - Dst: setup_verify_certificate
      Src: /src/h2o/deps/picotls/t/cli.c:546,1
    - Dst: setup_verify_certificate
      Src: /src/h2o/deps/picotls/t/cli.c:549,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/picotls/t/cli.c:552,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/picotls/t/cli.c:558,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:561,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/picotls/t/cli.c:577,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:583,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:584,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:590,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:591,1
    - Dst: sscanf
      Src: /src/h2o/deps/picotls/t/cli.c:597,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:599,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:600,1
    - Dst: usage
      Src: /src/h2o/deps/picotls/t/cli.c:604,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:605,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:607,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/cli.c:614,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/cli.c:616,1
    - Dst: load_raw_public_key
      Src: /src/h2o/deps/picotls/t/cli.c:617,1
    - Dst: load_raw_public_key
      Src: /src/h2o/deps/picotls/t/cli.c:622,1
    - Dst: d2i_PUBKEY
      Src: /src/h2o/deps/picotls/t/cli.c:623,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:625,1
    - Dst: setup_raw_pubkey_verify_certificate
      Src: /src/h2o/deps/picotls/t/cli.c:628,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/cli.c:629,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:634,1
    - Dst: load_file
      Src: /src/h2o/deps/picotls/t/cli.c:637,1
    - Dst: load_certificate_chain
      Src: /src/h2o/deps/picotls/t/cli.c:640,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:644,1
    - Dst: ptls_init_compressed_certificate
      Src: /src/h2o/deps/picotls/t/cli.c:652,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/cli.c:652,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:654,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:655,1
    - Dst: setup_session_cache
      Src: /src/h2o/deps/picotls/t/cli.c:660,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/cli.c:680,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:683,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:684,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/cli.c:689,1
    - Dst: resolve_address
      Src: /src/h2o/deps/picotls/t/cli.c:695,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/cli.c:696,1
    - Dst: run_server
      Src: /src/h2o/deps/picotls/t/cli.c:699,1
    - Dst: run_client
      Src: /src/h2o/deps/picotls/t/cli.c:701,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 215
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 703
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/cli.c
    functionUses: 1
    functionsReached:
    - ERR_load_crypto_strings
    - res_init
    - run_client
    - setup_log_event
    - sscanf
    - load_certificate_chain
    - ech_setup_key
    - ptls_iovec_init
    - setup_ptlslog
    - ENGINE_register_all_digests
    - setup_raw_pubkey_verify_certificate
    - fprintf
    - usage
    - load_raw_public_key
    - run_server
    - setup_session_cache
    - getopt
    - malloc
    - EVP_PKEY_free
    - setup_verify_certificate
    - exit
    - load_file
    - ENGINE_load_builtin_engines
    - OpenSSL_add_all_algorithms
    - ENGINE_register_all_ciphers
    - load_private_key
    - strlen
    - ech_setup_configs
    - setup_session_file
    - d2i_PUBKEY
    - strcmp
    - resolve_address
    - strcasecmp
    - ptls_init_compressed_certificate
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotls/t/hpke.c:125,1
    - Dst: dh_derive
      Src: /src/h2o/deps/picotls/t/hpke.c:132,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/hpke.c:132,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/hpke.c:133,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/hpke.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:136,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/hpke.c:136,1
    - Dst: key_schedule
      Src: /src/h2o/deps/picotls/t/hpke.c:142,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/hpke.c:142,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:143,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/hpke.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:146,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/hpke.c:146,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/hpke.c:148,1
    - Dst: key_schedule
      Src: /src/h2o/deps/picotls/t/hpke.c:154,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/hpke.c:154,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:155,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:157,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/hpke.c:157,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/hpke.c:160,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/hpke.c:160,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/hpke.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 164
    functionName: test_one_hpke
    functionSourceFile: /src/h2o/deps/picotls/t/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - key_schedule
    - note
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_free
    - dh_derive
    - ok
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void test_one_hpke(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/deps/picotls/t/hpke.c:172,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/hpke.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - all_kems
    - all_ciphers
    argTypes:
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: test_hpke
    functionSourceFile: /src/h2o/deps/picotls/t/hpke.c
    functionUses: 0
    functionsReached:
    - snprintf
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_hpke(ptls_hpke_kem_t **all_kems, ptls_hpke_cipher_suite_t
      **all_ciphers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:72,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: bench_time
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bench_time()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:101,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:102,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:103,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:104,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:110,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:117,1
    - Dst: bench_time
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:124,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:130,1
    - Dst: bench_time
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:134,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:141,1
    - Dst: bench_time
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:149,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:159,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:164,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 7
    argNames:
    - e
    - d
    - n
    - l
    - t_enc
    - t_dec
    - s
    argTypes:
    - ptls_aead_context_t*
    - ptls_aead_context_t*
    - size_t
    - size_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 173
    functionName: bench_run_one
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_aead_encrypt
    - free
    - bench_time
    - memset
    - ptls_aead_decrypt
    linkageType: ''
    returnType: int
    signature: "int bench_run_one(ptls_aead_context_t *e, ptls_aead_context_t *d,
      size_t n, size_t l, uint64_t *t_enc, uint64_t *t_dec,\n                         uint64_t
      *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - t
    - l
    - n
    argTypes:
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: bench_mbps
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double bench_mbps(uint64_t t, size_t l, size_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:202,1
    - Dst: sprintf_s
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:215,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:217,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:223,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:224,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:225,1
    - Dst: bench_run_one
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:230,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:232,1
    - Dst: bench_mbps
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:233,1
    - Dst: bench_mbps
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:234,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:239,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 11
    argNames:
    - OS
    - HW
    - basic_ref
    - s0
    - provider
    - algo_name
    - aead
    - hash
    - n
    - l
    - s
    argTypes:
    - char*
    - char*
    - int
    - uint64_t
    - char*
    - char*
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - size_t
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 247
    functionName: bench_run_aead
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 0
    functionsReached:
    - sprintf_s
    - bench_mbps
    - strcmp
    - ptls_aead_free
    - ptls_aead_new
    - sprintf
    - printf
    - bench_run_one
    - memset
    linkageType: ''
    returnType: int
    signature: "int bench_run_aead(char *OS, char *HW, int basic_ref, uint64_t s0,
      const char *provider, const char *algo_name,\n                          ptls_aead_algorithm_t
      *aead, ptls_hash_algorithm_t *hash, size_t n, size_t l, uint64_t *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bench_time
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:294,1
    - Dst: bench_time
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: bench_basic
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 0
    functionsReached:
    - bench_time
    linkageType: ''
    returnType: int
    signature: int bench_basic(uint64_t *x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bench_basic
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:319,1
    - Dst: strcpy_s
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:327,1
    - Dst: strcpy_s
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:328,1
    - Dst: uname
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:332,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:333,1
    - Dst: strcpy
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:334,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:336,1
    - Dst: strcpy
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:337,1
    - Dst: psa_crypto_init
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:343,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:344,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:345,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:349,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:352,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:353,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:356,1
    - Dst: bench_run_aead
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:361,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:369,1
    - Dst: mbedtls_psa_crypto_free
      Src: /src/h2o/deps/picotls/t/ptlsbench.c:374,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 378
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/ptlsbench.c
    functionUses: 1
    functionsReached:
    - uname
    - mbedtls_psa_crypto_free
    - bench_basic
    - psa_crypto_init
    - strcpy_s
    - exit
    - strcmp
    - printf
    - fprintf
    - bench_run_aead
    - strlen
    - strcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_load_certificates
      Src: /src/h2o/deps/picotls/t/util.h:45,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:46,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:46,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - fn
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: load_certificate_chain
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - strerror
    - ptls_load_certificates
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void load_certificate_chain(ptls_context_t *ctx, const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_load_pem_objects
      Src: /src/h2o/deps/picotls/t/util.h:54,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:55,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:55,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - raw_public_key
    - cert_pem_file
    argTypes:
    - ptls_iovec_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: load_raw_public_key
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - fprintf
    - strerror
    - exit
    - ptls_load_pem_objects
    linkageType: ''
    returnType: void
    signature: void load_raw_public_key(ptls_iovec_t *raw_public_key, char const *cert_pem_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:66,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:67,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:67,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:68,1
    - Dst: PEM_read_PrivateKey
      Src: /src/h2o/deps/picotls/t/util.h:70,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:71,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:74,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:75,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/picotls/t/util.h:78,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/util.h:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - fn
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 82
    functionName: load_private_key
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - ptls_openssl_init_sign_certificate
    - PEM_read_PrivateKey
    - exit
    - fopen
    - fprintf
    - fclose
    - strerror
    linkageType: ''
    returnType: void
    signature: void load_private_key(ptls_context_t *ctx, const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:94,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:95,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:95,1
    - Dst: fwrite
      Src: /src/h2o/deps/picotls/t/util.h:98,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - _self
    - tls
    - src
    argTypes:
    - ptls_save_ticket_t*
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: util_save_ticket_cb
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - fwrite
    - fopen
    - fprintf
    - fclose
    - strerror
    linkageType: ''
    returnType: int
    signature: int util_save_ticket_cb(ptls_save_ticket_t *_self, ptls_t *tls, ptls_iovec_t
      src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/h2o/deps/picotls/t/util.h:110,1
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:115,1
    - Dst: fread
      Src: /src/h2o/deps/picotls/t/util.h:117,1
    - Dst: feof
      Src: /src/h2o/deps/picotls/t/util.h:118,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:119,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:120,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:122,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/util.h:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - hsprop
    - fn
    argTypes:
    - ptls_context_t*
    - ptls_handshake_properties_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: setup_session_file
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - feof
    - fread
    - exit
    - fopen
    - fprintf
    - fclose
    - strcpy
    linkageType: ''
    returnType: void
    signature: void setup_session_file(ptls_context_t *ctx, ptls_handshake_properties_t
      *hsprop, const char *fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/h2o/deps/picotls/t/util.h:130,1
    - Dst: X509_STORE_add_lookup
      Src: /src/h2o/deps/picotls/t/util.h:133,1
    - Dst: X509_LOOKUP_file
      Src: /src/h2o/deps/picotls/t/util.h:133,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/h2o/deps/picotls/t/util.h:134,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:136,1
    - Dst: X509_STORE_free
      Src: /src/h2o/deps/picotls/t/util.h:137,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:138,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:141,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - crt_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: init_cert_store
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - exit
    - X509_STORE_add_lookup
    - X509_LOOKUP_load_file
    - X509_STORE_new
    - fprintf
    - X509_STORE_free
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *init_cert_store(char const *crt_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_init_verify_certificate
      Src: /src/h2o/deps/picotls/t/util.h:151,1
    - Dst: init_cert_store
      Src: /src/h2o/deps/picotls/t/util.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ca_file
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: setup_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - ptls_openssl_init_verify_certificate
    - init_cert_store
    linkageType: ''
    returnType: void
    signature: void setup_verify_certificate(ptls_context_t *ctx, const char *ca_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_raw_pubkey_init_verify_certificate
      Src: /src/h2o/deps/picotls/t/util.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pubkey
    argTypes:
    - ptls_context_t*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: setup_raw_pubkey_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - ptls_openssl_raw_pubkey_init_verify_certificate
    linkageType: ''
    returnType: void
    signature: void setup_raw_pubkey_verify_certificate(ptls_context_t *ctx, EVP_PKEY
      *pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/t/util.h:173,1
    - Dst: ptls_get_client_random
      Src: /src/h2o/deps/picotls/t/util.h:173,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:174,1
    - Dst: va_start
      Src: /src/h2o/deps/picotls/t/util.h:176,1
    - Dst: vfprintf
      Src: /src/h2o/deps/picotls/t/util.h:177,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/t/util.h:178,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:180,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/t/util.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - _self
    - tls
    - type
    - fmt
    argTypes:
    - ptls_log_event_t*
    - ptls_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: log_event_cb
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - va_start
    - ptls_get_client_random
    - ptls_hexdump
    - fflush
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void log_event_cb(ptls_log_event_t *_self, ptls_t *tls, const char
      *type, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:188,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:189,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:189,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - fn
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: setup_log_event
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - strerror
    - fopen
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void setup_log_event(ptls_context_t *ctx, const char *fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/picotls/t/util.h:211,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/util.h:212,1
    - Dst: ptls_get_context
      Src: /src/h2o/deps/picotls/t/util.h:215,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:216,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/util.h:220,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:222,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/util.h:230,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/util.h:234,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - _self
    - tls
    - is_encrypt
    - dst
    - src
    argTypes:
    - ptls_encrypt_ticket_t*
    - ptls_t*
    - int
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 241
    functionName: encrypt_ticket_cb
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - malloc
    - memcmp
    - ptls_get_context
    - free
    - ptls_buffer_reserve
    - memcpy
    linkageType: ''
    returnType: int
    signature: int encrypt_ticket_cb(ptls_encrypt_ticket_t *_self, ptls_t *tls, int
      is_encrypt, ptls_buffer_t *dst, ptls_iovec_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: setup_session_cache
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_session_cache(ptls_context_t *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/t/util.h:290,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/t/util.h:292,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/t/util.h:295,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:303,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/util.h:306,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:307,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:308,1
    - Dst: ptls_hpke_setup_base_r
      Src: /src/h2o/deps/picotls/t/util.h:310,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/util.h:311,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/util.h:312,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:324,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 8
    argNames:
    - self
    - kem
    - cipher
    - tls
    - config_id
    - cipher_id
    - enc
    - info_prefix
    argTypes:
    - ptls_ech_create_opener_t*
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    - ptls_t*
    - uint8_t
    - ptls_hpke_cipher_suite_id_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 326
    functionName: ech_create_opener
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - ptls_decode_open_block
    - free
    - ptls_decode16
    - memcpy
    - fprintf
    - ptls_hpke_setup_base_r
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: "ptls_aead_context_t *ech_create_opener(ptls_ech_create_opener_t *self,
      ptls_hpke_kem_t **kem,\n                                              ptls_hpke_cipher_suite_t
      **cipher, ptls_t *tls, uint8_t config_id,\n                                              ptls_hpke_cipher_suite_id_t
      cipher_id, ptls_iovec_t enc, ptls_iovec_t info_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:334,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:335,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:335,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:336,1
    - Dst: fwrite
      Src: /src/h2o/deps/picotls/t/util.h:338,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 340
    functionName: ech_save_retry_configs
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - fwrite
    - exit
    - fopen
    - fprintf
    - fclose
    - strerror
    linkageType: ''
    returnType: void
    signature: void ech_save_retry_configs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:347,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:348,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:348,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:349,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/util.h:352,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:353,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/t/util.h:354,1
    - Dst: fread
      Src: /src/h2o/deps/picotls/t/util.h:356,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 360
    functionName: load_file
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 3
    functionsReached:
    - malloc
    - fread
    - abort
    - exit
    - fopen
    - fprintf
    - fclose
    - strerror
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t load_file(const char *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/h2o/deps/picotls/t/util.h:364,1
    - Dst: strdup
      Src: /src/h2o/deps/picotls/t/util.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: ech_setup_configs
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - load_file
    - strdup
    linkageType: ''
    returnType: void
    signature: void ech_setup_configs(const char *fn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/picotls/t/util.h:374,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:375,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/t/util.h:375,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:376,1
    - Dst: PEM_read_PrivateKey
      Src: /src/h2o/deps/picotls/t/util.h:378,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:379,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:380,1
    - Dst: ptls_openssl_create_key_exchange
      Src: /src/h2o/deps/picotls/t/util.h:382,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:383,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:384,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/util.h:386,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/t/util.h:387,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:396,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/t/util.h:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - fn
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 404
    functionName: ech_setup_key
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 2
    functionsReached:
    - ptls_openssl_create_key_exchange
    - EVP_PKEY_free
    - PEM_read_PrivateKey
    - exit
    - fopen
    - fprintf
    - fclose
    - strerror
    linkageType: ''
    returnType: void
    signature: void ech_setup_key(ptls_context_t *ctx, const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/util.h:412,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/picotls/t/util.h:417,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/util.h:418,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/picotls/t/util.h:419,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/util.h:423,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/picotls/t/util.h:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - sa
    - salen
    - host
    - port
    - family
    - type
    - proto
    argTypes:
    - struct sockaddr*
    - socklen_t*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 428
    functionName: resolve_address
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 5
    functionsReached:
    - freeaddrinfo
    - getaddrinfo
    - gai_strerror
    - memcpy
    - fprintf
    - memset
    linkageType: ''
    returnType: int
    signature: "int resolve_address(struct sockaddr *sa, socklen_t *salen, const char
      *host, const char *port, int family, int type,\n                                  int
      proto)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/util.h:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 448
    functionName: normalize_txt
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: int normalize_txt(uint8_t *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exit_block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: repeat_while_eintr
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repeat_while_eintr(expr, exit_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exit_block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 465
    functionName: repeat_while_eintr
    functionSourceFile: /src/h2o/deps/picotls/t/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repeat_while_eintr(expr, exit_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:38,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:38,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:39,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:39,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:40,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:40,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:41,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:41,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:42,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:42,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:43,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:43,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:44,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/t/picotls.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: test_is_ipaddr
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_server_name_is_ipaddr
    - ok
    linkageType: ''
    returnType: void
    signature: void test_is_ipaddr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:52,1
    - Dst: extension_bitmap_testandset
      Src: /src/h2o/deps/picotls/t/picotls.c:52,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:55,1
    - Dst: extension_bitmap_testandset
      Src: /src/h2o/deps/picotls/t/picotls.c:55,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:56,1
    - Dst: extension_bitmap_testandset
      Src: /src/h2o/deps/picotls/t/picotls.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: test_extension_bitmap
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - extension_bitmap_testandset
    - ok
    linkageType: ''
    returnType: void
    signature: void test_extension_bitmap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:68,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:68,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:73,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:74,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:74,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:75,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:76,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:77,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:82,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:83,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:85,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:86,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:92,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:92,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:93,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:94,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:95,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:95,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:96,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:102,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:102,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:103,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:104,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:105,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:106,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:106,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:108,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:109,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:115,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:115,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:116,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:117,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:117,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:118,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:119,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:119,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:120,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:125,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:125,1
    - Dst: C
      Src: /src/h2o/deps/picotls/t/picotls.c:126,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:127,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:127,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:128,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:129,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:129,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:130,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:131,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:131,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:132,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:133,1
    - Dst: select_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:133,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 138
    functionName: test_select_cipher
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - select_cipher
    - ok
    - C
    linkageType: ''
    returnType: void
    signature: void test_select_cipher(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: C
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - ptls_context_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: find_cipher
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t *find_cipher(ptls_context_t *ctx, uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/t/picotls.c:157,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:158,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:159,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - ptls_hash_algorithm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: test_hash
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_calc_hash
    - ok
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_hash(ptls_hash_algorithm_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_hash
      Src: /src/h2o/deps/picotls/t/picotls.c:164,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: test_sha256
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_hash
    linkageType: ''
    returnType: void
    signature: void test_sha256(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:169,1
    - Dst: test_hash
      Src: /src/h2o/deps/picotls/t/picotls.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: test_sha384
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_hash
    linkageType: ''
    returnType: void
    signature: void test_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/t/picotls.c:184,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:184,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:184,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:186,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/t/picotls.c:187,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:187,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/t/picotls.c:188,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:189,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:189,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:191,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/t/picotls.c:192,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:192,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/t/picotls.c:193,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:194,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:194,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:196,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/t/picotls.c:197,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:197,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/t/picotls.c:198,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:199,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 200
    functionName: test_hmac_sha256
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - memcmp
    - ptls_hash_context_t*::final
    - ptls_hash_context_t*::update
    - ok
    - memset
    - ptls_hmac_create
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:204,1
    - Dst: ptls_hkdf_extract
      Src: /src/h2o/deps/picotls/t/picotls.c:211,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:211,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:211,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:212,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:212,1
    - Dst: ptls_hkdf_expand
      Src: /src/h2o/deps/picotls/t/picotls.c:217,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:217,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:217,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:218,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: test_hkdf
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_extract
    - find_cipher
    - ptls_hkdf_expand
    - memcmp
    - ok
    linkageType: ''
    returnType: void
    signature: void test_hkdf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:232,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:233,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:234,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:234,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:235,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:235,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:236,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:238,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:239,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:242,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:243,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:244,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:245,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:246,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:246,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:247,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:247,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:248,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:248,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:249,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:249,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:253,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:254,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - cs1
    - cs2
    argTypes:
    - ptls_cipher_suite_t*
    - ptls_cipher_suite_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (c != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 257
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 257
    functionName: test_ciphersuite
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_free
    - ptls_aead_new
    - ok
    - assert
    - strlen
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void test_ciphersuite(ptls_cipher_suite_t *cs1, ptls_cipher_suite_t
      *cs2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:278,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:279,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/picotls.c:281,1
    - Dst: ptls_aead_encrypt_init
      Src: /src/h2o/deps/picotls/t/picotls.c:284,1
    - Dst: ptls_aead_encrypt_update
      Src: /src/h2o/deps/picotls/t/picotls.c:287,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:287,1
    - Dst: ptls_aead_encrypt_final
      Src: /src/h2o/deps/picotls/t/picotls.c:288,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:289,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:292,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:293,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:294,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:295,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:296,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:301,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:304,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:304,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:305,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:305,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:305,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - cs1
    - cs2
    argTypes:
    - ptls_cipher_suite_t*
    - ptls_cipher_suite_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 308
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 308
    functionName: test_ciphersuite_stream
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt_final
    - note
    - memcmp
    - ptls_aead_free
    - ptls_aead_new
    - ok
    - ptls_aead_encrypt_init
    - ptls_aead_encrypt_update
    - assert
    - strlen
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void test_ciphersuite_stream(ptls_cipher_suite_t *cs1, ptls_cipher_suite_t
      *cs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:318,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:319,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:320,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:320,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:320,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:321,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:324,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:325,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:326,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:326,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:327,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:327,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:328,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:328,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:329,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:329,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:330,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - cs1
    - cs2
    argTypes:
    - ptls_cipher_suite_t*
    - ptls_cipher_suite_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (c != NULL)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 332
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 332
    functionName: test_aad_ciphersuite
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_free
    - ptls_aead_new
    - ok
    - assert
    - strlen
    - ptls_aead_decrypt
    linkageType: ''
    returnType: void
    signature: void test_aad_ciphersuite(ptls_cipher_suite_t *cs1, ptls_cipher_suite_t
      *cs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:344,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:345,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:346,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:347,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:347,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:347,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:348,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/t/picotls.c:351,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:352,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:354,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:355,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:355,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:356,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:357,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:357,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:358,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:358,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:360,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:361,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:361,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:362,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:363,1
    - Dst: ptls_aead_xor_iv
      Src: /src/h2o/deps/picotls/t/picotls.c:365,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:366,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:366,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:367,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:367,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:368,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:368,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/t/picotls.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - cs1
    - cs2
    argTypes:
    - ptls_cipher_suite_t*
    - ptls_cipher_suite_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (c != NULL)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 370
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 370
    functionName: test_aad96_ciphersuite
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - memcmp
    - ptls_aead_free
    - ptls_aead_new
    - ptls_aead_decrypt
    - ok
    - assert
    - strlen
    - ptls_aead_xor_iv
    linkageType: ''
    returnType: void
    signature: void test_aad96_ciphersuite(ptls_cipher_suite_t *cs1, ptls_cipher_suite_t
      *cs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/picotls.c:379,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:380,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:382,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:383,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:384,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:385,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:386,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:386,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:389,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:390,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:391,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:392,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:392,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - algo
    - expected
    - expected_len
    argTypes:
    - ptls_cipher_algorithm_t*
    - void*
    - size_t
    assertStmts:
    - condition: (actual != NULL)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: test_ecb
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_cipher_new
    - memcmp
    - free
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ok
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void test_ecb(ptls_cipher_algorithm_t *algo, const void *expected,
      size_t expected_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ecb
      Src: /src/h2o/deps/picotls/t/picotls.c:402,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: test_aes128ecb
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_ecb
    - find_cipher
    linkageType: ''
    returnType: void
    signature: void test_aes128ecb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:409,1
    - Dst: test_ecb
      Src: /src/h2o/deps/picotls/t/picotls.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: test_aes256ecb
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_ecb
    - find_cipher
    linkageType: ''
    returnType: void
    signature: void test_aes256ecb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:426,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:427,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:428,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:430,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:431,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:432,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:433,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:434,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:436,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - cs
    - key
    - key_len
    - iv
    - iv_len
    - expected
    - expected_len
    argTypes:
    - ptls_cipher_suite_t*
    - uint8_t*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (expected_len <= sizeof(zeroes))
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx != NULL)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 437
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 437
    functionName: test_ctr
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - memcmp
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ptls_cipher_init
    - ok
    - assert
    linkageType: ''
    returnType: void
    signature: "void test_ctr(ptls_cipher_suite_t *cs, const uint8_t *key, size_t
      key_len, const void *iv, size_t iv_len,\n                     const void *expected,
      size_t expected_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ctr
      Src: /src/h2o/deps/picotls/t/picotls.c:446,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: test_aes128ctr
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_ctr
    - find_cipher
    linkageType: ''
    returnType: void
    signature: void test_aes128ctr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ctr
      Src: /src/h2o/deps/picotls/t/picotls.c:458,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: test_chacha20
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_ctr
    - find_cipher
    linkageType: ''
    returnType: void
    signature: void test_chacha20(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:464,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:465,1
    - Dst: test_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:467,1
    - Dst: test_ciphersuite_stream
      Src: /src/h2o/deps/picotls/t/picotls.c:468,1
    - Dst: test_aad_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:469,1
    - Dst: test_aad96_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 471
    functionName: test_aes128gcm
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_aad_ciphersuite
    - test_aad96_ciphersuite
    - test_ciphersuite_stream
    - test_ciphersuite
    linkageType: ''
    returnType: void
    signature: void test_aes128gcm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:475,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:476,1
    - Dst: test_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:479,1
    - Dst: test_ciphersuite_stream
      Src: /src/h2o/deps/picotls/t/picotls.c:480,1
    - Dst: test_aad_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:481,1
    - Dst: test_aad96_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 484
    functionName: test_aes256gcm
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_aad_ciphersuite
    - test_aad96_ciphersuite
    - test_ciphersuite_stream
    - test_ciphersuite
    linkageType: ''
    returnType: void
    signature: void test_aes256gcm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:488,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:489,1
    - Dst: test_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:492,1
    - Dst: test_ciphersuite_stream
      Src: /src/h2o/deps/picotls/t/picotls.c:493,1
    - Dst: test_aad_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:494,1
    - Dst: test_aad96_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 497
    functionName: test_chacha20poly1305
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_aad_ciphersuite
    - test_aad96_ciphersuite
    - test_ciphersuite_stream
    - test_ciphersuite
    linkageType: ''
    returnType: void
    signature: void test_chacha20poly1305(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:502,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:503,1
    - Dst: test_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:506,1
    - Dst: test_ciphersuite_stream
      Src: /src/h2o/deps/picotls/t/picotls.c:507,1
    - Dst: test_aad_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:508,1
    - Dst: test_aad96_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 511
    functionName: test_aegis128l
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_aad_ciphersuite
    - test_aad96_ciphersuite
    - test_ciphersuite_stream
    - test_ciphersuite
    linkageType: ''
    returnType: void
    signature: void test_aegis128l(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:515,1
    - Dst: find_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:516,1
    - Dst: test_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:519,1
    - Dst: test_ciphersuite_stream
      Src: /src/h2o/deps/picotls/t/picotls.c:520,1
    - Dst: test_aad_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:521,1
    - Dst: test_aad96_ciphersuite
      Src: /src/h2o/deps/picotls/t/picotls.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 524
    functionName: test_aegis256
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - find_cipher
    - test_aad_ciphersuite
    - test_aad96_ciphersuite
    - test_ciphersuite_stream
    - test_ciphersuite
    linkageType: ''
    returnType: void
    signature: void test_aegis256(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:548,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:549,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:550,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:551,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:556,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:557,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:558,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:560,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:561,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:562,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:562,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:564,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:565,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:566,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:566,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:568,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:569,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:570,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:570,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:573,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:576,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:579,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:587,1
    - Dst: ptls_ffx_new
      Src: /src/h2o/deps/picotls/t/picotls.c:588,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/picotls.c:589,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:590,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:592,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:593,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/t/picotls.c:594,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/picotls.c:595,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:596,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:596,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:599,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/picotls.c:602,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ffx_variants[2].bit_length == 53)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 604
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 604
    functionName: test_ffx
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - memcmp
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ptls_cipher_init
    - ptls_ffx_new
    - ok
    - assert
    linkageType: ''
    returnType: void
    signature: void test_ffx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:612,1
    - Dst: ptls_base64_decode_init
      Src: /src/h2o/deps/picotls/t/picotls.c:614,1
    - Dst: ptls_base64_decode
      Src: /src/h2o/deps/picotls/t/picotls.c:615,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:616,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:617,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:618,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:618,1
    - Dst: ptls_base64_decode_init
      Src: /src/h2o/deps/picotls/t/picotls.c:622,1
    - Dst: ptls_base64_decode
      Src: /src/h2o/deps/picotls/t/picotls.c:623,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:624,1
    - Dst: ptls_base64_decode_init
      Src: /src/h2o/deps/picotls/t/picotls.c:628,1
    - Dst: ptls_base64_decode
      Src: /src/h2o/deps/picotls/t/picotls.c:629,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:632,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 635
    functionName: test_base64_decode
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_base64_decode
    - ptls_buffer_dispose
    - memcmp
    - ok
    - ptls_base64_decode_init
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_base64_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_one_ech_config
      Src: /src/h2o/deps/picotls/t/picotls.c:646,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:647,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:651,1
    - Dst: decode_one_ech_config
      Src: /src/h2o/deps/picotls/t/picotls.c:653,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:654,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:655,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:656,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:657,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:658,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:659,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:660,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:661,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:662,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 664
    functionName: test_ech_decode_config
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - decode_one_ech_config
    - ptls_iovec_init
    - ok
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_ech_decode_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:669,1
    - Dst: TEST
      Src: /src/h2o/deps/picotls/t/picotls.c:688,1
    - Dst: TEST
      Src: /src/h2o/deps/picotls/t/picotls.c:695,1
    - Dst: TEST
      Src: /src/h2o/deps/picotls/t/picotls.c:705,1
    - Dst: TEST
      Src: /src/h2o/deps/picotls/t/picotls.c:714,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 719
    functionName: test_rebuild_ch_inner
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - TEST
    - ptls_buffer_dispose
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_rebuild_ch_inner(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _expected_err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: TEST
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(_expected_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:723,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: test_ech
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_ech(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/picotls.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - tls
    - emitter
    - message
    - is_end_of_record
    - properties
    argTypes:
    - ptls_t*
    - struct st_ptls_message_emitter_t*
    - ptls_iovec_t
    - int
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: test_fragmented_message_record
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int test_fragmented_message_record(ptls_t *tls, struct st_ptls_message_emitter_t
      *emitter, ptls_iovec_t message,\n                                          int
      is_end_of_record, ptls_handshake_properties_t *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:764,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:766,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:767,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:768,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:769,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:770,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:770,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:771,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:772,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:776,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:778,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:779,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:780,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:781,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:782,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:785,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:786,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:787,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:788,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:789,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:789,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:793,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:794,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:795,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:795,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:799,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:800,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:802,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:803,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:804,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:805,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:806,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:807,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:807,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:811,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:815,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:817,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:818,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:819,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:822,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:824,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:825,1
    - Dst: SET_RECORD
      Src: /src/h2o/deps/picotls/t/picotls.c:826,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/t/picotls.c:827,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:828,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 832
    functionName: test_fragmented_message
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - SET_RECORD
    - handle_handshake_record
    - ok
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_fragmented_message(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: SET_RECORD
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RECORD(lit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:836,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - tls
    - params
    argTypes:
    - ptls_on_client_hello_t*
    - ptls_t*
    - ptls_on_client_hello_parameters_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: save_client_hello
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_set_server_name
    - ptls_set_negotiated_protocol
    linkageType: ''
    returnType: int
    signature: int save_client_hello(ptls_on_client_hello_t *self, ptls_t *tls, ptls_on_client_hello_parameters_t
      *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - tls
    - hstype
    - exttype
    - extdata
    argTypes:
    - ptls_on_extension_t*
    - ptls_t*
    - uint8_t
    - uint16_t
    - ptls_iovec_t
    assertStmts:
    - condition: (extdata.base)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 861
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 861
    functionName: on_extension_cb
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int on_extension_cb(ptls_on_extension_t *self, ptls_t *tls, uint8_t
      hstype, uint16_t exttype, ptls_iovec_t extdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:865,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:867,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:867,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:868,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:868,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:876,1
    - Dst: ptls_get_traffic_keys
      Src: /src/h2o/deps/picotls/t/picotls.c:876,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:877,1
    - Dst: ptls_get_traffic_keys
      Src: /src/h2o/deps/picotls/t/picotls.c:877,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:878,1
    - Dst: ptls_get_traffic_keys
      Src: /src/h2o/deps/picotls/t/picotls.c:878,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:879,1
    - Dst: ptls_get_traffic_keys
      Src: /src/h2o/deps/picotls/t/picotls.c:879,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:880,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:881,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:882,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:882,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:883,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:883,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:884,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:884,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:885,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - ptls_t*
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 886
    functionName: check_clone
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_get_traffic_keys
    - ok
    - memcmp
    linkageType: ''
    returnType: void
    signature: void check_clone(ptls_t *src, ptls_t *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:893,1
    - Dst: ptls_export
      Src: /src/h2o/deps/picotls/t/picotls.c:894,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:895,1
    - Dst: ptls_import
      Src: /src/h2o/deps/picotls/t/picotls.c:896,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:897,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:898,1
    - Dst: check_clone
      Src: /src/h2o/deps/picotls/t/picotls.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - ptls_t*
    assertStmts:
    - condition: (r == 0)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (r == 0)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 903
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 903
    functionName: clone_tls
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_import
    - ptls_export
    - check_clone
    - assert
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *clone_tls(ptls_t *src)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:924,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:925,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:926,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:927,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:928,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/picotls.c:935,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:936,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:940,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:960,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:965,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:966,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:967,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:974,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:976,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:977,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:978,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:980,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:982,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:983,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:986,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:987,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:988,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:989,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:993,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:994,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:994,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:995,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1000,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1004,1
    - Dst: ptls_is_psk_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1004,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1005,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1007,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1009,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1012,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1014,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1014,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1017,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1017,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1017,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1019,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1019,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1019,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1021,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1021,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1022,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1022,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1022,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1024,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1024,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1025,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1025,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1029,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1030,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1034,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1035,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1036,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1037,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1037,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1038,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1038,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1039,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1039,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1043,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1043,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1044,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1046,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1052,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1053,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1054,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1055,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1057,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1060,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1062,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1066,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1067,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1068,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1070,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1070,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1071,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1071,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1071,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1072,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1072,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1073,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1073,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1073,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1075,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1075,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1076,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/t/picotls.c:1076,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1080,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1081,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1084,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1089,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1089,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1091,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1092,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1093,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1093,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1101,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1101,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1102,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1105,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1106,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1107,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1108,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1108,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1109,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1109,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1109,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1110,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1110,1
    - Dst: clone_tls
      Src: /src/h2o/deps/picotls/t/picotls.c:1114,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1116,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1116,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1117,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1121,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1122,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1123,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1124,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1124,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1125,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1125,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:1125,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1126,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1126,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1132,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1133,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1134,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1135,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1136,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1136,1
    - Dst: ptls_update_key
      Src: /src/h2o/deps/picotls/t/picotls.c:1142,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1143,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1144,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1145,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1146,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1147,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1148,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1149,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1151,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1152,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1153,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1154,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1155,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1155,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1156,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1157,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1160,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1161,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1163,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1164,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1165,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1166,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1167,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1167,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1174,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1174,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1175,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1175,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1177,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1177,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1178,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1178,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1181,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1182,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1183,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1184,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1186,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1187,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 241
    argCount: 6
    argNames:
    - ticket
    - mode
    - expect_ticket
    - check_ch
    - require_client_authentication
    - transfer_session
    argTypes:
    - ptls_iovec_t
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (ctx_peer->max_early_data_size != 0)
      pos:
        line_end: 959
        line_start: 959
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 1195
    functionName: test_handshake
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_is_psk_handshake
    - ptls_is_ech_handshake
    - ptls_handshake_is_complete
    - memmove
    - ptls_get_negotiated_protocol
    - assert
    - ptls_get_server_name
    - ptls_send
    - ptls_set_server_name
    - ptls_update_key
    - memcmp
    - ptls_receive
    - strlen
    - ptls_buffer_init
    - ptls_buffer_dispose
    - ptls_handshake
    - strcmp
    - ptls_free
    - clone_tls
    - ok
    - ptls_new
    linkageType: ''
    returnType: void
    signature: "void test_handshake(ptls_iovec_t ticket, int mode, int expect_ticket,
      int check_ch, int require_client_authentication,\n                           int
      transfer_session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/t/picotls.c:1202,1
    - Dst: cb
      Src: /src/h2o/deps/picotls/t/picotls.c:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - self
    - tls
    - async
    - selected_algorithm
    - output
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1204
    functionName: sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 6
    functionsReached:
    - ptls_is_server
    - cb
    linkageType: ''
    returnType: int
    signature: "int sign_certificate(ptls_sign_certificate_t *self, ptls_t *tls, ptls_async_job_t
      **async, uint16_t *selected_algorithm,\n                            ptls_buffer_t
      *output, ptls_iovec_t input, const uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1219,1
    - Dst: sign_certificate
      Src: /src/h2o/deps/picotls/t/picotls.c:1220,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1221,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1222,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1231,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1232,1
    - Dst: sign_certificate
      Src: /src/h2o/deps/picotls/t/picotls.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 8
    argNames:
    - self
    - tls
    - async
    - selected_algorithm
    - output
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (*async == &async_ctx.super)
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (algorithms == NULL)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 1240
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1240
    functionName: async_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_dispose
    - assert
    - sign_certificate
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int async_sign_certificate(ptls_sign_certificate_t *self, ptls_t *tls,
      ptls_async_job_t **async,\n                                  uint16_t *selected_algorithm,
      ptls_buffer_t *output, ptls_iovec_t input,\n                                  const
      uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/t/picotls.c:1248,1
    - Dst: cb
      Src: /src/h2o/deps/picotls/t/picotls.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - self
    - tls
    - async
    - selected_algorithm
    - output
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1250
    functionName: second_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_is_server
    - cb
    linkageType: ''
    returnType: int
    signature: "int second_sign_certificate(ptls_sign_certificate_t *self, ptls_t
      *tls, ptls_async_job_t **async,\n                                   uint16_t
      *selected_algorithm, ptls_buffer_t *output, ptls_iovec_t input,\n                                   const
      uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1254,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1254,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1255,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1256,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1257,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1259,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1259,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1260,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1261,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1262,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1264,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1264,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1265,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1266,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - require_client_authentication
    - is_async
    - transfer_session
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1268
    functionName: test_full_handshake_impl
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_handshake
    - ok
    linkageType: ''
    returnType: void
    signature: void test_full_handshake_impl(int require_client_authentication, int
      is_async, int transfer_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_full_handshake_impl
      Src: /src/h2o/deps/picotls/t/picotls.c:1272,1
    - Dst: test_full_handshake_impl
      Src: /src/h2o/deps/picotls/t/picotls.c:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1274
    functionName: test_full_handshake
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_full_handshake_impl
    linkageType: ''
    returnType: void
    signature: void test_full_handshake(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_full_handshake_impl
      Src: /src/h2o/deps/picotls/t/picotls.c:1278,1
    - Dst: test_full_handshake_impl
      Src: /src/h2o/deps/picotls/t/picotls.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1280
    functionName: test_full_handshake_with_client_authentication
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_full_handshake_impl
    linkageType: ''
    returnType: void
    signature: void test_full_handshake_with_client_authentication(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1284,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1284,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1285,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1286
    functionName: test_key_update
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_handshake
    linkageType: ''
    returnType: void
    signature: void test_key_update(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1290,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1290,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1291,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1292,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1293
    functionName: test_hrr_handshake
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_handshake
    - ok
    linkageType: ''
    returnType: void
    signature: void test_hrr_handshake(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1297,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1297,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1299
    functionName: test_hrr_stateless_handshake
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_handshake
    - ok
    linkageType: ''
    returnType: void
    signature: void test_hrr_stateless_handshake(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/picotls.c:1305,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/picotls.c:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - tls
    - is_encrypt
    - dst
    - src
    argTypes:
    - ptls_encrypt_ticket_t*
    - ptls_t*
    - int
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1311
    functionName: on_copy_ticket
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int on_copy_ticket(ptls_encrypt_ticket_t *self, ptls_t *tls, int is_encrypt,
      ptls_buffer_t *dst, ptls_iovec_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1317,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/picotls.c:1317,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/picotls.c:1318,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/picotls.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - tls
    - src
    argTypes:
    - ptls_save_ticket_t*
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: on_save_ticket
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PTLS_ELEMENTSOF
    - malloc
    - memmove
    linkageType: ''
    returnType: int
    signature: int on_save_ticket(ptls_save_ticket_t *self, ptls_t *tls, ptls_iovec_t
      src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1327,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1328,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1329,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1330,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1344,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1345,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1346,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1347,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:1348,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1355,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1355,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1357,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1360,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1361,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1363,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1367,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1368,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1369,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1372,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1373,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1377,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1378,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1379,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1384,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1385,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1386,1
    - Dst: test_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1389,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1390,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 4
    argNames:
    - different_preferred_key_share
    - require_client_authentication
    - use_ticket_request
    - transfer_session
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (ctx->key_exchanges[0]->id != ptls_minicrypto_x25519.id)
      pos:
        line_end: 1329
        line_start: 1329
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx->key_exchanges[1] == NULL)
      pos:
        line_end: 1327
        line_start: 1327
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_peer->max_early_data_size == 0)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx->key_exchanges[0]->id == ctx_peer->key_exchanges[0]->id)
      pos:
        line_end: 1326
        line_start: 1326
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_peer->encrypt_ticket == NULL)
      pos:
        line_end: 1345
        line_start: 1345
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_peer->ticket_lifetime == 0)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_peer->key_exchanges[1] == NULL)
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_peer->save_ticket == NULL)
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 1401
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1401
    functionName: test_resumption_impl
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_handshake
    - ok
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: "void test_resumption_impl(int different_preferred_key_share, int require_client_authentication,
      int use_ticket_request,\n                                 int transfer_session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1405,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1406,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - different_preferred_key_share
    - require_client_authentication
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1408
    functionName: test_resumption
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_resumption(int different_preferred_key_share, int require_client_authentication)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1416,1
    - Dst: test_resumption
      Src: /src/h2o/deps/picotls/t/picotls.c:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1422
    functionName: test_grease_resumption
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - test_resumption
    linkageType: ''
    returnType: void
    signature: void test_grease_resumption(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1426,1
    - Dst: test_full_handshake_impl
      Src: /src/h2o/deps/picotls/t/picotls.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx_peer->sign_certificate->cb == sign_certificate)
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 1434
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1434
    functionName: test_async_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_full_handshake_impl
    - assert
    linkageType: ''
    returnType: void
    signature: void test_async_sign_certificate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1445,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1449,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1450,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1451,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1453,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1455,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1456,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1457,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1459,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1462,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1466,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1467,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1468,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1470,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1474,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1475,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1476,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1480,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1481,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1482,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1486,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1487,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1488,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1491,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1492,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1495,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1496,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1497,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1500,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1501,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1501,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1504,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1505,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1507,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1508,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 1
    argNames:
    - use_cookie
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1436
    functionDepth: 1
    functionLinenumber: 1436
    functionLinenumberEnd: 1510
    functionName: test_enforce_retry
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_handshake
    - ptls_buffer_dispose
    - memcmp
    - ptls_send
    - ptls_free
    - ok
    - ptls_receive
    - ptls_buffer_init
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void test_enforce_retry(int use_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_enforce_retry
      Src: /src/h2o/deps/picotls/t/picotls.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1512
    functionDepth: 2
    functionLinenumber: 1512
    functionLinenumberEnd: 1515
    functionName: test_enforce_retry_stateful
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_enforce_retry
    linkageType: ''
    returnType: void
    signature: void test_enforce_retry_stateful(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_enforce_retry
      Src: /src/h2o/deps/picotls/t/picotls.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1520
    functionName: test_enforce_retry_stateless
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - test_enforce_retry
    linkageType: ''
    returnType: void
    signature: void test_enforce_retry_stateless(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1524,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1524,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1529,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1530,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1532,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1533,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1536,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1537,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1539,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - sbuf
    - server_hs_prop
    argTypes:
    - ptls_buffer_t*
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1543
    functionName: stateless_hrr_prepare
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_new
    - ptls_handshake
    - ptls_free
    - ok
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *stateless_hrr_prepare(ptls_buffer_t *sbuf, ptls_handshake_properties_t
      *server_hs_prop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1554,1
    - Dst: stateless_hrr_prepare
      Src: /src/h2o/deps/picotls/t/picotls.c:1558,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1559,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1562,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1563,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1564,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1567,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1568,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1571,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1572,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1574,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1575,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1577,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1545
    functionDepth: 2
    functionLinenumber: 1545
    functionLinenumberEnd: 1579
    functionName: test_stateless_hrr_aad_change
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - stateless_hrr_prepare
    - ptls_new
    - ptls_handshake
    - ptls_buffer_dispose
    - ptls_free
    - ok
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_stateless_hrr_aad_change(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1590,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1594,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1595,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1596,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1597,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1598,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1599,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1601,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1602,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1605,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1606,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1607,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1611,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1612,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1613,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1614,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1615,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1615,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1619,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1620,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1621,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1622,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1626,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1627,1
    - Dst: PTLS_ALERT_TO_PEER_ERROR
      Src: /src/h2o/deps/picotls/t/picotls.c:1627,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1628,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1630,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1631,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1632,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1633,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1634,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1636
    functionName: test_ech_config_mismatch
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_set_server_name
    - PTLS_ALERT_TO_PEER_ERROR
    - ptls_new
    - ptls_handshake
    - ptls_buffer_dispose
    - memcmp
    - free
    - ptls_free
    - memmove
    - ok
    - ptls_receive
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_ech_config_mismatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1649,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1653,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1654,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1655,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1656,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1657,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1660,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1661,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1665,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1666,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1667,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1672,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1673,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1674,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1679,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1680,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1681,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1686,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1692,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1693,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1695,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1696,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1697,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1699
    functionName: test_ech_hrr_accept_sh_reject
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_set_server_name
    - ptls_new
    - ptls_handshake
    - ptls_buffer_dispose
    - ptls_free
    - ok
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_ech_hrr_accept_sh_reject(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - self
    - tls
    - hstype
    - exttype
    - extdata
    argTypes:
    - ptls_on_extension_t*
    - ptls_t*
    - uint8_t
    - uint16_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1708
    functionName: observe_ech_extension
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int observe_ech_extension(ptls_on_extension_t *self, ptls_t *tls, uint8_t
      hstype, uint16_t exttype, ptls_iovec_t extdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1725,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/t/picotls.c:1726,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1727,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1728,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1729,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1731,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1732,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1735,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1737,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1738,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1741,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1742,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1743,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1745
    functionName: test_ech_null_configs_no_ech
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_set_server_name
    - ptls_new
    - ptls_handshake
    - ptls_buffer_dispose
    - ptls_free
    - ok
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_ech_null_configs_no_ech(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotls/t/picotls.c:1764,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1779,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1783,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1784,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1785,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1787,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:1792,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1806,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1806,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1808,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1809,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1810,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1813,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1814,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1815,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1816,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1817,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1818,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1822,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1824,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1827,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1828,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1831,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1832,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1834,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1835,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1836,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1837,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1840,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1841,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1842,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1845,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1848,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1849,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1850,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1852,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1853,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1853,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1858,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1859,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:1863,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1864,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1865,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1866,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/t/picotls.c:1867,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1872,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1873,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1874,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1876,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1877,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1877,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:1881,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1882,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1885,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1885,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/t/picotls.c:1887,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1888,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1889,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1889,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1890,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1892,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1893,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1893,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1896,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1897,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:1898,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1899,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:1900,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 126
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 1778
        line_start: 1778
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_client.pre_shared_key.identity.len == 0 && ctx_client.pre_shared_key.secret.len
        == 0)
      pos:
        line_end: 1782
        line_start: 1782
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - condition: (ctx_client.pre_shared_key.hash != NULL)
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1901
    functionName: do_test_pre_shared_key
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - note
    - ptls_handshake
    - memcmp
    - ptls_send
    - ptls_buffer_dispose
    - strcmp
    - ptls_free
    - ptls_receive
    - memmove
    - ok
    - ptls_handshake_is_complete
    - assert
    - ptls_buffer_init
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void do_test_pre_shared_key(int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotls/t/picotls.c:1906,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1910,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1911,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1912,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1913,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1914,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:1916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1917
    functionName: test_pre_shared_key
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - note
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_pre_shared_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:1923,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1924,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1924,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/picotls/t/picotls.c:1926,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/picotls.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - tls
    - is_enc
    - epoch
    - secret
    argTypes:
    - ptls_update_traffic_key_t*
    - ptls_t*
    - int
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1929
    functionName: on_update_traffic_key
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - memcmp
    - ptls_get_data_ptr
    - memcpy
    - ok
    linkageType: ''
    returnType: int
    signature: int on_update_traffic_key(ptls_update_traffic_key_t *self, ptls_t *tls,
      int is_enc, size_t epoch, const void *secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:1938,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/picotls/t/picotls.c:1943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - tls
    - outbuf
    - out_epoch_offsets
    - input
    - in_epoch_offsets
    - props
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - size_t*
    - uint8_t*
    - size_t*
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 1950
    functionName: feed_messages
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_handle_message
    - memset
    linkageType: ''
    returnType: int
    signature: "int feed_messages(ptls_t *tls, ptls_buffer_t *outbuf, size_t *out_epoch_offsets,
      const uint8_t *input,\n                         const size_t *in_epoch_offsets,
      ptls_handshake_properties_t *props)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:1972,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1974,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:1975,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1977,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:1978,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:1979,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:1980,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/picotls/t/picotls.c:1983,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1984,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:1985,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1986,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1987,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1988,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1988,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1989,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1989,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1990,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1990,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1991,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1991,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1992,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1992,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:1993,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1994,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1995,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1996,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:1996,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1997,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1997,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1998,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1998,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:1999,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:1999,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2000,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2000,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2001,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2002,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2003,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2004,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2004,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2005,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2005,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2007,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2008,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2012,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2013,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2014,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2015,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2022,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2023,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2024,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2025,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/picotls/t/picotls.c:2026,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2027,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2028,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2029,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2029,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2030,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2031,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2032,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2033,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2033,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2034,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2034,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2035,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2035,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2036,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2036,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2037,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2037,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2038,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2038,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2039,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2040,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2041,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2042,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2042,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2043,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2043,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2044,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2044,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2045,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2046,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2047,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2048,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2048,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2049,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2049,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2051,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2052,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2056,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2057,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2058,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2059,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2064,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2065,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2066,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2067,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/picotls/t/picotls.c:2068,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2069,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2070,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2071,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2071,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2072,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2073,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2074,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2075,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2075,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2076,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2077,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2078,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2079,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2079,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2080,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2081,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2081,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2082,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2083,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2084,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2085,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2085,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2087,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2088,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2092,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2093,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2094,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2095,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2102,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2103,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2104,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/deps/picotls/t/picotls.c:2105,1
    - Dst: ptls_handle_message
      Src: /src/h2o/deps/picotls/t/picotls.c:2106,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2107,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2108,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2109,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2109,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2110,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2111,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2112,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2113,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2113,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2114,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2115,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2116,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2117,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2117,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2118,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2119,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2120,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2121,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2121,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2122,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2122,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2123,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2124,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2125,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2126,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2126,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2127,1
    - Dst: feed_messages
      Src: /src/h2o/deps/picotls/t/picotls.c:2128,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2129,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2130,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2130,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2132,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2133,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2146,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2147,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2148,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2149,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2150,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2151,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2152,1
    - Dst: ptls_send
      Src: /src/h2o/deps/picotls/t/picotls.c:2153,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2154,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2156,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2157,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2158,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2160,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2162,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2163,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2164,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2165,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2167,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2169,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2170,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2171,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2171,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2172,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2174,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2176,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2177,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2178,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2178,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2179,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2182,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2183,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2184,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/deps/picotls/t/picotls.c:2184,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2185,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2187,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2188,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:2190,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:2191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 211
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 1952
    functionDepth: 2
    functionLinenumber: 1952
    functionLinenumberEnd: 2202
    functionName: test_handshake_api
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_handle_message
    - ptls_handshake
    - ptls_buffer_dispose
    - memcmp
    - ptls_send
    - ptls_get_data_ptr
    - ptls_free
    - ptls_handshake_is_complete
    - ok
    - memset
    - feed_messages
    - ptls_buffer_init
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void test_handshake_api(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2206,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2207,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2208,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2211,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2213,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2214,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2217,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2218,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2219,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2221,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2222,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2223,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2225,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2226,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2228
    functionName: test_all_handshakes_core
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_all_handshakes_core(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2247,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2251,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2252,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2254,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2255,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2256,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2258,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2259,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2260,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2268
    functionName: test_all_handshakes
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_all_handshakes(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2277,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2278,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/t/picotls.c:2280,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2284,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2285,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2291,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2296,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/t/picotls.c:2298,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2301,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2306,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2308,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:2311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - len_encoded
    - max_bytes
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2312
    functionName: do_test_tlsblock
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push
    - ptls_buffer_dispose
    - ptls_decode_block
    - ptls_buffer_push_block
    - ok
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void do_test_tlsblock(size_t len_encoded, size_t max_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_tlsblock
      Src: /src/h2o/deps/picotls/t/picotls.c:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2317
    functionName: test_tlsblock8
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - do_test_tlsblock
    linkageType: ''
    returnType: void
    signature: void test_tlsblock8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_tlsblock
      Src: /src/h2o/deps/picotls/t/picotls.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2319
    functionDepth: 2
    functionLinenumber: 2319
    functionLinenumberEnd: 2322
    functionName: test_tlsblock16
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - do_test_tlsblock
    linkageType: ''
    returnType: void
    signature: void test_tlsblock16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2332,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2333,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2334,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2335,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2336,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2337,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2338,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2339,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2340,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2341,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2342,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2343,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2344,1
    - Dst: CHECK_PATTERN
      Src: /src/h2o/deps/picotls/t/picotls.c:2345,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2353,1
    - Dst: ptls_encode_quicint
      Src: /src/h2o/deps/picotls/t/picotls.c:2354,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:2355,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/deps/picotls/t/picotls.c:2357,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2358,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2359,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (enc_end - buf <= PTLS_ENCODE_QUICINT_CAPACITY)
      pos:
        line_end: 2354
        line_start: 2354
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 2362
      start: 2324
    functionDepth: 1
    functionLinenumber: 2324
    functionLinenumberEnd: 2362
    functionName: test_quicint
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - CHECK_PATTERN
    - ptls_decode_quicint
    - ok
    - memset
    - ptls_encode_quicint
    - assert
    linkageType: ''
    returnType: void
    signature: void test_quicint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - output
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2326
    functionDepth: 0
    functionLinenumber: 2326
    functionLinenumberEnd: 2332
    functionName: CHECK_PATTERN
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PATTERN(output, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2370,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2372,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/t/picotls.c:2372,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2375,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2376,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2377,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2377,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2382,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/t/picotls.c:2383,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/t/picotls.c:2385,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/t/picotls.c:2390,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2391,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2394,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2399,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/picotls.c:2400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2401
    functionName: test_quicblock
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - memset
    - ptls_buffer_dispose
    - memcmp
    - ptls_decode_block
    - ptls_buffer_push_block
    - ptls_buffer_reserve
    - ok
    - ptls_buffer_pushv
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_quicblock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2405,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2407
    functionName: test_quic
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_quic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/picotls.c:2413,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/t/picotls.c:2414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - tls
    - params
    argTypes:
    - ptls_on_client_hello_t*
    - ptls_t*
    - ptls_on_client_hello_parameters_t*
    assertStmts:
    - condition: (legacy_params == NULL)
      pos:
        line_end: 2412
        line_start: 2412
        source_file: /src/h2o/deps/picotls/t/picotls.c
    constantsTouched: []
    func_position:
      end: 2417
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2417
    functionName: test_legacy_ch_tls12_callback
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int test_legacy_ch_tls12_callback(ptls_on_client_hello_t *self, ptls_t
      *tls, ptls_on_client_hello_parameters_t *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2471,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2473,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2475,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2476,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2477,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2478,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2479,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2480,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2481,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2481,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2482,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2483,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2483,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2484,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2487,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2489,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2490,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2491,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2492,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2493,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2494,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2494,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2495,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2496,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2497,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2500,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2502,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2503,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2504,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2505,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2506,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2507,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2507,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2508,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2509,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2510,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2513,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2515,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2516,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2517,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2518,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2521,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2523,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2524,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2525,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2526,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2527,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2528,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2528,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2529,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2530,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2531,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/picotls.c:2534,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/picotls.c:2536,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/picotls.c:2537,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2538,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2542
    functionName: test_legacy_ch
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_handshake
    - memcmp
    - free
    - ptls_free
    - ok
    - ptls_buffer_init
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void test_legacy_ch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_jsonescape
      Src: /src/h2o/deps/picotls/t/picotls.c:2550,1
    - Dst: STRLIT
      Src: /src/h2o/deps/picotls/t/picotls.c:2550,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2551,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/picotls.c:2551,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2552,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2552,1
    - Dst: ptls_jsonescape
      Src: /src/h2o/deps/picotls/t/picotls.c:2554,1
    - Dst: STRLIT
      Src: /src/h2o/deps/picotls/t/picotls.c:2554,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2555,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2555,1
    - Dst: ptls_jsonescape
      Src: /src/h2o/deps/picotls/t/picotls.c:2557,1
    - Dst: STRLIT
      Src: /src/h2o/deps/picotls/t/picotls.c:2557,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2558,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2544
    functionDepth: 1
    functionLinenumber: 2544
    functionLinenumberEnd: 2560
    functionName: test_escape_json_unsafe_string
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - STRLIT
    - strcmp
    - ptls_jsonescape
    - ok
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_escape_json_unsafe_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2547
    functionName: STRLIT
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLIT(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_signature_algorithms
      Src: /src/h2o/deps/picotls/t/picotls.c:2611,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2612,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2613,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2615,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2625,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2562
    functionDepth: 1
    functionLinenumber: 2562
    functionLinenumberEnd: 2627
    functionName: test_signature_algorithms_overflow
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - decode_signature_algorithms
    - ok
    linkageType: ''
    returnType: void
    signature: void test_signature_algorithms_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2631,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2632,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2633,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2634,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2635,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2636,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2637,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2638,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2639,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2640,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2642,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2643,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2645,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2646,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2647,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2648,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2649,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2650,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2651,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2652,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2653,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2654,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2655,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2656,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2657,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2658,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/picotls.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2629
    functionDepth: 1
    functionLinenumber: 2629
    functionLinenumberEnd: 2660
    functionName: test_picotls
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_picotls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_key_exchange_algorithm_t*::exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2669,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2670,1
    - Dst: ptls_key_exchange_algorithm_t*::create
      Src: /src/h2o/deps/picotls/t/picotls.c:2673,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2674,1
    - Dst: ptls_key_exchange_algorithm_t*::exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2675,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2676,1
    - Dst: ptls_key_exchange_context_t*::on_exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2677,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2678,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2679,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2680,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/picotls.c:2680,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2682,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2683,1
    - Dst: free
      Src: /src/h2o/deps/picotls/t/picotls.c:2684,1
    - Dst: ptls_key_exchange_algorithm_t*::create
      Src: /src/h2o/deps/picotls/t/picotls.c:2687,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2688,1
    - Dst: ptls_key_exchange_context_t*::on_exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2689,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2689,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2690,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2691,1
    - Dst: ptls_key_exchange_algorithm_t*::create
      Src: /src/h2o/deps/picotls/t/picotls.c:2694,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2695,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2696,1
    - Dst: ptls_key_exchange_context_t*::on_exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2697,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2697,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2698,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2699,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2700,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2704,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2705,1
    - Dst: ptls_key_exchange_algorithm_t*::exchange
      Src: /src/h2o/deps/picotls/t/picotls.c:2707,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/picotls.c:2707,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2708,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2709,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/picotls.c:2710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_algorithm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2662
    functionDepth: 1
    functionLinenumber: 2662
    functionLinenumberEnd: 2711
    functionName: test_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/t/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - memcmp
    - ptls_key_exchange_context_t*::on_exchange
    - ptls_key_exchange_algorithm_t*::exchange
    - free
    - ptls_key_exchange_algorithm_t*::create
    - ok
    linkageType: ''
    returnType: void
    signature: void test_key_exchange(ptls_key_exchange_algorithm_t *client, ptls_key_exchange_algorithm_t
      *server)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - backend
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: DEFINE_FFX_AES128_ALGORITHMS
    functionSourceFile: /src/h2o/deps/picotls/t/test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FFX_AES128_ALGORITHMS(backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - backend
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: DEFINE_FFX_CHACHA20_ALGORITHMS
    functionSourceFile: /src/h2o/deps/picotls/t/test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FFX_CHACHA20_ALGORITHMS(backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - bl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: ADD_FFX_ALGORITHM
    functionSourceFile: /src/h2o/deps/picotls/t/test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FFX_ALGORITHM(a, bl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - backend
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ADD_FFX_AES128_ALGORITHMS
    functionSourceFile: /src/h2o/deps/picotls/t/test.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FFX_AES128_ALGORITHMS(backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - backend
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: ADD_FFX_CHACHA20_ALGORITHMS
    functionSourceFile: /src/h2o/deps/picotls/t/test.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FFX_CHACHA20_ALGORITHMS(backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/openssl.c:113,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/openssl.c:114,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/openssl.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:116,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/openssl.c:116,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/openssl.c:119,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/openssl.c:120,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/openssl.c:121,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/openssl.c:122,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:123,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/openssl.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 125
    functionName: test_bf
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - memcmp
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ok
    linkageType: ''
    returnType: void
    signature: void test_bf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:129,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:130,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:131,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:134,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:138,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:142,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:143,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:144,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:148,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:151,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:152,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:153,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:154,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 157
    functionName: test_key_exchanges
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_key_exchanges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotls/t/openssl.c:162,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/openssl.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:168,1
    - Dst: do_sign
      Src: /src/h2o/deps/picotls/t/openssl.c:168,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:168,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:168,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/picotls/t/openssl.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:170,1
    - Dst: verify_sign
      Src: /src/h2o/deps/picotls/t/openssl.c:170,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:170,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:170,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:171,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/openssl.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - key
    - schemes
    argTypes:
    - EVP_PKEY*
    - ptls_openssl_signature_scheme_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: test_sign_verify
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - note
    - ptls_buffer_dispose
    - do_sign
    - EVP_PKEY_up_ref
    - verify_sign
    - ok
    - strlen
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void test_sign_verify(EVP_PKEY *key, const ptls_openssl_signature_scheme_t
      *schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: note
      Src: /src/h2o/deps/picotls/t/openssl.c:201,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/t/openssl.c:202,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:202,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:204,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/openssl.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 206
    functionName: test_sha
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - note
    - memcmp
    - ok
    - ptls_calc_hash
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_sha(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sign_verify
      Src: /src/h2o/deps/picotls/t/openssl.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: test_rsa_sign
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - test_sign_verify
    linkageType: ''
    returnType: void
    signature: void test_rsa_sign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/h2o/deps/picotls/t/openssl.c:219,1
    - Dst: EC_KEY_generate_key
      Src: /src/h2o/deps/picotls/t/openssl.c:220,1
    - Dst: EVP_PKEY_new
      Src: /src/h2o/deps/picotls/t/openssl.c:221,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/h2o/deps/picotls/t/openssl.c:222,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/t/openssl.c:223,1
    - Dst: test_sign_verify
      Src: /src/h2o/deps/picotls/t/openssl.c:226,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/openssl.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - nid
    - schemes
    argTypes:
    - int
    - ptls_openssl_signature_scheme_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: do_test_ecdsa_sign
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set1_EC_KEY
    - EVP_PKEY_free
    - EC_KEY_free
    - test_sign_verify
    - EVP_PKEY_new
    - EC_KEY_new_by_curve_name
    - EC_KEY_generate_key
    linkageType: ''
    returnType: void
    signature: void do_test_ecdsa_sign(int nid, const ptls_openssl_signature_scheme_t
      *schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_ecdsa_sign
      Src: /src/h2o/deps/picotls/t/openssl.c:232,1
    - Dst: do_test_ecdsa_sign
      Src: /src/h2o/deps/picotls/t/openssl.c:234,1
    - Dst: do_test_ecdsa_sign
      Src: /src/h2o/deps/picotls/t/openssl.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: test_ecdsa_sign
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 1
    functionsReached:
    - do_test_ecdsa_sign
    linkageType: ''
    returnType: void
    signature: void test_ecdsa_sign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/h2o/deps/picotls/t/openssl.c:247,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/h2o/deps/picotls/t/openssl.c:248,1
    - Dst: EVP_PKEY_keygen
      Src: /src/h2o/deps/picotls/t/openssl.c:249,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/t/openssl.c:250,1
    - Dst: test_sign_verify
      Src: /src/h2o/deps/picotls/t/openssl.c:253,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/openssl.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: test_ed25519_sign
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_keygen
    - test_sign_verify
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: void
    signature: void test_ed25519_sign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/picotls/t/openssl.c:260,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:260,1
    - Dst: PEM_read_bio_X509
      Src: /src/h2o/deps/picotls/t/openssl.c:261,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:262,1
    - Dst: BIO_free
      Src: /src/h2o/deps/picotls/t/openssl.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char*
    assertStmts:
    - condition: (cert != NULL && "failed to load certificate")
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: x509_from_pem
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509
    - BIO_free
    - BIO_new_mem_buf
    - assert
    - strlen
    linkageType: ''
    returnType: X509
    signature: X509 *x509_from_pem(const char *pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/picotls/t/openssl.c:269,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:269,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/h2o/deps/picotls/t/openssl.c:270,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:271,1
    - Dst: BIO_free
      Src: /src/h2o/deps/picotls/t/openssl.c:272,1
    - Dst: ptls_openssl_create_key_exchange
      Src: /src/h2o/deps/picotls/t/openssl.c:275,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:276,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/openssl.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char*
    assertStmts:
    - condition: (pkey != NULL && "failed to load private key")
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/h2o/deps/picotls/t/openssl.c
    - condition: (ret == 0 && "failed to setup private key")
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: key_from_pem
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_openssl_create_key_exchange
    - EVP_PKEY_free
    - BIO_free
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    - assert
    - strlen
    linkageType: ''
    returnType: ptls_key_exchange_context_t
    signature: ptls_key_exchange_context_t *key_from_pem(const char *pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_from_pem
      Src: /src/h2o/deps/picotls/t/openssl.c:284,1
    - Dst: STACK_OF
      Src: /src/h2o/deps/picotls/t/openssl.c:285,1
    - Dst: sk_X509_new_null
      Src: /src/h2o/deps/picotls/t/openssl.c:285,1
    - Dst: X509_STORE_new
      Src: /src/h2o/deps/picotls/t/openssl.c:286,1
    - Dst: verify_cert_chain
      Src: /src/h2o/deps/picotls/t/openssl.c:290,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:291,1
    - Dst: X509_STORE_add_lookup
      Src: /src/h2o/deps/picotls/t/openssl.c:294,1
    - Dst: X509_LOOKUP_file
      Src: /src/h2o/deps/picotls/t/openssl.c:294,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/h2o/deps/picotls/t/openssl.c:295,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:296,1
    - Dst: verify_cert_chain
      Src: /src/h2o/deps/picotls/t/openssl.c:297,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:298,1
    - Dst: verify_cert_chain
      Src: /src/h2o/deps/picotls/t/openssl.c:302,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:303,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/openssl.c:305,1
    - Dst: X509_free
      Src: /src/h2o/deps/picotls/t/openssl.c:308,1
    - Dst: sk_X509_free
      Src: /src/h2o/deps/picotls/t/openssl.c:309,1
    - Dst: X509_STORE_free
      Src: /src/h2o/deps/picotls/t/openssl.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 311
    functionName: test_cert_verify
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_X509_new_null
    - X509_LOOKUP_file
    - verify_cert_chain
    - X509_STORE_add_lookup
    - sk_X509_free
    - X509_STORE_new
    - X509_LOOKUP_load_file
    - ok
    - fprintf
    - X509_free
    - X509_STORE_free
    - x509_from_pem
    linkageType: ''
    returnType: void
    signature: void test_cert_verify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_from_pem
      Src: /src/h2o/deps/picotls/t/openssl.c:315,1
    - Dst: i2d_X509
      Src: /src/h2o/deps/picotls/t/openssl.c:318,1
    - Dst: X509_free
      Src: /src/h2o/deps/picotls/t/openssl.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - ptls_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: setup_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - X509_free
    - x509_from_pem
    linkageType: ''
    returnType: void
    signature: void setup_certificate(ptls_iovec_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/h2o/deps/picotls/t/openssl.c:325,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/t/openssl.c:325,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/h2o/deps/picotls/t/openssl.c:326,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:327,1
    - Dst: BIO_free
      Src: /src/h2o/deps/picotls/t/openssl.c:328,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:330,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/t/openssl.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - ptls_openssl_sign_certificate_t*
    assertStmts:
    - condition: (pkey != NULL || !"failed to load private key")
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: setup_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ptls_openssl_init_sign_certificate
    - BIO_free
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void setup_sign_certificate(ptls_openssl_sign_certificate_t *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: verify_cert_cb
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_cert_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_hpke
      Src: /src/h2o/deps/picotls/t/openssl.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: test_all_hpke
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - test_hpke
    linkageType: ''
    returnType: void
    signature: void test_all_hpke(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: key_from_pem
      Src: /src/h2o/deps/picotls/t/openssl.c:357,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:358,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/openssl.c:376,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/t/openssl.c:377,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/t/openssl.c:378,1
    - Dst: ptls_hpke_setup_base_r
      Src: /src/h2o/deps/picotls/t/openssl.c:380,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:381,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/openssl.c:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 8
    argNames:
    - self
    - kem
    - cipher
    - tls
    - config_id
    - cipher_id
    - enc
    - info_prefix
    argTypes:
    - ptls_ech_create_opener_t*
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    - ptls_t*
    - uint8_t
    - ptls_hpke_cipher_suite_id_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts:
    - condition: (pem != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 386
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 386
    functionName: create_ech_opener
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_dispose
    - key_from_pem
    - ptls_buffer_pushv
    - assert
    - ptls_hpke_setup_base_r
    - ptls_buffer_init
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: "ptls_aead_context_t *create_ech_opener(ptls_ech_create_opener_t *self,
      ptls_hpke_kem_t **kem,\n                                              ptls_hpke_cipher_suite_t
      **cipher, ptls_t *tls, uint8_t config_id,\n                                              ptls_hpke_cipher_suite_id_t
      cipher_id, ptls_iovec_t enc, ptls_iovec_t info_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/h2o/deps/picotls/t/openssl.c:395,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/h2o/deps/picotls/t/openssl.c:397,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/h2o/deps/picotls/t/openssl.c:397,1
    - Dst: ENGINE_free
      Src: /src/h2o/deps/picotls/t/openssl.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: load_engine
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - ENGINE_by_id
    - ENGINE_ctrl_cmd_string
    - ENGINE_free
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *load_engine(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: qat_set_pending
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void qat_set_pending(size_t index)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/openssl.c:423,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/openssl.c:428,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/openssl.c:429,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:430,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/openssl.c:433,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/openssl.c:436,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/openssl.c:441,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/t/openssl.c:444,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/t/openssl.c:456,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/openssl.c:464,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/picotls/t/openssl.c:465,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/openssl.c:466,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/t/openssl.c:468,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/openssl.c:470,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/openssl.c:476,1
    - Dst: qat_set_pending
      Src: /src/h2o/deps/picotls/t/openssl.c:480,1
    - Dst: ptls_get_async_job
      Src: /src/h2o/deps/picotls/t/openssl.c:483,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:484,1
    - Dst: ptls_async_job_t*::get_fd
      Src: /src/h2o/deps/picotls/t/openssl.c:485,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:486,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/t/openssl.c:489,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/t/openssl.c:490,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/picotls/t/openssl.c:498,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/openssl.c:500,1
    - Dst: FD_SET
      Src: /src/h2o/deps/picotls/t/openssl.c:502,1
    - Dst: select
      Src: /src/h2o/deps/picotls/t/openssl.c:507,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/t/openssl.c:508,1
    - Dst: FD_ISSET
      Src: /src/h2o/deps/picotls/t/openssl.c:509,1
    - Dst: qat_set_pending
      Src: /src/h2o/deps/picotls/t/openssl.c:511,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/t/openssl.c:517,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/openssl.c:519,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/openssl.c:526,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/t/openssl.c:526,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/openssl.c:528,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/openssl.c:529,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/t/openssl.c:530,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:534,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ("unreachable")
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/h2o/deps/picotls/t/openssl.c
    - condition: (job->get_fd != NULL)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/h2o/deps/picotls/t/openssl.c
    - condition: (qat.conns[offending].wait_fd != -1)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 535
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 535
    functionName: many_handshakes
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - FD_ZERO
    - ptls_async_job_t*::get_fd
    - gettimeofday
    - assert
    - ptls_get_cipher
    - select
    - note
    - fprintf
    - FD_SET
    - ptls_get_async_job
    - qat_set_pending
    - ptls_buffer_dispose
    - ptls_buffer_init
    - ptls_handshake
    - abort
    - FD_ISSET
    - ptls_free
    - ok
    - ptls_buffer_pushv
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void many_handshakes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/h2o/deps/picotls/t/openssl.c:545,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/deps/picotls/t/openssl.c:546,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/h2o/deps/picotls/t/openssl.c:550,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/h2o/deps/picotls/t/openssl.c:551,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/h2o/deps/picotls/t/openssl.c:554,1
    - Dst: ENGINE_register_all_ciphers
      Src: /src/h2o/deps/picotls/t/openssl.c:555,1
    - Dst: ENGINE_register_all_digests
      Src: /src/h2o/deps/picotls/t/openssl.c:556,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:559,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:560,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:562,1
    - Dst: setup_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:565,1
    - Dst: setup_sign_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:566,1
    - Dst: X509_STORE_new
      Src: /src/h2o/deps/picotls/t/openssl.c:567,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/h2o/deps/picotls/t/openssl.c:568,1
    - Dst: ptls_openssl_init_verify_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:569,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:583,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/t/openssl.c:587,1
    - Dst: ADD_FFX_AES128_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/openssl.c:591,1
    - Dst: ADD_FFX_CHACHA20_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/openssl.c:593,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:596,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:597,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:598,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:599,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:600,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:601,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:604,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:608,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:612,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:615,1
    - Dst: ptls_minicrypto_init_secp256r1sha256_sign_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:616,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/openssl.c:617,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:626,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:630,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:632,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:643,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:645,1
    - Dst: ENGINE_by_id
      Src: /src/h2o/deps/picotls/t/openssl.c:650,1
    - Dst: load_engine
      Src: /src/h2o/deps/picotls/t/openssl.c:650,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/h2o/deps/picotls/t/openssl.c:651,1
    - Dst: ptls_openssl_dispose_sign_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:652,1
    - Dst: setup_sign_certificate
      Src: /src/h2o/deps/picotls/t/openssl.c:653,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/openssl.c:654,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/openssl.c:656,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/openssl.c:662,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/h2o/deps/picotls/t/openssl.c:664,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/h2o/deps/picotls/t/openssl.c:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (openssl_ctx_sha256only.cipher_suites[0]->hash->digest_size == 32)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/h2o/deps/picotls/t/openssl.c
    - condition: "(openssl_ctx.cipher_suites[0]->hash->digest_size == 64 || /* sha512
        */\n               openssl_ctx.cipher_suites[0]->hash->digest_size == 48)"
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/h2o/deps/picotls/t/openssl.c
    constantsTouched: []
    func_position:
      end: 668
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 668
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/openssl.c
    functionUses: 1
    functionsReached:
    - ptls_minicrypto_init_secp256r1sha256_sign_certificate
    - ERR_load_crypto_strings
    - ADD_FFX_AES128_ALGORITHMS
    - X509_STORE_new
    - assert
    - done_testing
    - ptls_iovec_init
    - ENGINE_register_all_digests
    - note
    - ptls_openssl_dispose_sign_certificate
    - setup_sign_certificate
    - subtest
    - OSSL_PROVIDER_load
    - X509_STORE_set_verify_cb
    - ENGINE_set_default_RSA
    - load_engine
    - ENGINE_load_builtin_engines
    - OpenSSL_add_all_algorithms
    - ENGINE_register_all_ciphers
    - OSSL_PROVIDER_unload
    - ptls_openssl_init_verify_certificate
    - setup_certificate
    - ADD_FFX_CHACHA20_ALGORITHMS
    - ENGINE_by_id
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/quiclb.c:36,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/quiclb.c:37,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/quiclb.c:38,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/quiclb.c:40,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/quiclb.c:40,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/t/quiclb.c:42,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/t/quiclb.c:43,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/t/quiclb.c:44,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/quiclb.c:45,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/t/quiclb.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - algo
    argTypes:
    - ptls_cipher_algorithm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: test_quiclb
    functionSourceFile: /src/h2o/deps/picotls/t/quiclb.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - memcmp
    - ptls_cipher_encrypt
    - ptls_cipher_free
    - ok
    linkageType: ''
    returnType: void
    signature: void test_quiclb(ptls_cipher_algorithm_t *algo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_random_bytes
      Src: /src/h2o/deps/picotls/t/mbedtls.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: random_trial
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_random_bytes
    linkageType: ''
    returnType: int
    signature: int random_trial()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_trial
      Src: /src/h2o/deps/picotls/t/mbedtls.c:83,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: test_random
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - random_trial
    - ok
    linkageType: ''
    returnType: void
    signature: void test_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/mbedtls.c:92,1
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/mbedtls.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: test_secp256r1
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_key_exchange
    linkageType: ''
    returnType: void
    signature: void test_secp256r1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/mbedtls.c:98,1
    - Dst: test_key_exchange
      Src: /src/h2o/deps/picotls/t/mbedtls.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: test_x25519
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_key_exchange
    linkageType: ''
    returnType: void
    signature: void test_x25519(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:104,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: test_key_exchanges
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_key_exchanges(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_load_private_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:145,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/mbedtls.c:147,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/mbedtls.c:150,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/t/mbedtls.c:165,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/t/mbedtls.c:171,1
    - Dst: ptls_mbedtls_sign_certificate
      Src: /src/h2o/deps/picotls/t/mbedtls.c:173,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/mbedtls.c:176,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/t/mbedtls.c:178,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/t/mbedtls.c:180,1
    - Dst: ptls_mbedtls_dispose_sign_certificate
      Src: /src/h2o/deps/picotls/t/mbedtls.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: test_load_one_der_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_dispose
    - ptls_mbedtls_dispose_sign_certificate
    - memcpy
    - ptls_mbedtls_load_private_key
    - printf
    - ptls_mbedtls_sign_certificate
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int test_load_one_der_key(char const *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:188,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:191,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: test_load_rsa_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_rsa_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:199,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:201,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: test_load_secp256r1_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_secp256r1_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:209,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:211,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: test_load_secp384r1_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_secp384r1_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:219,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:221,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: test_load_secp521r1_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_secp521r1_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:229,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:231,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: test_load_secp256r1_pkcs8_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_secp256r1_pkcs8_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_load_one_der_key
      Src: /src/h2o/deps/picotls/t/mbedtls.c:239,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/picotls/t/mbedtls.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: test_load_rsa_pkcs8_key
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - test_load_one_der_key
    - ok
    linkageType: ''
    returnType: void
    signature: void test_load_rsa_pkcs8_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:249,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:250,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:251,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:252,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:253,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: test_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 0
    functionsReached:
    - subtest
    linkageType: ''
    returnType: void
    signature: void test_sign_certificate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_crypto_init
      Src: /src/h2o/deps/picotls/t/mbedtls.c:265,1
    - Dst: note
      Src: /src/h2o/deps/picotls/t/mbedtls.c:266,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/mbedtls.c:267,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:271,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:272,1
    - Dst: ADD_FFX_AES128_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/mbedtls.c:274,1
    - Dst: ADD_FFX_CHACHA20_ALGORITHMS
      Src: /src/h2o/deps/picotls/t/mbedtls.c:275,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/mbedtls.c:278,1
    - Dst: ptls_minicrypto_init_secp256r1sha256_sign_certificate
      Src: /src/h2o/deps/picotls/t/mbedtls.c:280,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/mbedtls.c:281,1
    - Dst: ptls_minicrypto_init_secp256r1sha256_sign_certificate
      Src: /src/h2o/deps/picotls/t/mbedtls.c:292,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/t/mbedtls.c:293,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:303,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:307,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:311,1
    - Dst: subtest
      Src: /src/h2o/deps/picotls/t/mbedtls.c:314,1
    - Dst: mbedtls_psa_crypto_free
      Src: /src/h2o/deps/picotls/t/mbedtls.c:317,1
    - Dst: done_testing
      Src: /src/h2o/deps/picotls/t/mbedtls.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 320
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/t/mbedtls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_minicrypto_init_secp256r1sha256_sign_certificate
    - mbedtls_psa_crypto_free
    - note
    - psa_crypto_init
    - ADD_FFX_AES128_ALGORITHMS
    - ADD_FFX_CHACHA20_ALGORITHMS
    - subtest
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:16,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:18,1
    - Dst: BCryptSetProperty
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:20,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:26,1
    - Dst: BCryptGetProperty
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:30,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:32,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:33,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:38,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:43,1
    - Dst: BCryptGenerateSymmetricKey
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:45,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:48,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:55,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - hKey
    - name
    - chain_mode
    - chain_mode_sz
    - proposedKey
    - proposedKeyLength
    - ko
    - ko_length
    argTypes:
    - BCRYPT_KEY_HANDLE*
    - wchar_t*
    - wchar_t*
    - size_t
    - BYTE*
    - DWORD
    - BYTE**
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 59
    functionName: KeyInit
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - BCryptOpenAlgorithmProvider
    - BCryptSetProperty
    - BCryptGetProperty
    - BCryptGenerateSymmetricKey
    - BCryptCloseAlgorithmProvider
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: int
    signature: "int KeyInit(BCRYPT_KEY_HANDLE *hKey, wchar_t *name, wchar_t *chain_mode,
      size_t chain_mode_sz, const BYTE *proposedKey,\n            DWORD proposedKeyLength,
      BYTE **ko, ULONG *ko_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BCryptDestroyKey
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:63,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hKey
    - ko
    - ko_length
    argTypes:
    - BCRYPT_KEY_HANDLE*
    - BYTE**
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: KeyRelease
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - free
    - BCryptDestroyKey
    linkageType: ''
    returnType: void
    signature: void KeyRelease(BCRYPT_KEY_HANDLE *hKey, BYTE **ko, ULONG *ko_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KeyInit
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:89,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:93,1
    - Dst: BCRYPT_INIT_AUTH_MODE_INFO
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:95,1
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:96,1
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:107,1
    - Dst: KeyRelease
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:109,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 17
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    - key
    - key_length
    - iv
    - iv_length
    - data
    - dataLength
    - seq
    - authData
    - authDataLength
    - authTagLength
    - encrypted
    - encryptedLengthMax
    - encryptedLength
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    - BYTE*
    - ULONG
    - BYTE*
    - ULONG
    - BYTE*
    - ULONG
    - uint64_t
    - BYTE*
    - ULONG
    - ULONG
    - BYTE*
    - ULONG
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 118
    functionName: EncodeOneShot
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - BCryptEncrypt
    - KeyRelease
    - KeyInit
    - BCRYPT_INIT_AUTH_MODE_INFO
    - ptls_aead__build_iv
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: int
    signature: "int EncodeOneShot(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz, BYTE *key,\n                  ULONG key_length,\n
      \   BYTE* iv, ULONG iv_length,\n    BYTE *data, ULONG dataLength, uint64_t seq,
      BYTE *authData, ULONG authDataLength, ULONG authTagLength,\n    BYTE *encrypted,
      ULONG encryptedLengthMax, ULONG *encryptedLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KeyInit
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:136,1
    - Dst: BCRYPT_INIT_AUTH_MODE_INFO
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:141,1
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:142,1
    - Dst: BCryptDecrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:153,1
    - Dst: KeyRelease
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:156,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 17
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    - key
    - key_length
    - iv
    - iv_length
    - encrypted
    - encryptedLength
    - seq
    - authData
    - authDataLength
    - authTagLength
    - decrypted
    - decryptedLengthMax
    - decryptedLength
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    - BYTE*
    - ULONG
    - BYTE*
    - ULONG
    - BYTE*
    - ULONG
    - uint64_t
    - BYTE*
    - ULONG
    - ULONG
    - BYTE*
    - ULONG
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 165
    functionName: DecodeOneShot
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - KeyRelease
    - KeyInit
    - BCRYPT_INIT_AUTH_MODE_INFO
    - ptls_aead__build_iv
    - BCRYPT_SUCCESS
    - BCryptDecrypt
    linkageType: ''
    returnType: int
    signature: "int DecodeOneShot(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz, \n    BYTE *key, ULONG key_length, BYTE *
      iv, ULONG iv_length, BYTE *encrypted,\n                  ULONG encryptedLength,
      uint64_t seq, BYTE *authData, ULONG authDataLength,\n                  ULONG
      authTagLength, BYTE *decrypted, ULONG decryptedLengthMax, ULONG *decryptedLength)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:181,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:182,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:183,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:184,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:186,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:187,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:188,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:190,1
    - Dst: EncodeOneShot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:192,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:195,1
    - Dst: DecodeOneShot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:198,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:202,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:206,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:208,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:209,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (sizeof(key) >= aead->key_size)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encrypted))
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(decrypted) >= sizeof(encrypted))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(iv) >= aead->iv_size)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 218
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 218
    functionName: test_oneshot
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - printf
    - EncodeOneShot
    - memset
    - DecodeOneShot
    linkageType: ''
    returnType: int
    signature: int test_oneshot(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::dispose_crypto
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:223,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: delete_test_aead_context
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - ptls_aead_context_t*::dispose_crypto
    - free
    linkageType: ''
    returnType: void
    signature: void delete_test_aead_context(ptls_aead_context_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:231,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:234,1
    - Dst: ptls_aead_algorithm_t*::setup_crypto
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:236,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:237,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:238,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - aead
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_algorithm_t*
    - int
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: new_test_aead_context
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_aead_algorithm_t*::setup_crypto
    - printf
    - memset
    - delete_test_aead_context
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: ptls_aead_context_t *new_test_aead_context(ptls_aead_algorithm_t *aead,
      int is_enc, BYTE *key, BYTE *iv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:263,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:264,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:265,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:266,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:268,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:269,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:270,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:272,1
    - Dst: new_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:275,1
    - Dst: EncodeOneShot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:282,1
    - Dst: ptls_aead_context_t*::do_decrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:289,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:291,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:294,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:296,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:297,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:300,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (sizeof(key) >= aead->key_size)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(decrypted) >= sizeof(encrypted))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(iv) >= aead->iv_size)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encrypted))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 307
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 307
    functionName: test_decrypt
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ptls_aead_context_t*::do_decrypt
    - new_test_aead_context
    - printf
    - EncodeOneShot
    - memset
    - assert
    - delete_test_aead_context
    linkageType: ''
    returnType: int
    signature: int test_decrypt(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:324,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:325,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:326,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:327,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:329,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:330,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:331,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:333,1
    - Dst: new_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:336,1
    - Dst: EncodeOneShot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:343,1
    - Dst: ptls_aead_context_t*::do_encrypt_init
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:350,1
    - Dst: ptls_aead_context_t*::do_encrypt_update
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:351,1
    - Dst: ptls_aead_context_t*::do_encrypt_final
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:352,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:355,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:357,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:358,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:361,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:368,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:372,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (sizeof(iv) >= aead->iv_size)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encrypted))
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(key) >= aead->key_size)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encryptedRef))
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 375
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 375
    functionName: test_encrypt
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_init
    - memcmp
    - new_test_aead_context
    - printf
    - delete_test_aead_context
    - ptls_aead_context_t*::do_encrypt_update
    - EncodeOneShot
    - memset
    - assert
    - ptls_aead_context_t*::do_encrypt_final
    linkageType: ''
    returnType: int
    signature: int test_encrypt(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:392,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:393,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:394,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:395,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:397,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:398,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:399,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:401,1
    - Dst: new_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:404,1
    - Dst: EncodeOneShot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:410,1
    - Dst: ptls_aead_encrypt_v
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:423,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:427,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:429,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:430,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:433,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:440,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (sizeof(key) >= aead->key_size)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encryptedRef))
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(iv) >= aead->iv_size)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) + authTagLength <= sizeof(encrypted))
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 447
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 447
    functionName: test_encrypt_vector
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ptls_aead_encrypt_v
    - new_test_aead_context
    - printf
    - EncodeOneShot
    - memset
    - assert
    - delete_test_aead_context
    linkageType: ''
    returnType: int
    signature: int test_encrypt_vector(ptls_aead_algorithm_t *aead, wchar_t *name,
      wchar_t *chain_mode, size_t chain_mode_sz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:467,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:468,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:470,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:471,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:473,1
    - Dst: new_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:476,1
    - Dst: new_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:477,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:488,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:489,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:490,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:493,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:495,1
    - Dst: ptls_aead_context_t*::do_encrypt_init
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:497,1
    - Dst: ptls_aead_context_t*::do_encrypt_update
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:498,1
    - Dst: ptls_aead_context_t*::do_encrypt_final
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:499,1
    - Dst: ptls_aead_context_t*::do_decrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:500,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:503,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:506,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:508,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:509,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:512,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:517,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:522,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:527,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:532,1
    - Dst: delete_test_aead_context
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:533,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts:
    - condition: (sizeof(key) >= aead->key_size)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(iv) >= aead->iv_size)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 536
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 536
    functionName: test_for_size
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_aead_context_t*::do_encrypt_init
    - memcmp
    - free
    - ptls_aead_context_t*::do_decrypt
    - printf
    - new_test_aead_context
    - ptls_aead_context_t*::do_encrypt_update
    - ptls_aead_context_t*::do_encrypt_final
    - memset
    - assert
    - delete_test_aead_context
    linkageType: ''
    returnType: int
    signature: int test_for_size(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_oneshot
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:540,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:542,1
    - Dst: test_decrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:545,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:547,1
    - Dst: test_encrypt
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:551,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:553,1
    - Dst: test_encrypt_vector
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:557,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:559,1
    - Dst: test_for_size
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:564,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - aead
    - name
    - chain_mode
    - chain_mode_sz
    argTypes:
    - ptls_aead_algorithm_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 570
    functionName: test_one_aead
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - test_encrypt_vector
    - test_decrypt
    - printf
    - test_oneshot
    - test_encrypt
    - test_for_size
    linkageType: ''
    returnType: int
    signature: int test_one_aead(ptls_aead_algorithm_t *aead, wchar_t *name, wchar_t
      *chain_mode, size_t chain_mode_sz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:590,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:591,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:592,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:594,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:595,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:597,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:598,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:603,1
    - Dst: ptls_cipher_context_t*::do_init
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:605,1
    - Dst: ptls_cipher_context_t*::do_init
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:609,1
    - Dst: ptls_cipher_context_t*::do_transform
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:612,1
    - Dst: ptls_cipher_context_t*::do_transform
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:613,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:615,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:616,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:619,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:624,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - name1
    - name2
    - b1
    - b2
    - nb_blocks
    argTypes:
    - char*
    - char*
    - ptls_cipher_algorithm_t*
    - ptls_cipher_algorithm_t*
    - unsigned int
    assertStmts:
    - condition: (sizeof(key) >= b1->key_size)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(data) >= data_size)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(nonce) >= b1->iv_size)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 632
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 632
    functionName: test_cipher_one_way
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - ptls_cipher_context_t*::do_init
    - memcmp
    - ptls_cipher_context_t*::do_transform
    - ptls_cipher_free
    - printf
    - memset
    - assert
    linkageType: ''
    returnType: int
    signature: "int test_cipher_one_way(char const *name1, char const *name2, ptls_cipher_algorithm_t
      *b1, ptls_cipher_algorithm_t *b2,\n                        unsigned int nb_blocks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher_one_way
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:637,1
    - Dst: test_cipher_one_way
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - name1
    - name2
    - b1
    - b2
    - nb_blocks
    argTypes:
    - char*
    - char*
    - ptls_cipher_algorithm_t*
    - ptls_cipher_algorithm_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: test_cipher_pair
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - test_cipher_one_way
    linkageType: ''
    returnType: int
    signature: "int test_cipher_pair(char const *name1, char const *name2, ptls_cipher_algorithm_t
      *b1, ptls_cipher_algorithm_t *b2,\n                     unsigned int nb_blocks)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:658,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:659,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:660,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:662,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:663,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:664,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:670,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:674,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:678,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:679,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - name1
    - name2
    - h1
    - h2
    argTypes:
    - char*
    - char*
    - ptls_hash_algorithm_t*
    - ptls_hash_algorithm_t*
    assertStmts:
    - condition: (sizeof(tag1) >= h1->digest_size)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (sizeof(tag2) >= h2->digest_size)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    - condition: (h1->digest_size == h2->digest_size)
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    constantsTouched: []
    func_position:
      end: 687
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 687
    functionName: test_hash_calc
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 0
    functionsReached:
    - ptls_calc_hash
    - memcmp
    - printf
    - memset
    - assert
    linkageType: ''
    returnType: int
    signature: int test_hash_calc(char const *name1, char const *name2, ptls_hash_algorithm_t
      *h1, ptls_hash_algorithm_t *h2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher_pair
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:697,1
    - Dst: test_cipher_pair
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:698,1
    - Dst: test_cipher_pair
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:700,1
    - Dst: test_cipher_pair
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:701,1
    - Dst: test_one_aead
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:703,1
    - Dst: test_one_aead
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:705,1
    - Dst: test_hash_calc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:707,1
    - Dst: test_hash_calc
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:708,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 693
    functionDepth: 5
    functionLinenumber: 693
    functionLinenumberEnd: 711
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
    functionUses: 1
    functionsReached:
    - test_cipher_pair
    - test_one_aead
    - exit
    - test_hash_calc
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:21,1
    - Dst: vfprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - format
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: log_printf
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void log_printf(void * ctx, const char * format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_load_pem_objects
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:50,1
    - Dst: ptls_minicrypto_asn1_decode_private_key
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:65,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 86
    functionName: openPemTest
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - free
    - ptls_minicrypto_asn1_decode_private_key
    - ptls_load_pem_objects
    linkageType: ''
    returnType: int
    signature: int openPemTest(char const * filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:95,1
    - Dst: BIO_new_file
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:96,1
    - Dst: PEM_read_bio_X509
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: openPemFile
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - X509_new
    - PEM_read_bio_X509
    - BIO_new_file
    linkageType: ''
    returnType: X509
    signature: X509 * openPemFile(char* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: openPemFile
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:111,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:115,1
    - Dst: i2d_X509
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - pem_fname
    - list
    - nb_certs
    argTypes:
    - char*
    - ptls_iovec_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 128
    functionName: get_certificates
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - openPemFile
    - fprintf
    linkageType: ''
    returnType: int
    signature: int get_certificates(char * pem_fname, ptls_iovec_t ** list, int *
      nb_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:134,1
    - Dst: BIO_new_file
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:135,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:136,1
    - Dst: ptls_openssl_init_sign_certificate
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:137,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - keypem
    - ctx
    argTypes:
    - char*
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: SetSignCertificate
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ptls_openssl_init_sign_certificate
    - BIO_new_file
    - PEM_read_bio_PrivateKey
    - EVP_PKEY_new
    linkageType: ''
    returnType: void
    signature: void SetSignCertificate(char const * keypem, ptls_context_t * ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:146,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tls
    - sendbuf
    - ph_prop
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: handshake_init
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_handshake
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int handshake_init(ptls_t * tls, ptls_buffer_t * sendbuf, ptls_handshake_properties_t
      * ph_prop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:158,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:164,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:171,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - tls
    - sendbuf
    - recvbuf
    - ph_prop
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - ptls_buffer_t*
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: handshake_progress
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_dispose
    - ptls_handshake
    - fprintf
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int handshake_progress(ptls_t * tls, ptls_buffer_t * sendbuf, ptls_buffer_t
      * recvbuf, ptls_handshake_properties_t * ph_prop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_cipher
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:189,1
    - Dst: ptls_export_secret
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:201,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tls
    - label
    - cipher
    - secret
    - secret_max
    argTypes:
    - ptls_t*
    - char*
    - ptls_cipher_suite_t**
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 206
    functionName: extract_1rtt_secret
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - ptls_iovec_init
    - ptls_export_secret
    linkageType: ''
    returnType: int
    signature: "int extract_1rtt_secret( \n    ptls_t *tls, const char *label, \n
      \   ptls_cipher_suite_t ** cipher,\n    uint8_t * secret, size_t secret_max)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extract_1rtt_secret
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:217,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:222,1
    - Dst: extract_1rtt_secret
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:226,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:230,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:236,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:238,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:244,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:248,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - tls_client
    - tls_server
    argTypes:
    - ptls_t*
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 256
    functionName: verify_1rtt_secret_extraction
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - extract_1rtt_secret
    - fprintf
    - memcmp
    linkageType: ''
    returnType: int
    signature: int verify_1rtt_secret_extraction(ptls_t *tls_client, ptls_t *tls_server)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:261,1
    - Dst: X509_STORE_add_lookup
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:264,1
    - Dst: X509_LOOKUP_file
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:264,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:265,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - crt_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 273
    functionName: openssl_init_cert_store
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - X509_STORE_add_lookup
    - X509_LOOKUP_load_file
    - X509_STORE_new
    - fprintf
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE * openssl_init_cert_store(char const * crt_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:283,1
    - Dst: ptls_openssl_init_verify_certificate
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:288,1
    - Dst: openssl_init_cert_store
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ctx_client
    - crt_file
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: openssl_init_test_client
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_openssl_init_verify_certificate
    - memset
    - openssl_init_cert_store
    linkageType: ''
    returnType: int
    signature: int openssl_init_test_client(ptls_context_t *ctx_client, char const
      * crt_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:299,1
    - Dst: ptls_load_certificates
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:305,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:308,1
    - Dst: SetSignCertificate
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx_server
    - key_file
    - cert_file
    argTypes:
    - ptls_context_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: openssl_init_test_server
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - memset
    - SetSignCertificate
    - fprintf
    - ptls_load_certificates
    linkageType: ''
    returnType: int
    signature: "int openssl_init_test_server(ptls_context_t *ctx_server, \n    char
      const * key_file, char const * cert_file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx_client
    argTypes:
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: minicrypto_init_test_client
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int minicrypto_init_test_client(ptls_context_t *ctx_client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:337,1
    - Dst: ptls_load_certificates
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:343,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:347,1
    - Dst: ptls_minicrypto_load_private_key
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx_server
    - key_file
    - cert_file
    argTypes:
    - ptls_context_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: minicrypto_init_test_server
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_minicrypto_load_private_key
    - memset
    - fprintf
    - ptls_load_certificates
    linkageType: ''
    returnType: int
    signature: int minicrypto_init_test_server(ptls_context_t *ctx_server, char const
      * key_file, char const * cert_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tls
    - properties
    - type
    argTypes:
    - ptls_t*
    - struct st_ptls_handshake_properties_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: collect_test_extension
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int collect_test_extension(ptls_t *tls, struct st_ptls_handshake_properties_t
      *properties, uint16_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ext
    - data
    - len
    argTypes:
    - ptls_raw_extension_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: set_test_extensions
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_test_extensions(ptls_raw_extension_t ext[2], uint8_t * data,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:403,1
    - Dst: set_test_extensions
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tls
    - properties
    - slots
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - ptls_raw_extension_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 415
    functionName: collected_test_extensions
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - set_test_extensions
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int collected_test_extensions(ptls_t *tls, ptls_handshake_properties_t
      *properties, \n\tptls_raw_extension_t *slots)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:421,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:426,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - on_hello_cb_ctx
    - tls
    - params
    argTypes:
    - ptls_on_client_hello_t*
    - ptls_t*
    - ptls_on_client_hello_parameters_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: client_hello_call_back
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - ptls_set_server_name
    - ptls_set_negotiated_protocol
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int client_hello_call_back(ptls_on_client_hello_t *on_hello_cb_ctx,
      ptls_t *tls,\n                           ptls_on_client_hello_parameters_t *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:437,1
    - Dst: set_test_extensions
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - client_mode
    argTypes:
    - struct st_picotls_vs_test_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: set_handshake_context
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - set_test_extensions
    - memset
    linkageType: ''
    returnType: void
    signature: void set_handshake_context(struct st_picotls_vs_test_context_t * ctx,
      int client_mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:460,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:464,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:466,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:471,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:475,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - app_ctx_client
    - app_ctx_server
    argTypes:
    - struct st_picotls_vs_test_context_t*
    - struct st_picotls_vs_test_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 482
    functionName: verify_handshake_extension
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int verify_handshake_extension(struct st_picotls_vs_test_context_t
      * app_ctx_client,\n\tstruct st_picotls_vs_test_context_t *app_ctx_server)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: openssl_init_test_client
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:497,1
    - Dst: minicrypto_init_test_client
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:501,1
    - Dst: openssl_init_test_server
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:506,1
    - Dst: minicrypto_init_test_server
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:510,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:516,1
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:517,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:521,1
    - Dst: set_handshake_context
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:531,1
    - Dst: set_handshake_context
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:532,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:537,1
    - Dst: handshake_init
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:539,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:541,1
    - Dst: handshake_progress
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:547,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:551,1
    - Dst: handshake_progress
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:557,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:560,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:564,1
    - Dst: verify_1rtt_secret_extraction
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:568,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:572,1
    - Dst: verify_handshake_extension
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:578,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:582,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:588,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:592,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:595,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:597,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:605,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:609,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:612,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:614,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:622,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:628,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:633,1
    - Dst: free
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:638,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 85
    argCount: 4
    argNames:
    - openssl_client
    - openssl_server
    - key_file
    - cert_file
    argTypes:
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 642
    functionName: ptls_memory_loopback_test
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 0
    functionsReached:
    - verify_1rtt_secret_extraction
    - ptls_set_server_name
    - verify_handshake_extension
    - handshake_progress
    - free
    - minicrypto_init_test_server
    - strcmp
    - openssl_init_test_client
    - ptls_get_server_name
    - ptls_free
    - printf
    - handshake_init
    - fprintf
    - minicrypto_init_test_client
    - ptls_get_negotiated_protocol
    - set_handshake_context
    - openssl_init_test_server
    - ptls_new
    linkageType: ''
    returnType: int
    signature: int ptls_memory_loopback_test(int openssl_client, int openssl_server,
      char const * key_file, char const * cert_file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: openPemTest
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:663,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:669,1
    - Dst: ptls_memory_loopback_test
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:670,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:675,1
    - Dst: ptls_memory_loopback_test
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:676,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:681,1
    - Dst: ptls_memory_loopback_test
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:682,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:687,1
    - Dst: ptls_memory_loopback_test
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:688,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:693,1
    - Dst: ptls_memory_loopback_test
      Src: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c:694,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 698
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    functionUses: 1
    functionsReached:
    - ptls_memory_loopback_test
    - openPemTest
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimePreciseAsFileTime
      Src: /src/h2o/deps/picotls/picotlsvs/picotls/wintimeofday.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 72
    functionName: wintimeofday
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotls/wintimeofday.c
    functionUses: 0
    functionsReached:
    - GetSystemTimePreciseAsFileTime
    linkageType: ''
    returnType: int
    signature: int wintimeofday(struct timeval* tv, struct timezone* tz)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c:70,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c:80,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c:95,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - nargc
    - nargv
    - ostr
    argTypes:
    - int
    - char*[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 103
    functionName: getopt
    functionSourceFile: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c
    functionUses: 5
    functionsReached:
    - strchr
    - printf
    linkageType: ''
    returnType: int
    signature: int getopt(int nargc, char* const nargv[], const char* ostr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: PTLS_LIKELY
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PTLS_UNLIKELY
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: PTLS_BUILD_ASSERT_EXPR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_BUILD_ASSERT_EXPR(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PTLS_BUILD_ASSERT
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_BUILD_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: PTLS_LIKELY
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: PTLS_UNLIKELY
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: PTLS_BUILD_ASSERT
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_BUILD_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: PTLS_ASSERT_IS_ARRAY_EXPR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ASSERT_IS_ARRAY_EXPR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PTLS_ASSERT_IS_ARRAY_EXPR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ASSERT_IS_ARRAY_EXPR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PTLS_ELEMENTSOF
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ELEMENTSOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: PTLS_ERROR_GET_CLASS
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ERROR_GET_CLASS(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: PTLS_ALERT_TO_SELF_ERROR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ALERT_TO_SELF_ERROR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PTLS_ALERT_TO_PEER_ERROR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ALERT_TO_PEER_ERROR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: PTLS_ERROR_TO_ALERT
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_ERROR_TO_ALERT(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: PTLS_TO__STR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_TO__STR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: PTLS_TO_STR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_TO_STR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ret
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: PTLS_CALLBACK_TYPE0
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_CALLBACK_TYPE0(ret, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: PTLS_CALLBACK_TYPE
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_CALLBACK_TYPE(ret, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1244
    functionName: ptls_buffer_pushv
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_pushv(buf, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1250
    functionName: ptls_buffer_push
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push(buf, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1256
    functionName: ptls_buffer_push16
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push16(buf, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1262
    functionName: ptls_buffer_push24
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push24(buf, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1268
    functionName: ptls_buffer_push32
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push32(buf, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1275
    functionName: ptls_buffer_push64
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push64(buf, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1283
    functionName: ptls_buffer_push_quicint
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push_quicint(buf, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - _capacity
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1305
    functionName: ptls_buffer_push_block
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push_block(buf, _capacity, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1308
    functionName: ptls_buffer_push_asn1_block
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push_asn1_block(buf, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1327
    functionName: ptls_buffer_push_asn1_sequence
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push_asn1_sequence(buf, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - key_sched
    - ','
    - type
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1338
    functionName: ptls_buffer_push_message_body
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_buffer_push_message_body(buf, key_sched, type, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - emitter
    - ','
    - key_sched
    - ','
    - type
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1348
    functionName: ptls_push_message
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_push_message(emitter, key_sched, type, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - end
    - ','
    - capacity
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1395
    functionName: ptls_decode_open_block
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_decode_open_block(src, end, capacity, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1403
    functionName: ptls_decode_assert_block_close
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_decode_assert_block_close(src, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - end
    - ','
    - capacity
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1409
    functionName: ptls_decode_block
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_decode_block(src, end, capacity, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - suffix
    - ','
    - type
    - ','
    - body
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1428
    functionName: PTLS_LOG_DEFINE_GETSNI
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_DEFINE_GETSNI(suffix, type, body)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - module
    - ','
    - name
    - ','
    - conn_state
    - ','
    - get_sni
    - ','
    - add_time
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1441
    functionName: PTLS_LOG__DO_LOG
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG__DO_LOG(module, name, conn_state, get_sni, add_time, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _module
    - ','
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: PTLS_LOG_DEFINE_POINT
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_DEFINE_POINT(_module, _name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - module
    - ','
    - name
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1455
    functionName: PTLS_LOG
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG(module, name, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - tls
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1477
    functionName: PTLS_LOG_CONN
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_CONN(name, tls, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1479
    functionName: PTLS_LOG__ELEMENT_PREFIX_CORE
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG__ELEMENT_PREFIX_CORE(lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1480
    functionName: PTLS_LOG__ELEMENT_PREFIX
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG__ELEMENT_PREFIX(lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1485
    functionName: PTLS_LOG_ELEMENT_SAFESTR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_SAFESTR(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - value_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1487
    functionName: PTLS_LOG_ELEMENT_UNSAFESTR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_UNSAFESTR(name, value, value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - value_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1489
    functionName: PTLS_LOG_ELEMENT_HEXDUMP
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_HEXDUMP(name, value, value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1490
    functionName: PTLS_LOG_ELEMENT_PTR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_PTR(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1498
    functionName: PTLS_LOG_ELEMENT_SIGNED
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_SIGNED(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lit
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1506
    functionName: PTLS_LOG__DO_ELEMENT_UNSIGNED
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG__DO_ELEMENT_UNSIGNED(lit, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1507
    functionName: PTLS_LOG_ELEMENT_UNSIGNED
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_UNSIGNED(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1508
    functionName: PTLS_LOG_ELEMENT_BOOL
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_ELEMENT_BOOL(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - value_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1514
    functionName: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR(name, value, value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - value_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1520
    functionName: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP(name, value, value_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/include/picotls.h:2000,1
    - Dst: ptls_log__recalc_point
      Src: /src/h2o/deps/picotls/include/picotls.h:2001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - struct st_ptls_log_point_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2006
    functionName: ptls_log_point_maybe_active
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached:
    - ptls_log__recalc_point
    - PTLS_UNLIKELY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ptls_log_point_maybe_active(struct st_ptls_log_point_t *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - ptls_log_conn_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2011
    functionName: ptls_log_recalc_conn_state
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptls_log_recalc_conn_state(ptls_log_conn_state_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/include/picotls.h:2016,1
    - Dst: ptls_log__recalc_conn
      Src: /src/h2o/deps/picotls/include/picotls.h:2017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - getsni
    argTypes:
    - ptls_log_conn_state_t*
    - ptls_log_getsni_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2022
    functionName: ptls_log_conn_maybe_active
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 4
    functionsReached:
    - PTLS_UNLIKELY
    - ptls_log__recalc_conn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ptls_log_conn_maybe_active(ptls_log_conn_state_t *conn, ptls_log_getsni_t
      getsni)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_server_new
      Src: /src/h2o/deps/picotls/include/picotls.h:2026,1
    - Dst: ptls_client_new
      Src: /src/h2o/deps/picotls/include/picotls.h:2026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - is_server
    argTypes:
    - ptls_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2027
    functionName: ptls_new
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 15
    functionsReached:
    - ptls_server_new
    - ptls_client_new
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *ptls_new(ptls_context_t *ctx, int is_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2038
    functionName: ptls_iovec_init
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t ptls_iovec_init(const void *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/include/picotls.h:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - smallbuf
    - smallbuf_size
    argTypes:
    - ptls_buffer_t*
    - void*
    - size_t
    assertStmts:
    - condition: (smallbuf != NULL)
      pos:
        line_end: 2041
        line_start: 2041
        source_file: /src/h2o/deps/picotls/include/picotls.h
    constantsTouched: []
    func_position:
      end: 2048
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2048
    functionName: ptls_buffer_init
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 40
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ptls_buffer_init(ptls_buffer_t *buf, void *smallbuf, size_t smallbuf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer__release_memory
      Src: /src/h2o/deps/picotls/include/picotls.h:2052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2054
    functionName: ptls_buffer_dispose
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 35
    functionsReached:
    - ptls_buffer__release_memory
    linkageType: ''
    returnType: void
    signature: void ptls_buffer_dispose(ptls_buffer_t *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/include/picotls.h:2058,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/include/picotls.h:2059,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/include/picotls.h:2061,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/include/picotls.h:2062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts:
    - condition: (v <= 4611686018427387903)
      pos:
        line_end: 2061
        line_start: 2061
        source_file: /src/h2o/deps/picotls/include/picotls.h
    constantsTouched: []
    func_position:
      end: 2078
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2078
    functionName: ptls_encode_quicint
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached:
    - PTLS_UNLIKELY
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *ptls_encode_quicint(uint8_t *p, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_context_t*::do_init
      Src: /src/h2o/deps/picotls/include/picotls.h:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2083
    functionName: ptls_cipher_init
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 5
    functionsReached:
    - ptls_cipher_context_t*::do_init
    linkageType: ''
    returnType: void
    signature: void ptls_cipher_init(ptls_cipher_context_t *ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_context_t*::do_transform
      Src: /src/h2o/deps/picotls/include/picotls.h:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2085
    functionDepth: 0
    functionLinenumber: 2085
    functionLinenumberEnd: 2088
    functionName: ptls_cipher_encrypt
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 12
    functionsReached:
    - ptls_cipher_context_t*::do_transform
    linkageType: ''
    returnType: void
    signature: void ptls_cipher_encrypt(ptls_cipher_context_t *ctx, void *output,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_get_iv
      Src: /src/h2o/deps/picotls/include/picotls.h:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2093
    functionName: ptls_aead_get_iv
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached:
    - ptls_aead_context_t*::do_get_iv
    linkageType: ''
    returnType: void
    signature: void ptls_aead_get_iv(ptls_aead_context_t *ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_set_iv
      Src: /src/h2o/deps/picotls/include/picotls.h:2097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2098
    functionName: ptls_aead_set_iv
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached:
    - ptls_aead_context_t*::do_set_iv
    linkageType: ''
    returnType: void
    signature: void ptls_aead_set_iv(ptls_aead_context_t *ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt
      Src: /src/h2o/deps/picotls/include/picotls.h:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2105
    functionName: ptls_aead_encrypt
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 11
    functionsReached:
    - ptls_aead_context_t*::do_encrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_aead_encrypt(ptls_aead_context_t *ctx, void *output, const
      void *input, size_t inlen, uint64_t seq,\n                                const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt
      Src: /src/h2o/deps/picotls/include/picotls.h:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    - supp
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    - ptls_aead_supplementary_encryption_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2107
    functionDepth: 0
    functionLinenumber: 2107
    functionLinenumberEnd: 2111
    functionName: ptls_aead_encrypt_s
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached:
    - ptls_aead_context_t*::do_encrypt
    linkageType: ''
    returnType: void
    signature: "void ptls_aead_encrypt_s(ptls_aead_context_t *ctx, void *output, const
      void *input, size_t inlen, uint64_t seq,\n                                const
      void *aad, size_t aadlen, ptls_aead_supplementary_encryption_t *supp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_v
      Src: /src/h2o/deps/picotls/include/picotls.h:2116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - output
    - input
    - incnt
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2117
    functionName: ptls_aead_encrypt_v
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 2
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_v
    linkageType: ''
    returnType: void
    signature: "void ptls_aead_encrypt_v(ptls_aead_context_t *ctx, void *output, ptls_iovec_t
      *input, size_t incnt, uint64_t seq,\n                                const void
      *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_init
      Src: /src/h2o/deps/picotls/include/picotls.h:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2122
    functionName: ptls_aead_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_init
    linkageType: ''
    returnType: void
    signature: void ptls_aead_encrypt_init(ptls_aead_context_t *ctx, uint64_t seq,
      const void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_update
      Src: /src/h2o/deps/picotls/include/picotls.h:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2124
    functionDepth: 0
    functionLinenumber: 2124
    functionLinenumberEnd: 2127
    functionName: ptls_aead_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_update
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_aead_encrypt_update(ptls_aead_context_t *ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_final
      Src: /src/h2o/deps/picotls/include/picotls.h:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2129
    functionDepth: 0
    functionLinenumber: 2129
    functionLinenumberEnd: 2132
    functionName: ptls_aead_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 1
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_final
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_aead_encrypt_final(ptls_aead_context_t *ctx, void *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/include/picotls.h:2137,1
    - Dst: ptls_aead_context_t*::do_encrypt_v
      Src: /src/h2o/deps/picotls/include/picotls.h:2138,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/include/picotls.h:2141,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/include/picotls.h:2142,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/include/picotls.h:2143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    - supp
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    - ptls_aead_supplementary_encryption_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2145
    functionName: ptls_aead__do_encrypt
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_aead_context_t*::do_encrypt_v
    - ptls_cipher_encrypt
    - ptls_cipher_init
    - memset
    linkageType: ''
    returnType: void
    signature: "void ptls_aead__do_encrypt(ptls_aead_context_t *ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                                  const
      void *aad, size_t aadlen, ptls_aead_supplementary_encryption_t *supp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_init
      Src: /src/h2o/deps/picotls/include/picotls.h:2152,1
    - Dst: ptls_aead_context_t*::do_encrypt_update
      Src: /src/h2o/deps/picotls/include/picotls.h:2154,1
    - Dst: ptls_aead_context_t*::do_encrypt_final
      Src: /src/h2o/deps/picotls/include/picotls.h:2155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ctx
    - _output
    - input
    - incnt
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2156
    functionName: ptls_aead__do_encrypt_v
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_final
    - ptls_aead_context_t*::do_encrypt_init
    - ptls_aead_context_t*::do_encrypt_update
    linkageType: ''
    returnType: void
    signature: "void ptls_aead__do_encrypt_v(ptls_aead_context_t *ctx, void *_output,
      ptls_iovec_t *input, size_t incnt, uint64_t seq,\n                                    const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_decrypt
      Src: /src/h2o/deps/picotls/include/picotls.h:2161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2162
    functionName: ptls_aead_decrypt
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 14
    functionsReached:
    - ptls_aead_context_t*::do_decrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_aead_decrypt(ptls_aead_context_t *ctx, void *output, const
      void *input, size_t inlen, uint64_t seq,\n                                const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/include/picotls.h:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2167
    functionName: ptls_hash_clone_memcpy
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ptls_hash_clone_memcpy(void *dst, const void *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - ctx_type
    - ','
    - init_func
    - ','
    - update_func
    - ','
    - final_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2169
    functionDepth: 0
    functionLinenumber: 2169
    functionLinenumberEnd: 2171
    functionName: ptls_define_hash
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_define_hash(name, ctx_type, init_func, update_func, final_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - ctx_type
    - ','
    - init_func
    - ','
    - update_func
    - ','
    - final_func
    - ','
    - clone_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2228
    functionName: ptls_define_hash6
    functionSourceFile: /src/h2o/deps/picotls/include/picotls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptls_define_hash6(name, ctx_type, init_func, update_func, final_func,
      clone_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - base
    - ','
    - bitlength
    - ','
    - nbrounds
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: PTLS_FFX_CIPHER_ALGO_NAME
    functionSourceFile: /src/h2o/deps/picotls/include/picotls/ffx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_FFX_CIPHER_ALGO_NAME(base, bitlength, nbrounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - base
    - ','
    - bitlength
    - ','
    - nbrounds
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: PTLS_FFX_CIPHER_ALGO
    functionSourceFile: /src/h2o/deps/picotls/include/picotls/ffx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_FFX_CIPHER_ALGO(base, bitlength, nbrounds, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:26,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:27,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:28,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:29,1
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:31,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:33,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:34,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:34,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:45,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:46,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:47,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:48,1
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:50,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:52,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:53,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:53,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:64,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:65,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:66,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:67,1
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:69,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:71,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:72,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:72,1
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:82,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:84,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:85,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:85,1
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:87,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:89,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:90,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 91
    functionName: test_salsa20_core
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c
    functionUses: 0
    functionsReached:
    - cf_salsa20_core
    - memcmp
    - TEST_CHECK
    - unhex
    - memset
    linkageType: ''
    returnType: void
    signature: void test_salsa20_core(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:98,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:99,1
    - Dst: cf_salsa20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:101,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:102,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:103,1
    - Dst: cf_salsa20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:104,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:106,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:107,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:107,1
    - Dst: cf_salsa20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:109,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:110,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:111,1
    - Dst: cf_salsa20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:112,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:114,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:115,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: test_salsa20
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c
    functionUses: 0
    functionsReached:
    - cf_salsa20_cipher
    - memcmp
    - TEST_CHECK
    - cf_salsa20_init
    - unhex
    - memset
    linkageType: ''
    returnType: void
    signature: void test_salsa20(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:124,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:125,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:126,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:128,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:130,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:131,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:131,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:134,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:136,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:137,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:137,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:139,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:142,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:144,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:145,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:145,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:147,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:150,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:152,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:153,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:153,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:155,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:156,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:157,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:159,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:161,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:162,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:162,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:165,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:167,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:168,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:168,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:171,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:173,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:174,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:174,1
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:177,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:179,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:180,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 181
    functionName: test_chacha20_core
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_CHECK
    - unhex
    - cf_chacha20_core
    - memset
    linkageType: ''
    returnType: void
    signature: void test_chacha20_core(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:187,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:188,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:189,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:190,1
    - Dst: cf_chacha20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:193,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:194,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:196,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:196,1
    - Dst: cf_chacha20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:199,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: test_chacha20
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_CHECK
    - unhex
    - cf_chacha20_cipher
    - cf_chacha20_init
    - memset
    linkageType: ''
    returnType: void
    signature: void test_chacha20(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:39,1
    - Dst: cf_chacha20_init_custom
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:43,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:44,1
    - Dst: cf_poly1305_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:48,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:49,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:52,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:53,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:62,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:63,1
    - Dst: PADLEN
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:63,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:70,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:71,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:75,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:79,1
    - Dst: PADLEN
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:79,1
    - Dst: write64_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:82,1
    - Dst: write64_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:83,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:84,1
    - Dst: cf_poly1305_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:90,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:91,1
    - Dst: cf_poly1305_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:98,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:100,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:102,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:103,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:104,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:107,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:108,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 9
    argNames:
    - key
    - nonce
    - header
    - nheader
    - input
    - nbytes
    - output
    - mode
    - tag
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - int
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 112
    functionName: process
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - cf_poly1305_update
    - mem_clean
    - mem_eq
    - cf_chacha20_init_custom
    - cf_poly1305_finish
    - memcpy
    - cf_chacha20_cipher
    - cf_poly1305_init
    - write64_le
    - PADLEN
    linkageType: ''
    returnType: int
    signature: "int process(const uint8_t key[32],\n                   const uint8_t
      nonce[12],\n                   const uint8_t *header, size_t nheader,\n                   const
      uint8_t *input, size_t nbytes,\n                   uint8_t *output,\n                   int
      mode,\n                   uint8_t tag[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: PADLEN
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PADLEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - key
    - nonce
    - header
    - nheader
    - plaintext
    - nbytes
    - ciphertext
    - tag
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: cf_chacha20poly1305_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - process
    linkageType: ''
    returnType: void
    signature: "void cf_chacha20poly1305_encrypt(const uint8_t key[32],\n                                 const
      uint8_t nonce[12],\n                                 const uint8_t *header,
      size_t nheader,\n                                 const uint8_t *plaintext,
      size_t nbytes,\n                                 uint8_t *ciphertext,\n                                 uint8_t
      tag[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:138,1
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - key
    - nonce
    - header
    - nheader
    - ciphertext
    - nbytes
    - tag
    - plaintext
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: cf_chacha20poly1305_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - memcpy
    - process
    linkageType: ''
    returnType: int
    signature: "int cf_chacha20poly1305_decrypt(const uint8_t key[32],\n                                const
      uint8_t nonce[12],\n                                const uint8_t *header, size_t
      nheader,\n                                const uint8_t *ciphertext, size_t
      nbytes,\n                                const uint8_t tag[16],\n                                uint8_t
      *plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:27,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:28,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:29,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:30,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:31,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:32,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:33,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:35,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:36,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:37,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:38,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:39,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:40,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:42,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:43,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:44,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:45,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:46,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:47,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: test_memclean
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - mem_clean
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_memclean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:63,1
    - Dst: select_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:63,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:68,1
    - Dst: select_u32
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: test_bitops_select
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - select_u32
    - select_u8
    linkageType: ''
    returnType: void
    signature: void test_bitops_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:92,1
    - Dst: CHECK_BE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:93,1
    - Dst: CHECK_BE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:94,1
    - Dst: CHECK_BE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:95,1
    - Dst: CHECK_LE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:97,1
    - Dst: CHECK_LE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:98,1
    - Dst: CHECK_LE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:99,1
    - Dst: CHECK_LE
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 104
    functionName: test_bitops_incr
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - CHECK_LE
    - CHECK_BE
    linkageType: ''
    returnType: void
    signature: void test_bitops_incr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - add
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: CHECK_BE
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_BE(start, add, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - add
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: CHECK_LE
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_LE(start, add, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:117,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:119,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:120,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:121,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:122,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:123,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:124,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:125,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:126,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:127,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:128,1
    - Dst: CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: test_bitops_unaligned
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - write32_be
    - CHECK
    linkageType: ''
    returnType: void
    signature: void test_bitops_unaligned(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - outw
    - ','
    - len
    - ','
    - offs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: CHECK
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(outw, len, offs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:139,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key
    - nkey
    - answer
    - roundkeys
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: test_expand
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_expand(const uint8_t *key, size_t nkey,\n                        const
      uint32_t *answer, size_t roundkeys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:166,1
    - Dst: ARRAYCOUNT
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 167
    functionName: test_expand_128
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - test_expand
    - ARRAYCOUNT
    linkageType: ''
    returnType: void
    signature: void test_expand_128(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:189,1
    - Dst: ARRAYCOUNT
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 190
    functionName: test_expand_192
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - test_expand
    - ARRAYCOUNT
    linkageType: ''
    returnType: void
    signature: void test_expand_192(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:214,1
    - Dst: ARRAYCOUNT
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: test_expand_256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - test_expand
    - ARRAYCOUNT
    linkageType: ''
    returnType: void
    signature: void test_expand_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:224,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:225,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:226,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:228,1
    - Dst: cf_aes_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:229,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:230,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:230,1
    - Dst: cf_aes_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:232,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:233,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:233,1
    - Dst: cf_aes_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - input
    - output
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 1
    functionsReached:
    - cf_aes_init
    - cf_aes_encrypt
    - memcmp
    - TEST_CHECK
    - unhex
    - cf_aes_decrypt
    - cf_aes_finish
    linkageType: ''
    returnType: void
    signature: "void vector(const char *input, const char *output,\n                   const
      char *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:239,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:241,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testaes.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: test_vectors
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
    functionUses: 0
    functionsReached:
    - vector
    linkageType: ''
    returnType: void
    signature: void test_vectors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: CH
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CH(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: MAJ
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: BSIG0
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSIG0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: BSIG1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSIG1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: SSIG0
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSIG0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: SSIG1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSIG1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:75,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:76,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:77,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:78,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:79,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:80,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:81,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:82,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha512_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: cf_sha512_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_sha512_init(cf_sha512_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:88,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:89,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:90,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:91,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:92,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:93,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:94,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:95,1
    - Dst: UINT64_C
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha512_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: cf_sha384_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_sha384_init(cf_sha512_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:120,1
    - Dst: SSIG1
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:123,1
    - Dst: SSIG0
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:125,1
    - Dst: BSIG1
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:130,1
    - Dst: CH
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:130,1
    - Dst: BSIG0
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:131,1
    - Dst: MAJ
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - vctx
    - inp
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 152
    functionName: sha512_update_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - CH
    - SSIG1
    - SSIG0
    - BSIG0
    - BSIG1
    - read64_be
    - MAJ
    linkageType: ''
    returnType: void
    signature: void sha512_update_block(void *vctx, const uint8_t *inp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha512_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: cf_sha512_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void cf_sha512_update(cf_sha512_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha512_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha512_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: cf_sha384_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - cf_sha512_update
    linkageType: ''
    returnType: void
    signature: void cf_sha384_update(cf_sha512_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha512_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha512_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: cf_sha512_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - cf_sha512_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha512_digest(const cf_sha512_context *ctx, uint8_t hash[CF_SHA512_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_acc_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:195,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:201,1
    - Dst: cf_sha512_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:202,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:203,1
    - Dst: cf_sha512_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:204,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:207,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:209,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:210,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:211,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:212,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:213,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:214,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:215,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:216,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha512_context*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->npartial == 0)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 218
    functionName: cf_sha512_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 1
    functionsReached:
    - cf_blockwise_acc_pad
    - cf_sha512_update
    - memset
    - assert
    - write64_be
    linkageType: ''
    returnType: void
    signature: void cf_sha512_digest_final(cf_sha512_context *ctx, uint8_t hash[CF_SHA512_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha512_digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:223,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha512_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: cf_sha384_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_sha512_digest
    linkageType: ''
    returnType: void
    signature: void cf_sha384_digest(const cf_sha512_context *ctx, uint8_t hash[CF_SHA384_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha512_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:230,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha512.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha512_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: cf_sha384_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_sha512_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha384_digest_final(cf_sha512_context *ctx, uint8_t hash[CF_SHA384_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: assert
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/tassert.h
    functionUses: 395
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_scalarmult_curve25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: cf_curve25519_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.c
    functionUses: 0
    functionsReached:
    - crypto_scalarmult_curve25519
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul(uint8_t out[32], const uint8_t scalar[32], const
      uint8_t point[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_scalarmult_curve25519_base
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: cf_curve25519_mul_base
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.c
    functionUses: 0
    functionsReached:
    - crypto_scalarmult_curve25519_base
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul_base(uint8_t out[32], const uint8_t scalar[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:26,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:27,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:28,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:30,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:33,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: test_sha1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_test
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:40,1
    - Dst: hmac_test_sha1
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: test_hmac_sha1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c
    functionUses: 0
    functionsReached:
    - hmac_test
    - hmac_test_sha1
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:29,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:30,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:31,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:32,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:34,1
    - Dst: cf_hash_drbg_sha256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:37,1
    - Dst: cf_hash_drbg_sha256_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:38,1
    - Dst: cf_hash_drbg_sha256_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:39,1
    - Dst: cf_hash_drbg_sha256_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:40,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:41,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:41,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:44,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:45,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:47,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:48,1
    - Dst: cf_hash_drbg_sha256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:50,1
    - Dst: cf_hash_drbg_sha256_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:51,1
    - Dst: cf_hash_drbg_sha256_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:52,1
    - Dst: cf_hash_drbg_sha256_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:53,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:54,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: test_hashdrbg_sha256_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hash_drbg_sha256_gen
    - TEST_CHECK
    - cf_hash_drbg_sha256_init
    - unhex
    - cf_hash_drbg_sha256_reseed
    linkageType: ''
    returnType: void
    signature: void test_hashdrbg_sha256_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:62,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:63,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:64,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:65,1
    - Dst: cf_hash_drbg_sha256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:68,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:69,1
    - Dst: cf_hash_drbg_sha256_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:70,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:71,1
    - Dst: cf_hash_drbg_sha256_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:72,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:73,1
    - Dst: cf_hash_drbg_sha256_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:74,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:75,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: test_hashdrbg_sha256_vector_addnl
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - cf_hash_drbg_sha256_gen_additional
    - memcmp
    - TEST_CHECK
    - cf_hash_drbg_sha256_init
    - unhex
    - cf_hash_drbg_sha256_reseed
    linkageType: ''
    returnType: void
    signature: void test_hashdrbg_sha256_vector_addnl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:83,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:84,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:85,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:86,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:89,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:90,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:91,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:92,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:93,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: test_hmacdrbg_sha1_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha1_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:101,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:102,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:103,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:104,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:107,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:108,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:109,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:110,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:111,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:112,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:113,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:114,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: test_hmacdrbg_sha1_vector_addnl
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen_additional
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha1_vector_addnl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:122,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:123,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:124,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:125,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:128,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:129,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:130,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:131,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:132,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: test_hmacdrbg_sha256_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha256_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:140,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:141,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:142,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:143,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:146,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:147,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:148,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:149,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:150,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:151,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:152,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:153,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: test_hmacdrbg_sha256_vector_addnl
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen_additional
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha256_vector_addnl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:161,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:162,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:163,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:164,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:167,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:168,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:169,1
    - Dst: cf_hmac_drbg_gen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:170,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:171,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: test_hmacdrbg_sha512_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha512_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:179,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:180,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:181,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:182,1
    - Dst: cf_hmac_drbg_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:185,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:186,1
    - Dst: cf_hmac_drbg_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:187,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:188,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:189,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:190,1
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:191,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:192,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: test_hmacdrbg_sha512_vector_addnl
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cf_hmac_drbg_gen_additional
    - cf_hmac_drbg_init
    - TEST_CHECK
    - unhex
    - cf_hmac_drbg_reseed
    linkageType: ''
    returnType: void
    signature: void test_hmacdrbg_sha512_vector_addnl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:28,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:30,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:33,1
    - Dst: cf_prp*::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:34,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:38,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:39,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:40,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:43,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - prp
    - prpctx
    argTypes:
    - cf_cmac*
    - cf_prp*
    - void*
    assertStmts:
    - condition: (prp->blocksz == 16)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: cf_cmac_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cf_gf128_tobytes_be
    - cf_gf128_frombytes_be
    - mem_clean
    - cf_gf128_double
    - cf_prp*::encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_cmac_init(cf_cmac *ctx, const cf_prp *prp, void *prpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cmac_stream_reset
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:54,1
    - Dst: cf_cmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:55,1
    - Dst: cf_cmac_stream_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - data
    - len
    - out
    argTypes:
    - cf_cmac*
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: cf_cmac_sign
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cf_cmac_stream_update
    - cf_cmac_stream_final
    - cf_cmac_stream_reset
    linkageType: ''
    returnType: void
    signature: void cf_cmac_sign(cf_cmac *ctx, const uint8_t *data, size_t len, uint8_t
      out[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:61,1
    - Dst: cf_cmac_stream_reset
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - prp
    - prpctx
    argTypes:
    - cf_cmac_stream*
    - cf_prp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: cf_cmac_stream_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cf_cmac_init
    - cf_cmac_stream_reset
    linkageType: ''
    returnType: void
    signature: void cf_cmac_stream_init(cf_cmac_stream *ctx, const cf_prp *prp, void
      *prpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbc_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:68,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_cmac_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: cf_cmac_stream_reset
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 2
    functionsReached:
    - mem_clean
    - cf_cbc_init
    linkageType: ''
    returnType: void
    signature: void cf_cmac_stream_reset(cf_cmac_stream *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbc_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: cmac_process
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cf_cbc_encrypt
    linkageType: ''
    returnType: void
    signature: void cmac_process(void *vctx, const uint8_t *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:88,1
    - Dst: cf_cbc_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - block
    - xor
    argTypes:
    - cf_cmac_stream*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: cmac_process_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - xor_bb
    - cf_cbc_encrypt
    linkageType: ''
    returnType: void
    signature: "void cmac_process_final(cf_cmac_stream *ctx, const uint8_t *block,\n
      \                              const uint8_t *xor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmac_process_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: cmac_process_final_nopad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cmac_process_final
    linkageType: ''
    returnType: void
    signature: void cmac_process_final_nopad(void *vctx, const uint8_t *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmac_process_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: cmac_process_final_pad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 0
    functionsReached:
    - cmac_process_final
    linkageType: ''
    returnType: void
    signature: void cmac_process_final_pad(void *vctx, const uint8_t *block)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:119,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:120,1
    - Dst: cf_blockwise_accumulate_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:131,1
    - Dst: cf_blockwise_acc_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - data
    - len
    - isfinal
    argTypes:
    - cf_cmac_stream*
    - uint8_t*
    - size_t
    - int
    assertStmts:
    - condition: (!ctx->finalised)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    - condition: (len != 0 || empty_message)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    constantsTouched: []
    func_position:
      end: 143
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 143
    functionName: cf_cmac_stream_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 1
    functionsReached:
    - cf_blockwise_accumulate_final
    - cf_blockwise_acc_pad
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_cmac_stream_update(cf_cmac_stream *ctx, const uint8_t *data,
      size_t len, int isfinal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:147,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/cmac.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - cf_cmac_stream*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->finalised)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: cf_cmac_stream_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_cmac_stream_final(cf_cmac_stream *ctx, uint8_t out[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:33,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:39,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:40,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:41,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:42,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:50,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:51,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - startctx
    - counter
    - salt
    - nsalt
    - iterations
    - out
    argTypes:
    - cf_hmac_ctx*
    - uint32_t
    - uint8_t*
    - size_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: F
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
    functionUses: 68
    functionsReached:
    - cf_hmac_update
    - xor_bb
    - memcpy
    - cf_hmac_finish
    - write32_be
    linkageType: ''
    returnType: void
    signature: "void F(const cf_hmac_ctx *startctx,\n              uint32_t counter,\n
      \             const uint8_t *salt, size_t nsalt,\n              uint32_t iterations,\n
      \             uint8_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:65,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:66,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:67,1
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:71,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:75,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:77,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - pw
    - npw
    - salt
    - nsalt
    - iterations
    - out
    - nout
    - hash
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint32_t
    - uint8_t*
    - size_t
    - cf_chash*
    assertStmts:
    - condition: (iterations)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
    - condition: (hash)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
    - condition: (out && nout)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
    constantsTouched: []
    func_position:
      end: 83
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 83
    functionName: cf_pbkdf2_hmac
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
    functionUses: 0
    functionsReached:
    - F
    - cf_hmac_init
    - memcpy
    - MIN
    - assert
    linkageType: ''
    returnType: void
    signature: "void cf_pbkdf2_hmac(const uint8_t *pw, size_t npw,\n                    const
      uint8_t *salt, size_t nsalt,\n                    uint32_t iterations,\n                    uint8_t
      *out, size_t nout,\n                    const cf_chash *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned int[]
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add(unsigned int out[32],const unsigned int a[32],const unsigned
      int b[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned int[]
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: sub
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sub(unsigned int out[32],const unsigned int a[32],const unsigned
      int b[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: squeeze
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void squeeze(unsigned int a[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: freeze
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 2
    functionsReached:
    - add
    linkageType: ''
    returnType: void
    signature: void freeze(unsigned int a[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned int[]
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: mult
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - squeeze
    linkageType: ''
    returnType: void
    signature: void mult(unsigned int out[32],const unsigned int a[32],const unsigned
      int b[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: mult121665
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mult121665(unsigned int out[32],const unsigned int a[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: square
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - squeeze
    linkageType: ''
    returnType: void
    signature: void square(unsigned int out[32],const unsigned int a[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - p
    - q
    - r
    - s
    - b
    argTypes:
    - unsigned int[]
    - unsigned int[]
    - unsigned int[]
    - unsigned int[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: select
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void select(unsigned int p[64],unsigned int q[64],const unsigned int
      r[64],const unsigned int s[64],unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:153,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:154,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:155,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:156,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:157,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:158,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:159,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:160,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:161,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:162,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:163,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:164,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:165,1
    - Dst: mult121665
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:166,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:167,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:168,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:169,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:170,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:171,1
    - Dst: select
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - work
    - e
    argTypes:
    - unsigned int[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 176
    functionName: mainloop
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - add
    - select
    - mult121665
    - square
    - mult
    - sub
    linkageType: ''
    returnType: void
    signature: void mainloop(unsigned int work[64],const unsigned char e[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:192,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:193,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:194,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:195,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:196,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:197,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:198,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:200,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:201,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:202,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:203,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:204,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:205,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:207,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:208,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:209,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:209,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:210,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:212,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:213,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:214,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:214,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:215,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:217,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:218,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:219,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:219,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:220,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:222,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:223,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:224,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:224,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:225,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:227,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:228,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:229,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:229,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:230,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:232,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:233,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:234,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:234,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:235,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:237,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:238,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:239,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:240,1
    - Dst: square
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:241,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - unsigned int[]
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 243
    functionName: recip
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - square
    - mult
    linkageType: ''
    returnType: void
    signature: void recip(unsigned int out[32],const unsigned int z[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:257,1
    - Dst: recip
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:258,1
    - Dst: mult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:259,1
    - Dst: freeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - q
    - n
    - p
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: crypto_scalarmult
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - recip
    - mult
    - mainloop
    - freeze
    linkageType: ''
    returnType: void
    signature: "void crypto_scalarmult(unsigned char *q,\n  const unsigned char *n,\n
      \ const unsigned char *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_scalarmult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: cf_curve25519_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - crypto_scalarmult
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul(uint8_t out[32], const uint8_t scalar[32], const
      uint8_t point[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_curve25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: cf_curve25519_mul_base
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
    functionUses: 0
    functionsReached:
    - cf_curve25519_mul
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul_base(uint8_t out[32], const uint8_t scalar[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:23,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:24,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:25,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - cf_gf128
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: cf_gf128_tobytes_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 1
    functionsReached:
    - write32_be
    linkageType: ''
    returnType: void
    signature: void cf_gf128_tobytes_be(const cf_gf128 in, uint8_t out[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:31,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:32,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:33,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - uint8_t[]
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: cf_gf128_frombytes_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 1
    functionsReached:
    - read32_be
    linkageType: ''
    returnType: void
    signature: void cf_gf128_frombytes_be(const uint8_t in[16], cf_gf128 out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - cf_gf128
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: cf_gf128_double
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 1
    functionsReached:
    - select_u8
    linkageType: ''
    returnType: void
    signature: void cf_gf128_double(const cf_gf128 in, cf_gf128 out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - cf_gf128
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: cf_gf128_double_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 0
    functionsReached:
    - select_u8
    linkageType: ''
    returnType: void
    signature: void cf_gf128_double_le(const cf_gf128 in, cf_gf128 out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - out
    argTypes:
    - cf_gf128
    - cf_gf128
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: cf_gf128_add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_gf128_add(const cf_gf128 x, const cf_gf128 y, cf_gf128 out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:94,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:95,1
    - Dst: select_xor128
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:104,1
    - Dst: xor_words
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:107,1
    - Dst: cf_gf128_double_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:110,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/gf128.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - x
    - y
    - out
    argTypes:
    - cf_gf128
    - cf_gf128
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 114
    functionName: cf_gf128_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
    functionUses: 0
    functionsReached:
    - select_xor128
    - xor_words
    - memcpy
    - cf_gf128_double_le
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_gf128_mul(const cf_gf128 x, const cf_gf128 y, cf_gf128 out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:31,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - H
    argTypes:
    - ghash_ctx*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ghash_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - memset
    - cf_gf128_frombytes_be
    linkageType: ''
    returnType: void
    signature: void ghash_init(ghash_ctx *ctx, uint8_t H[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:40,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:41,1
    - Dst: cf_gf128_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - vctx
    - data
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: ghash_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - cf_gf128_mul
    - cf_gf128_frombytes_be
    - cf_gf128_add
    linkageType: ''
    returnType: void
    signature: void ghash_block(void *vctx, const uint8_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - buf
    - n
    argTypes:
    - ghash_ctx*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ghash_add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void ghash_add(ghash_ctx *ctx, const uint8_t *buf, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:59,1
    - Dst: ghash_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ghash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: ghash_add_pad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - memset
    - ghash_block
    linkageType: ''
    returnType: void
    signature: void ghash_add_pad(ghash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:66,1
    - Dst: ghash_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - buf
    - n
    argTypes:
    - ghash_ctx*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ctx->state == STATE_AAD)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: ghash_add_aad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_add
    - assert
    linkageType: ''
    returnType: void
    signature: void ghash_add_aad(ghash_ctx *ctx, const uint8_t *buf, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ghash_add_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:75,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:79,1
    - Dst: ghash_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - buf
    - n
    argTypes:
    - ghash_ctx*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ctx->state == STATE_CIPHER)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: ghash_add_cipher
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_add
    - ghash_add_pad
    - assert
    linkageType: ''
    returnType: void
    signature: void ghash_add_cipher(ghash_ctx *ctx, const uint8_t *buf, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ghash_add_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:90,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:95,1
    - Dst: ghash_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:96,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:98,1
    - Dst: ghash_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:99,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:101,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - ghash_ctx*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->buffer_used == 0)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: ghash_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_add_pad
    - ghash_add
    - cf_gf128_tobytes_be
    - assert
    - write64_be
    linkageType: ''
    returnType: void
    signature: void ghash_final(ghash_ctx *ctx, uint8_t out[16])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_prp*::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:112,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:124,1
    - Dst: ghash_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:128,1
    - Dst: ghash_add_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:129,1
    - Dst: ghash_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:130,1
    - Dst: ghash_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:134,1
    - Dst: ghash_add_aad
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:135,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:138,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:139,1
    - Dst: cf_ctr_custom_counter
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:140,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:141,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 7
    argNames:
    - prp
    - prpctx
    - gcmctx
    - header
    - nheader
    - nonce
    - nnonce
    argTypes:
    - cf_prp*
    - void*
    - cf_gcm_ctx*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 144
    functionName: cf_gcm_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_init
    - ghash_add_aad
    - mem_clean
    - memcpy
    - ghash_add_cipher
    - cf_ctr_init
    - cf_ctr_custom_counter
    - ghash_final
    - memset
    - cf_prp*::encrypt
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: "void cf_gcm_encrypt_init(const cf_prp *prp, void *prpctx, cf_gcm_ctx
      *gcmctx,\n                         const uint8_t *header, size_t nheader,\n
      \                        const uint8_t *nonce, size_t nnonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:148,1
    - Dst: ghash_add_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gcmctx
    - plain
    - nplain
    - cipher
    argTypes:
    - cf_gcm_ctx*
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: cf_gcm_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_add_cipher
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: void cf_gcm_encrypt_update(cf_gcm_ctx *gcmctx, const uint8_t *plain,
      size_t nplain, uint8_t *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ghash_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:156,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:158,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:159,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:161,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gcmctx
    - tag
    - ntag
    argTypes:
    - cf_gcm_ctx*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ntag > 1 && ntag <= 16)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: cf_gcm_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_final
    - mem_clean
    - xor_bb
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_gcm_encrypt_final(cf_gcm_ctx *gcmctx, uint8_t *tag, size_t
      ntag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gcm_encrypt_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:174,1
    - Dst: cf_gcm_encrypt_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:175,1
    - Dst: cf_gcm_encrypt_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 11
    argNames:
    - prp
    - prpctx
    - plain
    - nplain
    - header
    - nheader
    - nonce
    - nnonce
    - cipher
    - tag
    - ntag
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 7
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: cf_gcm_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt_update
    - cf_gcm_encrypt_final
    - cf_gcm_encrypt_init
    linkageType: ''
    returnType: void
    signature: "void cf_gcm_encrypt(const cf_prp *prp, void *prpctx,\n                    const
      uint8_t *plain, size_t nplain,\n                    const uint8_t *header, size_t
      nheader,\n                    const uint8_t *nonce, size_t nnonce,\n                    uint8_t
      *cipher, /* the same size as nplain */\n                    uint8_t *tag, size_t
      ntag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_prp*::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:190,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:202,1
    - Dst: ghash_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:207,1
    - Dst: ghash_add_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:208,1
    - Dst: ghash_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:209,1
    - Dst: ghash_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:214,1
    - Dst: ghash_add_aad
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:215,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:220,1
    - Dst: cf_ctr_custom_counter
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:221,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:222,1
    - Dst: ghash_add_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:225,1
    - Dst: ghash_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:229,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:230,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:231,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:234,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:238,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:242,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:243,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:244,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:245,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:246,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/gcm.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 11
    argNames:
    - prp
    - prpctx
    - cipher
    - ncipher
    - header
    - nheader
    - nonce
    - nnonce
    - tag
    - ntag
    - plain
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts:
    - condition: (ntag > 1 && ntag <= 16)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    constantsTouched: []
    func_position:
      end: 249
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 249
    functionName: cf_gcm_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
    functionUses: 0
    functionsReached:
    - ghash_init
    - ghash_add_aad
    - xor_bb
    - mem_clean
    - mem_eq
    - memcpy
    - ghash_add_cipher
    - cf_ctr_init
    - cf_ctr_custom_counter
    - ghash_final
    - cf_prp*::encrypt
    - assert
    - cf_ctr_cipher
    linkageType: ''
    returnType: int
    signature: "int cf_gcm_decrypt(const cf_prp *prp, void *prpctx,\n                   const
      uint8_t *cipher, size_t ncipher,\n                   const uint8_t *header,
      size_t nheader,\n                   const uint8_t *nonce, size_t nnonce,\n                   const
      uint8_t *tag, size_t ntag,\n                   uint8_t *plain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:114,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:115,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:116,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:117,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:120,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:121,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:122,1
    - Dst: G
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - norx32_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 128
    functionName: permute
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - G
    linkageType: ''
    returnType: void
    signature: void permute(norx32_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: in
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in(xx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: LOAD
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(u, v, w, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: STORE
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(u, v, w, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rx
    - ','
    - ry
    - ','
    - rw
    - ','
    - rot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: P
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(rx, ry, rw, rot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: G
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(s, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - rr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: P
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(u, v, w, rr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: G
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(s, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:135,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:136,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:140,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:141,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:142,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:143,1
    - Dst: permute
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - key
    - nonce
    argTypes:
    - norx32_ctx*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 305
    functionsReached:
    - read32_le
    - permute
    linkageType: ''
    returnType: void
    signature: "void init(norx32_ctx *ctx,\n                 const uint8_t key[16],\n
      \                const uint8_t nonce[8])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permute
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - constant
    argTypes:
    - norx32_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: switch_domain
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - permute
    linkageType: ''
    returnType: void
    signature: void switch_domain(norx32_ctx *ctx, uint32_t constant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vctx
    - data
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: input_block_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - read32_le
    linkageType: ''
    returnType: void
    signature: void input_block_final(void *vctx, const uint8_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_block_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:200,1
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - data
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: input_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - switch_domain
    - input_block_final
    linkageType: ''
    returnType: void
    signature: void input_block(void *vctx, const uint8_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:212,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:218,1
    - Dst: input_block_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - type
    - buf
    - nbuf
    argTypes:
    - norx32_ctx*
    - uint32_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: input
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 7
    functionsReached:
    - cf_blockwise_accumulate
    - memset
    - input_block_final
    linkageType: ''
    returnType: void
    signature: "void input(norx32_ctx *ctx, uint32_t type,\n                  const
      uint8_t *buf, size_t nbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:229,1
    - Dst: input
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - buf
    - nbuf
    argTypes:
    - norx32_ctx*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: do_header
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - switch_domain
    - input
    linkageType: ''
    returnType: void
    signature: void do_header(norx32_ctx *ctx, const uint8_t *buf, size_t nbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:238,1
    - Dst: input
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - buf
    - nbuf
    argTypes:
    - norx32_ctx*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: do_trailer
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - switch_domain
    - input
    linkageType: ''
    returnType: void
    signature: void do_trailer(norx32_ctx *ctx, const uint8_t *buf, size_t nbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:249,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - plain
    - cipher
    argTypes:
    - norx32_ctx*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: body_block_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - read32_le
    - write32_le
    linkageType: ''
    returnType: void
    signature: "void body_block_encrypt(norx32_ctx *ctx,\n                               const
      uint8_t plain[RATE_BYTES],\n                               uint8_t cipher[RATE_BYTES])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:265,1
    - Dst: body_block_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:266,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:274,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:275,1
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:279,1
    - Dst: body_block_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:280,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - plain
    - cipher
    - nbytes
    argTypes:
    - norx32_ctx*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 283
    functionName: encrypt_body
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - body_block_encrypt
    - switch_domain
    linkageType: ''
    returnType: void
    signature: "void encrypt_body(norx32_ctx *ctx,\n                         const
      uint8_t *plain, uint8_t *cipher, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:292,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - cipher
    - plain
    - start
    - end
    argTypes:
    - norx32_ctx*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: body_block_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - read32_le
    - write32_le
    linkageType: ''
    returnType: void
    signature: "void body_block_decrypt(norx32_ctx *ctx,\n                               const
      uint8_t cipher[RATE_BYTES],\n                               uint8_t plain[RATE_BYTES],\n
      \                              size_t start, size_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - bytes
    argTypes:
    - norx32_ctx*
    - size_t
    assertStmts:
    - condition: (bytes < RATE_BYTES)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: undo_padding
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void undo_padding(norx32_ctx *ctx, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:316,1
    - Dst: body_block_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:317,1
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:325,1
    - Dst: undo_padding
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:327,1
    - Dst: body_block_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:332,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:341,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - cipher
    - plain
    - nbytes
    argTypes:
    - norx32_ctx*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 351
    functionName: decrypt_body
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - write32_le
    - read32_le
    - switch_domain
    - undo_padding
    - body_block_decrypt
    linkageType: ''
    returnType: void
    signature: "void decrypt_body(norx32_ctx *ctx,\n                         const
      uint8_t *cipher, uint8_t *plain, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: switch_domain
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:355,1
    - Dst: permute
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:356,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:357,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:358,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:359,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - tag
    argTypes:
    - norx32_ctx*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: get_tag
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - switch_domain
    - write32_le
    - permute
    linkageType: ''
    returnType: void
    signature: void get_tag(norx32_ctx *ctx, uint8_t tag[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:373,1
    - Dst: do_header
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:374,1
    - Dst: encrypt_body
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:375,1
    - Dst: do_trailer
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:376,1
    - Dst: get_tag
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:377,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 10
    argNames:
    - key
    - nonce
    - header
    - nheader
    - plaintext
    - nbytes
    - trailer
    - ntrailer
    - ciphertext
    - tag
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 380
    functionName: cf_norx32_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - do_trailer
    - mem_clean
    - encrypt_body
    - get_tag
    - init
    - do_header
    linkageType: ''
    returnType: void
    signature: "void cf_norx32_encrypt(const uint8_t key[16],\n                       const
      uint8_t nonce[8],\n                       const uint8_t *header, size_t nheader,\n
      \                      const uint8_t *plaintext, size_t nbytes,\n                       const
      uint8_t *trailer, size_t ntrailer,\n                       uint8_t *ciphertext,\n
      \                      uint8_t tag[16])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:393,1
    - Dst: do_header
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:394,1
    - Dst: decrypt_body
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:395,1
    - Dst: do_trailer
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:396,1
    - Dst: get_tag
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:397,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:401,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:404,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:405,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/norx.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 10
    argNames:
    - key
    - nonce
    - header
    - nheader
    - ciphertext
    - nbytes
    - trailer
    - ntrailer
    - tag
    - plaintext
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 410
    functionName: cf_norx32_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    functionUses: 0
    functionsReached:
    - do_trailer
    - mem_eq
    - mem_clean
    - get_tag
    - decrypt_body
    - init
    - do_header
    linkageType: ''
    returnType: int
    signature: "int cf_norx32_decrypt(const uint8_t key[16],\n                      const
      uint8_t nonce[8],\n                      const uint8_t *header, size_t nheader,\n
      \                     const uint8_t *ciphertext, size_t nbytes,\n                      const
      uint8_t *trailer, size_t ntrailer,\n                      const uint8_t tag[16],\n
      \                     uint8_t *plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: rotr32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotr32(uint32_t x, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: rotl32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotl32(uint32_t x, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - uint64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: rotr64
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotr64(uint64_t x, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - uint64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: rotl64
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotl64(uint64_t x, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: read32_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read32_be(const uint8_t buf[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: read32_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read32_le(const uint8_t buf[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:76,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: read64_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached:
    - read32_be
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read64_be(const uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:85,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: read64_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached:
    - read32_le
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read64_le(const uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: write32_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write32_be(uint32_t v, uint8_t buf[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: write32_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write32_le(uint32_t v, uint8_t buf[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: write64_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write64_be(uint64_t v, uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: write64_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write64_le(uint64_t v, uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - in
    - b8
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: xor_b8
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_b8(uint8_t *out, const uint8_t *in, uint8_t b8, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - x
    - y
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: xor_bb
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_bb(uint8_t *out, const uint8_t *x, const uint8_t *y, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - x
    - nwords
    argTypes:
    - uint32_t*
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: xor_words
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_words(uint32_t *out, const uint32_t *x, size_t nwords)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: mask_u32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mask_u32(uint32_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: mask_u8
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mask_u8(uint32_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask_u32
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - i
    - tab
    - n
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: select_u32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached:
    - mask_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t select_u32(uint32_t i, volatile const uint32_t *tab, uint32_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - i
    - tab
    - n
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: select_u8
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 3
    functionsReached:
    - mask_u8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t select_u8(uint32_t i, volatile const uint8_t *tab, uint32_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:225,1
    - Dst: mask_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:226,1
    - Dst: mask_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:227,1
    - Dst: mask_u8
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - a
    - b
    - c
    - d
    - tab
    - n
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 235
    functionName: select_u8x4
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached:
    - mask_u8
    linkageType: ''
    returnType: void
    signature: "void select_u8x4(uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d,\n
      \                              volatile const uint8_t *tab, uint32_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask_u32
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - if0
    - if1
    - bit
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: select_xor128
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 1
    functionsReached:
    - mask_u32
    linkageType: ''
    returnType: void
    signature: "void select_xor128(uint32_t out[4],\n                                 const
      uint32_t if0[4],\n                                 const uint32_t if1[4],\n
      \                                uint8_t bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: incr_le
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_le(uint8_t *v, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: incr_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_be(uint8_t *v, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - len
    - offset
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: copy_bytes_unaligned
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_bytes_unaligned(uint8_t *out, const uint8_t *in, size_t len,
      uint8_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:303,1
    - Dst: __builtin_ctzl
      Src: /src/h2o/deps/picotls/deps/cifra/src/bitops.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: count_trailing_zeroes
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_ctzl
    - _BitScanReverse
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t count_trailing_zeroes(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:37,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:45,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:46,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:47,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:48,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:49,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:50,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:51,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:52,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:54,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 11
    argNames:
    - H
    - in1
    - nin1
    - in2
    - nin2
    - in3
    - nin3
    - in4
    - nin4
    - out
    - nout
    argTypes:
    - cf_chash*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 61
    functionName: hash_df
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - cf_chash*::digest
    - cf_chash*::init
    - cf_chash*::update
    - memcpy
    - MIN
    - write32_be
    linkageType: ''
    returnType: void
    signature: "void hash_df(const cf_chash *H,\n                    const void *in1,
      size_t nin1,\n                    const void *in2, size_t nin2,\n                    const
      void *in3, size_t nin3,\n                    const void *in4, size_t nin4,\n
      \                   uint8_t *out, size_t nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:68,1
    - Dst: hash_df
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:73,1
    - Dst: hash_df
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - ctx
    - entropy
    - nentropy
    - nonce
    - nnonce
    - persn
    - npersn
    argTypes:
    - cf_hash_drbg_sha256*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: cf_hash_drbg_sha256_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 2
    functionsReached:
    - hash_df
    - mem_clean
    linkageType: ''
    returnType: void
    signature: "void cf_hash_drbg_sha256_init(cf_hash_drbg_sha256 *ctx,\n                              const
      void *entropy, size_t nentropy,\n                              const void *nonce,
      size_t nnonce,\n                              const void *persn, size_t npersn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - nout
    - in
    - nin
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (nout >= nin)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 43
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void add(uint8_t *out, size_t nout, const uint8_t *in, size_t nin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:126,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:127,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:128,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:129,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:130,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - H
    - input
    - ninput
    - V
    - nV
    argTypes:
    - cf_chash*
    - void*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 134
    functionName: hash_process_addnl
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - cf_chash*::init
    - cf_chash*::update
    - cf_chash*::digest
    - add
    linkageType: ''
    returnType: void
    signature: "void hash_process_addnl(const cf_chash *H,\n                               const
      void *input, size_t ninput,\n                               uint8_t *V, size_t
      nV)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:148,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:149,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:150,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:153,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:154,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - H
    - data
    - ndata
    - out
    - nout
    argTypes:
    - cf_chash*
    - uint8_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: hash_generate
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - cf_chash*::digest
    - add
    - cf_chash*::init
    - cf_chash*::update
    - memcpy
    - MIN
    linkageType: ''
    returnType: void
    signature: "void hash_generate(const cf_chash *H,\n                          uint8_t
      *data, size_t ndata, /* initialised with V */\n                          void
      *out, size_t nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:173,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:174,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:175,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:176,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:180,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:182,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:183,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - H
    - V
    - nV
    - C
    - nC
    - reseed_counter
    argTypes:
    - cf_chash*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: hash_step
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - cf_chash*::digest
    - add
    - cf_chash*::init
    - cf_chash*::update
    - write32_be
    linkageType: ''
    returnType: void
    signature: "void hash_step(const cf_chash *H,\n                      uint8_t *V,
      size_t nV,\n                      const uint8_t *C, size_t nC,\n                      uint32_t
      *reseed_counter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:198,1
    - Dst: cf_hash_drbg_sha256_needs_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:198,1
    - Dst: hash_process_addnl
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:200,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:201,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:202,1
    - Dst: hash_generate
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:203,1
    - Dst: hash_step
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - addnl
    - naddnl
    - out
    - nout
    argTypes:
    - cf_hash_drbg_sha256*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (!cf_hash_drbg_sha256_needs_reseed(ctx))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    - condition: (sizeof data == sizeof ctx->V)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: hash_gen_request
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - hash_generate
    - cf_hash_drbg_sha256_needs_reseed
    - memcpy
    - hash_process_addnl
    - hash_step
    - assert
    linkageType: ''
    returnType: void
    signature: "void hash_gen_request(cf_hash_drbg_sha256 *ctx,\n                             const
      void *addnl, size_t naddnl,\n                             void *out, size_t
      nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:216,1
    - Dst: hash_gen_request
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - addnl
    - naddnl
    - out
    - nout
    argTypes:
    - cf_hash_drbg_sha256*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: cf_hash_drbg_sha256_gen_additional
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 1
    functionsReached:
    - MIN
    - hash_gen_request
    linkageType: ''
    returnType: void
    signature: "void cf_hash_drbg_sha256_gen_additional(cf_hash_drbg_sha256 *ctx,\n
      \                                       const void *addnl, size_t naddnl,\n
      \                                       void *out, size_t nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_hash_drbg_sha256_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - out
    - nout
    argTypes:
    - cf_hash_drbg_sha256*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: cf_hash_drbg_sha256_gen
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 1
    functionsReached:
    - cf_hash_drbg_sha256_gen_additional
    linkageType: ''
    returnType: void
    signature: "void cf_hash_drbg_sha256_gen(cf_hash_drbg_sha256 *ctx,\n                             void
      *out, size_t nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:244,1
    - Dst: hash_df
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:245,1
    - Dst: hash_df
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - entropy
    - nentropy
    - addnl
    - naddnl
    argTypes:
    - cf_hash_drbg_sha256*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 263
    functionName: cf_hash_drbg_sha256_reseed
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 2
    functionsReached:
    - memcpy
    - hash_df
    linkageType: ''
    returnType: void
    signature: "void cf_hash_drbg_sha256_reseed(cf_hash_drbg_sha256 *ctx,\n                                const
      void *entropy, size_t nentropy,\n                                const void
      *addnl, size_t naddnl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_hash_drbg_sha256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: cf_hash_drbg_sha256_needs_reseed
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cf_hash_drbg_sha256_needs_reseed(const cf_hash_drbg_sha256
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:287,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:288,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:289,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:290,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:291,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:292,1
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:293,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:294,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:298,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:299,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:308,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:309,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:310,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:311,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:312,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:313,1
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:314,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:315,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:319,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 7
    argNames:
    - ctx
    - in1
    - nin1
    - in2
    - nin2
    - in3
    - nin3
    argTypes:
    - cf_hmac_drbg*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 321
    functionName: hmac_drbg_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - cf_hmac_finish
    - cf_hmac_update
    - mem_clean
    - cf_hmac_init
    linkageType: ''
    returnType: void
    signature: "void hmac_drbg_update(cf_hmac_drbg *ctx,\n                             const
      void *in1, size_t nin1,\n                             const void *in2, size_t
      nin2,\n                             const void *in3, size_t nin3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:329,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:331,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:336,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:337,1
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:338,1
    - Dst: hmac_drbg_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 8
    argNames:
    - ctx
    - hash
    - entropy
    - nentropy
    - nonce
    - nnonce
    - persn
    - npersn
    argTypes:
    - cf_hmac_drbg*
    - cf_chash*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (hash->hashsz <= CF_MAXHASH)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    constantsTouched: []
    func_position:
      end: 346
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 346
    functionName: cf_hmac_drbg_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 6
    functionsReached:
    - mem_clean
    - cf_hmac_init
    - memset
    - assert
    - hmac_drbg_update
    linkageType: ''
    returnType: void
    signature: "void cf_hmac_drbg_init(cf_hmac_drbg *ctx,\n                       const
      cf_chash *hash,\n                       const void *entropy, size_t nentropy,\n
      \                      const void *nonce, size_t nnonce,\n                       const
      void *persn, size_t npersn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_hmac_drbg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: cf_hmac_drbg_needs_reseed
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cf_hmac_drbg_needs_reseed(const cf_hmac_drbg *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:359,1
    - Dst: cf_hmac_drbg_needs_reseed
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:359,1
    - Dst: hmac_drbg_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:365,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:382,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:383,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:385,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:386,1
    - Dst: hmac_drbg_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - addnl
    - naddnl
    - out
    - nout
    argTypes:
    - cf_hmac_drbg*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (!cf_hmac_drbg_needs_reseed(ctx))
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    constantsTouched: []
    func_position:
      end: 396
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 396
    functionName: hmac_drbg_generate
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 0
    functionsReached:
    - MIN
    - cf_hmac_drbg_needs_reseed
    - cf_hmac_update
    - memcpy
    - cf_hmac_finish
    - assert
    - hmac_drbg_update
    linkageType: ''
    returnType: void
    signature: "void hmac_drbg_generate(cf_hmac_drbg *ctx,\n                               const
      void *addnl, size_t naddnl,\n                               void *out, size_t
      nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:406,1
    - Dst: hmac_drbg_generate
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - addnl
    - naddnl
    - out
    - nout
    argTypes:
    - cf_hmac_drbg*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 415
    functionName: cf_hmac_drbg_gen_additional
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 3
    functionsReached:
    - MIN
    - hmac_drbg_generate
    linkageType: ''
    returnType: void
    signature: "void cf_hmac_drbg_gen_additional(cf_hmac_drbg *ctx,\n                                 const
      void *addnl, size_t naddnl,\n                                 void *out, size_t
      nout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_hmac_drbg_gen_additional
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - out
    - nout
    argTypes:
    - cf_hmac_drbg*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: cf_hmac_drbg_gen
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 3
    functionsReached:
    - cf_hmac_drbg_gen_additional
    linkageType: ''
    returnType: void
    signature: void cf_hmac_drbg_gen(cf_hmac_drbg *ctx, void *out, size_t nout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_drbg_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/drbg.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - entropy
    - nentropy
    - addnl
    - naddnl
    argTypes:
    - cf_hmac_drbg*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 434
    functionName: cf_hmac_drbg_reseed
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
    functionUses: 6
    functionsReached:
    - hmac_drbg_update
    linkageType: ''
    returnType: void
    signature: "void cf_hmac_drbg_reseed(cf_hmac_drbg *ctx,\n                         const
      void *entropy, size_t nentropy,\n                         const void *addnl,
      size_t naddnl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:44,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:45,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:46,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:47,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:48,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:49,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:50,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:51,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:52,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:53,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:54,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:55,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:56,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:57,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:58,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:59,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:102,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:103,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:104,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:105,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:106,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:107,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:108,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:109,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:110,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:111,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:112,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:113,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:114,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:115,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:116,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 5
    argNames:
    - key0
    - key1
    - nonce
    - constant
    - out
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 118
    functionName: cf_salsa20_core
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
    functionUses: 1
    functionsReached:
    - read32_le
    - write32_le
    linkageType: ''
    returnType: void
    signature: "void cf_salsa20_core(const uint8_t key0[16],\n                     const
      uint8_t key1[16],\n                     const uint8_t nonce[16],\n                     const
      uint8_t constant[16],\n                     uint8_t out[64])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v0
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: QUARTER
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARTER(v0, v1, v2, v3)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:128,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:129,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:133,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:134,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:138,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:141,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - key
    - nkey
    - nonce
    argTypes:
    - cf_salsa20_ctx*
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 145
    functionName: cf_salsa20_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - abort
    linkageType: ''
    returnType: void
    signature: void cf_salsa20_init(cf_salsa20_ctx *ctx, const uint8_t *key, size_t
      nkey, const uint8_t nonce[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_salsa20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:150,1
    - Dst: incr_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - out
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: cf_salsa20_next_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
    functionUses: 0
    functionsReached:
    - cf_salsa20_core
    - incr_le
    linkageType: ''
    returnType: void
    signature: void cf_salsa20_next_block(void *vctx, uint8_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_xor
      Src: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - input
    - output
    - bytes
    argTypes:
    - cf_salsa20_ctx*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: cf_salsa20_cipher
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
    functionUses: 1
    functionsReached:
    - cf_blockwise_xor
    linkageType: ''
    returnType: void
    signature: void cf_salsa20_cipher(cf_salsa20_ctx *ctx, const uint8_t *input, uint8_t
      *output, size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:26,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:27,1
    - Dst: cf_curve25519_mul_base
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:28,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:29,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:29,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:31,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:32,1
    - Dst: cf_curve25519_mul_base
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:33,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:34,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: test_base_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c
    functionUses: 0
    functionsReached:
    - unhex
    - cf_curve25519_mul_base
    - TEST_CHECK
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_base_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:44,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:45,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:46,1
    - Dst: cf_curve25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:47,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:48,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: test_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c
    functionUses: 0
    functionsReached:
    - unhex
    - TEST_CHECK
    - cf_curve25519_mul
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - value
    - bytes
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (value == 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: write_be
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void write_be(uint8_t *out, size_t value, size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbcmac_stream_finish_block_zero
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cm
    argTypes:
    - cf_cbcmac_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: zero_pad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - cf_cbcmac_stream_finish_block_zero
    linkageType: ''
    returnType: void
    signature: void zero_pad(cf_cbcmac_stream *cm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:45,1
    - Dst: write_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:50,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:51,1
    - Dst: write_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:53,1
    - Dst: write_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:54,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:55,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:58,1
    - Dst: zero_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - cm
    - block
    - header
    - nheader
    argTypes:
    - cf_cbcmac_stream*
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (nheader <= 0xffffffff)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: add_aad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 2
    functionsReached:
    - cf_cbcmac_stream_update
    - write_be
    - zero_pad
    - assert
    linkageType: ''
    returnType: void
    signature: "void add_aad(cf_cbcmac_stream *cm, uint8_t block[CF_MAXBLOCK],\n                    const
      uint8_t *header, size_t nheader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:72,1
    - Dst: write_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:73,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - cm
    - block
    - nblock
    - nonce
    - nnonce
    - L
    - nplain
    - nheader
    - ntag
    argTypes:
    - cf_cbcmac_stream*
    - uint8_t[]
    - size_t
    - uint8_t*
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: add_block0
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - cf_cbcmac_stream_update
    - memcpy
    - write_be
    linkageType: ''
    returnType: void
    signature: "void add_block0(cf_cbcmac_stream *cm,\n                       uint8_t
      block[CF_MAXBLOCK], size_t nblock,\n                       const uint8_t *nonce,
      size_t nnonce,\n                       size_t L, size_t nplain,\n                       size_t
      nheader, size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:83,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctr_nonce
    - L
    - nonce
    - nnonce
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: build_ctr_nonce
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void build_ctr_nonce(uint8_t ctr_nonce[CF_MAXBLOCK],\n                            size_t
      L,\n                            const uint8_t *nonce, size_t nnonce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:96,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:97,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:98,1
    - Dst: cf_cbcmac_stream_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:101,1
    - Dst: add_block0
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:104,1
    - Dst: add_aad
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:110,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:113,1
    - Dst: zero_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:114,1
    - Dst: cf_cbcmac_stream_nopad_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:117,1
    - Dst: build_ctr_nonce
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:122,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:125,1
    - Dst: cf_ctr_custom_counter
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:126,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:129,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:130,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 12
    argNames:
    - prp
    - prpctx
    - plain
    - nplain
    - L
    - header
    - nheader
    - nonce
    - nnonce
    - cipher
    - tag
    - ntag
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ntag >= 4 && ntag <= 16 && ntag % 2 == 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    - condition: (L >= 2 && L <= 8)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    - condition: (nnonce == prp->blocksz - L - 1)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    constantsTouched: []
    func_position:
      end: 134
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 134
    functionName: cf_ccm_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - build_ctr_nonce
    - cf_cbcmac_stream_init
    - cf_cbcmac_stream_nopad_final
    - add_aad
    - memcpy
    - cf_ctr_init
    - cf_ctr_custom_counter
    - add_block0
    - cf_cbcmac_stream_update
    - zero_pad
    - assert
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: "void cf_ccm_encrypt(const cf_prp *prp, void *prpctx,\n                    const
      uint8_t *plain, size_t nplain, size_t L,\n                    const uint8_t
      *header, size_t nheader,\n                    const uint8_t *nonce, size_t nnonce,\n
      \                   uint8_t *cipher,\n                    uint8_t *tag, size_t
      ntag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:145,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:146,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:147,1
    - Dst: build_ctr_nonce
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:150,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:153,1
    - Dst: cf_ctr_custom_counter
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:154,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:158,1
    - Dst: cf_ctr_discard_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:159,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:162,1
    - Dst: cf_cbcmac_stream_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:165,1
    - Dst: add_block0
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:168,1
    - Dst: add_aad
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:173,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:175,1
    - Dst: zero_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:176,1
    - Dst: cf_cbcmac_stream_nopad_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:179,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:183,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:186,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:189,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ccm.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 12
    argNames:
    - prp
    - prpctx
    - cipher
    - ncipher
    - L
    - header
    - nheader
    - nonce
    - nnonce
    - tag
    - ntag
    - plain
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts:
    - condition: (ntag >= 4 && ntag <= 16 && ntag % 2 == 0)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    - condition: (nnonce == prp->blocksz - L - 1)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    - condition: (L >= 2 && L <= 8)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    constantsTouched: []
    func_position:
      end: 192
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 192
    functionName: cf_ccm_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
    functionUses: 0
    functionsReached:
    - build_ctr_nonce
    - cf_ctr_discard_block
    - cf_cbcmac_stream_init
    - cf_cbcmac_stream_nopad_final
    - mem_clean
    - mem_eq
    - add_aad
    - cf_ctr_init
    - cf_ctr_custom_counter
    - add_block0
    - cf_cbcmac_stream_update
    - zero_pad
    - assert
    - cf_ctr_cipher
    linkageType: ''
    returnType: int
    signature: "int cf_ccm_decrypt(const cf_prp *prp, void *prpctx,\n                   const
      uint8_t *cipher, size_t ncipher, size_t L,\n                   const uint8_t
      *header, size_t nheader,\n                   const uint8_t *nonce, size_t nnonce,\n
      \                  const uint8_t *tag, size_t ntag,\n                   uint8_t
      *plain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:31,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:32,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:33,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:34,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:35,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:36,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:38,1
    - Dst: cf_chacha20poly1305_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:44,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:49,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:49,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:50,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:50,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:53,1
    - Dst: cf_chacha20poly1305_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:53,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:57,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:57,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:62,1
    - Dst: cf_chacha20poly1305_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - keystr
    - noncestr
    - headerstr
    - plainstr
    - cipherstr
    - tagstr
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (cipherlen == plainlen)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
    constantsTouched: []
    func_position:
      end: 66
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 66
    functionName: vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
    functionUses: 3
    functionsReached:
    - memcmp
    - TEST_CHECK
    - unhex
    - cf_chacha20poly1305_encrypt
    - cf_chacha20poly1305_decrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void vector(const char *keystr,\n                   const char *noncestr,\n
      \                  const char *headerstr,\n                   const char *plainstr,\n
      \                  const char *cipherstr,\n                   const char *tagstr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:71,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: test_vectors
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
    functionUses: 0
    functionsReached:
    - vector
    linkageType: ''
    returnType: void
    signature: void test_vectors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - partial
    - npartial
    - nblock
    - inp
    - nbytes
    - process
    - ctx
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - void*
    - size_t
    - cf_blockwise_in_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: cf_blockwise_accumulate
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    functionUses: 3
    functionsReached:
    - cf_blockwise_accumulate_final
    linkageType: ''
    returnType: void
    signature: "void cf_blockwise_accumulate(uint8_t *partial, size_t *npartial, size_t
      nblock,\n                             const void *inp, size_t nbytes,\n                             cf_blockwise_in_fn
      process,\n                             void *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:39,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:40,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:41,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:47,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:49,1
    - Dst: process_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:59,1
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:61,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:72,1
    - Dst: process_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:75,1
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:77,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:86,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:88,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 8
    argNames:
    - partial
    - npartial
    - nblock
    - inp
    - nbytes
    - process
    - process_final
    - ctx
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - void*
    - size_t
    - cf_blockwise_in_fn
    - cf_blockwise_in_fn
    - void*
    assertStmts:
    - condition: (partial && *npartial < nblock)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (inp || !nbytes)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (process && ctx)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (*npartial == 0)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (*npartial < nblock)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    constantsTouched: []
    func_position:
      end: 98
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 98
    functionName: cf_blockwise_accumulate_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    functionUses: 2
    functionsReached:
    - process_final
    - process
    - memcpy
    - MIN
    - assert
    linkageType: ''
    returnType: void
    signature: "void cf_blockwise_accumulate_final(uint8_t *partial, size_t *npartial,
      size_t nblock,\n                                   const void *inp, size_t nbytes,\n
      \                                  cf_blockwise_in_fn process,\n                                   cf_blockwise_in_fn
      process_final,\n                                   void *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:107,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:108,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:109,1
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:116,1
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:121,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 8
    argNames:
    - partial
    - npartial
    - nblock
    - inp
    - outp
    - nbytes
    - process
    - ctx
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - void*
    - void*
    - size_t
    - cf_blockwise_out_fn
    - void*
    assertStmts:
    - condition: (partial && *npartial < nblock)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (process && ctx)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    - condition: (inp || !nbytes)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: cf_blockwise_xor
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    functionUses: 1
    functionsReached:
    - MIN
    - xor_bb
    - assert
    - process
    linkageType: ''
    returnType: void
    signature: "void cf_blockwise_xor(uint8_t *partial, size_t *npartial, size_t nblock,\n
      \                     const void *inp, void *outp, size_t nbytes,\n                      cf_blockwise_out_fn
      process, void *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:142,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:145,1
    - Dst: process
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - partial
    - npartial
    - nblock
    - byte
    - nbytes
    - process
    - ctx
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - uint8_t
    - size_t
    - cf_blockwise_in_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 160
    functionName: cf_blockwise_acc_byte
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    functionUses: 0
    functionsReached:
    - MIN
    - memset
    - process
    linkageType: ''
    returnType: void
    signature: "void cf_blockwise_acc_byte(uint8_t *partial, size_t *npartial,\n                           size_t
      nblock,\n                           uint8_t byte, size_t nbytes,\n                           cf_blockwise_in_fn
      process,\n                           void *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:174,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:177,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:178,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:181,1
    - Dst: cf_blockwise_acc_byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:187,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:188,1
    - Dst: cf_blockwise_acc_byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 9
    argNames:
    - partial
    - npartial
    - nblock
    - fbyte
    - mbyte
    - lbyte
    - nbytes
    - process
    - ctx
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - uint8_t
    - uint8_t
    - uint8_t
    - size_t
    - cf_blockwise_in_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 195
    functionName: cf_blockwise_acc_pad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
    functionUses: 2
    functionsReached:
    - cf_blockwise_accumulate
    - cf_blockwise_acc_byte
    linkageType: ''
    returnType: void
    signature: "void cf_blockwise_acc_pad(uint8_t *partial, size_t *npartial,\n                          size_t
      nblock,\n                          uint8_t fbyte, uint8_t mbyte, uint8_t lbyte,\n
      \                         size_t nbytes,\n                          cf_blockwise_in_fn
      process,\n                          void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:27,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - r
    - s
    argTypes:
    - cf_poly1305*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: cf_poly1305_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void cf_poly1305_init(cf_poly1305 *ctx,\n                      const
      uint8_t r[16],\n                      const uint8_t s[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - x
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: poly1305_add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void poly1305_add(uint32_t h[17],\n                         const
      uint32_t x[17])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: poly1305_min_reduce
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly1305_min_reduce(uint32_t x[17])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:109,1
    - Dst: mask_u32
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: poly1305_full_reduce
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached:
    - mask_u32
    - poly1305_add
    linkageType: ''
    returnType: void
    signature: void poly1305_full_reduce(uint32_t x[17])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_min_reduce
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: poly1305_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_min_reduce
    linkageType: ''
    returnType: void
    signature: "void poly1305_mul(uint32_t x[17],\n                         const
      uint32_t y[17])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:160,1
    - Dst: poly1305_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - cf_poly1305*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: poly1305_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_mul
    - poly1305_add
    linkageType: ''
    returnType: void
    signature: "void poly1305_block(cf_poly1305 *ctx,\n                           const
      uint32_t c[17])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vctx
    - buf
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: poly1305_whole_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_block
    linkageType: ''
    returnType: void
    signature: "void poly1305_whole_block(void *vctx,\n                                 const
      uint8_t *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_poly1305*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: poly1305_last_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_block
    linkageType: ''
    returnType: void
    signature: void poly1305_last_block(cf_poly1305 *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - buf
    - nbytes
    argTypes:
    - cf_poly1305*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: cf_poly1305_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 1
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: "void cf_poly1305_update(cf_poly1305 *ctx,\n                        const
      uint8_t *buf,\n                        size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_last_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:205,1
    - Dst: poly1305_full_reduce
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:213,1
    - Dst: poly1305_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:214,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - cf_poly1305*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: cf_poly1305_finish
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
    functionUses: 1
    functionsReached:
    - poly1305_last_block
    - mem_clean
    - poly1305_full_reduce
    - poly1305_add
    linkageType: ''
    returnType: void
    signature: "void cf_poly1305_finish(cf_poly1305 *ctx,\n                        uint8_t
      out[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:26,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:27,1
    - Dst: cf_norx32_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:34,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:42,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:43,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:45,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:45,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:46,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:46,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:49,1
    - Dst: cf_norx32_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:50,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:57,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:57,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:60,1
    - Dst: cf_norx32_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 66
    functionName: test_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_CHECK
    - cf_norx32_decrypt
    - unhex
    - cf_norx32_encrypt
    linkageType: ''
    returnType: void
    signature: void test_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILL
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:80,1
    - Dst: FILL
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:81,1
    - Dst: FILL
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:82,1
    - Dst: FILL
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:83,1
    - Dst: cf_norx32_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:91,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:97,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:97,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:99,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:99,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:103,1
    - Dst: cf_norx32_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:103,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:109,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 111
    functionName: test_kat
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c
    functionUses: 0
    functionsReached:
    - memcmp
    - FILL
    - TEST_CHECK
    - cf_norx32_decrypt
    - cf_norx32_encrypt
    linkageType: ''
    returnType: void
    signature: void test_kat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arr
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: FILL
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL(arr, c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: unhex_chr
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t unhex_chr(char a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:37,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:37,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:38,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:38,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:42,1
    - Dst: unhex_chr
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:43,1
    - Dst: unhex_chr
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - len
    - str
    argTypes:
    - uint8_t*
    - size_t
    - char*
    assertStmts:
    - condition: (strlen(str) % 2 == 0)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    - condition: (len)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    - condition: (strlen(str) / 2 <= len)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: unhex
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    functionUses: 17
    functionsReached:
    - unhex_chr
    - assert
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t unhex(uint8_t *buf, size_t len, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:55,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:57,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/testutil.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - label
    - buf
    - len
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: dump
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
    functionUses: 19
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump(const char *label, const uint8_t *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:27,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:28,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:30,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:42,1
    - Dst: cf_hash
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:44,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:51,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:53,1
    - Dst: xor_b8
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:58,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:59,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:60,1
    - Dst: xor_b8
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:63,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:64,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:65,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:67,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - hash
    - key
    - nkey
    argTypes:
    - cf_hmac_ctx*
    - cf_chash*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    - condition: (hash->hashsz <= hash->blocksz)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    - condition: (hash)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    constantsTouched: []
    func_position:
      end: 69
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 69
    functionName: cf_hmac_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    functionUses: 3
    functionsReached:
    - xor_b8
    - cf_chash*::init
    - cf_chash*::update
    - cf_hash
    - mem_clean
    - memcpy
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: "void cf_hmac_init(cf_hmac_ctx *ctx,\n                  const cf_chash
      *hash,\n                  const uint8_t *key, size_t nkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:73,1
    - Dst: cf_hmac_ctx*::hash::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - ndata
    argTypes:
    - cf_hmac_ctx*
    - void*
    - size_t
    assertStmts:
    - condition: (ctx && ctx->hash)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: cf_hmac_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    functionUses: 3
    functionsReached:
    - assert
    - cf_hmac_ctx*::hash::update
    linkageType: ''
    returnType: void
    signature: void cf_hmac_update(cf_hmac_ctx *ctx, const void *data, size_t ndata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:80,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:81,1
    - Dst: cf_hmac_ctx*::hash::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:84,1
    - Dst: cf_hmac_ctx*::hash::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:86,1
    - Dst: cf_hmac_ctx*::hash::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:87,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - cf_hmac_ctx*
    - uint8_t*
    assertStmts:
    - condition: (ctx && ctx->hash)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    - condition: (out)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: cf_hmac_finish
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    functionUses: 3
    functionsReached:
    - cf_hmac_ctx*::hash::digest
    - mem_clean
    - assert
    - cf_hmac_ctx*::hash::update
    linkageType: ''
    returnType: void
    signature: void cf_hmac_finish(cf_hmac_ctx *ctx, uint8_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:99,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:100,1
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:102,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:103,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/hmac.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - key
    - nkey
    - msg
    - nmsg
    - out
    - hash
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - cf_chash*
    assertStmts:
    - condition: (out)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    - condition: (hash)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: cf_hmac
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
    functionUses: 0
    functionsReached:
    - cf_hmac_finish
    - cf_hmac_update
    - assert
    - cf_hmac_init
    linkageType: ''
    returnType: void
    signature: "void cf_hmac(const uint8_t *key, size_t nkey,\n             const
      uint8_t *msg, size_t nmsg,\n             uint8_t *out,\n             const cf_chash
      *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:24,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:26,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:28,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:30,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:34,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:37,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: test_sha3_224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha3_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:46,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:48,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:50,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:52,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:55,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: test_sha3_256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha3_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:64,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:66,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:68,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:70,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:73,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: test_sha3_384
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha3_384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:82,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:84,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:86,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:88,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:91,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: test_sha3_512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha3_512(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:32,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:37,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:42,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:43,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:44,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:45,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:45,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:51,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:54,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:59,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:60,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:61,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - hash
    - vmsg
    - nmsg
    - expect
    - nexpect
    argTypes:
    - cf_chash*
    - void*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 62
    functionName: vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 8
    functionsReached:
    - cf_chash*::digest
    - memcmp
    - cf_chash*::init
    - cf_chash*::update
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void vector(const cf_chash *hash,\n                   const void *vmsg,
      size_t nmsg,\n                   const char *expect, size_t nexpect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:77,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:78,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:79,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:81,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:81,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:86,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:87,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:88,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:89,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:89,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:94,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:95,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:96,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:97,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:97,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:104,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:105,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:106,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - hash
    - hi_there
    - jefe
    - aa_dd
    - counter_key
    argTypes:
    - cf_chash*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: hmac_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 1
    functionsReached:
    - cf_hmac
    - memcmp
    - TEST_CHECK
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void hmac_test(const cf_chash *hash,\n                             const
      void *hi_there,\n                             const void *jefe,\n                             const
      void *aa_dd,\n                             const void *counter_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:120,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:121,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:122,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:123,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:123,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:128,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:129,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:130,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:131,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - long_key
    - long_message
    argTypes:
    - cf_chash*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: hmac_test_sha2
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 0
    functionsReached:
    - cf_hmac
    - memcmp
    - TEST_CHECK
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void hmac_test_sha2(const cf_chash *hash,\n                                  const
      char *long_key,\n                                  const char *long_message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:146,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:147,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:148,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:149,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:149,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:154,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:155,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:156,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:157,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - long_key
    - long_message
    argTypes:
    - cf_chash*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: hmac_test_sha1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 1
    functionsReached:
    - cf_hmac
    - memcmp
    - TEST_CHECK
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void hmac_test_sha1(const cf_chash *hash,\n                                  const
      char *long_key,\n                                  const char *long_message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:170,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:171,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:172,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:173,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:174,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:175,1
    - Dst: final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:176,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:178,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:179,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - hash
    - vfinal_fn
    - expect
    - nexpect
    argTypes:
    - cf_chash*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: vector_abc_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 5
    functionsReached:
    - cf_chash*::digest
    - memcmp
    - cf_chash*::init
    - cf_chash*::update
    - TEST_CHECK
    - final
    linkageType: ''
    returnType: void
    signature: "void vector_abc_final(const cf_chash *hash, const void *vfinal_fn,\n
      \                            const void *expect, size_t nexpect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:190,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:194,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:199,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:202,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:204,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:207,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:209,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:210,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha.h:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - h
    - max
    - expect
    - nexpect
    argTypes:
    - cf_chash*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 211
    functionName: vector_length
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
    functionUses: 5
    functionsReached:
    - cf_chash*::digest
    - memcmp
    - cf_chash*::init
    - cf_chash*::update
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void vector_length(const cf_chash *h,\n                                 size_t
      max,\n                                 const void *expect, size_t nexpect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:28,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:29,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:30,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:31,1
    - Dst: cf_poly1305_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:34,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:35,1
    - Dst: cf_poly1305_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:36,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:38,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - rstr
    - sstr
    - msgstr
    - tagstr
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: check
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c
    functionUses: 29
    functionsReached:
    - cf_poly1305_update
    - memcmp
    - TEST_CHECK
    - cf_poly1305_finish
    - unhex
    - cf_poly1305_init
    linkageType: ''
    returnType: void
    signature: "void check(const char *rstr, const char *sstr,\n                  const
      char *msgstr, const char *tagstr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:43,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:48,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:53,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:58,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:63,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:69,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:73,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:77,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:81,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:85,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:89,1
    - Dst: check
      Src: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 97
    functionName: test_poly1305
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c
    functionUses: 0
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void test_poly1305(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:59,1
    - Dst: cf_prp*::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:63,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:64,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:67,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:70,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:73,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:76,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:80,1
    - Dst: cf_prp*::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:86,1
    - Dst: copy_bytes_unaligned
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:94,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:95,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - o
    - prp
    - prpctx
    - nonce
    - nnonce
    - ntag
    argTypes:
    - ocb*
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (o->prp->blocksz == BLOCK)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    - condition: (nnonce > 0 && nnonce < BLOCK)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: ocb_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - copy_bytes_unaligned
    - cf_gf128_frombytes_be
    - memcpy
    - cf_gf128_double
    - memset
    - cf_prp*::encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void ocb_init(ocb *o, const cf_prp *prp, void *prpctx,\n                     const
      uint8_t *nonce, size_t nnonce,\n                     size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - output
    argTypes:
    - ocb*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ocb_start_cipher
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ocb_start_cipher(ocb *o, uint8_t *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:110,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:116,1
    - Dst: cf_gf128_double
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:121,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:122,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - o
    - n
    - out
    argTypes:
    - ocb*
    - uint32_t
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: ocb_add_Ln
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_gf128_double
    - cf_gf128_add
    linkageType: ''
    returnType: void
    signature: void ocb_add_Ln(ocb *o, uint32_t n, cf_gf128 out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:130,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ocb_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: ocb_hash_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ocb_hash_init(ocb_hash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:139,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:142,1
    - Dst: ocb*::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:143,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:146,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - o
    - block
    - sum
    - offset
    argTypes:
    - ocb*
    - uint8_t*
    - cf_gf128
    - cf_gf128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: ocb_hash_sum
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_gf128_add
    - xor_bb
    - cf_gf128_frombytes_be
    - ocb*::prp::encrypt
    - cf_gf128_tobytes_be
    linkageType: ''
    returnType: void
    signature: "void ocb_hash_sum(ocb *o, const uint8_t *block,\n                         cf_gf128
      sum, const cf_gf128 offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_add_Ln
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:155,1
    - Dst: count_trailing_zeroes
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:155,1
    - Dst: ocb_hash_sum
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: ocb_hash_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - ocb_hash_sum
    - ocb_add_Ln
    - count_trailing_zeroes
    linkageType: ''
    returnType: void
    signature: void ocb_hash_block(void *vctx, const uint8_t *block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ocb_hash_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:167,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:172,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:181,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:184,1
    - Dst: ocb_hash_sum
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:188,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:191,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - o
    - header
    - nheader
    - out
    argTypes:
    - ocb*
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: ocb_process_header
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    - cf_gf128_add
    - mem_clean
    - ocb_hash_sum
    - ocb_hash_init
    - memset
    - cf_gf128_tobytes_be
    linkageType: ''
    returnType: void
    signature: "void ocb_process_header(ocb *o, const uint8_t *header, size_t nheader,\n
      \                              uint8_t out[BLOCK])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_add_Ln
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:200,1
    - Dst: count_trailing_zeroes
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:200,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:204,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:207,1
    - Dst: ocb*::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:208,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:209,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:214,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 218
    functionName: ocb_encrypt_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_gf128_add
    - xor_bb
    - cf_gf128_frombytes_be
    - ocb_add_Ln
    - ocb*::prp::encrypt
    - cf_gf128_tobytes_be
    - count_trailing_zeroes
    linkageType: ''
    returnType: void
    signature: void ocb_encrypt_block(void *vctx, const uint8_t *block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ocb_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:228,1
    - Dst: ocb_start_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:236,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:237,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:252,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:256,1
    - Dst: ocb::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:257,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:260,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:261,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:264,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:268,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:269,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:270,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:280,1
    - Dst: ocb::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:283,1
    - Dst: ocb_process_header
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:287,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:290,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:293,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 11
    argNames:
    - prp
    - prpctx
    - plain
    - nplain
    - header
    - nheader
    - nonce
    - nnonce
    - cipher
    - tag
    - ntag
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 296
    functionName: cf_ocb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    - ocb_init
    - cf_gf128_add
    - ocb_process_header
    - ocb::prp::encrypt
    - xor_bb
    - cf_gf128_frombytes_be
    - mem_clean
    - memcpy
    - ocb_start_cipher
    - memset
    - cf_gf128_tobytes_be
    linkageType: ''
    returnType: void
    signature: "void cf_ocb_encrypt(const cf_prp *prp, void *prpctx,\n                    const
      uint8_t *plain, size_t nplain,\n                    const uint8_t *header, size_t
      nheader,\n                    const uint8_t *nonce, size_t nnonce,\n                    uint8_t
      *cipher, /* the same size as nplain */\n                    uint8_t *tag, size_t
      ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_add_Ln
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:303,1
    - Dst: count_trailing_zeroes
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:303,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:307,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:310,1
    - Dst: ocb*::prp::decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:311,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:312,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:316,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: ocb_decrypt_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_gf128_add
    - xor_bb
    - cf_gf128_frombytes_be
    - ocb_add_Ln
    - cf_gf128_tobytes_be
    - ocb*::prp::decrypt
    - count_trailing_zeroes
    linkageType: ''
    returnType: void
    signature: void ocb_decrypt_block(void *vctx, const uint8_t *block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocb_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:331,1
    - Dst: ocb_start_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:337,1
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:338,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:347,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:351,1
    - Dst: ocb::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:352,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:355,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:356,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:358,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:361,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:365,1
    - Dst: cf_gf128_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:366,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:367,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:377,1
    - Dst: ocb::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:380,1
    - Dst: ocb_process_header
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:384,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:387,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:392,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:397,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:400,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:401,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/ocb.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 11
    argNames:
    - prp
    - prpctx
    - cipher
    - ncipher
    - header
    - nheader
    - nonce
    - nnonce
    - tag
    - ntag
    - plain
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 404
    functionName: cf_ocb_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    - ocb_init
    - cf_gf128_add
    - ocb_process_header
    - ocb::prp::encrypt
    - xor_bb
    - cf_gf128_frombytes_be
    - mem_clean
    - mem_eq
    - memcpy
    - ocb_start_cipher
    - memset
    - cf_gf128_tobytes_be
    linkageType: ''
    returnType: int
    signature: "int cf_ocb_decrypt(const cf_prp *prp, void *prpctx,\n                   const
      uint8_t *cipher, size_t ncipher,\n                   const uint8_t *header,
      size_t nheader,\n                   const uint8_t *nonce, size_t nnonce,\n                   const
      uint8_t *tag, size_t ntag,\n                   uint8_t *plain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:29,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:30,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:31,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:33,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:37,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: test_sha224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_test
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:44,1
    - Dst: hmac_test_sha2
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: test_hmac_sha224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - hmac_test
    - hmac_test_sha2
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:57,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:58,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:59,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:61,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:64,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: test_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_test
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:71,1
    - Dst: hmac_test_sha2
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: test_hmac_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - hmac_test
    - hmac_test_sha2
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:84,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:85,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:86,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:88,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:91,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: test_sha384
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_test
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:98,1
    - Dst: hmac_test_sha2
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: test_hmac_sha384
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - hmac_test
    - hmac_test_sha2
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:111,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:112,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:113,1
    - Dst: vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:115,1
    - Dst: vector_abc_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:118,1
    - Dst: vector_length
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: test_sha512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - vector
    - vector_length
    - vector_abc_final
    linkageType: ''
    returnType: void
    signature: void test_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_test
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:125,1
    - Dst: hmac_test_sha2
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: test_hmac_sha512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - hmac_test
    - hmac_test_sha2
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:140,1
    - Dst: cf_sha256_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:143,1
    - Dst: cf_sha256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:144,1
    - Dst: unhex
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:147,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:148,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: test_sha256_long
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_CHECK
    - cf_sha256_digest_final
    - unhex
    - cf_sha256_update
    - cf_sha256_init
    linkageType: ''
    returnType: void
    signature: void test_sha256_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_pbkdf2_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:159,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:165,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - pw
    - npw
    - salt
    - nsalt
    - iters
    - expect
    - nexpect
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: check_pkbdf2_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - cf_pbkdf2_hmac
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void check_pkbdf2_sha256(const void *pw, size_t npw,\n                                const
      void *salt, size_t nsalt,\n                                uint32_t iters,\n
      \                               const void *expect, size_t nexpect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:170,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:175,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:180,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:185,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:190,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:195,1
    - Dst: check_pkbdf2_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 204
    functionName: test_pbkdf2_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
    functionUses: 0
    functionsReached:
    - check_pkbdf2_sha256
    linkageType: ''
    returnType: void
    signature: void test_pbkdf2_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:41,1
    - Dst: cf_cbc_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:44,1
    - Dst: cf_cbc_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:45,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:46,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:46,1
    - Dst: cf_cbc_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:49,1
    - Dst: cf_cbc_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:50,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:51,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: test_cbc
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - memcmp
    - cf_cbc_encrypt
    - cf_cbc_init
    - TEST_CHECK
    - cf_cbc_decrypt
    linkageType: ''
    returnType: void
    signature: void test_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:61,1
    - Dst: cf_cbcmac_stream_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:64,1
    - Dst: cf_cbcmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:65,1
    - Dst: cf_cbcmac_stream_pad_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:66,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:68,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:69,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - tag_expect
    - ntag
    - key
    - nkey
    - msg
    - nmsg
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: cbcmac_vector
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_cbcmac_stream_init
    - cf_cbcmac_stream_pad_final
    - memcmp
    - TEST_CHECK
    - cf_cbcmac_stream_update
    linkageType: ''
    returnType: void
    signature: "void cbcmac_vector(const void *tag_expect, size_t ntag,\n                          const
      void *key, size_t nkey,\n                          const void *msg, size_t nmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:74,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:75,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:76,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:77,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:78,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:79,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:80,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:81,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:82,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:83,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:84,1
    - Dst: cbcmac_vector
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: test_cbcmac
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cbcmac_vector
    linkageType: ''
    returnType: void
    signature: void test_cbcmac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:98,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:101,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:102,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:103,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:103,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:105,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:106,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:107,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:108,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:110,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:111,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:112,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:113,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:113,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:116,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:117,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:118,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:118,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:122,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:123,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:124,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:129,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:136,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:140,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 141
    functionName: test_ctr
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 2
    functionsReached:
    - cf_aes_init
    - memcmp
    - TEST_CHECK
    - cf_ctr_init
    - memset
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: void test_ctr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:153,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:154,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:157,1
    - Dst: cf_eax_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:159,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:166,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:166,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:167,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:167,1
    - Dst: cf_eax_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:171,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:177,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:178,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:178,1
    - Dst: cf_eax_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:181,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 11
    argNames:
    - key
    - nkey
    - msg
    - nmsg
    - nonce
    - nnonce
    - header
    - nheader
    - expect_cipher
    - expect_tag
    - ntag
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (nmsg <= sizeof cipher)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    - condition: (ntag <= ntag)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    constantsTouched: []
    func_position:
      end: 188
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 188
    functionName: check_eax
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - memcmp
    - TEST_CHECK
    - cf_eax_encrypt
    - cf_eax_decrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_eax(const void *key, size_t nkey,\n                      const
      void *msg, size_t nmsg,\n                      const void *nonce, size_t nnonce,\n
      \                     const void *header, size_t nheader,\n                      const
      void *expect_cipher,\n                      const void *expect_tag, size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:193,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:200,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:207,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:214,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:221,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:228,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:235,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:242,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:249,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:256,1
    - Dst: check_eax
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 271
    functionName: test_eax
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_eax
    linkageType: ''
    returnType: void
    signature: void test_eax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:279,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:282,1
    - Dst: cf_cmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:285,1
    - Dst: cf_cmac_sign
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:286,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:288,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - key
    - nkey
    - msg
    - nmsg
    - wanttag
    - ntag
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: check_cmac
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - memcmp
    - TEST_CHECK
    - cf_cmac_init
    - cf_cmac_sign
    linkageType: ''
    returnType: void
    signature: "void check_cmac(const void *key, size_t nkey,\n                       const
      void *msg, size_t nmsg,\n                       const void *wanttag, size_t
      ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:294,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:297,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:300,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:303,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:307,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:310,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:313,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:316,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:320,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:323,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:326,1
    - Dst: check_cmac
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 332
    functionName: test_cmac
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_cmac
    linkageType: ''
    returnType: void
    signature: void test_cmac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:343,1
    - Dst: cf_gf128_frombytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:344,1
    - Dst: cf_gf128_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:345,1
    - Dst: cf_gf128_tobytes_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:346,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:347,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: test_gf128_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TEST_CHECK
    - cf_gf128_mul
    - cf_gf128_frombytes_be
    - cf_gf128_tobytes_be
    linkageType: ''
    returnType: void
    signature: void test_gf128_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:361,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:364,1
    - Dst: cf_gcm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:366,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:373,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:373,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:374,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:374,1
    - Dst: cf_gcm_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:376,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:382,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:383,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:383,1
    - Dst: cf_gcm_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:386,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 12
    argNames:
    - key
    - nkey
    - plain
    - nplain
    - aad
    - naad
    - iv
    - niv
    - cipher_expect
    - ncipher
    - tag_expect
    - ntag
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (ncipher == nplain)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 8
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: check_gcm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_gcm_decrypt
    - memcmp
    - cf_gcm_encrypt
    - TEST_CHECK
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_gcm(const void *key, size_t nkey,\n                      const
      void *plain, size_t nplain,\n                      const void *aad, size_t naad,\n
      \                     const void *iv, size_t niv,\n                      const
      void *cipher_expect, size_t ncipher,\n                      const void *tag_expect,
      size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:397,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:403,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:409,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:421,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:434,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:447,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:464,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:480,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:486,1
    - Dst: check_gcm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 395
    functionDepth: 9
    functionLinenumber: 395
    functionLinenumberEnd: 505
    functionName: test_gcm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_gcm
    linkageType: ''
    returnType: void
    signature: void test_gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:516,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:519,1
    - Dst: cf_ccm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:521,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:528,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:528,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:529,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:529,1
    - Dst: cf_ccm_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:532,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:538,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:539,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:539,1
    - Dst: cf_ccm_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:543,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 12
    argNames:
    - key
    - nkey
    - header
    - nheader
    - plain
    - nplain
    - nonce
    - nnonce
    - expect_cipher
    - ncipher
    - expect_tag
    - ntag
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (ncipher == nplain)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    constantsTouched: []
    func_position:
      end: 550
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 550
    functionName: check_ccm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - memcmp
    - TEST_CHECK
    - cf_ccm_decrypt
    - cf_ccm_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_ccm(const void *key, size_t nkey,\n                      const
      void *header, size_t nheader,\n                      const void *plain, size_t
      nplain,\n                      const void *nonce, size_t nnonce,\n                      const
      void *expect_cipher, size_t ncipher,\n                      const void *expect_tag,
      size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - len
    - b
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: fill
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill(uint8_t *buf, size_t len, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:568,1
    - Dst: fill
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:569,1
    - Dst: fill
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:570,1
    - Dst: fill
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:571,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:577,1
    - Dst: cf_ccm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:579,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:586,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:586,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:587,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 588
    functionName: test_ccm_long
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - fill
    - memcmp
    - TEST_CHECK
    - cf_ccm_encrypt
    linkageType: ''
    returnType: void
    signature: void test_ccm_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ccm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:593,1
    - Dst: check_ccm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:600,1
    - Dst: check_ccm
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 613
    functionName: test_ccm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_ccm
    linkageType: ''
    returnType: void
    signature: void test_ccm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:624,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:625,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:626,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:629,1
    - Dst: cf_ocb_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:631,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:638,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:638,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:639,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:639,1
    - Dst: cf_ocb_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:643,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:649,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:650,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:650,1
    - Dst: cf_ocb_decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:654,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 12
    argNames:
    - key
    - nkey
    - header
    - nheader
    - plain
    - nplain
    - nonce
    - nnonce
    - expect_cipher
    - ncipher
    - expect_tag
    - ntag
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (ncipher == nplain)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    - condition: (ntag <= sizeof tag)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    - condition: (ncipher <= sizeof cipher)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    constantsTouched: []
    func_position:
      end: 661
      start: 615
    functionDepth: 5
    functionLinenumber: 615
    functionLinenumberEnd: 661
    functionName: check_ocb
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_ocb_decrypt
    - cf_aes_init
    - memcmp
    - TEST_CHECK
    - cf_ocb_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_ocb(const void *key, size_t nkey,\n                      const
      void *header, size_t nheader,\n                      const void *plain, size_t
      nplain,\n                      const void *nonce, size_t nnonce,\n                      const
      void *expect_cipher, size_t ncipher,\n                      const void *expect_tag,
      size_t ntag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:665,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:672,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:679,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:686,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:693,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:700,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:707,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:714,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:721,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:728,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:735,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:742,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:749,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:756,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:763,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:770,1
    - Dst: check_ocb
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 663
    functionDepth: 6
    functionLinenumber: 663
    functionLinenumberEnd: 783
    functionName: test_ocb
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_ocb
    linkageType: ''
    returnType: void
    signature: void test_ocb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:794,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:798,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:803,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:804,1
    - Dst: cf_ocb_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:808,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:818,1
    - Dst: cf_ocb_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:821,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:831,1
    - Dst: cf_ocb_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:834,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:845,1
    - Dst: cf_ocb_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:849,1
    - Dst: TEST_CHECK
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:856,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - nkey
    - expect_tag
    - ntag
    argTypes:
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 786
    functionDepth: 5
    functionLinenumber: 786
    functionLinenumberEnd: 857
    functionName: check_ocb_long
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - write32_be
    - memcmp
    - TEST_CHECK
    - cf_ocb_encrypt
    - memset
    linkageType: ''
    returnType: void
    signature: void check_ocb_long(size_t nkey, const void *expect_tag, size_t ntag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:861,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:862,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:863,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:864,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:865,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:866,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:867,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:868,1
    - Dst: check_ocb_long
      Src: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 859
    functionDepth: 6
    functionLinenumber: 859
    functionLinenumberEnd: 870
    functionName: test_ocb_long
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
    functionUses: 0
    functionsReached:
    - check_ocb_long
    linkageType: ''
    returnType: void
    signature: void test_ocb_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha1_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: cf_sha1_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_sha1_init(cf_sha1_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:58,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:62,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:83,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - vctx
    - inp
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 98
    functionName: sha1_update_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    functionUses: 0
    functionsReached:
    - rotl32
    - read32_be
    linkageType: ''
    returnType: void
    signature: void sha1_update_block(void *vctx, const uint8_t *inp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha1_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: cf_sha1_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void cf_sha1_update(cf_sha1_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha1_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha1_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: cf_sha1_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    functionUses: 0
    functionsReached:
    - cf_sha1_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha1_digest(const cf_sha1_context *ctx, uint8_t hash[CF_SHA1_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_acc_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:122,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:128,1
    - Dst: cf_sha1_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:129,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:132,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:134,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:135,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:136,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:137,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:138,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha1.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha1_context*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->npartial == 0)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: cf_sha1_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
    functionUses: 1
    functionsReached:
    - memset
    - cf_blockwise_acc_pad
    - write32_be
    - assert
    - cf_sha1_update
    - write64_be
    linkageType: ''
    returnType: void
    signature: void cf_sha1_digest_final(cf_sha1_context *ctx, uint8_t hash[CF_SHA1_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - output
    - in
    argTypes:
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fsum
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsum(limb *output, const limb *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - output
    - in
    argTypes:
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: fdifference
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fdifference(limb *output, const limb *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - output
    - in
    - scalar
    argTypes:
    - limb*
    - limb*
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: fscalar_product
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fscalar_product(limb *output, const limb *in, const limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - output
    - in2
    - in
    argTypes:
    - limb*
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 202
    functionName: fproduct
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fproduct(limb *output, const limb *in2, const limb *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - output
    argTypes:
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 240
    functionName: freduce_degree
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void freduce_degree(limb *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: div_by_2_26
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb div_by_2_26(const limb v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: div_by_2_25
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb div_by_2_25(const limb v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: div_by_2_26
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:287,1
    - Dst: div_by_2_25
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:301,1
    - Dst: div_by_2_26
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - output
    argTypes:
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 322
    functionName: freduce_coefficients
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - div_by_2_26
    - div_by_2_25
    linkageType: ''
    returnType: void
    signature: void freduce_coefficients(limb *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:333,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:335,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:336,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - output
    - in
    - in2
    argTypes:
    - limb*
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: fmul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - memcpy
    - freduce_coefficients
    - fproduct
    - freduce_degree
    linkageType: ''
    returnType: void
    signature: void fmul(limb *output, const limb *in, const limb *in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - output
    - in
    argTypes:
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 403
    functionName: fsquare_inner
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsquare_inner(limb *output, const limb *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsquare_inner
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:415,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:419,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:420,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - output
    - in
    argTypes:
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: fsquare
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - fsquare_inner
    - freduce_coefficients
    - memcpy
    - freduce_degree
    linkageType: ''
    returnType: void
    signature: void fsquare(limb *output, const limb *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:433,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:434,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:435,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:436,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:437,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:438,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:439,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:440,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:441,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - limb*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 444
    functionName: fexpand
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - F
    linkageType: ''
    returnType: void
    signature: void fexpand(limb *output, const u8 *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - start
    - ','
    - shift
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: F
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(n,start,shift,mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - s32
    - s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: s32_eq
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s32
    signature: s32 s32_eq(s32 a, s32 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - s32
    - s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: s32_gte
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s32
    signature: s32 s32_gte(s32 a, s32 b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: s32_gte
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:567,1
    - Dst: s32_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:570,1
    - Dst: s32_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:572,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:603,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:604,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:605,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:606,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:607,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:608,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:609,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:610,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:611,1
    - Dst: F
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:612,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 2
    argNames:
    - output
    - input_limbs
    argTypes:
    - u8*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 614
    functionName: fcontract
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - s32_gte
    - s32_eq
    - F
    linkageType: ''
    returnType: void
    signature: void fcontract(u8 *output, limb *input_limbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: F
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:635,1
    - Dst: fsum
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:636,1
    - Dst: fdifference
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:638,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:641,1
    - Dst: fsum
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:642,1
    - Dst: fdifference
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:644,1
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:646,1
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:650,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:652,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:653,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:655,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:656,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:658,1
    - Dst: fsum
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:659,1
    - Dst: fdifference
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:661,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:663,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:665,1
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:667,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:669,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:670,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:672,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:673,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:675,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:677,1
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:679,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:681,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:682,1
    - Dst: fdifference
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:684,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:686,1
    - Dst: fscalar_product
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:687,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:691,1
    - Dst: fsum
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:693,1
    - Dst: fproduct
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:695,1
    - Dst: freduce_degree
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:697,1
    - Dst: freduce_coefficients
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 9
    argNames:
    - x2
    - z2
    - x3
    - z3
    - x
    - z
    - xprime
    - zprime
    - qmqp
    argTypes:
    - limb*
    - limb*
    - limb*
    - limb*
    - limb*
    - limb*
    - limb*
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 700
    functionName: fmonty
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - memset
    - fscalar_product
    - fsquare
    - freduce_degree
    - memcpy
    - freduce_coefficients
    - fdifference
    - fproduct
    - fsum
    linkageType: ''
    returnType: void
    signature: "void fmonty(limb *x2, limb *z2,  /* output 2Q */\n                   limb
      *x3, limb *z3,  /* output Q + Q' */\n                   limb *x, limb *z,    /*
      input Q */\n                   limb *xprime, limb *zprime,  /* input Q' */\n
      \                  const limb *qmqp /* input Q - Q' */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - iswap
    argTypes:
    - limb[]
    - limb[]
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 721
    functionName: swap_conditional
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_conditional(limb a[19], limb b[19], limb iswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:737,1
    - Dst: swap_conditional
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:744,1
    - Dst: swap_conditional
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:745,1
    - Dst: fmonty
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:746,1
    - Dst: swap_conditional
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:751,1
    - Dst: swap_conditional
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:752,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:771,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - resultx
    - resultz
    - n
    - q
    argTypes:
    - limb*
    - limb*
    - u8*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 773
    functionName: cmult
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - fmonty
    - memcpy
    - swap_conditional
    linkageType: ''
    returnType: void
    signature: void cmult(limb *resultx, limb *resultz, const u8 *n, const limb *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:792,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:793,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:794,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:795,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:796,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:797,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:798,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:800,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:801,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:802,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:803,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:804,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:805,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:807,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:808,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:809,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:809,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:810,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:812,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:813,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:814,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:814,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:815,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:817,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:818,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:819,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:819,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:820,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:822,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:823,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:824,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:824,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:825,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:827,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:828,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:829,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:829,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:830,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:832,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:833,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:834,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:834,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:835,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:837,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:838,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:839,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:840,1
    - Dst: fsquare
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:841,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - limb*
    - limb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 843
    functionName: crecip
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 0
    functionsReached:
    - fsquare
    - fmul
    linkageType: ''
    returnType: void
    signature: void crecip(limb *out, const limb *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fexpand
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:856,1
    - Dst: cmult
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:857,1
    - Dst: crecip
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:858,1
    - Dst: fmul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:859,1
    - Dst: fcontract
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - u8[]
    - u8[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 845
    functionDepth: 5
    functionLinenumber: 845
    functionLinenumberEnd: 861
    functionName: cf_curve25519_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 2
    functionsReached:
    - fmul
    - fcontract
    - crecip
    - cmult
    - fexpand
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul(u8 out[32], const u8 scalar[32], const u8 point[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_curve25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - u8[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: cf_curve25519_mul_base
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
    functionUses: 1
    functionsReached:
    - cf_curve25519_mul
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul_base(u8 out[32], const u8 scalar[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:32,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:33,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:34,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:35,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:36,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:37,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:38,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:39,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:40,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:41,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:42,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:43,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:44,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:45,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:46,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:47,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:58,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:59,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:60,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:61,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:62,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:63,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:64,1
    - Dst: QUARTER
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:65,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:85,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:86,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:87,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:88,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:89,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:90,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:91,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:92,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:93,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:94,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:95,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:96,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:97,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:98,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:99,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 5
    argNames:
    - key0
    - key1
    - nonce
    - constant
    - out
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 101
    functionName: cf_chacha20_core
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 1
    functionsReached:
    - read32_le
    - write32_le
    - QUARTER
    linkageType: ''
    returnType: void
    signature: "void cf_chacha20_core(const uint8_t key0[16],\n                      const
      uint8_t key1[16],\n                      const uint8_t nonce[16],\n                      const
      uint8_t constant[16],\n                      uint8_t out[64])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: QUARTER
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARTER(a, b, c, d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:111,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:112,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:116,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:117,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - key
    - nkey
    argTypes:
    - cf_chacha20_ctx*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: set_key
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 0
    functionsReached:
    - memcpy
    - abort
    linkageType: ''
    returnType: void
    signature: void set_key(cf_chacha20_ctx *ctx, const uint8_t *key, size_t nkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:127,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:128,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - nkey
    - nonce
    argTypes:
    - cf_chacha20_ctx*
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: cf_chacha20_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    - set_key
    linkageType: ''
    returnType: void
    signature: void cf_chacha20_init(cf_chacha20_ctx *ctx, const uint8_t *key, size_t
      nkey, const uint8_t nonce[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:137,1
    - Dst: set_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:138,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - key
    - nkey
    - nonce
    - ncounter
    argTypes:
    - cf_chacha20_ctx*
    - uint8_t*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts:
    - condition: (ncounter > 0)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: cf_chacha20_init_custom
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    - set_key
    linkageType: ''
    returnType: void
    signature: "void cf_chacha20_init_custom(cf_chacha20_ctx *ctx, const uint8_t *key,
      size_t nkey,\n                             const uint8_t nonce[16], size_t ncounter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chacha20_core
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:147,1
    - Dst: incr_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - out
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: cf_chacha20_next_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_chacha20_core
    - incr_le
    linkageType: ''
    returnType: void
    signature: void cf_chacha20_next_block(void *vctx, uint8_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_xor
      Src: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - input
    - output
    - bytes
    argTypes:
    - cf_chacha20_ctx*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: cf_chacha20_cipher
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
    functionUses: 2
    functionsReached:
    - cf_blockwise_xor
    linkageType: ''
    returnType: void
    signature: void cf_chacha20_cipher(cf_chacha20_ctx *ctx, const uint8_t *input,
      uint8_t *output, size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/chash.c:22,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/src/chash.c:23,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/src/chash.c:24,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/chash.c:25,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/chash.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - h
    - m
    - nm
    - out
    argTypes:
    - cf_chash*
    - void*
    - size_t
    - uint8_t*
    assertStmts:
    - condition: (h)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.c
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: cf_hash
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/chash.c
    functionUses: 1
    functionsReached:
    - cf_chash*::digest
    - cf_chash*::init
    - cf_chash*::update
    - mem_clean
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_hash(const cf_chash *h, const void *m, size_t nm, uint8_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - prp
    - prpctx
    - iv
    argTypes:
    - cf_cbc*
    - cf_prp*
    - void*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: cf_cbc_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void cf_cbc_init(cf_cbc *ctx, const cf_prp *prp, void *prpctx, const
      uint8_t iv[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:38,1
    - Dst: cf_cbc*::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:39,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - input
    - output
    - blocks
    argTypes:
    - cf_cbc*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: cf_cbc_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 3
    functionsReached:
    - cf_cbc*::prp::encrypt
    - memcpy
    - xor_bb
    linkageType: ''
    returnType: void
    signature: void cf_cbc_encrypt(cf_cbc *ctx, const uint8_t *input, uint8_t *output,
      size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbc*::prp::decrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:53,1
    - Dst: xor_bb
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:54,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - input
    - output
    - blocks
    argTypes:
    - cf_cbc*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: cf_cbc_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 1
    functionsReached:
    - memcpy
    - cf_cbc*::prp::decrypt
    - xor_bb
    linkageType: ''
    returnType: void
    signature: void cf_cbc_decrypt(cf_cbc *ctx, const uint8_t *input, uint8_t *output,
      size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:64,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - prp
    - prpctx
    - nonce
    argTypes:
    - cf_ctr*
    - cf_prp*
    - void*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: cf_ctr_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 5
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_ctr_init(cf_ctr *ctx, const cf_prp *prp, void *prpctx, const
      uint8_t nonce[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - offset
    - width
    argTypes:
    - cf_ctr*
    - size_t
    - size_t
    assertStmts:
    - condition: (ctx->prp->blocksz <= offset + width)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: cf_ctr_custom_counter
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_ctr_custom_counter(cf_ctr *ctx, size_t offset, size_t width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ctr*::prp::encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:83,1
    - Dst: incr_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - out
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: ctr_next_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 0
    functionsReached:
    - incr_be
    - cf_ctr*::prp::encrypt
    linkageType: ''
    returnType: void
    signature: void ctr_next_block(void *vctx, uint8_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_xor
      Src: /src/h2o/deps/picotls/deps/cifra/src/modes.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - input
    - output
    - bytes
    argTypes:
    - cf_ctr*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: cf_ctr_cipher
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 6
    functionsReached:
    - cf_blockwise_xor
    linkageType: ''
    returnType: void
    signature: void cf_ctr_cipher(cf_ctr *ctx, const uint8_t *input, uint8_t *output,
      size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: cf_ctr_discard_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/modes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_ctr_discard_block(cf_ctr *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b0
    - b1
    - b2
    - b3
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: word4
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t word4(uint8_t b0, uint8_t b1, uint8_t b2, uint8_t b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - x
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: byte
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t byte(uint32_t w, unsigned x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: round_constant
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t round_constant(uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: rot_word
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - rotl32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rot_word(uint32_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: word4
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word4(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - w
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: byte
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: byte(w, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: round_constant
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_constant(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: rot_word
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot_word(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:91,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:92,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:93,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:94,1
    - Dst: select_u8x4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:96,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - w
    - sbox
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: sub_word
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - word4
    - select_u8x4
    - byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sub_word(uint32_t w, const uint8_t *sbox)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:117,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:134,1
    - Dst: rot_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:134,1
    - Dst: round_constant
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:134,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - key
    - nkey
    argTypes:
    - cf_aes_context*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 140
    functionName: aes_schedule
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - rot_word
    - round_constant
    - sub_word
    - read32_be
    linkageType: ''
    returnType: void
    signature: void aes_schedule(cf_aes_context *ctx, const uint8_t *key, size_t nkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:144,1
    - Dst: aes_schedule
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:151,1
    - Dst: aes_schedule
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:158,1
    - Dst: aes_schedule
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:165,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - key
    - nkey
    argTypes:
    - cf_aes_context*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 172
    functionName: cf_aes_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 12
    functionsReached:
    - memset
    - aes_schedule
    - abort
    linkageType: ''
    returnType: void
    signature: void cf_aes_init(cf_aes_context *ctx, const uint8_t *key, size_t nkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - state
    - rk
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: add_round_key
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_round_key(uint32_t state[4], const uint32_t rk[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:184,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:185,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:186,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: sub_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - sub_word
    linkageType: ''
    returnType: void
    signature: void sub_block(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:194,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:194,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:195,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:196,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:197,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:199,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:199,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:200,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:201,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:202,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:204,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:204,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:205,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:206,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:207,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:209,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:209,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:210,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:211,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: shift_rows
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - word4
    - byte
    linkageType: ''
    returnType: void
    signature: void shift_rows(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: gf_poly_mul2
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gf_poly_mul2(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_poly_mul2
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:229,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:230,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:230,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: mix_column
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - rotr32
    - gf_poly_mul2
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mix_column(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:235,1
    - Dst: mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:236,1
    - Dst: mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:237,1
    - Dst: mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: mix_columns
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - mix_column
    linkageType: ''
    returnType: void
    signature: void mix_columns(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:245,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:250,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:251,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:252,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:253,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:257,1
    - Dst: sub_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:263,1
    - Dst: shift_rows
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:264,1
    - Dst: mix_columns
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:265,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:266,1
    - Dst: sub_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:270,1
    - Dst: shift_rows
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:271,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:272,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:274,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:275,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:276,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - in
    - out
    argTypes:
    - cf_aes_context*
    - uint8_t[]
    - uint8_t[]
    assertStmts:
    - condition: "(ctx->rounds == AES128_ROUNDS ||\n         ctx->rounds == AES192_ROUNDS
        ||\n         ctx->rounds == AES256_ROUNDS)"
      pos:
        line_end: 246
        line_start: 244
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    constantsTouched: []
    func_position:
      end: 278
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 278
    functionName: cf_aes_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 1
    functionsReached:
    - add_round_key
    - sub_block
    - shift_rows
    - read32_be
    - write32_be
    - assert
    - mix_columns
    linkageType: ''
    returnType: void
    signature: "void cf_aes_encrypt(const cf_aes_context *ctx,\n                    const
      uint8_t in[AES_BLOCKSZ],\n                    uint8_t out[AES_BLOCKSZ])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:307,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:308,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:309,1
    - Dst: sub_word
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: inv_sub_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - sub_word
    linkageType: ''
    returnType: void
    signature: void inv_sub_block(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:317,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:317,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:318,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:319,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:320,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:322,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:322,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:323,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:324,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:325,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:327,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:327,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:328,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:329,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:330,1
    - Dst: word4
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:332,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:332,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:333,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:334,1
    - Dst: byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: inv_shift_rows
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - word4
    - byte
    linkageType: ''
    returnType: void
    signature: void inv_shift_rows(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_poly_mul2
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:345,1
    - Dst: gf_poly_mul2
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:346,1
    - Dst: gf_poly_mul2
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:347,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:351,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:351,1
    - Dst: rotr32
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: inv_mix_column
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - rotr32
    - gf_poly_mul2
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t inv_mix_column(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inv_mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:356,1
    - Dst: inv_mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:357,1
    - Dst: inv_mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:358,1
    - Dst: inv_mix_column
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: inv_mix_columns
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 0
    functionsReached:
    - inv_mix_column
    linkageType: ''
    returnType: void
    signature: void inv_mix_columns(uint32_t state[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:366,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:371,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:372,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:373,1
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:374,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:378,1
    - Dst: inv_shift_rows
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:384,1
    - Dst: inv_sub_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:385,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:386,1
    - Dst: inv_mix_columns
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:387,1
    - Dst: inv_shift_rows
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:391,1
    - Dst: inv_sub_block
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:392,1
    - Dst: add_round_key
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:393,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:395,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:396,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:397,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - in
    - out
    argTypes:
    - cf_aes_context*
    - uint8_t[]
    - uint8_t[]
    assertStmts:
    - condition: "(ctx->rounds == AES128_ROUNDS ||\n         ctx->rounds == AES192_ROUNDS
        ||\n         ctx->rounds == AES256_ROUNDS)"
      pos:
        line_end: 367
        line_start: 365
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    constantsTouched: []
    func_position:
      end: 399
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 399
    functionName: cf_aes_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 1
    functionsReached:
    - add_round_key
    - inv_mix_columns
    - inv_sub_block
    - read32_be
    - write32_be
    - inv_shift_rows
    - assert
    linkageType: ''
    returnType: void
    signature: "void cf_aes_decrypt(const cf_aes_context *ctx,\n                    const
      uint8_t in[AES_BLOCKSZ],\n                    uint8_t out[AES_BLOCKSZ])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - in
    - out
    argTypes:
    - cf_aes_context*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: cf_aes_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void cf_aes_decrypt(const cf_aes_context *ctx,\n                    const
      uint8_t in[AES_BLOCKSZ],\n                    uint8_t out[AES_BLOCKSZ])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/aes.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: cf_aes_finish
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/aes.c
    functionUses: 1
    functionsReached:
    - mem_clean
    linkageType: ''
    returnType: void
    signature: void cf_aes_finish(cf_aes_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:27,1
    - Dst: cf_cbcmac_stream_reset
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - prp
    - prpctx
    argTypes:
    - cf_cbcmac_stream*
    - cf_prp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: cf_cbcmac_stream_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 3
    functionsReached:
    - memset
    - cf_cbcmac_stream_reset
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_init(cf_cbcmac_stream *ctx, const cf_prp *prp,
      void *prpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbc_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:36,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_cbcmac_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: cf_cbcmac_stream_reset
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 1
    functionsReached:
    - mem_clean
    - cf_cbc_init
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_reset(cf_cbcmac_stream *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cbc_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vctx
    - block
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: cbcmac_process
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 0
    functionsReached:
    - cf_cbc_encrypt
    linkageType: ''
    returnType: void
    signature: void cbcmac_process(void *vctx, const uint8_t *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - cf_cbcmac_stream*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: cf_cbcmac_stream_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 5
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_update(cf_cbcmac_stream *ctx, const uint8_t *data,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:61,1
    - Dst: cbcmac_process
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_cbcmac_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: cf_cbcmac_stream_finish_block_zero
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 1
    functionsReached:
    - cbcmac_process
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_finish_block_zero(cf_cbcmac_stream *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:68,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - cf_cbcmac_stream*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->used == 0)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: cf_cbcmac_stream_nopad_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 2
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_nopad_final(cf_cbcmac_stream *ctx, uint8_t out[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_acc_byte
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:75,1
    - Dst: cf_cbcmac_stream_nopad_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - cf_cbcmac_stream*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: cf_cbcmac_stream_pad_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
    functionUses: 1
    functionsReached:
    - cf_cbcmac_stream_nopad_final
    - cf_blockwise_acc_byte
    linkageType: ''
    returnType: void
    signature: void cf_cbcmac_stream_pad_final(cf_cbcmac_stream *ctx, uint8_t out[CF_MAXBLOCK])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CH
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CH(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MAJ
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: BSIG0
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSIG0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: BSIG1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSIG1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: SSIG0
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSIG0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SSIG1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSIG1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha256_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: cf_sha256_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_sha256_init(cf_sha256_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha256_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: cf_sha224_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_sha224_init(cf_sha256_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:104,1
    - Dst: SSIG1
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:107,1
    - Dst: SSIG0
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:109,1
    - Dst: BSIG1
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:114,1
    - Dst: CH
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:114,1
    - Dst: BSIG0
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:115,1
    - Dst: MAJ
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - vctx
    - inp
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 136
    functionName: sha256_update_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - CH
    - SSIG1
    - SSIG0
    - BSIG0
    - BSIG1
    - read32_be
    - MAJ
    linkageType: ''
    returnType: void
    signature: void sha256_update_block(void *vctx, const uint8_t *inp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha256_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: cf_sha256_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 1
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void cf_sha256_update(cf_sha256_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha256_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: cf_sha224_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - cf_sha256_update
    linkageType: ''
    returnType: void
    signature: void cf_sha224_update(cf_sha256_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha256_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: cf_sha256_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - cf_sha256_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha256_digest(const cf_sha256_context *ctx, uint8_t hash[CF_SHA256_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_acc_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:179,1
    - Dst: write64_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:185,1
    - Dst: cf_sha256_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:186,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:189,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:191,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:192,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:193,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:194,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:195,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:196,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:197,1
    - Dst: write32_be
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:198,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha256_context*
    - uint8_t[]
    assertStmts:
    - condition: (ctx->npartial == 0)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: cf_sha256_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 2
    functionsReached:
    - memset
    - cf_blockwise_acc_pad
    - cf_sha256_update
    - write32_be
    - assert
    - write64_be
    linkageType: ''
    returnType: void
    signature: void cf_sha256_digest_final(cf_sha256_context *ctx, uint8_t hash[CF_SHA256_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_digest
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:206,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha256_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: cf_sha224_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_sha256_digest
    linkageType: ''
    returnType: void
    signature: void cf_sha224_digest(const cf_sha256_context *ctx, uint8_t hash[CF_SHA224_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:213,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha256.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha256_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: cf_sha224_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_sha256_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha224_digest_final(cf_sha256_context *ctx, uint8_t hash[CF_SHA224_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: set25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set25519(gf r, const gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: car25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void car25519(gf o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - q
    - b
    argTypes:
    - gf
    - gf
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: sel25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sel25519(gf p, gf q, int64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:77,1
    - Dst: car25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:78,1
    - Dst: car25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:79,1
    - Dst: car25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:80,1
    - Dst: sel25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - out
    - n
    argTypes:
    - uint8_t[]
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: pack25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached:
    - set25519
    - car25519
    - sel25519
    linkageType: ''
    returnType: void
    signature: void pack25519(uint8_t out[32], const gf n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - o
    - n
    argTypes:
    - gf
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: unpack25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unpack25519(gf o, const uint8_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - o
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add(gf o, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - o
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: sub
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sub(gf o, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: car25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:145,1
    - Dst: car25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - o
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 21
    functionsReached:
    - car25519
    linkageType: ''
    returnType: void
    signature: void mul(gf o, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - a
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: sqr
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: void
    signature: void sqr(gf o, const gf a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:163,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: inv25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 0
    functionsReached:
    - mul
    - sqr
    linkageType: ''
    returnType: void
    signature: void inv25519(gf o, const gf i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:186,1
    - Dst: sel25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:201,1
    - Dst: sel25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:202,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:203,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:204,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:205,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:206,1
    - Dst: sqr
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:207,1
    - Dst: sqr
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:208,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:209,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:210,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:211,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:212,1
    - Dst: sqr
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:213,1
    - Dst: sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:214,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:215,1
    - Dst: add
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:216,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:217,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:218,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:219,1
    - Dst: sqr
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:220,1
    - Dst: sel25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:221,1
    - Dst: sel25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:222,1
    - Dst: inv25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:226,1
    - Dst: mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:227,1
    - Dst: pack25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - q
    - n
    - p
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 229
    functionName: cf_curve25519_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 3
    functionsReached:
    - add
    - sqr
    - pack25519
    - mul
    - inv25519
    - sub
    - unpack25519
    - sel25519
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul(uint8_t *q, const uint8_t *n, const uint8_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_curve25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - q
    - n
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: cf_curve25519_mul_base
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
    functionUses: 1
    functionsReached:
    - cf_curve25519_mul
    linkageType: ''
    returnType: void
    signature: void cf_curve25519_mul_base(uint8_t *q, const uint8_t *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:28,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:31,1
    - Dst: cf_cmac_stream_reset
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:34,1
    - Dst: cf_cmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:37,1
    - Dst: cf_cmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:38,1
    - Dst: cf_cmac_stream_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:40,1
    - Dst: cf_cmac_stream_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - t
    - input
    - ninput
    - out
    argTypes:
    - cf_cmac_stream*
    - uint8_t
    - uint8_t*
    - size_t
    - uint8_t[]
    assertStmts:
    - condition: (blocksz > 0)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: cmac_compute_n
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    functionUses: 0
    functionsReached:
    - cf_cmac_stream_final
    - cf_cmac_stream_reset
    - cf_cmac_stream_update
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: "void cmac_compute_n(cf_cmac_stream *ctx,\n                           uint8_t
      t,\n                           const uint8_t *input, size_t ninput,\n                           uint8_t
      out[CF_MAXBLOCK])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cmac_stream_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:58,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:61,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:64,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:68,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:69,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:72,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 11
    argNames:
    - prp
    - prpctx
    - plain
    - nplain
    - header
    - nheader
    - nonce
    - nnonce
    - cipher
    - tag
    - ntag
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ntag <= prp->blocksz)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    constantsTouched: []
    func_position:
      end: 79
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 79
    functionName: cf_eax_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    functionUses: 1
    functionsReached:
    - cf_cmac_stream_init
    - cmac_compute_n
    - cf_ctr_init
    - assert
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: "void cf_eax_encrypt(const cf_prp *prp, void *prpctx,\n                    const
      uint8_t *plain, size_t nplain,\n                    const uint8_t *header, size_t
      nheader,\n                    const uint8_t *nonce, size_t nnonce,\n                    uint8_t
      *cipher, /* the same size as nplain */\n                    uint8_t *tag, size_t
      ntag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_cmac_stream_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:93,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:96,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:99,1
    - Dst: cmac_compute_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:102,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:105,1
    - Dst: mem_eq
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:109,1
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:113,1
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/eax.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 11
    argNames:
    - prp
    - prpctx
    - cipher
    - ncipher
    - header
    - nheader
    - nonce
    - nnonce
    - tag
    - ntag
    - plain
    argTypes:
    - cf_prp*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts:
    - condition: (ntag && ntag <= prp->blocksz)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: cf_eax_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/eax.c
    functionUses: 1
    functionsReached:
    - cf_cmac_stream_init
    - mem_eq
    - cmac_compute_n
    - cf_ctr_init
    - assert
    - cf_ctr_cipher
    linkageType: ''
    returnType: int
    signature: "int cf_eax_decrypt(const cf_prp *prp, void *prpctx,\n                   const
      uint8_t *cipher, size_t ncipher,\n                   const uint8_t *header,
      size_t nheader,\n                   const uint8_t *nonce, size_t nnonce,\n                   const
      uint8_t *tag, size_t ntag,\n                   uint8_t *plain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: shuffle_out
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t shuffle_out(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: shuffle_in
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t shuffle_in(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:83,1
    - Dst: read32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:84,1
    - Dst: shuffle_out
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:86,1
    - Dst: shuffle_out
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - data
    argTypes:
    - cf_sha3_bi*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: read64_bi
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - read32_le
    - shuffle_out
    linkageType: ''
    returnType: void
    signature: void read64_bi(cf_sha3_bi *out, const uint8_t data[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shuffle_in
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:98,1
    - Dst: shuffle_in
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:99,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:101,1
    - Dst: write32_le
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bi
    - data
    argTypes:
    - cf_sha3_bi*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: write64_bi
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - write32_le
    - shuffle_in
    linkageType: ''
    returnType: void
    signature: void write64_bi(const cf_sha3_bi *bi, uint8_t data[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - cf_sha3_bi*
    - cf_sha3_bi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: rotl_bi_1
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - rotl32
    linkageType: ''
    returnType: void
    signature: void rotl_bi_1(cf_sha3_bi *out, const cf_sha3_bi *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:120,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:121,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:123,1
    - Dst: rotl32
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - rot
    argTypes:
    - cf_sha3_bi*
    - cf_sha3_bi*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: rotl_bi_n
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - rotl32
    linkageType: ''
    returnType: void
    signature: void rotl_bi_n(cf_sha3_bi *out, const cf_sha3_bi *in, uint8_t rot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - rate_bits
    - capacity_bits
    argTypes:
    - cf_sha3_context*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: sha3_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - mem_clean
    linkageType: ''
    returnType: void
    signature: void sha3_init(cf_sha3_context *ctx, uint16_t rate_bits, uint16_t capacity_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read64_bi
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - data
    - sz
    argTypes:
    - cf_sha3_context*
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: absorb
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - read64_bi
    linkageType: ''
    returnType: void
    signature: void absorb(cf_sha3_context *ctx, const uint8_t *data, uint16_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: MOD5
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD5(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl_bi_1
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:182,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:182,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:183,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: theta
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - MOD5
    - rotl_bi_1
    linkageType: ''
    returnType: void
    signature: void theta(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl_bi_n
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:200,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:200,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:204,1
    - Dst: MOD5
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 213
    functionName: rho_pi_chi
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - rotl_bi_n
    - MOD5
    linkageType: ''
    returnType: void
    signature: void rho_pi_chi(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: theta
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:219,1
    - Dst: rho_pi_chi
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: permute
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 3
    functionsReached:
    - theta
    - rho_pi_chi
    linkageType: ''
    returnType: void
    signature: void permute(cf_sha3_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write64_bi
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:236,1
    - Dst: write64_bi
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:241,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - out
    - nbytes
    argTypes:
    - cf_sha3_context*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 254
    functionName: extract
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 2
    functionsReached:
    - memcpy
    - write64_bi
    linkageType: ''
    returnType: void
    signature: void extract(cf_sha3_context *ctx, uint8_t *out, size_t nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:260,1
    - Dst: extract
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:261,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:265,1
    - Dst: permute
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - nbytes
    argTypes:
    - cf_sha3_context*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (nbytes == 0)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    constantsTouched: []
    func_position:
      end: 275
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 275
    functionName: squeeze
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 4
    functionsReached:
    - MIN
    - assert
    - permute
    - extract
    linkageType: ''
    returnType: void
    signature: void squeeze(cf_sha3_context *ctx, uint8_t *out, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:281,1
    - Dst: permute
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - data
    argTypes:
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: sha3_block
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - permute
    - absorb
    linkageType: ''
    returnType: void
    signature: void sha3_block(void *vctx, const uint8_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_blockwise_accumulate
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha3_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: sha3_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - cf_blockwise_accumulate
    linkageType: ''
    returnType: void
    signature: void sha3_update(cf_sha3_context *ctx, const void *data, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:309,1
    - Dst: cf_blockwise_acc_pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - domain
    - npad
    argTypes:
    - cf_sha3_context*
    - uint8_t
    - size_t
    assertStmts:
    - condition: (npad >= 1)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: pad
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 10
    functionsReached:
    - cf_blockwise_acc_pad
    - assert
    linkageType: ''
    returnType: void
    signature: void pad(cf_sha3_context *ctx, uint8_t domain, size_t npad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pad
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:319,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:320,1
    - Dst: squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:322,1
    - Dst: mem_clean
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - nout
    argTypes:
    - cf_sha3_context*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (ctx->npartial == 0)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: pad_and_squeeze
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - pad
    - squeeze
    - mem_clean
    - assert
    linkageType: ''
    returnType: void
    signature: void pad_and_squeeze(cf_sha3_context *ctx, uint8_t *out, size_t nout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: cf_sha3_224_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_init
    linkageType: ''
    returnType: void
    signature: void cf_sha3_224_init(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha3_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: cf_sha3_224_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_update
    linkageType: ''
    returnType: void
    signature: void cf_sha3_224_update(cf_sha3_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_224_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: cf_sha3_224_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - cf_sha3_224_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha3_224_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_224_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pad_and_squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: cf_sha3_224_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 1
    functionsReached:
    - pad_and_squeeze
    linkageType: ''
    returnType: void
    signature: void cf_sha3_224_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_224_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: cf_sha3_256_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_init
    linkageType: ''
    returnType: void
    signature: void cf_sha3_256_init(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha3_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: cf_sha3_256_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_update
    linkageType: ''
    returnType: void
    signature: void cf_sha3_256_update(cf_sha3_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: cf_sha3_256_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - cf_sha3_256_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha3_256_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_256_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pad_and_squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: cf_sha3_256_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 1
    functionsReached:
    - pad_and_squeeze
    linkageType: ''
    returnType: void
    signature: void cf_sha3_256_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_256_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: cf_sha3_384_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_init
    linkageType: ''
    returnType: void
    signature: void cf_sha3_384_init(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha3_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: cf_sha3_384_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_update
    linkageType: ''
    returnType: void
    signature: void cf_sha3_384_update(cf_sha3_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_384_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: cf_sha3_384_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - cf_sha3_384_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha3_384_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_384_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pad_and_squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 6
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: cf_sha3_384_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 1
    functionsReached:
    - pad_and_squeeze
    linkageType: ''
    returnType: void
    signature: void cf_sha3_384_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_384_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cf_sha3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: cf_sha3_512_init
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_init
    linkageType: ''
    returnType: void
    signature: void cf_sha3_512_init(cf_sha3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha3_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - nbytes
    argTypes:
    - cf_sha3_context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: cf_sha3_512_update
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - sha3_update
    linkageType: ''
    returnType: void
    signature: void cf_sha3_512_update(cf_sha3_context *ctx, const void *data, size_t
      nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_512_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: cf_sha3_512_digest
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 0
    functionsReached:
    - cf_sha3_512_digest_final
    linkageType: ''
    returnType: void
    signature: void cf_sha3_512_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_512_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pad_and_squeeze
      Src: /src/h2o/deps/picotls/deps/cifra/src/sha3.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - cf_sha3_context*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 6
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: cf_sha3_512_digest_final
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
    functionUses: 1
    functionsReached:
    - pad_and_squeeze
    linkageType: ''
    returnType: void
    signature: void cf_sha3_512_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_512_HASHSZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: TEST_CHECK_
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_(cond,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: TEST_CHECK
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK(cond)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:148,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:149,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:150,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:154,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:167,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:168,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:169,1
    - Dst: GetStdHandle
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:176,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:177,1
    - Dst: SetConsoleTextAttribute
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:188,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:189,1
    - Dst: SetConsoleTextAttribute
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:190,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:193,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - color
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 196
    functionName: test_print_in_color
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - va_start
    - vsnprintf
    - SetConsoleTextAttribute
    - printf
    - va_end
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: size_t
    signature: size_t test_print_in_color(int color, const char* fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:211,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:212,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:213,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:226,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:229,1
    - Dst: va_start
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:231,1
    - Dst: vprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:232,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:233,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:235,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:236,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - cond
    - file
    - line
    - fmt
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 242
    functionName: test_check__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - va_start
    - test_print_in_color
    - printf
    - vprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int test_check__(int cond, const char* file, int line, const char*
      fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:268,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: test_list_names__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void test_list_names__(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: test_by_name__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct test__
    signature: 'struct test__ *

      test_by_name__(const char* name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:294,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:300,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:301,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:303,1
    - Dst: struct test__*::func
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:312,1
    - Dst: what
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:316,1
    - Dst: test_check__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:318,1
    - Dst: test_check__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:320,1
    - Dst: test_check__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:322,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:328,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:329,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:330,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:333,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:334,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:335,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct test__*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 340
    functionName: test_do_run__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - test_check__
    - test_print_in_color
    - printf
    - struct test__*::func
    - memset
    - what
    linkageType: ''
    returnType: int
    signature: int test_do_run__(const struct test__* test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:348,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:349,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:350,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:356,1
    - Dst: va_start
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:357,1
    - Dst: vprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:358,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:359,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: test_error__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - va_start
    - test_print_in_color
    - printf
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void test_error__(const char* fmt, ...)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:378,1
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:380,1
    - Dst: strerror
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:380,1
    - Dst: test_do_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:383,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:384,1
    - Dst: waitpid
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:386,1
    - Dst: WIFEXITED
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:387,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:388,1
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:391,1
    - Dst: WEXITSTATUS
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:391,1
    - Dst: WIFSIGNALED
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:393,1
    - Dst: WTERMSIG
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:396,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:405,1
    - Dst: WTERMSIG
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:405,1
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:407,1
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:409,1
    - Dst: _snprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:420,1
    - Dst: CreateProcessA
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:425,1
    - Dst: WaitForSingleObject
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:426,1
    - Dst: GetExitCodeProcess
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:427,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:428,1
    - Dst: CloseHandle
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:429,1
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:432,1
    - Dst: GetLastError
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:432,1
    - Dst: test_do_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:438,1
    - Dst: test_do_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:443,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct test__*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 451
    functionName: test_run__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - waitpid
    - test_error__
    - exit
    - WTERMSIG
    - _snprintf
    - GetExitCodeProcess
    - strerror
    - CloseHandle
    - sprintf
    - WEXITSTATUS
    - fork
    - WIFSIGNALED
    - WIFEXITED
    - test_do_run__
    - CreateProcessA
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void test_run__(const struct test__* test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_error__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:457,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:460,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptrs
    argTypes:
    - EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: test_exception_filter__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - fflush
    - test_error__
    linkageType: ''
    returnType: LONG
    signature: LONG test_exception_filter__(EXCEPTION_POINTERS *ptrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:469,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:470,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:471,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:472,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:473,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:474,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:475,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:476,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:477,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:478,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:479,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:480,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:481,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:482,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:483,1
    - Dst: test_list_names__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: test_help__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 0
    functionsReached:
    - printf
    - test_list_names__
    linkageType: ''
    returnType: void
    signature: void test_help__(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:497,1
    - Dst: fileno
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:497,1
    - Dst: _isatty
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:499,1
    - Dst: _fileno
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:499,1
    - Dst: realloc
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:507,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:509,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:510,1
    - Dst: test_by_name__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:512,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:514,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:515,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:516,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:519,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:521,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:521,1
    - Dst: test_help__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:522,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:523,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:524,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:524,1
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:526,1
    - Dst: atoi
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:527,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:528,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:530,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:530,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:532,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:534,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:534,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:536,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:538,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:540,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:540,1
    - Dst: test_list_names__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:541,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:542,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:544,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:545,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:546,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:551,1
    - Dst: test_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:563,1
    - Dst: test_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:567,1
    - Dst: test_run__
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:581,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:587,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:590,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:591,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:592,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:593,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:597,1
    - Dst: test_print_in_color
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:600,1
    - Dst: free
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h:607,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 100
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 610
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    functionUses: 7
    functionsReached:
    - realloc
    - test_help__
    - _fileno
    - _isatty
    - strncmp
    - fileno
    - test_list_names__
    - SetUnhandledExceptionFilter
    - free
    - exit
    - atoi
    - isatty
    - strcmp
    - test_print_in_color
    - printf
    - fprintf
    - test_run__
    - test_by_name__
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: ARRAYCOUNT
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAYCOUNT(arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: MIN
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: STRINGIFY
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: STRINGIFY_
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ER
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ER(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: EG
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EG(expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: mem_clean
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 24
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mem_clean(volatile void *v, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - va
    - vb
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: mem_eq
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned mem_eq(const void *va, const void *vb, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: do_nothing
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_nothing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: stack_64w
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_64w(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: stack_8w
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_8w(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:46,1
    - Dst: cf_sha256_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:47,1
    - Dst: cf_sha256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: hashtest_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_sha256_update
    - cf_sha256_digest_final
    - cf_sha256_init
    linkageType: ''
    returnType: void
    signature: void hashtest_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha512_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:55,1
    - Dst: cf_sha512_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:56,1
    - Dst: cf_sha512_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: hashtest_sha512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_sha512_init
    - cf_sha512_update
    - cf_sha512_digest_final
    linkageType: ''
    returnType: void
    signature: void hashtest_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_256_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:64,1
    - Dst: cf_sha3_256_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:65,1
    - Dst: cf_sha3_256_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: hashtest_sha3_256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_sha3_256_digest_final
    - cf_sha3_256_init
    - cf_sha3_256_update
    linkageType: ''
    returnType: void
    signature: void hashtest_sha3_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha3_512_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:73,1
    - Dst: cf_sha3_512_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:74,1
    - Dst: cf_sha3_512_digest_final
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: hashtest_sha3_512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_sha3_512_update
    - cf_sha3_512_digest_final
    - cf_sha3_512_init
    linkageType: ''
    returnType: void
    signature: void hashtest_sha3_512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:82,1
    - Dst: cf_aes_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: aes128block_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_aes_encrypt
    linkageType: ''
    returnType: void
    signature: void aes128block_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: aes128sched_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    linkageType: ''
    returnType: void
    signature: void aes128sched_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:97,1
    - Dst: cf_aes_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: aes256block_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_aes_encrypt
    linkageType: ''
    returnType: void
    signature: void aes256block_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: aes256sched_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    linkageType: ''
    returnType: void
    signature: void aes256sched_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:112,1
    - Dst: cf_gcm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: aes128gcm_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt
    - cf_aes_init
    linkageType: ''
    returnType: void
    signature: void aes128gcm_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:132,1
    - Dst: cf_eax_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: aes128eax_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_eax_encrypt
    linkageType: ''
    returnType: void
    signature: void aes128eax_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:152,1
    - Dst: cf_ccm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: aes128ccm_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_ccm_encrypt
    linkageType: ''
    returnType: void
    signature: void aes128ccm_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_salsa20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:176,1
    - Dst: cf_salsa20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: salsa20_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_salsa20_init
    - cf_salsa20_cipher
    linkageType: ''
    returnType: void
    signature: void salsa20_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chacha20_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:188,1
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: chacha20_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_chacha20_init
    - cf_chacha20_cipher
    linkageType: ''
    returnType: void
    signature: void chacha20_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_curve25519_mul_base
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: curve25519_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_curve25519_mul_base
    linkageType: ''
    returnType: void
    signature: void curve25519_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:210,1
    - Dst: cf_aes_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:211,1
    - Dst: cf_poly1305_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:214,1
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:215,1
    - Dst: cf_poly1305_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: poly1305_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_aes_encrypt
    - cf_poly1305_update
    - cf_poly1305_finish
    - cf_poly1305_init
    linkageType: ''
    returnType: void
    signature: void poly1305_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_hmac_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:225,1
    - Dst: cf_hmac_update
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:226,1
    - Dst: cf_hmac_finish
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: hmacsha256_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_hmac_finish
    - cf_hmac_update
    - cf_hmac_init
    linkageType: ''
    returnType: void
    signature: void hmacsha256_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_norx32_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 246
    functionName: norx_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_norx32_encrypt
    linkageType: ''
    returnType: void
    signature: void norx_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_norx32_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: aeadperf_norx
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_norx32_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_norx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chacha20poly1305_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: aeadperf_chacha20poly1305
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_chacha20poly1305_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_chacha20poly1305(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:280,1
    - Dst: cf_gcm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 8
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: aeadperf_aes128gcm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt
    - cf_aes_init
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes128gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:293,1
    - Dst: cf_ccm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: aeadperf_aes128ccm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_ccm_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes128ccm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:307,1
    - Dst: cf_eax_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: aeadperf_aes128eax
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_eax_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes128eax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:320,1
    - Dst: cf_gcm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 317
    functionDepth: 8
    functionLinenumber: 317
    functionLinenumberEnd: 328
    functionName: aeadperf_aes256gcm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt
    - cf_aes_init
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes256gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:333,1
    - Dst: cf_ccm_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: aeadperf_aes256ccm
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_ccm_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes256ccm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:347,1
    - Dst: cf_eax_encrypt
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: aeadperf_aes256eax
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - cf_aes_init
    - cf_eax_encrypt
    linkageType: ''
    returnType: void
    signature: void aeadperf_aes256eax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: clear_stack
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_stack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: measure_stack
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t measure_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_stack
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:385,1
    - Dst: reset_cycles
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:386,1
    - Dst: fn
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:387,1
    - Dst: get_cycles
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:388,1
    - Dst: measure_stack
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:389,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:391,1
    - Dst: emit_uint32
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:392,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:393,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:394,1
    - Dst: emit_uint32
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:395,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - fn
    argTypes:
    - measure_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 397
    functionName: measure
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached:
    - get_cycles
    - emit
    - fn
    - emit_uint32
    - reset_cycles
    - measure_stack
    - clear_stack
    linkageType: ''
    returnType: void
    signature: void measure(measure_fn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: STRING_
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: STRING
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:404,1
    - Dst: STRING
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:404,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:408,1
    - Dst: emit_uint32
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:409,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:410,1
    - Dst: measure
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:411,1
    - Dst: measure
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:414,1
    - Dst: quit_success
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 447
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
    functionUses: 7
    functionsReached:
    - emit
    - STRING
    - emit_uint32
    - measure
    - quit_success
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semihost
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: quit_success
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 1
    functionsReached:
    - semihost
    linkageType: ''
    returnType: void
    signature: void quit_success(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semihost
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: quit_failure
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 0
    functionsReached:
    - semihost
    linkageType: ''
    returnType: void
    signature: void quit_failure(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semihost
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: emit
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 4
    functionsReached:
    - semihost
    linkageType: ''
    returnType: void
    signature: void emit(const char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:46,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:47,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:55,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: emit_extent
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 0
    functionsReached:
    - memcpy
    - emit
    linkageType: ''
    returnType: void
    signature: void emit_extent(const char *start, const char *end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:65,1
    - Dst: emit_extent
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:72,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:77,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:99,1
    - Dst: emit_extent
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 101
    functionName: emitf
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 0
    functionsReached:
    - emit
    - emit_extent
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void emitf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: emit_hex
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 0
    functionsReached:
    - emit
    linkageType: ''
    returnType: void
    signature: void emit_hex(const void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: emit_uint32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 2
    functionsReached:
    - emit
    linkageType: ''
    returnType: void
    signature: void emit_uint32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_ticks
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:162,1
    - Dst: get_ticks
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: reset_cycles
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 1
    functionsReached:
    - get_ticks
    - reset_ticks
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t reset_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ticks
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: get_cycles
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    functionUses: 1
    functionsReached:
    - get_ticks
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: ATTR_SECTION
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_SECTION(sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: COPY2
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: COPY4
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY4(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: COPY8
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: COPY16
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: COPY32
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: COPY64
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY64(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: COPY128
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY128(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c:61,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c:65,1
    - Dst: main
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: Reset_Handler
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - main
    linkageType: ''
    returnType: void
    signature: void Reset_Handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - file
    - line
    - func
    - expr
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: __assert_func
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __assert_func(const char *file, int line, const char *func, const
      char *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: infinite_loop
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void infinite_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: do_nothing
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_nothing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: SysTick_Handler
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SysTick_Handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: get_ticks
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_ticks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: reset_ticks
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_ticks(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - vtarg
    - vsrc
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: memmove
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 29
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *memmove(void *vtarg, const void *vsrc, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - va
    - vb
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: memcmp
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 138
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memcmp(const void *va, const void *vb, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: strlen
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 148
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlen(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: abort
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: TEST_CHECK
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK(cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:27,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:28,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:28,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:28,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:29,1
    - Dst: emit_uint32
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:29,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:29,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:30,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:30,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:30,1
    - Dst: quit_failure
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - cond
    - file
    - line
    - expr
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: test_check__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
    functionUses: 1
    functionsReached:
    - emit_uint32
    - emit
    - quit_failure
    linkageType: ''
    returnType: void
    signature: void test_check__(int cond, const char *file, int line, const char
      *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:36,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:36,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:36,1
    - Dst: struct test__*::func
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:37,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct test__*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: run_test__
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
    functionUses: 0
    functionsReached:
    - emit
    - struct test__*::func
    linkageType: ''
    returnType: void
    signature: void run_test__(const struct test__ *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:43,1
    - Dst: run_test__
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:49,1
    - Dst: emit
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:51,1
    - Dst: quit_success
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
    functionUses: 8
    functionsReached:
    - emit
    - run_test__
    - quit_success
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: fe25519_cpy
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_cpy(\n    fe25519*       dest,\n    const fe25519* source\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fe25519*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: fe25519_unpack
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_unpack(\n    volatile fe25519*            out,\n    const
      unsigned char in[32]\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - out
    - baseValue
    - valueToSubstract
    argTypes:
    - fe25519*
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 201
    functionName: fe25519_sub
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_sub(\n    fe25519*       out,\n    const fe25519* baseValue,\n
      \   const fe25519* valueToSubstract\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - out
    - baseValue
    - valueToAdd
    argTypes:
    - fe25519*
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 231
    functionName: fe25519_add
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_add(\n    fe25519*       out,\n    const fe25519* baseValue,\n
      \   const fe25519* valueToAdd\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multiply256x256
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:242,1
    - Dst: fe25519_reduceTo256Bits_asm
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - in1
    - in2
    argTypes:
    - fe25519*
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: fe25519_mul
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_reduceTo256Bits_asm
    - multiply256x256
    linkageType: ''
    returnType: void
    signature: "void fe25519_mul(\n    fe25519*       result,\n    const fe25519*
      in1,\n    const fe25519* in2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square256
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:254,1
    - Dst: fe25519_reduceTo256Bits_asm
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - in
    argTypes:
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: fe25519_square
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_reduceTo256Bits_asm
    - square256
    linkageType: ''
    returnType: void
    signature: "void fe25519_square(\n    fe25519*       result,\n    const fe25519*
      in\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - inout
    argTypes:
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 301
    functionName: fe25519_reduceCompletely
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_reduceCompletely(\n    volatile fe25519* inout\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe25519_reduceCompletely
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - unsigned char[]
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: fe25519_pack
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_reduceCompletely
    linkageType: ''
    returnType: void
    signature: "void fe25519_pack(\n    unsigned char out[32],\n    volatile fe25519*
      \     in\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:343,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:344,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:345,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:346,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:347,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:352,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:353,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:355,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:356,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:357,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:358,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:359,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:360,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:362,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:366,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:368,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:370,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:374,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:376,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:378,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:382,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:384,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:386,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:390,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:392,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:394,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:398,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:400,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:404,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:406,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:410,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 5
    argNames:
    - r
    - x
    - t0
    - t1
    - t2
    argTypes:
    - fe25519*
    - fe25519*
    - fe25519*
    - fe25519*
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 413
    functionName: fe25519_invert_useProvidedScratchBuffers
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_square
    - fe25519_mul
    linkageType: ''
    returnType: void
    signature: "void fe25519_invert_useProvidedScratchBuffers(\n    fe25519*       r,\n
      \   const fe25519* x,\n    fe25519*       t0,\n    fe25519*       t1,\n    fe25519*
      \      t2    \n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: fe25519_setzero
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_setzero(\n    fe25519* out\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - fe25519*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: fe25519_setone
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_setone(\n    fe25519* out\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - in1
    - in2
    - condition
    argTypes:
    - fe25519*
    - fe25519*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 497
    functionName: fe25519_cswap
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fe25519_cswap(\n    fe25519* in1,\n    fe25519* in2,\n    int
      \     condition\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:560,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:561,1
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:562,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:563,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:564,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:565,1
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:566,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:567,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:568,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:569,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:570,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:571,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:572,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:573,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:574,1
    - Dst: fe25519_mpyWith121666
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:575,1
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:576,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - pState
    argTypes:
    - ST_curve25519ladderstepWorkingState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 578
    functionName: curve25519_ladderstep
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_sub
    - fe25519_mpyWith121666
    - fe25519_mul
    - fe25519_square
    - fe25519_add
    linkageType: ''
    returnType: void
    signature: "void curve25519_ladderstep(\n    ST_curve25519ladderstepWorkingState*
      pState\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swapPointersConditionally
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:587,1
    - Dst: swapPointersConditionally
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:588,1
    - Dst: fe25519_cswap
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:590,1
    - Dst: fe25519_cswap
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - state
    - b
    argTypes:
    - ST_curve25519ladderstepWorkingState*
    - uint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 593
    functionName: curve25519_cswap
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_cswap
    - swapPointersConditionally
    linkageType: ''
    returnType: void
    signature: "void curve25519_cswap(\n    ST_curve25519ladderstepWorkingState* state,\n
      \   uint8                                b\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:631,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:633,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:635,1
    - Dst: fe25519_square
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:637,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:639,1
    - Dst: fe25519_sub
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:641,1
    - Dst: fe25519_mpyWith121666
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:643,1
    - Dst: fe25519_add
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:645,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pState
    argTypes:
    - ST_curve25519ladderstepWorkingState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 648
    functionName: curve25519_doublePointP
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 0
    functionsReached:
    - fe25519_sub
    - fe25519_mpyWith121666
    - fe25519_mul
    - fe25519_square
    - fe25519_add
    linkageType: ''
    returnType: void
    signature: void curve25519_doublePointP (ST_curve25519ladderstepWorkingState*
      pState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe25519_unpack
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:678,1
    - Dst: fe25519_setone
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:682,1
    - Dst: fe25519_cpy
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:683,1
    - Dst: fe25519_setone
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:685,1
    - Dst: fe25519_setzero
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:686,1
    - Dst: curve25519_cswap
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:716,1
    - Dst: curve25519_ladderstep
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:717,1
    - Dst: curve25519_cswap
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:721,1
    - Dst: curve25519_doublePointP
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:724,1
    - Dst: curve25519_doublePointP
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:725,1
    - Dst: curve25519_doublePointP
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:726,1
    - Dst: fe25519_invert_useProvidedScratchBuffers
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:731,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:732,1
    - Dst: fe25519_reduceCompletely
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:733,1
    - Dst: fe25519_pack
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:735,1
    - Dst: fe25519_invert_useProvidedScratchBuffers
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:738,1
    - Dst: fe25519_mul
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:739,1
    - Dst: fe25519_reduceCompletely
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:740,1
    - Dst: fe25519_pack
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - r
    - s
    - p
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 746
    functionName: crypto_scalarmult_curve25519
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 1
    functionsReached:
    - fe25519_unpack
    - fe25519_cpy
    - fe25519_invert_useProvidedScratchBuffers
    - fe25519_setzero
    - fe25519_reduceCompletely
    - curve25519_cswap
    - curve25519_ladderstep
    - fe25519_mul
    - fe25519_pack
    - curve25519_doublePointP
    - fe25519_setone
    linkageType: ''
    returnType: int
    signature: "int crypto_scalarmult_curve25519(\n    unsigned char*       r,\n    const
      unsigned char* s,\n    const unsigned char* p\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_scalarmult_curve25519
      Src: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - q
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 761
    functionName: crypto_scalarmult_curve25519_base
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    functionUses: 1
    functionsReached:
    - crypto_scalarmult_curve25519
    linkageType: ''
    returnType: int
    signature: "int crypto_scalarmult_curve25519_base(\n    unsigned char*       q,\n
      \   const unsigned char* n\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: printhex
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printhex(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:26,1
    - Dst: EVP_DigestInit
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:32,1
    - Dst: EVP_DigestUpdate
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:36,1
    - Dst: EVP_DigestFinal
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:39,1
    - Dst: EVP_DigestUpdate
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:41,1
    - Dst: EVP_DigestFinal
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:45,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:47,1
    - Dst: printhex
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:48,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - name
    - h
    - max
    argTypes:
    - char*
    - EVP_MD*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: emit_length_test
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit
    - EVP_DigestFinal
    - printhex
    - printf
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void emit_length_test(const char *name, const EVP_MD *h, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_length_test
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:54,1
    - Dst: EVP_sha1
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:54,1
    - Dst: emit_length_test
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:55,1
    - Dst: EVP_sha224
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:55,1
    - Dst: emit_length_test
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:56,1
    - Dst: EVP_sha256
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:56,1
    - Dst: emit_length_test
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:57,1
    - Dst: EVP_sha384
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:57,1
    - Dst: emit_length_test
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:58,1
    - Dst: EVP_sha512
      Src: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
    functionUses: 8
    functionsReached:
    - EVP_sha1
    - EVP_sha512
    - emit_length_test
    - EVP_sha384
    - EVP_sha224
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sl_iter_start
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:16,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:17,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:18,1
    - Dst: sl_get_nil
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:26,1
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:31,1
    - Dst: blockfn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:33,1
    - Dst: sl_new_bytes
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:34,1
    - Dst: cf_aes_finish
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:35,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:38,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 41
    functionName: aes_block_fn
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_decref
    - cf_aes_init
    - sl_new_bytes
    - sl_get_nil
    - sl_iter_convert
    - sl_iter_start
    - blockfn
    - cf_aes_finish
    linkageType: ''
    returnType: sl_value
    signature: "sl_value * aes_block_fn(sl_value *self, sl_value *args, sl_symboltab
      *tab,\n                               void (*blockfn)(const cf_aes_context *ctx,\n
      \                                              const uint8_t *in,\n                                               uint8_t
      *out))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_block_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: aes_block_encrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - aes_block_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * aes_block_encrypt(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_block_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: aes_block_decrypt
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - aes_block_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * aes_block_decrypt(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sl_iter_start
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:56,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:57,1
    - Dst: sl_get_nil
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:60,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:63,1
    - Dst: cf_chash*::init
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:64,1
    - Dst: cf_chash*::update
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:65,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:66,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:69,1
    - Dst: cf_chash*::digest
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:70,1
    - Dst: sl_new_bytes
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - args
    - tab
    - h
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    - cf_chash*
    assertStmts:
    - condition: (h->ctxsz <= CF_CHASH_MAXCTX)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    - condition: (h->hashsz <= CF_MAXHASH)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: hash_fn
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_decref
    - cf_chash*::digest
    - sl_new_bytes
    - cf_chash*::init
    - cf_chash*::update
    - sl_get_nil
    - sl_iter_convert
    - sl_iter_start
    - assert
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hash_fn(sl_value *self, sl_value *args, sl_symboltab *tab,
      const cf_chash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: sha224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 1
    functionsReached:
    - hash_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * sha224(sl_value *self, sl_value *args, sl_symboltab *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 12
    functionsReached:
    - hash_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * sha256(sl_value *self, sl_value *args, sl_symboltab *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: sha384
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 1
    functionsReached:
    - hash_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * sha384(sl_value *self, sl_value *args, sl_symboltab *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: sha512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 1
    functionsReached:
    - hash_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * sha512(sl_value *self, sl_value *args, sl_symboltab *tab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sl_iter_start
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:98,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:99,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:100,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:104,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:105,1
    - Dst: sl_get_nil
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:106,1
    - Dst: cf_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:110,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:115,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:116,1
    - Dst: sl_new_bytes
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - args
    - tab
    - h
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    - cf_chash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: hmac_fn
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_decref
    - cf_hmac
    - sl_new_bytes
    - sl_get_nil
    - sl_iter_convert
    - sl_iter_start
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hmac_fn(sl_value *self, sl_value *args, sl_symboltab *tab,
      const cf_chash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: hmac_sha224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - hmac_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hmac_sha224(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: hmac_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - hmac_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hmac_sha256(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: hmac_sha384
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - hmac_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hmac_sha384(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hmac_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: hmac_sha512
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - hmac_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * hmac_sha512(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dstr_init
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:138,1
    - Dst: dstr_expand
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:139,1
    - Dst: cf_pbkdf2_hmac
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:142,1
    - Dst: sl_new_bytes
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:148,1
    - Dst: dstr_free
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - h
    - pw
    - salt
    - iterations
    - outlen
    argTypes:
    - cf_chash*
    - sl_value*
    - sl_value*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: do_pbkdf2
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_new_bytes
    - dstr_init
    - dstr_expand
    - dstr_free
    - cf_pbkdf2_hmac
    linkageType: ''
    returnType: sl_value
    signature: "sl_value * do_pbkdf2(const cf_chash *h, sl_value *pw, sl_value *salt,\n
      \                           uint32_t iterations, uint32_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sl_iter_start
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:155,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:156,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:157,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:158,1
    - Dst: sl_iter_convert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:159,1
    - Dst: sl_get_nil
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:164,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:167,1
    - Dst: bignum_len_words
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:167,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:168,1
    - Dst: bignum_len_words
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:168,1
    - Dst: do_pbkdf2
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:169,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:174,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:175,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:176,1
    - Dst: sl_decref
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - self
    - args
    - tab
    - h
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    - cf_chash*
    assertStmts:
    - condition: (bignum_len_words(&iterations->u.integer.bn) == 1)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    - condition: (bignum_len_words(&outlen->u.integer.bn) == 1)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: pbkdf2_fn
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_decref
    - do_pbkdf2
    - bignum_len_words
    - sl_get_nil
    - sl_iter_convert
    - sl_iter_start
    - assert
    linkageType: ''
    returnType: sl_value
    signature: sl_value * pbkdf2_fn(sl_value *self, sl_value *args, sl_symboltab *tab,
      const cf_chash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf2_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: pbkdf2_sha224
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - pbkdf2_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * pbkdf2_sha224(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf2_fn
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - tab
    argTypes:
    - sl_value*
    - sl_value*
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: pbkdf2_sha256
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - pbkdf2_fn
    linkageType: ''
    returnType: sl_value
    signature: sl_value * pbkdf2_sha256(sl_value *self, sl_value *args, sl_symboltab
      *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:193,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:193,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:194,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:194,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:195,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:195,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:196,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:196,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:197,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:197,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:198,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:198,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:199,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:199,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:200,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:200,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:201,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:201,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:202,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:202,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:203,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:203,1
    - Dst: ER
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:204,1
    - Dst: sl_symboltab_add_name_native
      Src: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tab
    argTypes:
    - sl_symboltab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: SL_MODULE_ENTRY
    functionSourceFile: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
    functionUses: 0
    functionsReached:
    - sl_symboltab_add_name_native
    - ER
    linkageType: ''
    returnType: int
    signature: int SL_MODULE_ENTRY(sl_symboltab *tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: CONCATX
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCATX(a, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: CONCAT
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCAT(a, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: STRX
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: STR
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: EVAL
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: EVAL1
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: EVAL2
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: EVAL3
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: EVAL4
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: DEC
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _
    - ','
    - val
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: SECOND_ARG
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECOND_ARG(_, val, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: GET_SECOND_ARG
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SECOND_ARG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: SOME_OR_0
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOME_OR_0(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: DEFER
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFER(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: REPEAT_NAME_0
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_NAME_0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: REPEAT_NAME_SOME
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_NAME_SOME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - stuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: REPEAT_SOME
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_SOME(N, stuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - stuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: REPEAT
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT(N, stuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: REPEATM_NAME_0
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEATM_NAME_0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: REPEATM_NAME_SOME
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEATM_NAME_SOME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: REPEATM_SOME
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEATM_SOME(N, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: REPEATM
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEATM(N, macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: BITS_TO_WORDS
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_WORDS(num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: BITS_TO_BYTES
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_BYTES(num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - num_bytes
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: bcopy
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bcopy(uint8_t *dst,\n                  const uint8_t *src,\n
      \                 unsigned num_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng_function
    argTypes:
    - uECC_RNG_Function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: uECC_set_rng
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uECC_set_rng(uECC_RNG_Function rng_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: uECC_get_rng
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_RNG_Function
    signature: uECC_RNG_Function uECC_get_rng(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: uECC_curve_private_key_size
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: int
    signature: int uECC_curve_private_key_size(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: uECC_curve_public_key_size
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uECC_curve_public_key_size(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: uECC_vli_clear
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_vli_clear(uECC_word_t *vli, wordcount_t num_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: uECC_word_t::uECC_vli_isZero
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_word_t uECC_vli_isZero(const uECC_word_t *vli, wordcount_t
      num_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vli
    - bit
    argTypes:
    - uECC_word_t*
    - bitcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: uECC_word_t::uECC_vli_testBit
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_word_t uECC_vli_testBit(const uECC_word_t *vli, bitcount_t
      bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - max_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: vli_numDigits
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wordcount_t
    signature: wordcount_t vli_numDigits(const uECC_word_t *vli, const wordcount_t
      max_words)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vli_numDigits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - vli
    - max_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: uECC_vli_numBits
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - vli_numDigits
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_vli_numBits(const uECC_word_t *vli, const wordcount_t
      max_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: uECC_vli_set
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_vli_set(uECC_word_t *dest, const uECC_word_t *src,
      wordcount_t num_words)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: uECC_vli_cmp_unsafe
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cmpresult_t
    signature: "cmpresult_t uECC_vli_cmp_unsafe(const uECC_word_t *left,\n                                       const
      uECC_word_t *right,\n                                       wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: uECC_word_t::uECC_vli_equal
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_word_t uECC_vli_equal(const uECC_word_t *left,\n
      \                                       const uECC_word_t *right,\n                                        wordcount_t
      num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:313,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: cmpresult_t::uECC_vli_cmp
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_isZero
    - uECC_vli_sub
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API cmpresult_t uECC_vli_cmp(const uECC_word_t *left,\n                                      const
      uECC_word_t *right,\n                                      wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: uECC_vli_rshift1
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_vli_rshift1(uECC_word_t *vli, wordcount_t num_words)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: uECC_word_t::uECC_vli_add
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_word_t uECC_vli_add(uECC_word_t *result,\n                                      const
      uECC_word_t *left,\n                                      const uECC_word_t
      *right,\n                                      wordcount_t num_words)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: uECC_word_t::uECC_vli_sub
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_word_t uECC_vli_sub(uECC_word_t *result,\n                                      const
      uECC_word_t *left,\n                                      const uECC_word_t
      *right,\n                                      wordcount_t num_words)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - a
    - b
    - r0
    - r1
    - r2
    argTypes:
    - uECC_word_t
    - uECC_word_t
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 412
    functionName: muladd
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void muladd(uECC_word_t a,\n                   uECC_word_t b,\n                   uECC_word_t
      *r0,\n                   uECC_word_t *r1,\n                   uECC_word_t *r2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: muladd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:428,1
    - Dst: muladd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 445
    functionName: uECC_vli_mult
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - muladd
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_mult(uECC_word_t *result,\n                                const
      uECC_word_t *left,\n                                const uECC_word_t *right,\n
      \                               wordcount_t num_words)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - a
    - b
    - r0
    - r1
    - r2
    argTypes:
    - uECC_word_t
    - uECC_word_t
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 496
    functionName: mul2add
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mul2add(uECC_word_t a,\n                    uECC_word_t b,\n
      \                   uECC_word_t *r0,\n                    uECC_word_t *r1,\n
      \                   uECC_word_t *r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul2add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:511,1
    - Dst: muladd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - result
    - left
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 523
    functionName: uECC_vli_square
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - muladd
    - mul2add
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_square(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - left
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: uECC_vli_square
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_square(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  wordcount_t num_words)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:545,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:546,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 550
    functionName: uECC_vli_modAdd
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_add
    - uECC_vli_cmp_unsafe
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modAdd(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  const uECC_word_t *right,\n
      \                                 const uECC_word_t *mod,\n                                  wordcount_t
      num_words)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:559,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: uECC_vli_modSub
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_add
    - uECC_vli_sub
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modSub(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  const uECC_word_t *right,\n
      \                                 const uECC_word_t *mod,\n                                  wordcount_t
      num_words)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_numBits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:579,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:583,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:590,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:604,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:606,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - result
    - product
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 609
    functionName: uECC_vli_mmod
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_vli_clear
    - uECC_vli_rshift1
    - uECC_vli_numBits
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_mmod(uECC_word_t *result,\n                                uECC_word_t
      *product,\n                                const uECC_word_t *mod,\n                                wordcount_t
      num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:618,1
    - Dst: uECC_vli_mmod
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 620
    functionName: uECC_vli_modMult
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_mult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modMult(uECC_word_t *result,\n                                   const
      uECC_word_t *left,\n                                   const uECC_word_t *right,\n
      \                                  const uECC_word_t *mod,\n                                   wordcount_t
      num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:627,1
    - Dst: uECC_Curve::mmod_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:629,1
    - Dst: uECC_vli_mmod
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - left
    - right
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: uECC_vli_modMult_fast
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_mult
    - uECC_Curve::mmod_fast
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modMult_fast(uECC_word_t *result,\n                                        const
      uECC_word_t *left,\n                                        const uECC_word_t
      *right,\n                                        uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_square
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:644,1
    - Dst: uECC_vli_mmod
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - left
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 646
    functionName: uECC_vli_modSquare
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_square
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modSquare(uECC_word_t *result,\n                                     const
      uECC_word_t *left,\n                                     const uECC_word_t *mod,\n
      \                                    wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_square
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:653,1
    - Dst: uECC_Curve::mmod_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:655,1
    - Dst: uECC_vli_mmod
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - left
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: uECC_vli_modSquare_fast
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_square
    - uECC_Curve::mmod_fast
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modSquare_fast(uECC_word_t *result,\n                                          const
      uECC_word_t *left,\n                                          uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - left
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 669
    functionName: uECC_vli_modSquare
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modSquare(uECC_word_t *result,\n                                     const
      uECC_word_t *left,\n                                     const uECC_word_t *mod,\n
      \                                    wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - left
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: uECC_vli_modSquare_fast
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modSquare_fast(uECC_word_t *result,\n                                          const
      uECC_word_t *left,\n                                          uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vli
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 681
    functionName: EVEN
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVEN(vli)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVEN
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:685,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:686,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - uv
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 692
    functionName: vli_modInv_update
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_rshift1
    - EVEN
    - uECC_vli_add
    linkageType: ''
    returnType: void
    signature: "void vli_modInv_update(uECC_word_t *uv,\n                              const
      uECC_word_t *mod,\n                              wordcount_t num_words)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:703,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:704,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:708,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:709,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:710,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:712,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:713,1
    - Dst: EVEN
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:714,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:715,1
    - Dst: vli_modInv_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:716,1
    - Dst: EVEN
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:717,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:718,1
    - Dst: vli_modInv_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:719,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:721,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:722,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:723,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:724,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:726,1
    - Dst: vli_modInv_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:727,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:729,1
    - Dst: uECC_vli_rshift1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:730,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:731,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:732,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:734,1
    - Dst: vli_modInv_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:735,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - result
    - input
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 739
    functionName: uECC_vli_modInv
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_vli_add
    - uECC_vli_isZero
    - EVEN
    - uECC_vli_cmp_unsafe
    - uECC_vli_clear
    - uECC_vli_rshift1
    - vli_modInv_update
    - uECC_vli_sub
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_modInv(uECC_word_t *result,\n                                  const
      uECC_word_t *input,\n                                  const uECC_word_t *mod,\n
      \                                 wordcount_t num_words)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - point
    - ','
    - curve
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 747
    functionName: EccPoint_isZero
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EccPoint_isZero(point, curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:759,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:760,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:761,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - X1
    - Y1
    - Z
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 763
    functionName: apply_z
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult_fast
    - uECC_vli_modSquare_fast
    linkageType: ''
    returnType: void
    signature: "void apply_z(uECC_word_t * X1,\n                    uECC_word_t *
      Y1,\n                    const uECC_word_t * const Z,\n                    uECC_Curve
      curve)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:775,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:777,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:781,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:782,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:784,1
    - Dst: uECC_Curve::double_jacobian
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:785,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - initial_Z
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 787
    functionName: XYcZ_initial_double
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_Curve::double_jacobian
    - uECC_vli_clear
    - apply_z
    linkageType: ''
    returnType: void
    signature: "void XYcZ_initial_double(uECC_word_t * X1,\n                                uECC_word_t
      * Y1,\n                                uECC_word_t * X2,\n                                uECC_word_t
      * Y2,\n                                const uECC_word_t * const initial_Z,\n
      \                               uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:802,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:803,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:804,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:805,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:806,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:807,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:809,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:810,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:811,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:812,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:813,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:814,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:815,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 818
    functionName: XYcZ_add
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult_fast
    - uECC_vli_modSquare_fast
    - uECC_vli_modSub
    - uECC_vli_set
    linkageType: ''
    returnType: void
    signature: "void XYcZ_add(uECC_word_t * X1,\n                     uECC_word_t
      * Y1,\n                     uECC_word_t * X2,\n                     uECC_word_t
      * Y2,\n                     uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:835,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:836,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:837,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:838,1
    - Dst: uECC_vli_modAdd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:839,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:840,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:842,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:843,1
    - Dst: uECC_vli_modAdd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:844,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:845,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:846,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:848,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:849,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:850,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:852,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:853,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:854,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:855,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:856,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 5
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 859
    functionName: XYcZ_addC
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_vli_modSquare_fast
    - uECC_vli_modMult_fast
    - uECC_vli_modSub
    - uECC_vli_modAdd
    linkageType: ''
    returnType: void
    signature: "void XYcZ_addC(uECC_word_t * X1,\n                      uECC_word_t
      * Y1,\n                      uECC_word_t * X2,\n                      uECC_word_t
      * Y2,\n                      uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:876,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:877,1
    - Dst: XYcZ_initial_double
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:879,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:882,1
    - Dst: XYcZ_addC
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:883,1
    - Dst: XYcZ_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:884,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:887,1
    - Dst: XYcZ_addC
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:888,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:891,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:892,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:893,1
    - Dst: uECC_vli_modInv
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:894,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:896,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:897,1
    - Dst: XYcZ_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:900,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:901,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:903,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - result
    - point
    - scalar
    - initial_Z
    - num_bits
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - bitcount_t
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 862
    functionDepth: 6
    functionLinenumber: 862
    functionLinenumberEnd: 905
    functionName: EccPoint_mult
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - XYcZ_addC
    - apply_z
    - XYcZ_add
    - uECC_vli_modMult_fast
    - XYcZ_initial_double
    - uECC_vli_modSub
    - uECC_vli_testBit
    - uECC_vli_modInv
    linkageType: ''
    returnType: void
    signature: "void EccPoint_mult(uECC_word_t * result,\n                          const
      uECC_word_t * point,\n                          const uECC_word_t * scalar,\n
      \                         const uECC_word_t * initial_Z,\n                          bitcount_t
      num_bits,\n                          uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:911,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:913,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:915,1
    - Dst: uECC_vli_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - k
    - k0
    - k1
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 918
    functionName: regularize_k
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_testBit
    - BITS_TO_WORDS
    - uECC_vli_add
    linkageType: ''
    returnType: uECC_word_t
    signature: "uECC_word_t regularize_k(const uECC_word_t * const k,\n                                uECC_word_t
      *k0,\n                                uECC_word_t *k1,\n                                uECC_Curve
      curve)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_numBits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:927,1
    - Dst: g_rng_function
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:934,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:938,1
    - Dst: uECC_vli_cmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - random
    - top
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 944
    functionName: uECC_generate_random_int
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_isZero
    - g_rng_function
    - uECC_vli_numBits
    - uECC_vli_cmp
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_generate_random_int(uECC_word_t *random,\n                                          const
      uECC_word_t *top,\n                                          wordcount_t num_words)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regularize_k
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:957,1
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:962,1
    - Dst: EccPoint_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:967,1
    - Dst: EccPoint_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - result
    - private_key
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 946
    functionDepth: 7
    functionLinenumber: 946
    functionLinenumberEnd: 973
    functionName: EccPoint_compute_public_key
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - EccPoint_isZero
    - uECC_generate_random_int
    - EccPoint_mult
    - regularize_k
    linkageType: ''
    returnType: uECC_word_t
    signature: "uECC_word_t EccPoint_compute_public_key(uECC_word_t *result,\n                                               uECC_word_t
      *private_key,\n                                               uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bytes
    - num_bytes
    - native
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 984
    functionName: uECC_vli_nativeToBytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_nativeToBytes(uint8_t *bytes,\n                                         int
      num_bytes,\n                                         const uint8_t *native)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - native
    - bytes
    - num_bytes
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: uECC_vli_bytesToNative
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_nativeToBytes
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_bytesToNative(uint8_t *native,\n                                         const
      uint8_t *bytes,\n                                         int num_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bytes
    - num_bytes
    - native
    argTypes:
    - uint8_t*
    - int
    - uECC_word_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1002
    functionName: uECC_vli_nativeToBytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_nativeToBytes(uint8_t *bytes,\n                                         int
      num_bytes,\n                                         const uECC_word_t *native)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - native
    - bytes
    - num_bytes
    argTypes:
    - uECC_word_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1014
    functionName: uECC_vli_bytesToNative
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_clear
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_VLI_API uECC_vli_bytesToNative(uECC_word_t *native,\n                                         const
      uint8_t *bytes,\n                                         int num_bytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1031,1
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1031,1
    - Dst: EccPoint_compute_public_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1035,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1037,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1037,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1038,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - public_key
    - private_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1018
    functionDepth: 8
    functionLinenumber: 1018
    functionLinenumberEnd: 1046
    functionName: uECC_make_key
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - EccPoint_compute_public_key
    - uECC_vli_nativeToBytes
    - uECC_generate_random_int
    - BITS_TO_BYTES
    - BITS_TO_WORDS
    linkageType: ''
    returnType: int
    signature: "int uECC_make_key(uint8_t *public_key,\n                  uint8_t
      *private_key,\n                  uECC_Curve curve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1063,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1064,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1066,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1066,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1067,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1068,1
    - Dst: regularize_k
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1073,1
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1078,1
    - Dst: EccPoint_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1084,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1086,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1088,1
    - Dst: EccPoint_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - public_key
    - private_key
    - secret
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1048
    functionDepth: 7
    functionLinenumber: 1048
    functionLinenumberEnd: 1091
    functionName: uECC_shared_secret
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - EccPoint_isZero
    - uECC_vli_nativeToBytes
    - uECC_vli_bytesToNative
    - uECC_generate_random_int
    - bcopy
    - BITS_TO_BYTES
    - EccPoint_mult
    - regularize_k
    linkageType: ''
    returnType: int
    signature: "int uECC_shared_secret(const uint8_t *public_key,\n                       const
      uint8_t *private_key,\n                       uint8_t *secret,\n                       uECC_Curve
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - public_key
    - compressed
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: uECC_compress
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uECC_compress(const uint8_t *public_key, uint8_t *compressed,
      uECC_Curve curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1114,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1116,1
    - Dst: uECC_Curve::x_side
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1118,1
    - Dst: uECC_Curve::mod_sqrt
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1119,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1122,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1126,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - compressed
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1129
    functionName: uECC_decompress
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_Curve::mod_sqrt
    - uECC_vli_nativeToBytes
    - uECC_vli_bytesToNative
    - bcopy
    - uECC_Curve::x_side
    - uECC_vli_sub
    linkageType: ''
    returnType: void
    signature: void uECC_decompress(const uint8_t *compressed, uint8_t *public_key,
      uECC_Curve curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EccPoint_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1138,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1143,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1144,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1148,1
    - Dst: uECC_Curve::x_side
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1149,1
    - Dst: uECC_vli_equal
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - point
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1132
    functionDepth: 4
    functionLinenumber: 1132
    functionLinenumberEnd: 1153
    functionName: uECC_valid_point
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modSquare_fast
    - EccPoint_isZero
    - uECC_vli_equal
    - uECC_vli_cmp_unsafe
    - uECC_Curve::x_side
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_VLI_API uECC_valid_point(const uECC_word_t *point, uECC_Curve
      curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1163,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1164,1
    - Dst: uECC_valid_point
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1155
    functionDepth: 5
    functionLinenumber: 1155
    functionLinenumberEnd: 1168
    functionName: uECC_valid_public_key
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_bytesToNative
    - uECC_valid_point
    linkageType: ''
    returnType: int
    signature: int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1180,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1180,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1184,1
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1184,1
    - Dst: uECC_vli_cmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1188,1
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1188,1
    - Dst: EccPoint_compute_public_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1193,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1198,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - private_key
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1170
    functionDepth: 8
    functionLinenumber: 1170
    functionLinenumberEnd: 1203
    functionName: uECC_compute_public_key
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_isZero
    - EccPoint_compute_public_key
    - uECC_vli_nativeToBytes
    - uECC_vli_cmp
    - uECC_vli_bytesToNative
    - BITS_TO_BYTES
    - BITS_TO_WORDS
    linkageType: ''
    returnType: int
    signature: int uECC_compute_public_key(const uint8_t *private_key, uint8_t *public_key,
      uECC_Curve curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1212,1
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1213,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1222,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1224,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1226,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1241,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - native
    - bits
    - bits_size
    - curve
    argTypes:
    - uECC_word_t*
    - uint8_t*
    - unsigned
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1244
    functionName: bits2int
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_WORDS
    - uECC_vli_cmp_unsafe
    - uECC_vli_bytesToNative
    - uECC_vli_clear
    - bcopy
    - BITS_TO_BYTES
    - uECC_vli_sub
    linkageType: ''
    returnType: void
    signature: "void bits2int(uECC_word_t *native,\n                     const uint8_t
      *bits,\n                     unsigned bits_size,\n                     uECC_Curve
      curve)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1264,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1268,1
    - Dst: uECC_vli_cmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1268,1
    - Dst: regularize_k
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1272,1
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1276,1
    - Dst: EccPoint_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1281,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1282,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1289,1
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1291,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1297,1
    - Dst: uECC_vli_modInv
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1298,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1299,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1302,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1306,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1306,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1308,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1308,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1312,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1313,1
    - Dst: bits2int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1315,1
    - Dst: uECC_vli_modAdd
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1316,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1317,1
    - Dst: uECC_vli_numBits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1318,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1322,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - private_key
    - message_hash
    - hash_size
    - k
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uECC_word_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1246
    functionDepth: 7
    functionLinenumber: 1246
    functionLinenumberEnd: 1327
    functionName: uECC_sign_with_k_internal
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_vli_modAdd
    - uECC_vli_modMult
    - uECC_vli_isZero
    - uECC_vli_nativeToBytes
    - uECC_vli_cmp
    - uECC_vli_numBits
    - uECC_vli_bytesToNative
    - uECC_generate_random_int
    - uECC_vli_clear
    - bcopy
    - uECC_vli_modInv
    - BITS_TO_WORDS
    - bits2int
    - BITS_TO_BYTES
    - EccPoint_mult
    - regularize_k
    linkageType: ''
    returnType: int
    signature: "int uECC_sign_with_k_internal(const uint8_t *private_key,\n                            const
      uint8_t *message_hash,\n                            unsigned hash_size,\n                            uECC_word_t
      *k,\n                            uint8_t *signature,\n                            uECC_Curve
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits2int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1337,1
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1337,1
    - Dst: uECC_sign_with_k_internal
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - private_key
    - message_hash
    - hash_size
    - k
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1330
    functionDepth: 8
    functionLinenumber: 1330
    functionLinenumberEnd: 1339
    functionName: uECC_sign_with_k
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - bits2int
    - uECC_sign_with_k_internal
    - BITS_TO_BYTES
    linkageType: ''
    returnType: int
    signature: "int uECC_sign_with_k(const uint8_t *private_key,\n                            const
      uint8_t *message_hash,\n                            unsigned hash_size,\n                            const
      uint8_t *k,\n                            uint8_t *signature,\n                            uECC_Curve
      curve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uECC_generate_random_int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1350,1
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1350,1
    - Dst: uECC_sign_with_k_internal
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - private_key
    - message_hash
    - hash_size
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1341
    functionDepth: 8
    functionLinenumber: 1341
    functionLinenumberEnd: 1359
    functionName: uECC_sign
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_WORDS
    - uECC_generate_random_int
    - uECC_sign_with_k_internal
    linkageType: ''
    returnType: int
    signature: "int uECC_sign(const uint8_t *private_key,\n              const uint8_t
      *message_hash,\n              unsigned hash_size,\n              uint8_t *signature,\n
      \             uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::init_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1371,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hash_context
    - K
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1373
    functionName: HMAC_init
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::init_hash
    - uECC_HashContext*::update_hash
    linkageType: ''
    returnType: void
    signature: void HMAC_init(const uECC_HashContext *hash_context, const uint8_t
      *K)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::update_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash_context
    - message
    - message_size
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1379
    functionName: HMAC_update
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::update_hash
    linkageType: ''
    returnType: void
    signature: "void HMAC_update(const uECC_HashContext *hash_context,\n                        const
      uint8_t *message,\n                        unsigned message_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::finish_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1391,1
    - Dst: uECC_HashContext*::init_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1393,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1394,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1395,1
    - Dst: uECC_HashContext*::finish_hash
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - hash_context
    - K
    - result
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1397
    functionName: HMAC_finish
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::finish_hash
    - uECC_HashContext*::init_hash
    - uECC_HashContext*::update_hash
    linkageType: ''
    returnType: void
    signature: "void HMAC_finish(const uECC_HashContext *hash_context,\n                        const
      uint8_t *K,\n                        uint8_t *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_init
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1401,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1402,1
    - Dst: HMAC_finish
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hash_context
    - K
    - V
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1404
    functionName: update_V
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - HMAC_init
    - HMAC_finish
    - HMAC_update
    linkageType: ''
    returnType: void
    signature: void update_V(const uECC_HashContext *hash_context, uint8_t *K, uint8_t
      *V)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1421,1
    - Dst: HMAC_init
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1431,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1433,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1434,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1435,1
    - Dst: HMAC_finish
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1436,1
    - Dst: update_V
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1438,1
    - Dst: HMAC_init
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1441,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1443,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1444,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1445,1
    - Dst: HMAC_finish
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1446,1
    - Dst: update_V
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1448,1
    - Dst: update_V
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1455,1
    - Dst: uECC_sign_with_k_internal
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1470,1
    - Dst: HMAC_init
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1475,1
    - Dst: HMAC_update
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1477,1
    - Dst: HMAC_finish
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1478,1
    - Dst: update_V
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 6
    argNames:
    - private_key
    - message_hash
    - hash_size
    - hash_context
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uECC_HashContext*
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1412
    functionDepth: 8
    functionLinenumber: 1412
    functionLinenumberEnd: 1483
    functionName: uECC_sign_deterministic
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - HMAC_init
    - update_V
    - HMAC_update
    - uECC_sign_with_k_internal
    - BITS_TO_WORDS
    - HMAC_finish
    linkageType: ''
    returnType: int
    signature: "int uECC_sign_deterministic(const uint8_t *private_key,\n                            const
      uint8_t *message_hash,\n                            unsigned hash_size,\n                            const
      uECC_HashContext *hash_context,\n                            uint8_t *signature,\n
      \                           uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - bitcount_t
    - bitcount_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1487
    functionName: smax
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitcount_t
    signature: bitcount_t smax(bitcount_t a, bitcount_t b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1513,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1520,1
    - Dst: bcopy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1521,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1523,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1524,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1526,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1527,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1531,1
    - Dst: uECC_vli_isZero
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1531,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1536,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1537,1
    - Dst: uECC_vli_modInv
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1542,1
    - Dst: bits2int
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1544,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1545,1
    - Dst: uECC_vli_modMult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1546,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1549,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1550,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1551,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1552,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1553,1
    - Dst: XYcZ_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1554,1
    - Dst: uECC_vli_modInv
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1555,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1556,1
    - Dst: smax
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1563,1
    - Dst: uECC_vli_numBits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1563,1
    - Dst: uECC_vli_numBits
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1564,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1566,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1567,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1568,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1569,1
    - Dst: uECC_vli_clear
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1570,1
    - Dst: uECC_Curve::double_jacobian
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1575,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1577,1
    - Dst: uECC_vli_testBit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1577,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1580,1
    - Dst: uECC_vli_set
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1581,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1582,1
    - Dst: uECC_vli_modSub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1583,1
    - Dst: XYcZ_add
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1584,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1585,1
    - Dst: uECC_vli_modInv
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1589,1
    - Dst: apply_z
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1590,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1593,1
    - Dst: uECC_vli_sub
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1594,1
    - Dst: uECC_vli_equal
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 5
    argNames:
    - public_key
    - message_hash
    - hash_size
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uint8_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1489
    functionDepth: 5
    functionLinenumber: 1489
    functionLinenumberEnd: 1599
    functionName: uECC_verify
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_equal
    - smax
    - uECC_vli_cmp_unsafe
    - uECC_vli_bytesToNative
    - uECC_vli_modInv
    - bits2int
    - uECC_vli_set
    - uECC_vli_modMult
    - uECC_vli_isZero
    - XYcZ_add
    - uECC_vli_modSub
    - bcopy
    - BITS_TO_WORDS
    - uECC_vli_numBits
    - uECC_Curve::double_jacobian
    - apply_z
    - uECC_vli_modMult_fast
    - uECC_vli_testBit
    - uECC_vli_sub
    - uECC_vli_clear
    linkageType: ''
    returnType: int
    signature: "int uECC_verify(const uint8_t *public_key,\n                const
      uint8_t *message_hash,\n                unsigned hash_size,\n                const
      uint8_t *signature,\n                uECC_Curve curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: uECC_curve_num_words
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_words(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1609
    functionName: uECC_curve_num_bytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_bytes(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1613
    functionName: uECC_curve_num_bits
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_bits(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1617
    functionName: uECC_curve_num_n_words
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_WORDS
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_n_words(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1621
    functionName: uECC_curve_num_n_bytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_n_bytes(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1625
    functionName: uECC_curve_num_n_bits
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned uECC_curve_num_n_bits(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1629
    functionName: uECC_curve_p
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: uECC_word_t *uECC_curve_p(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1633
    functionName: uECC_curve_n
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: uECC_word_t *uECC_curve_n(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1637
    functionName: uECC_curve_G
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: uECC_word_t *uECC_curve_G(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1641
    functionName: uECC_curve_b
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: uECC_word_t *uECC_curve_b(uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_Curve::mod_sqrt
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1646
    functionName: uECC_vli_mod_sqrt
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_Curve::mod_sqrt
    linkageType: ''
    returnType: void
    signature: void uECC_vli_mod_sqrt(uECC_word_t *a, uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uECC_Curve::mmod_fast
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1651,1
    - Dst: uECC_vli_mmod
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - product
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1649
    functionDepth: 3
    functionLinenumber: 1649
    functionLinenumberEnd: 1655
    functionName: uECC_vli_mmod_fast
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_Curve::mmod_fast
    linkageType: ''
    returnType: void
    signature: void uECC_vli_mmod_fast(uECC_word_t *result, uECC_word_t *product,
      uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regularize_k
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1664,1
    - Dst: EccPoint_mult
      Src: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - point
    - scalar
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1657
    functionDepth: 7
    functionLinenumber: 1657
    functionLinenumberEnd: 1667
    functionName: uECC_point_mult
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - EccPoint_mult
    - regularize_k
    linkageType: ''
    returnType: void
    signature: "void uECC_point_mult(uECC_word_t *result,\n                     const
      uECC_word_t *point,\n                     const uECC_word_t *scalar,\n                     uECC_Curve
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:9,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:11,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - vli
    - size
    argTypes:
    - char*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 14
    functionName: vli_print
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void vli_print(char *str, uint8_t *vli, unsigned int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:28,1
    - Dst: uECC_secp192r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:31,1
    - Dst: uECC_secp224r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:34,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:37,1
    - Dst: uECC_secp256k1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:40,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:43,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:46,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:47,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:49,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:50,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:52,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:53,1
    - Dst: uECC_compute_public_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:57,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:58,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:61,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:62,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:63,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:64,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:65,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:69,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:70,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:72,1
    - Dst: uECC_compute_public_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:73,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:75,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 16
    functionDepth: 9
    functionLinenumber: 16
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c
    functionUses: 8
    functionsReached:
    - memset
    - uECC_secp192r1
    - uECC_compute_public_key
    - memcmp
    - fflush
    - uECC_make_key
    - uECC_secp224r1
    - uECC_secp256k1
    - printf
    - vli_print
    - uECC_secp256r1
    - uECC_secp160r1
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:39,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vli
    - size
    argTypes:
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: vli_print
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void vli_print(uint8_t *vli, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:46,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:47,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - bytes
    - count
    argTypes:
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: strtobytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    functionUses: 0
    functionsReached:
    - exit
    - sscanf
    - printf
    linkageType: ''
    returnType: void
    signature: void strtobytes(const char* str, uint8_t* bytes, int count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_private_key_size
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:70,1
    - Dst: uECC_curve_public_key_size
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:71,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:74,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:75,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:76,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:77,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:78,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:79,1
    - Dst: uECC_sign_with_k
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:81,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:84,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:87,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:89,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:90,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:91,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:92,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:93,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:95,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:97,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:98,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:99,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:100,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:101,1
    - Dst: uECC_verify
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:104,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - tests
    - num_tests
    - curve
    argTypes:
    - Test*
    - int
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 112
    functionName: run
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    functionUses: 36
    functionsReached:
    - uECC_curve_private_key_size
    - uECC_verify
    - memcmp
    - uECC_curve_public_key_size
    - printf
    - uECC_sign_with_k
    - vli_print
    - strtobytes
    linkageType: ''
    returnType: int
    signature: int run(Test* tests, int num_tests, uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - curve
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: RUN_TESTS
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_TESTS(curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    functionUses: 8
    functionsReached:
    - RUN_TESTS
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - size
    argTypes:
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: vli_print
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void vli_print(uint8_t *vli, unsigned int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:26,1
    - Dst: uECC_secp192r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:29,1
    - Dst: uECC_secp224r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:32,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:35,1
    - Dst: uECC_secp256k1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:38,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:41,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:45,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:46,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:48,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:49,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:50,1
    - Dst: uECC_shared_secret
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:54,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:55,1
    - Dst: uECC_shared_secret
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:59,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:60,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:64,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:65,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:66,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:67,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:68,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:69,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:70,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:71,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:72,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:73,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:74,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:75,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:76,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:77,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:78,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:79,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:80,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:81,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:82,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:83,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 14
    functionDepth: 9
    functionLinenumber: 14
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
    functionUses: 8
    functionsReached:
    - uECC_secp192r1
    - memcmp
    - fflush
    - uECC_make_key
    - uECC_shared_secret
    - uECC_secp224r1
    - uECC_secp256k1
    - printf
    - vli_print
    - uECC_secp256r1
    - uECC_secp160r1
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:18,1
    - Dst: uECC_secp192r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:21,1
    - Dst: uECC_secp224r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:24,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:27,1
    - Dst: uECC_secp256k1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:30,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:33,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:36,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:37,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:39,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:40,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:43,1
    - Dst: uECC_sign
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:45,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:46,1
    - Dst: uECC_verify
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:50,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:51,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 8
    functionDepth: 9
    functionLinenumber: 8
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c
    functionUses: 8
    functionsReached:
    - uECC_secp192r1
    - uECC_verify
    - fflush
    - uECC_make_key
    - uECC_secp224r1
    - uECC_sign
    - uECC_secp256k1
    - memcpy
    - printf
    - uECC_secp256r1
    - uECC_secp160r1
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:261,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vli
    - size
    argTypes:
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: vli_print
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void vli_print(uint8_t *vli, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:268,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:269,1
    - Dst: exit
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - bytes
    - count
    argTypes:
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: strtobytes
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    functionUses: 1
    functionsReached:
    - exit
    - sscanf
    - printf
    linkageType: ''
    returnType: void
    signature: void strtobytes(const char* str, uint8_t* bytes, int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_private_key_size
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:286,1
    - Dst: uECC_curve_public_key_size
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:287,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:290,1
    - Dst: uECC_compute_public_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:291,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:294,1
    - Dst: strtobytes
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:297,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:298,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:300,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:301,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:302,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:303,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - tests
    - num_tests
    - curve
    argTypes:
    - Test*
    - int
    - uECC_Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 310
    functionName: run
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    functionUses: 36
    functionsReached:
    - uECC_curve_private_key_size
    - uECC_compute_public_key
    - memcmp
    - uECC_curve_public_key_size
    - printf
    - vli_print
    - strtobytes
    linkageType: ''
    returnType: int
    signature: int run(Test* tests, int num_tests, uECC_Curve curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - curve
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: RUN_TESTS
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_TESTS(curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:322,1
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:325,1
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:328,1
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:331,1
    - Dst: RUN_TESTS
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    functionUses: 8
    functionsReached:
    - RUN_TESTS
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:13,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:15,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - vli
    - size
    argTypes:
    - char*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: vli_print
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void vli_print(char *str, uint8_t *vli, unsigned int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:32,1
    - Dst: uECC_secp192r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:35,1
    - Dst: uECC_secp224r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:38,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:41,1
    - Dst: uECC_secp256k1
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:44,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:47,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:52,1
    - Dst: fflush
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:53,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:55,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:56,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:59,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:60,1
    - Dst: uECC_compress
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:65,1
    - Dst: uECC_decompress
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:66,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:68,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:69,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:70,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:71,1
    - Dst: vli_print
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:72,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c
    functionUses: 8
    functionsReached:
    - memset
    - uECC_secp192r1
    - memcmp
    - fflush
    - uECC_make_key
    - uECC_decompress
    - uECC_secp224r1
    - uECC_compress
    - uECC_secp256k1
    - printf
    - vli_print
    - uECC_secp256r1
    - uECC_secp160r1
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - level
    - log_ctx
    argTypes:
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: ptls_asn1_print_indent
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_minicrypto_log_ctx_t*::fn
    linkageType: ''
    returnType: void
    signature: void ptls_asn1_print_indent(int level, ptls_minicrypto_log_ctx_t *log_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_print_indent
      Src: /src/h2o/deps/picotls/lib/asn1.c:59,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - error_label
    - bytes_max
    - byte_index
    - level
    - log_ctx
    argTypes:
    - char*
    - size_t
    - size_t
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: ptls_asn1_error_message
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_asn1_print_indent
    - ptls_minicrypto_log_ctx_t*::fn
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_asn1_error_message(char const *error_label, size_t bytes_max,
      size_t byte_index, int level,\n                               ptls_minicrypto_log_ctx_t
      *log_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:71,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:74,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - bytes
    - bytes_max
    - byte_index
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: ptls_asn1_dump_content
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_minicrypto_log_ctx_t*::fn
    linkageType: ''
    returnType: void
    signature: void ptls_asn1_dump_content(const uint8_t *bytes, size_t bytes_max,
      size_t byte_index, ptls_minicrypto_log_ctx_t *log_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 8
    argNames:
    - bytes
    - bytes_max
    - structure_bit
    - type_class
    - type_number
    - decode_error
    - level
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - uint32_t*
    - int*
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 119
    functionName: ptls_asn1_read_type
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_asn1_error_message
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_asn1_read_type(const uint8_t *bytes, size_t bytes_max,
      int *structure_bit, int *type_class, uint32_t *type_number,\n                           int
      *decode_error, int level, ptls_minicrypto_log_ctx_t *log_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_print_indent
      Src: /src/h2o/deps/picotls/lib/asn1.c:124,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:126,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:128,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - type_class
    - type_number
    - level
    - log_ctx
    argTypes:
    - int
    - uint32_t
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: ptls_asn1_print_type
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_asn1_print_indent
    - ptls_minicrypto_log_ctx_t*::fn
    linkageType: ''
    returnType: void
    signature: void ptls_asn1_print_type(int type_class, uint32_t type_number, int
      level, ptls_minicrypto_log_ctx_t *log_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:151,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 9
    argNames:
    - bytes
    - bytes_max
    - byte_index
    - length
    - indefinite_length
    - last_byte
    - decode_error
    - level
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - uint32_t*
    - int*
    - size_t*
    - int*
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 180
    functionName: ptls_asn1_read_length
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 0
    functionsReached:
    - ptls_asn1_error_message
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_asn1_read_length(const uint8_t *bytes, size_t bytes_max,
      size_t byte_index, uint32_t *length, int *indefinite_length,\n                             size_t
      *last_byte, int *decode_error, int level, ptls_minicrypto_log_ctx_t *log_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:190,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:195,1
    - Dst: ptls_asn1_read_length
      Src: /src/h2o/deps/picotls/lib/asn1.c:201,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 9
    argNames:
    - bytes
    - bytes_max
    - byte_index
    - expected_type
    - length
    - indefinite_length
    - last_byte
    - decode_error
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - uint8_t
    - uint32_t*
    - int*
    - size_t*
    - int*
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 212
    functionName: ptls_asn1_get_expected_type_and_length
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 1
    functionsReached:
    - ptls_asn1_error_message
    - ptls_asn1_read_length
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_asn1_get_expected_type_and_length(const uint8_t *bytes,
      size_t bytes_max, size_t byte_index, uint8_t expected_type,\n                                              uint32_t
      *length, int *indefinite_length, size_t *last_byte, int *decode_error,\n                                              ptls_minicrypto_log_ctx_t
      *log_ctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:219,1
    - Dst: ptls_asn1_read_type
      Src: /src/h2o/deps/picotls/lib/asn1.c:231,1
    - Dst: ptls_asn1_print_type
      Src: /src/h2o/deps/picotls/lib/asn1.c:234,1
    - Dst: ptls_asn1_read_length
      Src: /src/h2o/deps/picotls/lib/asn1.c:239,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:245,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/asn1.c:252,1
    - Dst: ptls_asn1_print_indent
      Src: /src/h2o/deps/picotls/lib/asn1.c:259,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:260,1
    - Dst: ptls_asn1_validation_recursive
      Src: /src/h2o/deps/picotls/lib/asn1.c:266,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:277,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:279,1
    - Dst: ptls_asn1_print_indent
      Src: /src/h2o/deps/picotls/lib/asn1.c:284,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:285,1
    - Dst: ptls_asn1_dump_content
      Src: /src/h2o/deps/picotls/lib/asn1.c:288,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 5
    argNames:
    - bytes
    - bytes_max
    - decode_error
    - level
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 294
    functionName: ptls_asn1_validation_recursive
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 1
    functionsReached:
    - ptls_asn1_print_type
    - ptls_asn1_read_length
    - ptls_asn1_print_indent
    - ptls_asn1_error_message
    - ptls_minicrypto_log_ctx_t*::fn
    - ptls_asn1_dump_content
    - ptls_asn1_validation_recursive
    - ptls_asn1_read_type
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_asn1_validation_recursive(const uint8_t *bytes, size_t
      bytes_max, int *decode_error, int level,\n                                      ptls_minicrypto_log_ctx_t
      *log_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_validation_recursive
      Src: /src/h2o/deps/picotls/lib/asn1.c:299,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/asn1.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - bytes
    - length
    - log_ctx
    argTypes:
    - uint8_t*
    - size_t
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: ptls_asn1_validation
    functionSourceFile: /src/h2o/deps/picotls/lib/asn1.c
    functionUses: 1
    functionsReached:
    - ptls_minicrypto_log_ctx_t*::fn
    - ptls_asn1_validation_recursive
    linkageType: ''
    returnType: int
    signature: int ptls_asn1_validation(const uint8_t *bytes, size_t length, ptls_minicrypto_log_ctx_t
      *log_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: aegis128l_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aegis128l_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: aegis128l_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aegis128l_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/libaegis.h:54,1
    - Dst: aegis128l_state_init
      Src: /src/h2o/deps/picotls/lib/libaegis.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: aegis128l_init
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - aegis128l_state_init
    linkageType: ''
    returnType: void
    signature: void aegis128l_init(ptls_aead_context_t *_ctx, uint64_t seq, const
      void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aegis128l_state_encrypt_update
      Src: /src/h2o/deps/picotls/lib/libaegis.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: aegis128l_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - aegis128l_state_encrypt_update
    linkageType: ''
    returnType: size_t
    signature: size_t aegis128l_encrypt_update(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aegis128l_state_encrypt_final
      Src: /src/h2o/deps/picotls/lib/libaegis.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: aegis128l_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - aegis128l_state_encrypt_final
    linkageType: ''
    returnType: size_t
    signature: size_t aegis128l_encrypt_final(ptls_aead_context_t *_ctx, void *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/libaegis.h:89,1
    - Dst: aegis128l_decrypt
      Src: /src/h2o/deps/picotls/lib/libaegis.h:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: aegis128l_decrypt_oneshot
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - aegis128l_decrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t aegis128l_decrypt_oneshot(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                                        const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/libaegis.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: aegis128l_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void aegis128l_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:132,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: aegis128l_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int aegis128l_setup_crypto(ptls_aead_context_t *_ctx, int is_enc, const
      void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: aegis256_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aegis256_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: aegis256_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aegis256_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/libaegis.h:166,1
    - Dst: aegis256_state_init
      Src: /src/h2o/deps/picotls/lib/libaegis.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: aegis256_init
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - aegis256_state_init
    linkageType: ''
    returnType: void
    signature: void aegis256_init(ptls_aead_context_t *_ctx, uint64_t seq, const void
      *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aegis256_state_encrypt_update
      Src: /src/h2o/deps/picotls/lib/libaegis.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: aegis256_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - aegis256_state_encrypt_update
    linkageType: ''
    returnType: size_t
    signature: size_t aegis256_encrypt_update(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aegis256_state_encrypt_final
      Src: /src/h2o/deps/picotls/lib/libaegis.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: aegis256_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - aegis256_state_encrypt_final
    linkageType: ''
    returnType: size_t
    signature: size_t aegis256_encrypt_final(ptls_aead_context_t *_ctx, void *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/libaegis.h:201,1
    - Dst: aegis256_decrypt
      Src: /src/h2o/deps/picotls/lib/libaegis.h:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 209
    functionName: aegis256_decrypt_oneshot
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - aegis256_decrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t aegis256_decrypt_oneshot(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                                       const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/libaegis.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: aegis256_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void aegis256_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:244,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/libaegis.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: aegis256_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/libaegis.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int aegis256_setup_crypto(ptls_aead_context_t *_ctx, int is_enc, const
      void *key, const void *iv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:41,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:42,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:43,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:44,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:45,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:46,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:47,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:48,1
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/lib/ffx.c:52,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ffx.c:69,1
    - Dst: ffx_dispose
      Src: /src/h2o/deps/picotls/lib/ffx.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - _ctx
    - algo
    - is_enc
    - nb_rounds
    - bit_length
    - key
    argTypes:
    - ptls_cipher_context_t*
    - ptls_cipher_algorithm_t*
    - int
    - int
    - size_t
    - void*
    assertStmts:
    - condition: (len <= 32 && len >= 2)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.do_dispose == NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.algo == NULL || algo->key_size == ctx->super.algo->key_size)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.do_transform == NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.do_init == NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.algo == NULL || algo->iv_size == ctx->super.algo->iv_size)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (ctx->super.algo == NULL || ctx->super.algo->block_size == len)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (algo->iv_size == 16)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    constantsTouched: []
    func_position:
      end: 79
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 79
    functionName: ptls_ffx_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    - ffx_dispose
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: int
    signature: "int ptls_ffx_setup_crypto(ptls_cipher_context_t *_ctx, ptls_cipher_algorithm_t
      *algo, int is_enc, int nb_rounds, size_t bit_length,\n                          const
      void *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:85,1
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/lib/ffx.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts:
    - condition: (ctx->super.do_dispose == ffx_dispose)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: ffx_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 1
    functionsReached:
    - ptls_cipher_free
    - assert
    linkageType: ''
    returnType: void
    signature: void ffx_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ffx.c:106,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ffx.c:109,1
    - Dst: ptls_ffx_setup_crypto
      Src: /src/h2o/deps/picotls/lib/ffx.c:110,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/ffx.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - algo
    - is_enc
    - nb_rounds
    - bit_length
    - key
    argTypes:
    - ptls_cipher_algorithm_t*
    - int
    - int
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: ptls_ffx_new
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 1
    functionsReached:
    - memset
    - malloc
    - ptls_ffx_setup_crypto
    - free
    linkageType: ''
    returnType: ptls_cipher_context_t
    signature: ptls_cipher_context_t *ptls_ffx_new(ptls_cipher_algorithm_t *algo,
      int is_enc, int nb_rounds, size_t bit_length, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:125,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/lib/ffx.c:130,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/ffx.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 11
    argNames:
    - enc_ctx
    - source
    - source_size
    - target
    - target_size
    - mask_last_byte
    - confusion
    - iv
    - tweaks
    - round
    - nb_rounds
    argTypes:
    - ptls_cipher_context_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: ptls_ffx_one_pass
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_cipher_init
    - ptls_cipher_encrypt
    linkageType: ''
    returnType: void
    signature: "void ptls_ffx_one_pass(ptls_cipher_context_t *enc_ctx, uint8_t *source,
      size_t source_size, uint8_t *target,\n                              size_t target_size,
      uint8_t mask_last_byte, uint8_t *confusion, uint8_t *iv, uint8_t *tweaks,\n
      \                             uint8_t round, uint8_t nb_rounds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:144,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:147,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ffx.c:149,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:154,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:155,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ffx.c:156,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ffx.c:157,1
    - Dst: ptls_ffx_one_pass
      Src: /src/h2o/deps/picotls/lib/ffx.c:167,1
    - Dst: ptls_ffx_one_pass
      Src: /src/h2o/deps/picotls/lib/ffx.c:169,1
    - Dst: ptls_ffx_one_pass
      Src: /src/h2o/deps/picotls/lib/ffx.c:181,1
    - Dst: ptls_ffx_one_pass
      Src: /src/h2o/deps/picotls/lib/ffx.c:183,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:190,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:195,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ffx.c:197,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ffx.c:198,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ffx.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->super.do_transform == ffx_encrypt)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    - condition: (len == ctx->byte_length)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    constantsTouched: []
    func_position:
      end: 200
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 200
    functionName: ffx_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 0
    functionsReached:
    - ptls_ffx_one_pass
    - memcpy
    - ptls_clear_memory
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void ffx_encrypt(ptls_cipher_context_t *_ctx, void *output, const void
      *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ffx.c:205,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ffx.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - struct st_ptls_cipher_context_t*
    - void*
    assertStmts:
    - condition: (ctx->super.do_init == ffx_init)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/h2o/deps/picotls/lib/ffx.c
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: ffx_init
    functionSourceFile: /src/h2o/deps/picotls/lib/ffx.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void ffx_init(struct st_ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: aligned_alloc
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aligned_alloc(a, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: aligned_free
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aligned_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: aligned_free
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aligned_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:131,1
    - Dst: _mm_slli_epi64
      Src: /src/h2o/deps/picotls/lib/fusion.c:135,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:137,1
    - Dst: _mm_srli_epi64
      Src: /src/h2o/deps/picotls/lib/fusion.c:139,1
    - Dst: _mm_cmplt_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:141,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:143,1
    - Dst: _mm_or_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:145,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:149,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - H
    argTypes:
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: transformH
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_slli_epi64
    - _mm_slli_si128
    - _mm_and_si128
    - _mm_srli_epi64
    - _mm_setzero_si128
    - _mm_or_si128
    - _mm_xor_si128
    - _mm_cmplt_epi32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: __m128i
    signature: __m128i transformH(__m128i H)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:159,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:160,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:162,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:163,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:164,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:165,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:167,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:168,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:169,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:171,1
    - Dst: _mm_srli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:172,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:174,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:175,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:178,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:179,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:180,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:181,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:182,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:183,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - __m128i
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 186
    functionName: gfmul
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_slli_si128
    - _mm_clmulepi64_si128
    - _mm_srli_si128
    - _mm_xor_si128
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: __m128i
    signature: __m128i gfmul(__m128i x, __m128i y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:190,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:191,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:192,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:192,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:193,1
    - Dst: _mm_srli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:193,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:196,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:197,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:198,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:199,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:200,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:201,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hi
    - lo
    - mid
    argTypes:
    - __m128i
    - __m128i
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 205
    functionName: gfmul_do_reduce
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_slli_si128
    - _mm_clmulepi64_si128
    - _mm_srli_si128
    - _mm_xor_si128
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: __m128i
    signature: __m128i gfmul_do_reduce(__m128i hi, __m128i lo, __m128i mid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - __m128i
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: xor128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __m128i
    signature: __m128i xor128(__m128i x, __m128i y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:225,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:226,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:227,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:228,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:229,1
    - Dst: xor128
      Src: /src/h2o/deps/picotls/lib/fusion.c:230,1
    - Dst: xor128
      Src: /src/h2o/deps/picotls/lib/fusion.c:231,1
    - Dst: xor128
      Src: /src/h2o/deps/picotls/lib/fusion.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - gstate
    - X
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    - __m128i
    - struct ptls_fusion_aesgcm_ghash_precompute128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: gfmul_do_step128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - _mm_clmulepi64_si128
    - xor128
    - _mm_xor_si128
    linkageType: ''
    returnType: void
    signature: "void gfmul_do_step128(struct ptls_fusion_gfmul_state128 *gstate, __m128i
      X,\n                                    struct ptls_fusion_aesgcm_ghash_precompute128
      *precompute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:240,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:241,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:242,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:243,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:244,1
    - Dst: gfmul_do_step128
      Src: /src/h2o/deps/picotls/lib/fusion.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - gstate
    - X
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    - __m128i
    - struct ptls_fusion_aesgcm_ghash_precompute128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: gfmul_firststep128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - gfmul_do_step128
    - _mm_shuffle_epi8
    - _mm_xor_si128
    - _mm_setzero_si128
    linkageType: ''
    returnType: void
    signature: "void gfmul_firststep128(struct ptls_fusion_gfmul_state128 *gstate,
      __m128i X,\n                                      struct ptls_fusion_aesgcm_ghash_precompute128
      *precompute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:251,1
    - Dst: gfmul_do_step128
      Src: /src/h2o/deps/picotls/lib/fusion.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gstate
    - X
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    - __m128i
    - struct ptls_fusion_aesgcm_ghash_precompute128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: gfmul_nextstep128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - gfmul_do_step128
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: void
    signature: "void gfmul_nextstep128(struct ptls_fusion_gfmul_state128 *gstate,
      __m128i X,\n                                     struct ptls_fusion_aesgcm_ghash_precompute128
      *precompute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfmul_do_reduce
      Src: /src/h2o/deps/picotls/lib/fusion.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gstate
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: gfmul_reduce128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - gfmul_do_reduce
    linkageType: ''
    returnType: void
    signature: void gfmul_reduce128(struct ptls_fusion_gfmul_state128 *gstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:262,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gstate
    - ek0
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: gfmul_get_tag128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi8
    - _mm_xor_si128
    linkageType: ''
    returnType: __m128i
    signature: __m128i gfmul_get_tag128(struct ptls_fusion_gfmul_state128 *gstate,
      __m128i ek0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_clmulepi64_epi128
      Src: /src/h2o/deps/picotls/lib/fusion.c:274,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:275,1
    - Dst: _mm256_clmulepi64_epi128
      Src: /src/h2o/deps/picotls/lib/fusion.c:276,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:277,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:278,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:279,1
    - Dst: _mm256_clmulepi64_epi128
      Src: /src/h2o/deps/picotls/lib/fusion.c:280,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - gstate
    - X
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state256*
    - __m256i
    - union ptls_fusion_aesgcm_ghash_precompute256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: gfmul_do_step256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_clmulepi64_epi128
    - _mm256_xor_si256
    linkageType: ''
    returnType: void
    signature: "void gfmul_do_step256(struct ptls_fusion_gfmul_state256 *gstate, __m256i
      X,\n                                    union ptls_fusion_aesgcm_ghash_precompute256
      *precompute)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:287,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:288,1
    - Dst: _mm256_permute2f128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:290,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:291,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:292,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:293,1
    - Dst: gfmul_do_step256
      Src: /src/h2o/deps/picotls/lib/fusion.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - gstate
    - X
    - half
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state256*
    - __m256i
    - int
    - union ptls_fusion_aesgcm_ghash_precompute256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: gfmul_firststep256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - _mm256_permute2f128_si256
    - _mm256_setzero_si256
    - _mm256_shuffle_epi8
    - gfmul_do_step256
    - _mm256_xor_si256
    linkageType: ''
    returnType: void
    signature: "void gfmul_firststep256(struct ptls_fusion_gfmul_state256 *gstate,
      __m256i X, int half,\n                                      union ptls_fusion_aesgcm_ghash_precompute256
      *precompute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:300,1
    - Dst: gfmul_do_step256
      Src: /src/h2o/deps/picotls/lib/fusion.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gstate
    - X
    - precompute
    argTypes:
    - struct ptls_fusion_gfmul_state256*
    - __m256i
    - union ptls_fusion_aesgcm_ghash_precompute256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: gfmul_nextstep256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - gfmul_do_step256
    - _mm256_shuffle_epi8
    linkageType: ''
    returnType: void
    signature: "void gfmul_nextstep256(struct ptls_fusion_gfmul_state256 *gstate,
      __m256i X,\n                                     union ptls_fusion_aesgcm_ghash_precompute256
      *precompute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOR_256TO128
      Src: /src/h2o/deps/picotls/lib/fusion.c:307,1
    - Dst: XOR_256TO128
      Src: /src/h2o/deps/picotls/lib/fusion.c:308,1
    - Dst: XOR_256TO128
      Src: /src/h2o/deps/picotls/lib/fusion.c:309,1
    - Dst: gfmul_do_reduce
      Src: /src/h2o/deps/picotls/lib/fusion.c:312,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gstate
    argTypes:
    - struct ptls_fusion_gfmul_state256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: gfmul_reduce256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - gfmul_do_reduce
    - XOR_256TO128
    - _mm256_castsi128_si256
    linkageType: ''
    returnType: void
    signature: void gfmul_reduce256(struct ptls_fusion_gfmul_state256 *gstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: XOR_256TO128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XOR_256TO128(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:318,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:318,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gstate
    - ek0
    argTypes:
    - struct ptls_fusion_gfmul_state256*
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: gfmul_get_tag256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm256_castsi256_si128
    - _mm_shuffle_epi8
    - _mm_xor_si128
    linkageType: ''
    returnType: __m128i
    signature: __m128i gfmul_get_tag256(struct ptls_fusion_gfmul_state256 *gstate,
      __m128i ek0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:327,1
    - Dst: ROUNDKEY
      Src: /src/h2o/deps/picotls/lib/fusion.c:327,1
    - Dst: _mm_aesenc_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:329,1
    - Dst: ROUNDKEY
      Src: /src/h2o/deps/picotls/lib/fusion.c:329,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:330,1
    - Dst: ROUNDKEY
      Src: /src/h2o/deps/picotls/lib/fusion.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - v
    argTypes:
    - ptls_fusion_aesecb_context_t*
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: aesecb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - ROUNDKEY
    - _mm_aesenc_si128
    - _mm_xor_si128
    - _mm_aesenclast_si128
    linkageType: ''
    returnType: __m128i
    signature: __m128i aesecb_encrypt(ptls_fusion_aesecb_context_t *ctx, __m128i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: ROUNDKEY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDKEY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:350,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:351,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: loadn_end_of_page
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_load_si128
    - _mm_shuffle_epi8
    - _mm_loadu_si128
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: NO_SANITIZE_ADDRESS loadn_end_of_page(const void *p, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:357,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:360,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:361,1
    - Dst: loadn_end_of_page
      Src: /src/h2o/deps/picotls/lib/fusion.c:363,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: loadn128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - loadn_end_of_page
    - PTLS_LIKELY
    - _mm_and_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: NO_SANITIZE_ADDRESS loadn128(const void *p, size_t l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:373,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:376,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:377,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:379,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:379,1
    - Dst: _mm256_permute2f128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:380,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:380,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:380,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:382,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:382,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:384,1
    - Dst: loadn_end_of_page
      Src: /src/h2o/deps/picotls/lib/fusion.c:384,1
    - Dst: _mm256_and_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: loadn256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - PTLS_LIKELY
    - _mm256_permute2f128_si256
    - loadn128
    - loadn_end_of_page
    - _mm_loadu_si128
    - _mm256_loadu_si256
    - _mm256_and_si256
    - _mm256_castsi128_si256
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: NO_SANITIZE_ADDRESS loadn256(const void *p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - _p
    - l
    - v
    argTypes:
    - void*
    - size_t
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: storen128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storen128(void *_p, size_t l, __m128i v)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:465,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:469,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:469,1
    - Dst: _mm_insert_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:489,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:490,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:493,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:494,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:499,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:501,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:503,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:508,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:519,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:520,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:520,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:523,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:524,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:527,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:529,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:530,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:531,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:532,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:533,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:534,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:545,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:561,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:562,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:563,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:564,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:565,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:566,1
    - Dst: storen128
      Src: /src/h2o/deps/picotls/lib/fusion.c:570,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:570,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:570,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:578,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:580,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:583,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:588,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:593,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:597,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:608,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:615,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:629,1
    - Dst: STATE_EK0_READY
      Src: /src/h2o/deps/picotls/lib/fusion.c:629,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:631,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:633,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:634,1
    - Dst: gfmul_get_tag128
      Src: /src/h2o/deps/picotls/lib/fusion.c:634,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:641,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:641,1
    - Dst: _mm_aesenc_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:647,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:649,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:650,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 133
    argCount: 8
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - ctr
    - _aad
    - aadlen
    - supp
    argTypes:
    - ptls_fusion_aesgcm_context_t*
    - void*
    - void*
    - size_t
    - __m128i
    - void*
    - size_t
    - ptls_aead_supplementary_encryption_t*
    assertStmts:
    - condition: (STATE_EK0_READY())
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 659
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 659
    functionName: ptls_fusion_aesgcm_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached:
    - _mm_set_epi32
    - _mm_storeu_si128
    - STATE_EK0_READY
    - APPLY
    - assert
    - _mm_aesenc_si128
    - gfmul_nextstep128
    - AESECB6_INIT
    - loadn128
    - _mm_insert_epi32
    - AESECB6_UPDATE
    - _mm_aesenclast_si128
    - gfmul_reduce128
    - _mm_setzero_si128
    - PTLS_UNLIKELY
    - _mm_xor_si128
    - _mm_loadu_si128
    - gfmul_get_tag128
    - PTLS_LIKELY
    - AESECB6_FINAL
    - storen128
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: void
    signature: "void ptls_fusion_aesgcm_encrypt(ptls_fusion_aesgcm_context_t *_ctx,
      void *output, const void *input, size_t inlen, __m128i ctr,\n                                const
      void *_aad, size_t aadlen, ptls_aead_supplementary_encryption_t *supp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 439
    functionName: AESECB6_INIT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_INIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: AESECB6_UPDATE
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_UPDATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: AESECB6_FINAL
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_FINAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: STATE_EK0_READY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_EK0_READY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 561
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:665,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:665,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:665,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:665,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:666,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:666,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:669,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:669,1
    - Dst: _mm_add_epi64
      Src: /src/h2o/deps/picotls/lib/fusion.c:680,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:681,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:681,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:692,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:698,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:704,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:708,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:720,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:730,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:736,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:744,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:745,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:746,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:747,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:748,1
    - Dst: INIT_BITS
      Src: /src/h2o/deps/picotls/lib/fusion.c:749,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:767,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:768,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:768,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:771,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:773,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:774,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:775,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:776,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:777,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:778,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:784,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:786,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:787,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:788,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:789,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:790,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:791,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:811,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:812,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:813,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:814,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:815,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:816,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:825,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:825,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:825,1
    - Dst: storen128
      Src: /src/h2o/deps/picotls/lib/fusion.c:827,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:827,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:827,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:830,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:834,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:835,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:838,1
    - Dst: gfmul_get_tag128
      Src: /src/h2o/deps/picotls/lib/fusion.c:839,1
    - Dst: _mm_movemask_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:841,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:841,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:841,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 117
    argCount: 8
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - ctr
    - _aad
    - aadlen
    - tag
    argTypes:
    - ptls_fusion_aesgcm_context_t*
    - void*
    - void*
    - size_t
    - __m128i
    - void*
    - size_t
    - void*
    assertStmts:
    - condition: (ghash_precompute - 1 == ctx->ghash)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: ((state & STATE_IS_FIRST_RUN) == 0)
      pos:
        line_end: 829
        line_start: 829
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 845
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 845
    functionName: ptls_fusion_aesgcm_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached:
    - _mm_set_epi32
    - _mm_storeu_si128
    - INIT_BITS
    - APPLY
    - assert
    - gfmul_nextstep128
    - loadn128
    - _mm_movemask_epi8
    - AESECB6_UPDATE
    - _mm_aesenclast_si128
    - gfmul_reduce128
    - _mm_setzero_si128
    - _mm_cmpeq_epi8
    - PTLS_UNLIKELY
    - _mm_xor_si128
    - _mm_loadu_si128
    - gfmul_get_tag128
    - _mm_add_epi64
    - PTLS_LIKELY
    - storen128
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: int
    signature: "int ptls_fusion_aesgcm_decrypt(ptls_fusion_aesgcm_context_t *_ctx,
      void *output, const void *input, size_t inlen, __m128i ctr,\n                               const
      void *_aad, size_t aadlen, const void *tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - keys
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: INIT_BITS
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_BITS(n, keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 764
    functionName: AESECB6_UPDATE
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_UPDATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 811
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:849,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:849,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:850,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:850,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:851,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:851,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - key
    - temp
    argTypes:
    - __m128i
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 856
    functionName: expand_key
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_xor_si128
    - _mm_slli_si128
    linkageType: ''
    returnType: __m128i
    signature: __m128i expand_key(__m128i key, __m128i temp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:860,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:872,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:878,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:880,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:897,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:898,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:899,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:900,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:901,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:902,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:903,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:904,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:905,1
    - Dst: EXPAND
      Src: /src/h2o/deps/picotls/lib/fusion.c:906,1
    - Dst: _mm256_broadcastsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:914,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - is_enc
    - key
    - key_size
    - aesni256
    argTypes:
    - ptls_fusion_aesecb_context_t*
    - int
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (is_enc && "decryption is not supported (yet)")
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (!"invalid key size; AES128 / AES256 are supported")
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 917
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 917
    functionName: ptls_fusion_aesecb_init
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - _mm256_broadcastsi128_si256
    - EXPAND
    - assert
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void ptls_fusion_aesecb_init(ptls_fusion_aesecb_context_t *ctx, int
      is_enc, const void *key, size_t key_size, int aesni256)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 897
    functionName: EXPAND
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/fusion.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_fusion_aesecb_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: ptls_fusion_aesecb_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void ptls_fusion_aesecb_dispose(ptls_fusion_aesecb_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:926,1
    - Dst: aesecb_encrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:927,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - ptls_fusion_aesecb_context_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 929
    functionName: ptls_fusion_aesecb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - aesecb_encrypt
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void ptls_fusion_aesecb_encrypt(ptls_fusion_aesecb_context_t *ctx,
      void *dst, const void *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: aesgcm_calc_ghash_cnt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t aesgcm_calc_ghash_cnt(size_t capacity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_SLOT
      Src: /src/h2o/deps/picotls/lib/fusion.c:947,1
    - Dst: GET_SLOT
      Src: /src/h2o/deps/picotls/lib/fusion.c:948,1
    - Dst: GET_SLOT
      Src: /src/h2o/deps/picotls/lib/fusion.c:949,1
    - Dst: gfmul
      Src: /src/h2o/deps/picotls/lib/fusion.c:961,1
    - Dst: _mm_shuffle_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:963,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_fusion_aesgcm_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 967
    functionName: setup_one_ghash_entry
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached:
    - GET_SLOT
    - gfmul
    - _mm_xor_si128
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: void
    signature: void setup_one_ghash_entry(ptls_fusion_aesgcm_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 947
    functionName: GET_SLOT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SLOT(i, mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ghash_cnt
    - aesni256
    argTypes:
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 983
    functionName: calc_aesgcm_context_size
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t calc_aesgcm_context_size(size_t *ghash_cnt, int aesni256)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aesgcm_calc_ghash_cnt
      Src: /src/h2o/deps/picotls/lib/fusion.c:988,1
    - Dst: calc_aesgcm_context_size
      Src: /src/h2o/deps/picotls/lib/fusion.c:988,1
    - Dst: aligned_alloc
      Src: /src/h2o/deps/picotls/lib/fusion.c:990,1
    - Dst: ptls_fusion_aesecb_init
      Src: /src/h2o/deps/picotls/lib/fusion.c:993,1
    - Dst: aesecb_encrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:997,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:997,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:998,1
    - Dst: transformH
      Src: /src/h2o/deps/picotls/lib/fusion.c:999,1
    - Dst: setup_one_ghash_entry
      Src: /src/h2o/deps/picotls/lib/fusion.c:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - key
    - key_size
    - capacity
    - aesni256
    argTypes:
    - void*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1011
    functionName: new_aesgcm
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - setup_one_ghash_entry
    - transformH
    - aligned_alloc
    - _mm_setzero_si128
    - aesecb_encrypt
    - ptls_fusion_aesecb_init
    - calc_aesgcm_context_size
    - _mm_shuffle_epi8
    - aesgcm_calc_ghash_cnt
    linkageType: ''
    returnType: ptls_fusion_aesgcm_context_t
    signature: ptls_fusion_aesgcm_context_t *new_aesgcm(const void *key, size_t key_size,
      size_t capacity, int aesni256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_aesgcm
      Src: /src/h2o/deps/picotls/lib/fusion.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - key_size
    - capacity
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 3
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: ptls_fusion_aesgcm_new
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached:
    - new_aesgcm
    linkageType: ''
    returnType: ptls_fusion_aesgcm_context_t
    signature: ptls_fusion_aesgcm_context_t *ptls_fusion_aesgcm_new(const void *key,
      size_t key_size, size_t capacity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aesgcm_calc_ghash_cnt
      Src: /src/h2o/deps/picotls/lib/fusion.c:1020,1
    - Dst: calc_aesgcm_context_size
      Src: /src/h2o/deps/picotls/lib/fusion.c:1025,1
    - Dst: calc_aesgcm_context_size
      Src: /src/h2o/deps/picotls/lib/fusion.c:1026,1
    - Dst: aligned_alloc
      Src: /src/h2o/deps/picotls/lib/fusion.c:1029,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/fusion.c:1031,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/fusion.c:1032,1
    - Dst: aligned_free
      Src: /src/h2o/deps/picotls/lib/fusion.c:1033,1
    - Dst: setup_one_ghash_entry
      Src: /src/h2o/deps/picotls/lib/fusion.c:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - capacity
    argTypes:
    - ptls_fusion_aesgcm_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1041
    functionName: ptls_fusion_aesgcm_set_capacity
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - setup_one_ghash_entry
    - aligned_alloc
    - aligned_free
    - memcpy
    - ptls_clear_memory
    - calc_aesgcm_context_size
    - aesgcm_calc_ghash_cnt
    linkageType: ''
    returnType: ptls_fusion_aesgcm_context_t
    signature: ptls_fusion_aesgcm_context_t *ptls_fusion_aesgcm_set_capacity(ptls_fusion_aesgcm_context_t
      *ctx, size_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/fusion.c:1045,1
    - Dst: calc_aesgcm_context_size
      Src: /src/h2o/deps/picotls/lib/fusion.c:1045,1
    - Dst: aligned_free
      Src: /src/h2o/deps/picotls/lib/fusion.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_fusion_aesgcm_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1049
    functionName: ptls_fusion_aesgcm_free
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached:
    - calc_aesgcm_context_size
    - ptls_clear_memory
    - aligned_free
    linkageType: ''
    returnType: void
    signature: void ptls_fusion_aesgcm_free(ptls_fusion_aesgcm_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesecb_dispose
      Src: /src/h2o/deps/picotls/lib/fusion.c:1054,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1055,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: ctr_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - ptls_fusion_aesecb_dispose
    - _mm_setzero_si128
    linkageType: ''
    returnType: void
    signature: void ctr_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1061,1
    - Dst: aesecb_encrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:1061,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1063
    functionName: ctr_init
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 7
    functionsReached:
    - aesecb_encrypt
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void ctr_init(ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1069,1
    - Dst: storen128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1074,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1074,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1074,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1074,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1076,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1076,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1076,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: "(ctx->is_ready && len <= 16 &&\n           \"CTR transfomation is
        supported only once per call to `init` and the maximum size is limited to
        16 bytes\")"
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1078
      start: 1065
    functionDepth: 2
    functionLinenumber: 1065
    functionLinenumberEnd: 1078
    functionName: ctr_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - loadn128
    - _mm_xor_si128
    - _mm_loadu_si128
    - storen128
    - assert
    linkageType: ''
    returnType: void
    signature: void ctr_transform(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesecb_init
      Src: /src/h2o/deps/picotls/lib/fusion.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - key_size
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1091
    functionName: aesctr_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesecb_init
    linkageType: ''
    returnType: int
    signature: int aesctr_setup(ptls_cipher_context_t *_ctx, int is_enc, const void
      *key, size_t key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesctr_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1096
    functionName: aes128ctr_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - aesctr_setup
    linkageType: ''
    returnType: int
    signature: int aes128ctr_setup(ptls_cipher_context_t *ctx, int is_enc, const void
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesctr_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1101
    functionName: aes256ctr_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - aesctr_setup
    linkageType: ''
    returnType: int
    signature: int aes256ctr_setup(ptls_cipher_context_t *ctx, int is_enc, const void
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_free
      Src: /src/h2o/deps/picotls/lib/fusion.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1108
    functionName: aesgcm_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_free
    linkageType: ''
    returnType: void
    signature: void aesgcm_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1113
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1113
    functionName: aead_do_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void aead_do_encrypt_init(ptls_aead_context_t *_ctx, uint64_t seq,
      const void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1119
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1119
    functionName: aead_do_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t aead_do_encrypt_update(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - _output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 1122
        line_start: 1122
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1125
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1125
    functionName: aead_do_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t aead_do_encrypt_final(ptls_aead_context_t *_ctx, void *_output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1129,1
    - Dst: _mm_insert_epi64
      Src: /src/h2o/deps/picotls/lib/fusion.c:1130,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1131,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - seq
    argTypes:
    - struct aesgcm_context*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1134
    functionName: calc_counter
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm_slli_si128
    - _mm_insert_epi64
    - _mm_xor_si128
    - _mm_setzero_si128
    linkageType: ''
    returnType: __m128i
    signature: __m128i calc_counter(struct aesgcm_context *ctx, uint64_t seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_set_capacity
      Src: /src/h2o/deps/picotls/lib/fusion.c:1142,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1143,1
    - Dst: ptls_fusion_aesgcm_encrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:1145,1
    - Dst: calc_counter
      Src: /src/h2o/deps/picotls/lib/fusion.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    - supp
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    - ptls_aead_supplementary_encryption_t*
    assertStmts:
    - condition: (ctx->aesgcm != NULL && "fusion assumes sufficient amount of memory
        to be available")
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1136
    functionDepth: 4
    functionLinenumber: 1136
    functionLinenumberEnd: 1146
    functionName: aead_do_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_set_capacity
    - calc_counter
    - assert
    - ptls_fusion_aesgcm_encrypt
    linkageType: ''
    returnType: void
    signature: "void aead_do_encrypt(struct st_ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                     const void
      *aad, size_t aadlen, ptls_aead_supplementary_encryption_t *supp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - output
    - input
    - incnt
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1152
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1152
    functionName: aead_do_encrypt_v
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void aead_do_encrypt_v(struct st_ptls_aead_context_t *ctx, void *output,
      ptls_iovec_t *input, size_t incnt, uint64_t seq,\n                              const
      void *aad, size_t aadlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesgcm_set_capacity
      Src: /src/h2o/deps/picotls/lib/fusion.c:1164,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1165,1
    - Dst: ptls_fusion_aesgcm_decrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:1167,1
    - Dst: calc_counter
      Src: /src/h2o/deps/picotls/lib/fusion.c:1167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->aesgcm != NULL && "fusion assumes sufficient amount of memory
        to be available")
      pos:
        line_end: 1164
        line_start: 1164
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1171
      start: 1154
    functionDepth: 4
    functionLinenumber: 1154
    functionLinenumberEnd: 1171
    functionName: aead_do_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesgcm_set_capacity
    - calc_counter
    - ptls_fusion_aesgcm_decrypt
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t aead_do_decrypt(ptls_aead_context_t *_ctx, void *output, const
      void *input, size_t inlen, uint64_t seq,\n                              const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1177,1
    - Dst: storen128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1179
    functionName: aesgcm_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - storen128
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: void
    signature: void aesgcm_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1185,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: aesgcm_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - loadn128
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: void
    signature: void aesgcm_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1193,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1194,1
    - Dst: new_aesgcm
      Src: /src/h2o/deps/picotls/lib/fusion.c:1208,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    - key_size
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->aesgcm != NULL && "fusion assumes sufficient amount of memory
        to be available")
      pos:
        line_end: 1208
        line_start: 1208
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1211
    functionName: aesgcm_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - loadn128
    - assert
    - _mm_shuffle_epi8
    - new_aesgcm
    linkageType: ''
    returnType: int
    signature: int aesgcm_setup(ptls_aead_context_t *_ctx, int is_enc, const void
      *key, const void *iv, size_t key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesgcm_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 4
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: aes128gcm_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - aesgcm_setup
    linkageType: ''
    returnType: int
    signature: int aes128gcm_setup(ptls_aead_context_t *ctx, int is_enc, const void
      *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesgcm_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1221
    functionName: aes256gcm_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - aesgcm_setup
    linkageType: ''
    returnType: int
    signature: int aes256gcm_setup(ptls_aead_context_t *ctx, int is_enc, const void
      *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - incnt
    argTypes:
    - ptls_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1269
    functionName: calc_total_length
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t calc_total_length(ptls_iovec_t *input, size_t incnt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1277,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1279,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1279,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1283,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1283,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1287,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1290,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1292,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1293,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1293,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1297,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1297,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1301,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1302,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1302,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1304,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1304,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1306,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - gstate
    - ghash
    - _aad
    - aadlen
    argTypes:
    - struct ptls_fusion_gfmul_state128*
    - struct ptls_fusion_aesgcm_ghash_precompute128*
    - void*
    - size_t
    assertStmts:
    - condition: (ghash == ghash_precompute)
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1309
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1309
    functionName: reduce_aad128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - gfmul_firststep128
    - PTLS_LIKELY
    - gfmul_nextstep128
    - gfmul_reduce128
    - loadn128
    - PTLS_UNLIKELY
    - _mm_loadu_si128
    - assert
    linkageType: ''
    returnType: void
    signature: "void reduce_aad128(struct ptls_fusion_gfmul_state128 *gstate, struct
      ptls_fusion_aesgcm_ghash_precompute128 *ghash,\n                                 const
      void *_aad, size_t aadlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1317,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1317,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1318,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - encbuf
    - output
    argTypes:
    - uint8_t*
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1323
    functionName: load_preceding_unaligned
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm256_load_si256
    - _mm256_store_si256
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: NO_SANITIZE_ADDRESS *load_preceding_unaligned(uint8_t *encbuf, uint8_t
      **output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1332,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1332,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1333,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1333,1
    - Dst: _mm_sfence
      Src: /src/h2o/deps/picotls/lib/fusion.c:1335,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1338,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1338,1
    - Dst: storen128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1340,1
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - src
    - end
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1342
    functionName: write_remaining_bytes
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - loadn128
    - _mm_store_si128
    - _mm256_stream_si256
    - _mm256_load_si256
    - storen128
    - _mm_sfence
    - _mm_load_si128
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: NO_SANITIZE_ADDRESS write_remaining_bytes(uint8_t *dst, const uint8_t
      *src, const uint8_t *end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/h2o/deps/picotls/lib/fusion.c:1409,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1413,1
    - Dst: load_preceding_unaligned
      Src: /src/h2o/deps/picotls/lib/fusion.c:1416,1
    - Dst: calc_counter
      Src: /src/h2o/deps/picotls/lib/fusion.c:1423,1
    - Dst: _mm_insert_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1424,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1425,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1426,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1426,1
    - Dst: calc_total_length
      Src: /src/h2o/deps/picotls/lib/fusion.c:1426,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1429,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1443,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1444,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1445,1
    - Dst: reduce_aad128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1446,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1448,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:1449,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1463,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1465,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1466,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1467,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1468,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1469,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1470,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1475,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1490,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1490,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1498,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1512,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1513,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1514,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1515,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1516,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1517,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1520,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1525,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1525,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1532,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1534,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1534,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1535,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1536,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1536,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1537,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1538,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1538,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1539,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1540,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1540,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1541,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1541,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1542,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1543,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1543,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1544,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1545,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1545,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1546,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1547,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1547,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1548,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1550,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1550,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1551,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1551,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1554,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1555,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1555,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1556,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1556,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1560,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1560,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1561,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1561,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1562,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1565,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1566,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1567,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1568,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1570,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1571,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:1572,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1581,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1583,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1585,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1585,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1588,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1588,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1591,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1595,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1596,1
    - Dst: _mm_aesenc_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1598,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1599,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1603,1
    - Dst: gfmul_get_tag128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1603,1
    - Dst: write_remaining_bytes
      Src: /src/h2o/deps/picotls/lib/fusion.c:1607,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 141
    argCount: 7
    argNames:
    - _ctx
    - _output
    - input
    - incnt
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->ghash == ghash_precompute)
      pos:
        line_end: 1569
        line_start: 1569
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (blocks <= 7)
      pos:
        line_end: 1582
        line_start: 1582
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1614
      start: 1344
    functionDepth: 4
    functionLinenumber: 1344
    functionLinenumberEnd: 1614
    functionName: non_temporal_encrypt_v128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - gfmul_firststep128
    - _mm_set_epi32
    - _mm_storeu_si128
    - APPLY
    - _mm256_stream_si256
    - assert
    - _mm_aesenc_si128
    - gfmul_nextstep128
    - AESECB6_INIT
    - _mm_insert_epi32
    - AESECB6_UPDATE
    - aligned
    - _mm_aesenclast_si128
    - _mm256_store_si256
    - gfmul_reduce128
    - _mm_setzero_si128
    - reduce_aad128
    - PTLS_UNLIKELY
    - _mm_xor_si128
    - _mm_loadu_si128
    - _mm256_load_si256
    - PTLS_BUILD_ASSERT
    - gfmul_get_tag128
    - PTLS_LIKELY
    - load_preceding_unaligned
    - calc_counter
    - calc_total_length
    - AESECB6_FINAL
    - _mm_shuffle_epi8
    - write_remaining_bytes
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: "NO_SANITIZE_ADDRESS non_temporal_encrypt_v128(struct st_ptls_aead_context_t
      *_ctx, void *_output, ptls_iovec_t *input, size_t incnt,\n                                      uint64_t
      seq, const void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1376
    functionName: AESECB6_INIT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_INIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1388
    functionName: AESECB6_UPDATE
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_UPDATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1400
    functionName: AESECB6_FINAL
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_FINAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1465
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1512
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calc_counter
      Src: /src/h2o/deps/picotls/lib/fusion.c:1686,1
    - Dst: _mm_insert_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1687,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1688,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1689,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1689,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1692,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1696,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1697,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1698,1
    - Dst: reduce_aad128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1699,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1701,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:1702,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1705,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1707,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1708,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1709,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1710,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1711,1
    - Dst: DECRYPT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1712,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1715,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1716,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1717,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1718,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1719,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1719,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1720,1
    - Dst: GFMUL_NEXT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1721,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1722,1
    - Dst: GFMUL_NEXT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1723,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1724,1
    - Dst: GFMUL_NEXT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1725,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1726,1
    - Dst: GFMUL_NEXT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1727,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1728,1
    - Dst: GFMUL_NEXT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1729,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1730,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1731,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1732,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1735,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:1738,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1771,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1772,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1773,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1774,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1775,1
    - Dst: ONEBLOCK
      Src: /src/h2o/deps/picotls/lib/fusion.c:1776,1
    - Dst: gfmul_nextstep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1778,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1779,1
    - Dst: gfmul_firststep128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1781,1
    - Dst: gfmul_reduce128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1783,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1787,1
    - Dst: _mm_aesenc_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1789,1
    - Dst: _mm_aesenclast_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1790,1
    - Dst: gfmul_get_tag128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1794,1
    - Dst: _mm_loadu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:1795,1
    - Dst: _mm_movemask_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1796,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 7
    argNames:
    - _ctx
    - _output
    - _input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ghash_precompute == ctx->ghash)
      pos:
        line_end: 1778
        line_start: 1778
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 1805
      start: 1616
    functionDepth: 4
    functionLinenumber: 1616
    functionLinenumberEnd: 1805
    functionName: non_temporal_decrypt128
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - gfmul_firststep128
    - _mm_set_epi32
    - assert
    - ONEBLOCK
    - _mm_aesenc_si128
    - gfmul_nextstep128
    - AESECB6_INIT
    - DECRYPT
    - _mm_insert_epi32
    - _mm_movemask_epi8
    - AESECB6_UPDATE
    - _mm_aesenclast_si128
    - GFMUL_NEXT
    - gfmul_reduce128
    - _mm_setzero_si128
    - _mm_cmpeq_epi8
    - reduce_aad128
    - PTLS_UNLIKELY
    - _mm_xor_si128
    - _mm_loadu_si128
    - gfmul_get_tag128
    - PTLS_LIKELY
    - calc_counter
    - AESECB6_FINAL
    - _mm_shuffle_epi8
    linkageType: ''
    returnType: size_t
    signature: "size_t non_temporal_decrypt128(ptls_aead_context_t *_ctx, void *_output,
      const void *_input, size_t inlen, uint64_t seq,\n                                      const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1653
    functionName: AESECB6_INIT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_INIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1655
    functionDepth: 0
    functionLinenumber: 1655
    functionLinenumberEnd: 1665
    functionName: AESECB6_UPDATE
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_UPDATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1677
    functionName: AESECB6_FINAL
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_FINAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1707
    functionName: DECRYPT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECRYPT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1715
    functionName: GFMUL_NEXT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFMUL_NEXT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1771
    functionName: ONEBLOCK
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONEBLOCK(i)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/h2o/deps/picotls/lib/fusion.c:1871,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1875,1
    - Dst: load_preceding_unaligned
      Src: /src/h2o/deps/picotls/lib/fusion.c:1878,1
    - Dst: _mm256_broadcastsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1881,1
    - Dst: calc_counter
      Src: /src/h2o/deps/picotls/lib/fusion.c:1881,1
    - Dst: _mm256_insert_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1882,1
    - Dst: _mm256_permute2f128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1883,1
    - Dst: _mm256_castsi128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1885,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1886,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/picotls/lib/fusion.c:1886,1
    - Dst: calc_total_length
      Src: /src/h2o/deps/picotls/lib/fusion.c:1886,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:1888,1
    - Dst: _mm256_setzero_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1891,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:1905,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1906,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1907,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1908,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1910,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1912,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1912,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1916,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1916,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1920,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1922,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1924,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1926,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1926,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1930,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1930,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1935,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1935,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1939,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1940,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1941,1
    - Dst: loadn256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1941,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1944,1
    - Dst: loadn256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1944,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:1946,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1947,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:1951,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:1952,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1966,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1968,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1969,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1970,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1971,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1972,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1973,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:1978,1
    - Dst: _mm256_storeu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1993,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:1993,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2001,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2016,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2017,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2018,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2019,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2020,1
    - Dst: APPLY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2021,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2024,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2029,1
    - Dst: _mm_setzero_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2029,1
    - Dst: AESECB6_INIT
      Src: /src/h2o/deps/picotls/lib/fusion.c:2036,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2038,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2038,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2039,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2040,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2040,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2041,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2042,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2042,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2043,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2044,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2044,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2045,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2046,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2046,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2047,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2047,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2048,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2048,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2049,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2049,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2050,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2050,1
    - Dst: _mm256_stream_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2051,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2051,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2052,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2053,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2053,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2054,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2055,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2055,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2058,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2059,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2059,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2060,1
    - Dst: _mm256_store_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2061,1
    - Dst: _mm256_load_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2061,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2062,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2063,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2064,1
    - Dst: AESECB6_UPDATE
      Src: /src/h2o/deps/picotls/lib/fusion.c:2065,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:2067,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2068,1
    - Dst: AESECB6_FINAL
      Src: /src/h2o/deps/picotls/lib/fusion.c:2069,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2078,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2078,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:2080,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2083,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2083,1
    - Dst: gfmul_firststep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2086,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2086,1
    - Dst: gfmul_nextstep256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2090,1
    - Dst: _mm256_loadu_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2090,1
    - Dst: gfmul_reduce256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2093,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/fusion.c:2097,1
    - Dst: _mm256_xor_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2099,1
    - Dst: _mm256_aesenc_epi128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2101,1
    - Dst: _mm256_aesenclast_epi128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2102,1
    - Dst: _mm_storeu_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2106,1
    - Dst: gfmul_get_tag256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2107,1
    - Dst: _mm256_castsi256_si128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2107,1
    - Dst: _mm256_permute2f128_si256
      Src: /src/h2o/deps/picotls/lib/fusion.c:2107,1
    - Dst: write_remaining_bytes
      Src: /src/h2o/deps/picotls/lib/fusion.c:2111,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 178
    argCount: 7
    argNames:
    - _ctx
    - _output
    - input
    - incnt
    - seq
    - _aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (aadlen > 16)
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (ctx->ghash == ghash_precompute)
      pos:
        line_end: 2066
        line_start: 2066
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (blocks <= 13)
      pos:
        line_end: 2079
        line_start: 2079
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (ctx->ghash == ghash_precompute)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 2112
      start: 1807
    functionDepth: 3
    functionLinenumber: 1807
    functionLinenumberEnd: 2112
    functionName: non_temporal_encrypt_v256
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - _mm256_permute2f128_si256
    - _mm_set_epi32
    - _mm256_setzero_si256
    - _mm_storeu_si128
    - APPLY
    - _mm256_stream_si256
    - assert
    - gfmul_nextstep256
    - _mm256_shuffle_epi8
    - AESECB6_INIT
    - _mm256_insert_epi32
    - _mm256_xor_si256
    - _mm256_storeu_si256
    - AESECB6_UPDATE
    - _mm256_castsi128_si256
    - aligned
    - _mm256_aesenclast_epi128
    - gfmul_reduce256
    - gfmul_firststep256
    - loadn256
    - _mm256_store_si256
    - _mm_setzero_si128
    - PTLS_UNLIKELY
    - gfmul_get_tag256
    - _mm256_load_si256
    - PTLS_BUILD_ASSERT
    - _mm256_loadu_si256
    - _mm256_broadcastsi128_si256
    - PTLS_LIKELY
    - _mm256_aesenc_epi128
    - load_preceding_unaligned
    - calc_counter
    - _mm256_castsi256_si128
    - calc_total_length
    - AESECB6_FINAL
    - _mm_shuffle_epi8
    - write_remaining_bytes
    linkageType: ''
    returnType: NO_SANITIZE_ADDRESS
    signature: "NO_SANITIZE_ADDRESS non_temporal_encrypt_v256(struct st_ptls_aead_context_t
      *_ctx, void *_output, ptls_iovec_t *input, size_t incnt,\n                                      uint64_t
      seq, const void *_aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1838
    functionName: AESECB6_INIT
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_INIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1850
    functionName: AESECB6_UPDATE
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_UPDATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1852
    functionDepth: 0
    functionLinenumber: 1852
    functionLinenumberEnd: 1862
    functionName: AESECB6_FINAL
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AESECB6_FINAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1968
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2016
    functionName: APPLY
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadn128
      Src: /src/h2o/deps/picotls/lib/fusion.c:2119,1
    - Dst: _mm_shuffle_epi8
      Src: /src/h2o/deps/picotls/lib/fusion.c:2120,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:2135,1
    - Dst: new_aesgcm
      Src: /src/h2o/deps/picotls/lib/fusion.c:2142,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/fusion.c:2145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    - key_size
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (!aesni256)
      pos:
        line_end: 2134
        line_start: 2134
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - condition: (ctx->aesgcm != NULL && "fusion assumes sufficient amount of memory
        to be available")
      pos:
        line_end: 2144
        line_start: 2144
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    constantsTouched: []
    func_position:
      end: 2147
      start: 2114
    functionDepth: 3
    functionLinenumber: 2114
    functionLinenumberEnd: 2147
    functionName: non_temporal_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - loadn128
    - assert
    - _mm_shuffle_epi8
    - new_aesgcm
    linkageType: ''
    returnType: int
    signature: int non_temporal_setup(ptls_aead_context_t *_ctx, int is_enc, const
      void *key, const void *iv, size_t key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: non_temporal_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2149
    functionDepth: 4
    functionLinenumber: 2149
    functionLinenumberEnd: 2152
    functionName: non_temporal_aes128gcm_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - non_temporal_setup
    linkageType: ''
    returnType: int
    signature: int non_temporal_aes128gcm_setup(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: non_temporal_setup
      Src: /src/h2o/deps/picotls/lib/fusion.c:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2154
    functionDepth: 4
    functionLinenumber: 2154
    functionLinenumberEnd: 2157
    functionName: non_temporal_aes256gcm_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - non_temporal_setup
    linkageType: ''
    returnType: int
    signature: int non_temporal_aes256gcm_setup(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesecb_dispose
      Src: /src/h2o/deps/picotls/lib/fusion.c:2194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2195
    functionName: fusion_quiclb_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesecb_dispose
    linkageType: ''
    returnType: void
    signature: void fusion_quiclb_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesecb_encrypt
      Src: /src/h2o/deps/picotls/lib/fusion.c:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aesecb
    - block
    argTypes:
    - void*
    - union picotls_quiclb_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2200
    functionName: fusion_quiclb_aes
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - aesecb_encrypt
    linkageType: ''
    returnType: void
    signature: void fusion_quiclb_aes(void *aesecb, union picotls_quiclb_block *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picotls_quiclb_transform
      Src: /src/h2o/deps/picotls/lib/fusion.c:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2206
    functionName: fusion_quiclb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - picotls_quiclb_transform
    linkageType: ''
    returnType: void
    signature: void fusion_quiclb_encrypt(ptls_cipher_context_t *_ctx, void *output,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picotls_quiclb_transform
      Src: /src/h2o/deps/picotls/lib/fusion.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2212
    functionName: fusion_quiclb_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - picotls_quiclb_transform
    linkageType: ''
    returnType: void
    signature: void fusion_quiclb_decrypt(ptls_cipher_context_t *_ctx, void *output,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_fusion_aesecb_init
      Src: /src/h2o/deps/picotls/lib/fusion.c:2221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2214
    functionDepth: 2
    functionLinenumber: 2214
    functionLinenumberEnd: 2224
    functionName: fusion_quiclb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 0
    functionsReached:
    - ptls_fusion_aesecb_init
    linkageType: ''
    returnType: int
    signature: int fusion_quiclb_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc,
      const void *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/h2o/deps/picotls/lib/fusion.c:2249,1
    - Dst: __cpuid
      Src: /src/h2o/deps/picotls/lib/fusion.c:2254,1
    - Dst: __cpuid
      Src: /src/h2o/deps/picotls/lib/fusion.c:2259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2272
    functionName: ptls_fusion_is_supported_by_cpu
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 5
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: int
    signature: int ptls_fusion_is_supported_by_cpu(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2274
    functionDepth: 0
    functionLinenumber: 2274
    functionLinenumberEnd: 2302
    functionName: ptls_fusion_is_supported_by_cpu
    functionSourceFile: /src/h2o/deps/picotls/lib/fusion.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_fusion_is_supported_by_cpu(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BrotliDecoderDecompress
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:35,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - self
    - tls
    - algorithm
    - output
    - input
    argTypes:
    - ptls_decompress_certificate_t*
    - ptls_t*
    - uint16_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: decompress_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/certificate_compression.c
    functionUses: 0
    functionsReached:
    - BrotliDecoderDecompress
    linkageType: ''
    returnType: int
    signature: "int decompress_certificate(ptls_decompress_certificate_t *self, ptls_t
      *tls, uint16_t algorithm, ptls_iovec_t output,\n                                         ptls_iovec_t
      input)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:58,1
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:73,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:74,1
    - Dst: ptls_buffer_push24
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:75,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:76,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 8
    argNames:
    - _self
    - tls
    - emitter
    - key_sched
    - context
    - push_status_request
    - compress_algos
    - num_compress_algos
    argTypes:
    - ptls_emit_certificate_t*
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_key_schedule_t*
    - ptls_iovec_t
    - int
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (context.len == 0 || !"precompressed mode can only be used for server
        certificates")
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/h2o/deps/picotls/lib/certificate_compression.c
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: emit_compressed_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/certificate_compression.c
    functionUses: 0
    functionsReached:
    - ptls_push_message
    - ptls_buffer_push_block
    - ptls_buffer_push24
    - ptls_buffer_push16
    - ptls_buffer_pushv
    - assert
    linkageType: ''
    returnType: int
    signature: "int emit_compressed_certificate(ptls_emit_certificate_t *_self, ptls_t
      *tls, ptls_message_emitter_t *emitter,\n                                       ptls_key_schedule_t
      *key_sched, ptls_iovec_t context, int push_status_request,\n                                       const
      uint16_t *compress_algos, size_t num_compress_algos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:91,1
    - Dst: ptls_build_certificate_message
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:94,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:94,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:101,1
    - Dst: BrotliEncoderCompress
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:105,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:115,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - entry
    - certificates
    - num_certificates
    - ocsp_status
    argTypes:
    - struct st_ptls_compressed_certificate_entry_t*
    - ptls_iovec_t*
    - size_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: build_compressed
    functionSourceFile: /src/h2o/deps/picotls/lib/certificate_compression.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - ptls_buffer_dispose
    - BrotliEncoderCompress
    - free
    - ptls_build_certificate_message
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int build_compressed(struct st_ptls_compressed_certificate_entry_t
      *entry, ptls_iovec_t *certificates,\n                            size_t num_certificates,
      ptls_iovec_t ocsp_status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: build_compressed
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:130,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:130,1
    - Dst: build_compressed
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:133,1
    - Dst: ptls_dispose_compressed_certificate
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - self
    - certificates
    - num_certificates
    - ocsp_status
    argTypes:
    - ptls_emit_compressed_certificate_t*
    - ptls_iovec_t*
    - size_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: ptls_init_compressed_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/certificate_compression.c
    functionUses: 2
    functionsReached:
    - build_compressed
    - ptls_iovec_init
    - ptls_dispose_compressed_certificate
    linkageType: ''
    returnType: int
    signature: "int ptls_init_compressed_certificate(ptls_emit_compressed_certificate_t
      *self, ptls_iovec_t *certificates, size_t num_certificates,\n                                     ptls_iovec_t
      ocsp_status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:147,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/certificate_compression.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_emit_compressed_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: ptls_dispose_compressed_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/certificate_compression.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ptls_dispose_compressed_certificate(ptls_emit_compressed_certificate_t
      *self)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:58,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:62,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:69,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:73,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:77,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:84,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:90,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:93,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:99,1
    - Dst: ptls_asn1_dump_content
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:100,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:101,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:112,1
    - Dst: ptls_asn1_validation_recursive
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:122,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:128,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:132,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:139,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:148,1
    - Dst: ptls_asn1_validation_recursive
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:150,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:151,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:157,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:162,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 3
    argNames:
    - pkey
    - decode_error
    - log_ctx
    argTypes:
    - ptls_asn1_pkcs8_private_key_t*
    - int*
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 166
    functionName: ptls_minicrypto_asn1_decode_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/minicrypto-pem.c
    functionUses: 1
    functionsReached:
    - ptls_asn1_get_expected_type_and_length
    - ptls_asn1_error_message
    - ptls_minicrypto_log_ctx_t*::fn
    - ptls_asn1_dump_content
    - ptls_asn1_validation_recursive
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_minicrypto_asn1_decode_private_key(ptls_asn1_pkcs8_private_key_t
      *pkey, int *decode_error,\n                                               ptls_minicrypto_log_ctx_t
      *log_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_load_pem_objects
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:172,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:184,1
    - Dst: ptls_minicrypto_asn1_decode_private_key
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - pem_fname
    - pkey
    - log_ctx
    argTypes:
    - char*
    - ptls_asn1_pkcs8_private_key_t*
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 195
    functionName: ptls_pem_parse_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/minicrypto-pem.c
    functionUses: 0
    functionsReached:
    - ptls_minicrypto_log_ctx_t*::fn
    - ptls_minicrypto_asn1_decode_private_key
    - ptls_load_pem_objects
    linkageType: ''
    returnType: int
    signature: "int ptls_pem_parse_private_key(char const *pem_fname, ptls_asn1_pkcs8_private_key_t
      *pkey,\n                                      ptls_minicrypto_log_ctx_t *log_ctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:217,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:221,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:230,1
    - Dst: ptls_asn1_dump_content
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:231,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:232,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:243,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:248,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:256,1
    - Dst: ptls_asn1_error_message
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:260,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:264,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:271,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:281,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:286,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:292,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:298,1
    - Dst: ptls_minicrypto_init_secp256r1sha256_sign_certificate
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:299,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:300,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:307,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:310,1
    - Dst: ptls_minicrypto_log_ctx_t*::fn
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:317,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 3
    argNames:
    - ctx
    - pkey
    - log_ctx
    argTypes:
    - ptls_context_t*
    - ptls_asn1_pkcs8_private_key_t*
    - ptls_minicrypto_log_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 322
    functionName: ptls_set_ecdsa_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/minicrypto-pem.c
    functionUses: 0
    functionsReached:
    - ptls_minicrypto_init_secp256r1sha256_sign_certificate
    - ptls_iovec_init
    - malloc
    - memcmp
    - ptls_asn1_get_expected_type_and_length
    - ptls_asn1_error_message
    - ptls_minicrypto_log_ctx_t*::fn
    - memset
    - ptls_asn1_dump_content
    linkageType: ''
    returnType: int
    signature: int ptls_set_ecdsa_private_key(ptls_context_t *ctx, ptls_asn1_pkcs8_private_key_t
      *pkey, ptls_minicrypto_log_ctx_t *log_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_pem_parse_private_key
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:327,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:337,1
    - Dst: ptls_set_ecdsa_private_key
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:342,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:346,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/minicrypto-pem.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - pem_fname
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 324
    functionDepth: 6
    functionLinenumber: 324
    functionLinenumberEnd: 350
    functionName: ptls_minicrypto_load_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/minicrypto-pem.c
    functionUses: 1
    functionsReached:
    - ptls_set_ecdsa_private_key
    - memcmp
    - free
    - ptls_clear_memory
    - ptls_pem_parse_private_key
    linkageType: ''
    returnType: int
    signature: int ptls_minicrypto_load_private_key(ptls_context_t *ctx, char const
      *pem_fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:32,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/hpke.c:33,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:35,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/hpke.c:36,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/hpke.c:37,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/hpke.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - kem
    - cipher
    argTypes:
    - ptls_buffer_t*
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: build_suite_id
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push16
    - ptls_buffer_pushv
    linkageType: ''
    returnType: int
    signature: int build_suite_id(ptls_buffer_t *buf, ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t
      *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:54,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:56,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/hpke.c:56,1
    - Dst: build_suite_id
      Src: /src/h2o/deps/picotls/lib/hpke.c:57,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:59,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/hpke.c:59,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:60,1
    - Dst: ptls_hkdf_extract
      Src: /src/h2o/deps/picotls/lib/hpke.c:62,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:63,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/hpke.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - kem
    - cipher
    - output
    - salt
    - label
    - ikm
    argTypes:
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    - void*
    - ptls_iovec_t
    - char*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: labeled_extract
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_extract
    - ptls_buffer_dispose
    - build_suite_id
    - ptls_buffer_pushv
    - strlen
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int labeled_extract(ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t
      *cipher, void *output, ptls_iovec_t salt,\n                           const
      char *label, ptls_iovec_t ikm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/hpke.c:77,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:79,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/hpke.c:81,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:82,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/hpke.c:82,1
    - Dst: build_suite_id
      Src: /src/h2o/deps/picotls/lib/hpke.c:83,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:85,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/hpke.c:85,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:86,1
    - Dst: ptls_hkdf_expand
      Src: /src/h2o/deps/picotls/lib/hpke.c:88,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:89,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/hpke.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - kem
    - cipher
    - output
    - outlen
    - prk
    - label
    - info
    argTypes:
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    - void*
    - size_t
    - ptls_iovec_t
    - char*
    - ptls_iovec_t
    assertStmts:
    - condition: (outlen < UINT16_MAX)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/deps/picotls/lib/hpke.c
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: labeled_expand
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand
    - ptls_buffer_dispose
    - build_suite_id
    - ptls_buffer_push16
    - ptls_buffer_pushv
    - assert
    - strlen
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int labeled_expand(ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t
      *cipher, void *output, size_t outlen, ptls_iovec_t prk,\n                          const
      char *label, ptls_iovec_t info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:103,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:105,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/hpke.c:106,1
    - Dst: labeled_extract
      Src: /src/h2o/deps/picotls/lib/hpke.c:108,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:108,1
    - Dst: labeled_expand
      Src: /src/h2o/deps/picotls/lib/hpke.c:110,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:110,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:111,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/hpke.c:115,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - kem
    - secret
    - secret_len
    - pk_s
    - pk_r
    - dh
    argTypes:
    - ptls_hpke_kem_t*
    - void*
    - size_t
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: extract_and_expand
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_dispose
    - ptls_clear_memory
    - labeled_extract
    - ptls_buffer_pushv
    - labeled_expand
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int extract_and_expand(ptls_hpke_kem_t *kem, void *secret, size_t
      secret_len, ptls_iovec_t pk_s, ptls_iovec_t pk_r,\n                              ptls_iovec_t
      dh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_and_expand
      Src: /src/h2o/deps/picotls/lib/hpke.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - kem
    - secret
    - pk_s
    - pk_r
    - dh
    argTypes:
    - ptls_hpke_kem_t*
    - void*
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: dh_derive
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 1
    functionsReached:
    - extract_and_expand
    linkageType: ''
    returnType: int
    signature: int dh_derive(ptls_hpke_kem_t *kem, void *secret, ptls_iovec_t pk_s,
      ptls_iovec_t pk_r, ptls_iovec_t dh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:130,1
    - Dst: ptls_hpke_kem_t*::keyex::exchange
      Src: /src/h2o/deps/picotls/lib/hpke.c:132,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/hpke.c:133,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/hpke.c:134,1
    - Dst: dh_derive
      Src: /src/h2o/deps/picotls/lib/hpke.c:138,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:143,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/hpke.c:144,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/hpke.c:147,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - kem
    - secret
    - pk_s
    - pk_r
    argTypes:
    - ptls_hpke_kem_t*
    - void*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (dh.base == NULL)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/h2o/deps/picotls/lib/hpke.c
    - condition: (pk_s->base == NULL)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/h2o/deps/picotls/lib/hpke.c
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: dh_encap
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hpke_kem_t*::keyex::exchange
    - free
    - dh_derive
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: int
    signature: int dh_encap(ptls_hpke_kem_t *kem, void *secret, ptls_iovec_t *pk_s,
      ptls_iovec_t pk_r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_key_exchange_context_t*::on_exchange
      Src: /src/h2o/deps/picotls/lib/hpke.c:158,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/hpke.c:159,1
    - Dst: dh_derive
      Src: /src/h2o/deps/picotls/lib/hpke.c:163,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:168,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/hpke.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - kem
    - secret
    - keyex
    - pk_s
    - pk_r
    argTypes:
    - ptls_hpke_kem_t*
    - void*
    - ptls_key_exchange_context_t*
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts:
    - condition: (dh.base == NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/h2o/deps/picotls/lib/hpke.c
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: dh_decap
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_key_exchange_context_t*::on_exchange
    - free
    - dh_derive
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: int
    signature: int dh_decap(ptls_hpke_kem_t *kem, void *secret, ptls_key_exchange_context_t
      *keyex, ptls_iovec_t pk_s, ptls_iovec_t pk_r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:186,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/hpke.c:189,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/hpke.c:190,1
    - Dst: labeled_extract
      Src: /src/h2o/deps/picotls/lib/hpke.c:191,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:191,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:192,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/hpke.c:195,1
    - Dst: labeled_extract
      Src: /src/h2o/deps/picotls/lib/hpke.c:196,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:196,1
    - Dst: labeled_extract
      Src: /src/h2o/deps/picotls/lib/hpke.c:202,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:202,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:203,1
    - Dst: labeled_expand
      Src: /src/h2o/deps/picotls/lib/hpke.c:207,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:207,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:208,1
    - Dst: labeled_expand
      Src: /src/h2o/deps/picotls/lib/hpke.c:210,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:210,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:211,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/hpke.c:214,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/hpke.c:217,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:218,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:219,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:220,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 6
    argNames:
    - kem
    - cipher
    - ctx
    - is_enc
    - shared_secret
    - info
    argTypes:
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    - ptls_aead_context_t**
    - int
    - void*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 222
    functionName: key_schedule
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_push
    - ptls_buffer_dispose
    - ptls_aead_new_direct
    - ptls_buffer_reserve
    - ptls_clear_memory
    - labeled_extract
    - labeled_expand
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int key_schedule(ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t *cipher,
      ptls_aead_context_t **ctx, int is_enc,\n                        const void *shared_secret,
      ptls_iovec_t info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:230,1
    - Dst: dh_encap
      Src: /src/h2o/deps/picotls/lib/hpke.c:232,1
    - Dst: key_schedule
      Src: /src/h2o/deps/picotls/lib/hpke.c:235,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:240,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/hpke.c:241,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/hpke.c:242,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - kem
    - cipher
    - pk_s
    - ctx
    - pk_r
    - info
    argTypes:
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    - ptls_iovec_t*
    - ptls_aead_context_t**
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 6
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: ptls_hpke_setup_base_s
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - key_schedule
    - dh_encap
    - free
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int ptls_hpke_setup_base_s(ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t
      *cipher, ptls_iovec_t *pk_s, ptls_aead_context_t **ctx,\n                           ptls_iovec_t
      pk_r, ptls_iovec_t info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dh_decap
      Src: /src/h2o/deps/picotls/lib/hpke.c:254,1
    - Dst: key_schedule
      Src: /src/h2o/deps/picotls/lib/hpke.c:257,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/hpke.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - kem
    - cipher
    - keyex
    - ctx
    - pk_s
    - info
    argTypes:
    - ptls_hpke_kem_t*
    - ptls_hpke_cipher_suite_t*
    - ptls_key_exchange_context_t*
    - ptls_aead_context_t**
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 6
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: ptls_hpke_setup_base_r
    functionSourceFile: /src/h2o/deps/picotls/lib/hpke.c
    functionUses: 3
    functionsReached:
    - key_schedule
    - ptls_clear_memory
    - dh_decap
    linkageType: ''
    returnType: int
    signature: "int ptls_hpke_setup_base_r(ptls_hpke_kem_t *kem, ptls_hpke_cipher_suite_t
      *cipher, ptls_key_exchange_context_t *keyex,\n                           ptls_aead_context_t
      **ctx, ptls_iovec_t pk_s, ptls_iovec_t info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pem_buf
    - pem_len
    - px
    - pl
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: ptls_mbedtls_parse_der_length
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_parse_der_length(const unsigned char *pem_buf, size_t
      pem_len, size_t *px, size_t *pl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:107,1
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:139,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 4
    argNames:
    - pem_buf
    - pem_len
    - key_index
    - key_length
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 150
    functionName: ptls_mbedtls_parse_ecdsa_field
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_parse_der_length
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_parse_ecdsa_field(const unsigned char *pem_buf, size_t
      pem_len, size_t *key_index, size_t *key_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pem_buf
    - pem_len
    - key_index
    - key_length
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: ptls_mbedtls_parse_eddsa_key
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_parse_der_length
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_parse_eddsa_key(const unsigned char *pem_buf, size_t
      pem_len, size_t *key_index, size_t *key_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_parse_ecdsa_field
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pem_buf
    - pem_len
    - key_index
    - key_length
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: ptls_mbedtls_parse_ec_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_parse_ecdsa_field
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_parse_ec_private_key(const unsigned char *pem_buf,
      size_t pem_len, size_t *key_index, size_t *key_length)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:211,1
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:227,1
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:249,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 6
    argNames:
    - pem_buf
    - pem_len
    - oid_index
    - oid_length
    - key_index
    - key_length
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 263
    functionName: test_parse_private_key_field
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_parse_der_length
    linkageType: ''
    returnType: int
    signature: "int test_parse_private_key_field(const unsigned char *pem_buf, size_t
      pem_len, size_t *oid_index, size_t *oid_length,\n                                 size_t
      *key_index, size_t *key_length)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_pem_init
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:277,1
    - Dst: mbedtls_pem_read_buffer
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:284,1
    - Dst: mbedtls_pem_read_buffer
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:307,1
    - Dst: mbedtls_pem_read_buffer
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:325,1
    - Dst: mbedtls_pem_read_buffer
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:339,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 7
    argNames:
    - pem
    - pk_type
    - key
    - keylen
    - pwd
    - pwdlen
    - p_rng
    argTypes:
    - mbedtls_pem_context*
    - mbedtls_pk_type_t*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 350
    functionName: ptls_mbedtls_get_der_key
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - mbedtls_pem_read_buffer
    - mbedtls_pem_init
    linkageType: ''
    returnType: int
    signature: "int ptls_mbedtls_get_der_key(mbedtls_pem_context *pem, mbedtls_pk_type_t
      *pk_type, const unsigned char *key, size_t keylen,\n                             const
      unsigned char *pwd, size_t pwdlen, int (*f_rng)(void *, unsigned char *, size_t),
      void *p_rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - available
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_mbedtls_signature_scheme_t*
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 367
    functionName: ptls_mbedtls_select_signature_scheme
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ptls_mbedtls_signature_scheme_t
    signature: "ptls_mbedtls_signature_scheme_t *ptls_mbedtls_select_signature_scheme(const
      ptls_mbedtls_signature_scheme_t *available,\n                                                                            const
      uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: psa_get_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:372,1
    - Dst: psa_get_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:373,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:379,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:382,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:385,1
    - Dst: printf
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:410,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - signer
    argTypes:
    - ptls_mbedtls_sign_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 415
    functionName: ptls_mbedtls_set_available_schemes
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - PSA_ALG_DETERMINISTIC_ECDSA
    - printf
    - psa_get_key_algorithm
    - psa_get_key_bits
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_set_available_schemes(ptls_mbedtls_sign_certificate_t
      *signer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_select_signature_scheme
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:445,1
    - Dst: psa_hash_compute
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:460,1
    - Dst: psa_get_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:468,1
    - Dst: psa_get_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:469,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:482,1
    - Dst: psa_sign_hash
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:484,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 8
    argNames:
    - _self
    - tls
    - async
    - selected_algorithm
    - outbuf
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 494
    functionName: ptls_mbedtls_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 1
    functionsReached:
    - psa_hash_compute
    - psa_get_key_algorithm
    - ptls_buffer_reserve
    - ptls_mbedtls_select_signature_scheme
    - psa_sign_hash
    - psa_get_key_bits
    linkageType: ''
    returnType: int
    signature: "int ptls_mbedtls_sign_certificate(ptls_sign_certificate_t *_self,
      ptls_t *tls, ptls_async_job_t **async,\n                                  uint16_t
      *selected_algorithm, ptls_buffer_t *outbuf, ptls_iovec_t input,\n                                  const
      uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_destroy_key
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:503,1
    - Dst: psa_reset_key_attributes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:504,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:505,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_sign_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 508
    functionName: ptls_mbedtls_dispose_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 1
    functionsReached:
    - free
    - memset
    - psa_reset_key_attributes
    - psa_destroy_key
    linkageType: ''
    returnType: void
    signature: void ptls_mbedtls_dispose_sign_certificate(ptls_sign_certificate_t
      *_self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:537,1
    - Dst: ptls_mbedtls_parse_der_length
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - key_value
    - key_length
    - p_nb_bits
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 567
    functionName: ptls_mbedtls_rsa_get_key_bits
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - ptls_mbedtls_parse_der_length
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_rsa_get_key_bits(const unsigned char *key_value, size_t
      key_length, size_t *p_nb_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:572,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:573,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:574,1
    - Dst: ptls_mbedtls_rsa_get_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:575,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - signer
    - key_value
    - key_length
    argTypes:
    - ptls_mbedtls_sign_certificate_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: ptls_mbedtls_set_rsa_key_attributes
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - psa_set_key_bits
    - psa_set_key_algorithm
    - psa_set_key_type
    - ptls_mbedtls_rsa_get_key_bits
    - psa_set_key_usage_flags
    linkageType: ''
    returnType: void
    signature: void ptls_mbedtls_set_rsa_key_attributes(ptls_mbedtls_sign_certificate_t
      *signer, const unsigned char *key_value, size_t key_length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:584,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:585,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:586,1
    - Dst: PSA_KEY_TYPE_ECC_KEY_PAIR
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:586,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:588,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:588,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:589,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:591,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:591,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:592,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:594,1
    - Dst: PSA_ALG_DETERMINISTIC_ECDSA
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:594,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - signer
    - key_length
    argTypes:
    - ptls_mbedtls_sign_certificate_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 601
    functionName: ptls_mbedtls_set_ec_key_attributes
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 0
    functionsReached:
    - psa_set_key_bits
    - PSA_ALG_DETERMINISTIC_ECDSA
    - psa_set_key_algorithm
    - PSA_KEY_TYPE_ECC_KEY_PAIR
    - psa_set_key_type
    - psa_set_key_usage_flags
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_set_ec_key_attributes(ptls_mbedtls_sign_certificate_t
      *signer, size_t key_length)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:613,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:618,1
    - Dst: psa_key_attributes_init
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:619,1
    - Dst: mbedtls_pk_load_file
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:621,1
    - Dst: ptls_mbedtls_get_der_key
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:628,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:634,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:635,1
    - Dst: ptls_mbedtls_set_rsa_key_attributes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:640,1
    - Dst: ptls_mbedtls_parse_ecdsa_field
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:642,1
    - Dst: ptls_mbedtls_set_ec_key_attributes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:644,1
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:652,1
    - Dst: test_parse_private_key_field
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:654,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:659,1
    - Dst: ptls_mbedtls_parse_ec_private_key
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:660,1
    - Dst: ptls_mbedtls_set_ec_key_attributes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:662,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:665,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:667,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:668,1
    - Dst: ptls_mbedtls_parse_eddsa_key
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:669,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:670,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:672,1
    - Dst: ptls_mbedtls_set_rsa_key_attributes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:674,1
    - Dst: psa_import_key
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:685,1
    - Dst: ptls_mbedtls_set_available_schemes
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:690,1
    - Dst: mbedtls_pem_free
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:694,1
    - Dst: ptls_mbedtls_dispose_sign_certificate
      Src: /src/h2o/deps/picotls/lib/mbedtls_sign.c:701,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 2
    argNames:
    - ctx
    - pem_fname
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 704
    functionName: ptls_mbedtls_load_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    functionUses: 1
    functionsReached:
    - psa_key_attributes_init
    - ptls_mbedtls_set_rsa_key_attributes
    - mbedtls_pk_load_file
    - ptls_mbedtls_set_available_schemes
    - ptls_mbedtls_parse_ecdsa_field
    - free
    - ptls_mbedtls_get_der_key
    - ptls_mbedtls_parse_ec_private_key
    - ptls_mbedtls_set_ec_key_attributes
    - memset
    - malloc
    - psa_set_key_algorithm
    - memcmp
    - ptls_mbedtls_dispose_sign_certificate
    - test_parse_private_key_field
    - ptls_mbedtls_parse_eddsa_key
    - psa_set_key_bits
    - psa_import_key
    - mbedtls_pem_free
    - psa_set_key_type
    - psa_set_key_usage_flags
    linkageType: ''
    returnType: int
    signature: int ptls_mbedtls_load_private_key(ptls_context_t *ctx, char const *pem_fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: PTLS_DEBUGF
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_DEBUGF(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - LABEL
    - ','
    - tls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: PTLS_PROBE0
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_PROBE0(LABEL, tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - LABEL
    - ','
    - tls
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: PTLS_PROBE
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTLS_PROBE(LABEL, tls, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: is_supported_version
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: int
    signature: int is_supported_version(uint16_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:476,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:477,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:478,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:479,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:480,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:481,1
    - Dst: DEFINE_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:482,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:494,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:495,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:496,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:497,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:498,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:499,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:500,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:501,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:502,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:503,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:504,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:505,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:506,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:507,1
    - Dst: EXT
      Src: /src/h2o/deps/picotls/lib/picotls.c:508,1
    - Dst: HSTYPE_TO_BIT
      Src: /src/h2o/deps/picotls/lib/picotls.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 3
    argNames:
    - bitmap
    - hstype
    - extid
    argTypes:
    - struct st_ptls_extension_bitmap_t*
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 525
    functionName: extension_bitmap_testandset
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - EXT
    - DEFINE_BIT
    - HSTYPE_TO_BIT
    linkageType: ''
    returnType: int
    signature: int extension_bitmap_testandset(struct st_ptls_extension_bitmap_t *bitmap,
      int hstype, uint16_t extid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hstype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: HSTYPE_TO_BIT
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSTYPE_TO_BIT(hstype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - abbrev
    - ','
    - hstype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: DEFINE_BIT
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_BIT(abbrev, hstype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - candext
    - ','
    - allowed_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 475
    functionName: EXT
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT(candext, allowed_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: ntoh16
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ntoh16(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: ntoh24
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ntoh24(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: ntoh32
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ntoh32(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: ntoh64
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ntoh64(const uint8_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: encode64
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void encode64(uint8_t *dst, uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:566,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: duplicate_as_str
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: char *duplicate_as_str(const void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:575,1
    - Dst: _aligned_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:579,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:581,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 587
    functionName: ptls_buffer__release_memory
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - _aligned_free
    - free
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void ptls_buffer__release_memory(ptls_buffer_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve_aligned
      Src: /src/h2o/deps/picotls/lib/picotls.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - delta
    argTypes:
    - ptls_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: ptls_buffer_reserve
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 12
    functionsReached:
    - ptls_buffer_reserve_aligned
    linkageType: ''
    returnType: int
    signature: int ptls_buffer_reserve(ptls_buffer_t *buf, size_t delta)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:610,1
    - Dst: posix_memalign
      Src: /src/h2o/deps/picotls/lib/picotls.c:613,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:617,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:620,1
    - Dst: ptls_buffer__release_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:621,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - delta
    - align_bits
    argTypes:
    - ptls_buffer_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 629
    functionName: ptls_buffer_reserve_aligned
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - posix_memalign
    - malloc
    - ptls_buffer__release_memory
    - memcpy
    - _aligned_malloc
    linkageType: ''
    returnType: int
    signature: int ptls_buffer_reserve_aligned(ptls_buffer_t *buf, size_t delta, uint8_t
      align_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:637,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - src
    - len
    argTypes:
    - ptls_buffer_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: ptls_buffer__do_pushv
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int ptls_buffer__do_pushv(ptls_buffer_t *buf, const void *src, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_encode_quicint
      Src: /src/h2o/deps/picotls/lib/picotls.c:647,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:652,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/lib/picotls.c:654,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - body_size
    argTypes:
    - ptls_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 662
    functionName: ptls_buffer__adjust_quic_blocksize
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_encode_quicint
    - memmove
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int ptls_buffer__adjust_quic_blocksize(ptls_buffer_t *buf, size_t body_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:666,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/picotls.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - body_size
    argTypes:
    - ptls_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: ptls_buffer__adjust_asn1_blocksize
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - abort
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ptls_buffer__adjust_asn1_blocksize(ptls_buffer_t *buf, size_t body_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:681,1
    - Dst: ptls_buffer_push_asn1_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:682,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:684,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:686,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:688,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - bignum
    - size
    argTypes:
    - ptls_buffer_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: ptls_buffer_push_asn1_ubigint
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push_asn1_block
    - ptls_buffer_push
    - ptls_buffer_pushv
    linkageType: ''
    returnType: int
    signature: int ptls_buffer_push_asn1_ubigint(ptls_buffer_t *buf, const void *bignum,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:702,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - output
    - input
    - inlen
    - content_type
    argTypes:
    - struct st_ptls_traffic_protection_t*
    - void*
    - void*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 705
    functionName: aead_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 11
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t aead_encrypt(struct st_ptls_traffic_protection_t *ctx, void
      *output, const void *input, size_t inlen,\n                           uint8_t
      content_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - output
    - outlen
    - input
    - inlen
    argTypes:
    - struct st_ptls_traffic_protection_t*
    - void*
    - size_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 715
    functionName: aead_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 14
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int aead_decrypt(struct st_ptls_traffic_protection_t *ctx, void *output,
      size_t *outlen, const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aad
    - reclen
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: build_aad
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void build_aad(uint8_t aad[5], size_t reclen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:731,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:731,1
    - Dst: build_aad
      Src: /src/h2o/deps/picotls/lib/picotls.c:734,1
    - Dst: ptls_aead_encrypt_v
      Src: /src/h2o/deps/picotls/lib/picotls.c:735,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - output
    - input
    - inlen
    - content_type
    argTypes:
    - struct st_ptls_traffic_protection_t*
    - void*
    - void*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 738
    functionName: aead_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 11
    functionsReached:
    - ptls_iovec_init
    - ptls_aead_encrypt_v
    - build_aad
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: size_t
    signature: "size_t aead_encrypt(struct st_ptls_traffic_protection_t *ctx, void
      *output, const void *input, size_t inlen,\n                           uint8_t
      content_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: build_aad
      Src: /src/h2o/deps/picotls/lib/picotls.c:744,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - output
    - outlen
    - input
    - inlen
    argTypes:
    - struct st_ptls_traffic_protection_t*
    - void*
    - size_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: aead_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 15
    functionsReached:
    - build_aad
    - ptls_aead_decrypt
    linkageType: ''
    returnType: int
    signature: int aead_decrypt(struct st_ptls_traffic_protection_t *ctx, void *output,
      size_t *outlen, const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - aad
    - type
    - seq
    - length
    argTypes:
    - uint8_t*
    - uint8_t
    - uint64_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: build_tls12_aad
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void build_tls12_aad(uint8_t *aad, uint8_t type, uint64_t seq, uint16_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - type
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 769
    functionName: buffer_push_record
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: buffer_push_record(buf, type, block)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: buffer_push_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:780,1
    - Dst: ptls_buffer_reserve_aligned
      Src: /src/h2o/deps/picotls/lib/picotls.c:782,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:789,1
    - Dst: encode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:791,1
    - Dst: build_tls12_aad
      Src: /src/h2o/deps/picotls/lib/picotls.c:798,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:800,1
    - Dst: buffer_push_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:804,1
    - Dst: ptls_buffer_reserve_aligned
      Src: /src/h2o/deps/picotls/lib/picotls.c:805,1
    - Dst: aead_encrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:808,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - buf
    - type
    - src
    - len
    - enc
    argTypes:
    - ptls_buffer_t*
    - uint8_t
    - uint8_t*
    - size_t
    - struct st_ptls_traffic_protection_t*
    assertStmts:
    - condition: (enc->aead->algo->tls12.record_iv_size == 8)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 817
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 817
    functionName: buffer_push_encrypted_records
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_aead_encrypt
    - aead_encrypt
    - build_tls12_aad
    - buffer_push_record
    - encode64
    - assert
    - ptls_buffer_reserve_aligned
    linkageType: ''
    returnType: int
    signature: "int buffer_push_encrypted_records(ptls_buffer_t *buf, uint8_t type,
      const uint8_t *src, size_t len,\n                                         struct
      st_ptls_traffic_protection_t *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve_aligned
      Src: /src/h2o/deps/picotls/lib/picotls.c:829,1
    - Dst: aead_encrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:831,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:832,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:841,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:845,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:846,1
    - Dst: buffer_push_encrypted_records
      Src: /src/h2o/deps/picotls/lib/picotls.c:850,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:854,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:855,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - buf
    - rec_start
    - enc
    argTypes:
    - ptls_buffer_t*
    - size_t
    - struct st_ptls_traffic_protection_t*
    assertStmts:
    - condition: (encrypted_len == bodylen + overhead)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 858
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 858
    functionName: buffer_encrypt_record
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - malloc
    - buffer_push_encrypted_records
    - free
    - aead_encrypt
    - memcpy
    - ptls_clear_memory
    - assert
    - ptls_buffer_reserve_aligned
    linkageType: ''
    returnType: int
    signature: int buffer_encrypt_record(ptls_buffer_t *buf, size_t rec_start, struct
      st_ptls_traffic_protection_t *enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_message_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: begin_record_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push
    linkageType: ''
    returnType: int
    signature: int begin_record_message(ptls_message_emitter_t *_self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_encrypt_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:878,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_message_emitter_t*
    assertStmts:
    - condition: (sz <= PTLS_MAX_PLAINTEXT_RECORD_SIZE)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 889
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 889
    functionName: commit_record_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - buffer_encrypt_record
    - assert
    linkageType: ''
    returnType: int
    signature: int commit_record_message(ptls_message_emitter_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - type
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 896
    functionName: buffer_push_extension
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: buffer_push_extension(buf, type, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - end
    - ','
    - hstype
    - ','
    - exttype
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 912
    functionName: decode_open_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decode_open_extensions(src, end, hstype, exttype, block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - end
    - ','
    - hstype
    - ','
    - exttype
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 918
    functionName: decode_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decode_extensions(src, end, hstype, exttype, block)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - value
    - src
    - end
    argTypes:
    - uint8_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 925
    functionName: ptls_decode8
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_decode8(uint8_t *value, const uint8_t **src, const uint8_t
      *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ntoh16
      Src: /src/h2o/deps/picotls/lib/picotls.c:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - src
    - end
    argTypes:
    - uint16_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: ptls_decode16
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ntoh16
    linkageType: ''
    returnType: int
    signature: int ptls_decode16(uint16_t *value, const uint8_t **src, const uint8_t
      *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - src
    - end
    argTypes:
    - uint32_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 943
    functionName: ptls_decode24
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_decode24(uint32_t *value, const uint8_t **src, const uint8_t
      *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ntoh32
      Src: /src/h2o/deps/picotls/lib/picotls.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - src
    - end
    argTypes:
    - uint32_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 952
    functionName: ptls_decode32
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ntoh32
    linkageType: ''
    returnType: int
    signature: int ptls_decode32(uint32_t *value, const uint8_t **src, const uint8_t
      *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ntoh64
      Src: /src/h2o/deps/picotls/lib/picotls.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - src
    - end
    argTypes:
    - uint64_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 961
    functionName: ptls_decode64
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ntoh64
    linkageType: ''
    returnType: int
    signature: int ptls_decode64(uint64_t *value, const uint8_t **src, const uint8_t
      *end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/picotls.c:965,1
    - Dst: PTLS_LIKELY
      Src: /src/h2o/deps/picotls/lib/picotls.c:970,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/deps/picotls/lib/picotls.c:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - src
    - end
    argTypes:
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 981
    functionName: ptls_decode_quicint
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached:
    - PTLS_UNLIKELY
    - PTLS_LIKELY
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ptls_decode_quicint(const uint8_t **src, const uint8_t *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:987,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/lib/picotls.c:987,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:988,1
    - Dst: PTLS_LOG_ELEMENT_SAFESTR
      Src: /src/h2o/deps/picotls/lib/picotls.c:988,1
    - Dst: ptls_t*::ctx::log_event::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:991,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/lib/picotls.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - tls
    - type
    - secret
    argTypes:
    - ptls_t*
    - char*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 992
    functionName: log_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_t*::ctx::log_event::cb
    - ptls_hexdump
    - PTLS_PROBE
    - PTLS_LOG_ELEMENT_SAFESTR
    - PTLS_LOG_CONN
    linkageType: ''
    returnType: void
    signature: void log_secret(ptls_t *tls, const char *type, ptls_iovec_t secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1000,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1003,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1005,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1006,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1008,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1011,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ech
    - is_server
    argTypes:
    - struct st_ptls_ech_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1014
    functionName: clear_ech
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - free
    - ptls_clear_memory
    - ptls_aead_free
    linkageType: ''
    returnType: void
    signature: void clear_ech(struct st_ptls_ech_t *ech, int is_server)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:1028,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1031,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1039,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1044,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1047,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1051,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1053,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:1065,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1077,1
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:1082,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/lib/picotls.c:1086,1
    - Dst: SKIP_DECODED
      Src: /src/h2o/deps/picotls/lib/picotls.c:1087,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1089,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1094,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1097,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1099,1
    - Dst: SKIP_DECODED
      Src: /src/h2o/deps/picotls/lib/picotls.c:1102,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1109,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 5
    argNames:
    - kems
    - ciphers
    - decoded
    - src
    - end
    argTypes:
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    - struct st_decoded_ech_config_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1111
    functionName: decode_one_ech_config
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - ptls_decode8
    - SKIP_DECODED
    - ptls_decode_block
    - free
    - ptls_decode16
    - ptls_server_name_is_ipaddr
    - duplicate_as_str
    linkageType: ''
    returnType: int
    signature: "int decode_one_ech_config(ptls_hpke_kem_t **kems, ptls_hpke_cipher_suite_t
      **ciphers,\n                                 struct st_decoded_ech_config_t
      *decoded, const uint8_t **src, const uint8_t *const end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1073
    functionName: SKIP_DECODED
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_DECODED()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1120,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1124,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1126,1
    - Dst: decode_one_ech_config
      Src: /src/h2o/deps/picotls/lib/picotls.c:1130,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - decoded
    - config_list
    argTypes:
    - ptls_context_t*
    - struct st_decoded_ech_config_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1113
    functionDepth: 3
    functionLinenumber: 1113
    functionLinenumberEnd: 1149
    functionName: client_decode_ech_config_list
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - ptls_decode_block
    - decode_one_ech_config
    - ptls_decode16
    linkageType: ''
    returnType: int
    signature: int client_decode_ech_config_list(ptls_context_t *ctx, struct st_decoded_ech_config_t
      *decoded, ptls_iovec_t config_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1159,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1160,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1161,1
    - Dst: ptls_hpke_setup_base_s
      Src: /src/h2o/deps/picotls/lib/picotls.c:1162,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1163,1
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:1170,1
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:1172,1
    - Dst: clear_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ech
    - decoded
    argTypes:
    - struct st_ptls_ech_t*
    - struct st_decoded_ech_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1151
    functionDepth: 7
    functionLinenumber: 1151
    functionLinenumberEnd: 1181
    functionName: client_setup_ech
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - clear_ech
    - duplicate_as_str
    - random_bytes
    - ptls_buffer_pushv
    - ptls_hpke_setup_base_s
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int client_setup_ech(struct st_ptls_ech_t *ech, struct st_decoded_ech_config_t
      *decoded,\n                            void (*random_bytes)(void *, size_t))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:1206,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/picotls.c:1207,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:1210,1
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:1213,1
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:1216,1
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:1218,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:1218,1
    - Dst: clear_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:1224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - ech
    - kems
    - ciphers
    - sni_name
    argTypes:
    - struct st_ptls_ech_t*
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1225
    functionName: client_setup_ech_grease
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - clear_ech
    - malloc
    - random_bytes
    - ptls_aead_new_direct
    - duplicate_as_str
    - strlen
    linkageType: ''
    returnType: void
    signature: "void client_setup_ech_grease(struct st_ptls_ech_t *ech, void (*random_bytes)(void
      *, size_t), ptls_hpke_kem_t **kems,\n                                    ptls_hpke_cipher_suite_t
      **ciphers, const char *sni_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ctx::clone_
      Src: /src/h2o/deps/picotls/lib/picotls.c:1237,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:1241,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1242,1
    - Dst: ptls_hkdf_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:1246,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1246,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1247,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1249,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1249,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1250,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1254,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1255,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - sched
    - dst
    - inner_random
    - label
    - message
    argTypes:
    - ptls_key_schedule_t*
    - void*
    - uint8_t*
    - char*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1259
    functionName: ech_calc_confirmation
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_extract
    - ptls_hkdf_expand_label
    - ptls_hash_context_t*::final
    - ctx::clone_
    - ptls_clear_memory
    - ptls_hash_context_t*::update
    linkageType: ''
    returnType: int
    signature: "int ech_calc_confirmation(ptls_key_schedule_t *sched, void *dst, const
      uint8_t *inner_random, const char *label,\n                                 ptls_iovec_t
      message)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1264,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1266,1
    - Dst: ctx_outer::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1268,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sched
    argTypes:
    - ptls_key_schedule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1271
    functionName: key_schedule_free
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - free
    - ptls_clear_memory
    - ctx::final
    - ctx_outer::final
    linkageType: ''
    returnType: void
    signature: void key_schedule_free(ptls_key_schedule_t *sched)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_HASH
      Src: /src/h2o/deps/picotls/lib/picotls.c:1300,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:1301,1
    - Dst: FOREACH_HASH
      Src: /src/h2o/deps/picotls/lib/picotls.c:1307,1
    - Dst: hash::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:1309,1
    - Dst: hash::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:1312,1
    - Dst: key_schedule_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - preferred
    - offered
    - use_outer
    argTypes:
    - ptls_cipher_suite_t*
    - ptls_cipher_suite_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1326
    functionName: key_schedule_new
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - FOREACH_HASH
    - malloc
    - key_schedule_free
    - hash::create
    linkageType: ''
    returnType: ptls_key_schedule_t
    signature: ptls_key_schedule_t *key_schedule_new(ptls_cipher_suite_t *preferred,
      ptls_cipher_suite_t **offered, int use_outer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1295
    functionName: FOREACH_HASH
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_HASH(block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1333,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1336,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1337,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1338,1
    - Dst: ptls_hkdf_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:1343,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1344,1
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sched
    - ikm
    argTypes:
    - ptls_key_schedule_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1347
    functionName: key_schedule_extract
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_extract
    - ptls_hkdf_expand_label
    - PTLS_DEBUGF
    linkageType: ''
    returnType: int
    signature: int key_schedule_extract(ptls_key_schedule_t *sched, ptls_iovec_t ikm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1354,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1359,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1362,1
    - Dst: ctx_outer::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1364,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:1376,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:1377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - sched
    - cs
    - reset
    - reset_ikm
    argTypes:
    - ptls_key_schedule_t*
    - ptls_cipher_suite_t*
    - int
    - ptls_iovec_t
    assertStmts:
    - condition: (sched->generation == 1)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (found_slot == SIZE_MAX)
      pos:
        line_end: 1358
        line_start: 1358
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1384
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1384
    functionName: key_schedule_select_cipher
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - key_schedule_extract
    - ctx_outer::final
    - ctx::final
    - memset
    - assert
    linkageType: ''
    returnType: int
    signature: int key_schedule_select_cipher(ptls_key_schedule_t *sched, ptls_cipher_suite_t
      *cs, int reset, ptls_iovec_t reset_ikm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1390,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1391,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1392,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sched
    argTypes:
    - ptls_key_schedule_t*
    assertStmts:
    - condition: (sched->generation == 1)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (sched->hashes[0].ctx_outer != NULL)
      pos:
        line_end: 1391
        line_start: 1391
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (sched->num_hashes == 1)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1397
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1397
    functionName: key_schedule_select_outer
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ctx::final
    - assert
    linkageType: ''
    returnType: void
    signature: void key_schedule_select_outer(ptls_key_schedule_t *sched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1403,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:1406,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1410,1
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - sched
    - msg
    - msglen
    - use_outer
    argTypes:
    - ptls_key_schedule_t*
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1415
    functionName: ptls__key_schedule_update_hash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_hash_context_t*::final
    - PTLS_DEBUGF
    - ptls_hash_context_t*::update
    linkageType: ''
    returnType: void
    signature: void ptls__key_schedule_update_hash(ptls_key_schedule_t *sched, const
      uint8_t *msg, size_t msglen, int use_outer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sched
    argTypes:
    - ptls_key_schedule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1421
    functionName: key_schedule_update_ch1hash_prefix
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls__key_schedule_update_hash
    linkageType: ''
    returnType: void
    signature: void key_schedule_update_ch1hash_prefix(ptls_key_schedule_t *sched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1425,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sched
    - hash
    argTypes:
    - ptls_key_schedule_t*
    - uint8_t*
    assertStmts:
    - condition: (sched->hashes[0].ctx_outer == NULL)
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1427
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1427
    functionName: key_schedule_extract_ch1hash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ctx::final
    - assert
    linkageType: ''
    returnType: void
    signature: void key_schedule_extract_ch1hash(ptls_key_schedule_t *sched, uint8_t
      *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1437,1
    - Dst: update
      Src: /src/h2o/deps/picotls/lib/picotls.c:1438,1
    - Dst: update
      Src: /src/h2o/deps/picotls/lib/picotls.c:1439,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sched
    argTypes:
    - ptls_key_schedule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1443
    functionName: key_schedule_transform_post_ch1hash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - update
    - ptls_clear_memory
    - final
    linkageType: ''
    returnType: void
    signature: void key_schedule_transform_post_ch1hash(ptls_key_schedule_t *sched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1447,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1448,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1449,1
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - sched
    - secret
    - label
    - hash
    argTypes:
    - ptls_key_schedule_t*
    - void*
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1453
    functionName: derive_secret_with_hash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    - PTLS_DEBUGF
    linkageType: ''
    returnType: int
    signature: int derive_secret_with_hash(ptls_key_schedule_t *sched, void *secret,
      const char *label, const uint8_t *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1459,1
    - Dst: derive_secret_with_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:1460,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sched
    - secret
    - label
    argTypes:
    - ptls_key_schedule_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1463
    functionName: derive_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - derive_secret_with_hash
    - ctx::final
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int derive_secret(ptls_key_schedule_t *sched, void *secret, const char
      *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_secret_with_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:1467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sched
    - secret
    - label
    argTypes:
    - ptls_key_schedule_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1468
    functionName: derive_secret_with_empty_digest
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - derive_secret_with_hash
    linkageType: ''
    returnType: int
    signature: int derive_secret_with_empty_digest(ptls_key_schedule_t *sched, void
      *secret, const char *label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1478,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:1479,1
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1482,1
    - Dst: log_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1485,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tls
    - is_early
    argTypes:
    - ptls_t*
    - int
    assertStmts:
    - condition: (*slot == NULL)
      pos:
        line_end: 1477
        line_start: 1477
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1489
      start: 1470
    functionDepth: 3
    functionLinenumber: 1470
    functionLinenumberEnd: 1489
    functionName: derive_exporter_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - derive_secret
    - log_secret
    - assert
    linkageType: ''
    returnType: int
    signature: int derive_exporter_secret(ptls_t *tls, int is_early)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1496,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1497,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tls
    - is_early
    argTypes:
    - ptls_t*
    - int
    assertStmts:
    - condition: (tls->key_schedule != NULL)
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1499
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1499
    functionName: free_exporter_master_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - free
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: void
    signature: void free_exporter_master_secret(ptls_t *tls, int is_early)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1505,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1507,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1508,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - sched
    - secret
    - nonce
    argTypes:
    - ptls_key_schedule_t*
    - uint8_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1515
    functionName: derive_resumption_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - derive_secret
    - ptls_hkdf_expand_label
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int derive_resumption_secret(ptls_key_schedule_t *sched, uint8_t *secret,
      ptls_iovec_t nonce)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1523,1
    - Dst: ptls_decode32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1525,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1527,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1528,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1531,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1536,1
    - Dst: decode_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:1541,1
    - Dst: ptls_t*::ctx::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:1543,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1544,1
    - Dst: ptls_decode32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1548,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 8
    argNames:
    - tls
    - lifetime
    - age_add
    - nonce
    - ticket
    - max_early_data_size
    - src
    - end
    argTypes:
    - ptls_t*
    - uint32_t*
    - uint32_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - uint32_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1560
    functionName: decode_new_session_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_t*::ctx::on_extension::cb
    - ptls_decode_open_block
    - ptls_decode32
    - decode_extensions
    linkageType: ''
    returnType: int
    signature: "int decode_new_session_ticket(ptls_t *tls, uint32_t *lifetime, uint32_t
      *age_add, ptls_iovec_t *nonce, ptls_iovec_t *ticket,\n                                     uint32_t
      *max_early_data_size, const uint8_t *src, const uint8_t *const end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:1573,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1575,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1577,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1579,1
    - Dst: decode_new_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:1580,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1584,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1585,1
    - Dst: ptls_t*::ctx::get_time::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:1614,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 9
    argNames:
    - tls
    - key_share
    - cs
    - secret
    - obfuscated_ticket_age
    - ticket
    - max_early_data_size
    - src
    - end
    argTypes:
    - ptls_t*
    - ptls_key_exchange_algorithm_t**
    - ptls_cipher_suite_t**
    - ptls_iovec_t*
    - uint32_t*
    - ptls_iovec_t*
    - uint32_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1624
    functionName: decode_stored_session_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - ptls_decode64
    - decode_new_session_ticket
    - ptls_decode_block
    - ptls_decode16
    - ptls_t*::ctx::get_time::cb
    linkageType: ''
    returnType: int
    signature: "int decode_stored_session_ticket(ptls_t *tls, ptls_key_exchange_algorithm_t
      **key_share, ptls_cipher_suite_t **cs,\n                                        ptls_iovec_t
      *secret, uint32_t *obfuscated_ticket_age, ptls_iovec_t *ticket,\n                                        uint32_t
      *max_early_data_size, const uint8_t *src, const uint8_t *const end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1629,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - algo
    - key
    - key_size
    - is_iv
    - secret
    - hash_value
    - label_prefix
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - size_t
    - int
    - void*
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1631
    functionName: get_traffic_key
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    linkageType: ''
    returnType: int
    signature: "int get_traffic_key(ptls_hash_algorithm_t *algo, void *key, size_t
      key_size, int is_iv, const void *secret,\n                           ptls_iovec_t
      hash_value, const char *label_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_traffic_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:1638,1
    - Dst: get_traffic_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:1639,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1640,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - aead
    - hash
    - key
    - iv
    - secret
    - hash_value
    - label_prefix
    argTypes:
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - void*
    - void*
    - void*
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1645
    functionName: get_traffic_keys
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - get_traffic_key
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int get_traffic_keys(ptls_aead_algorithm_t *aead, ptls_hash_algorithm_t
      *hash, void *key, void *iv, const void *secret,\n                            ptls_iovec_t
      hash_value, const char *label_prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1656,1
    - Dst: log_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1662,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:1662,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1663,1
    - Dst: ptls_t*::ctx::update_traffic_key::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:1669,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1673,1
    - Dst: ptls_aead_new
      Src: /src/h2o/deps/picotls/lib/picotls.c:1674,1
    - Dst: ptls_aead_get_iv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1682,1
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1683,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:1683,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - tls
    - is_enc
    - secret_label
    - epoch
    - seq
    - skip_notify
    argTypes:
    - ptls_t*
    - int
    - char*
    - size_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1647
    functionDepth: 3
    functionLinenumber: 1647
    functionLinenumberEnd: 1689
    functionName: setup_traffic_protection
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - derive_secret
    - ptls_t*::ctx::update_traffic_key::cb
    - log_secret
    - ptls_is_server
    - ptls_aead_free
    - ptls_aead_new
    - PTLS_DEBUGF
    - ptls_aead_get_iv
    linkageType: ''
    returnType: int
    signature: int setup_traffic_protection(ptls_t *tls, int is_enc, const char *secret_label,
      size_t epoch, uint64_t seq, int skip_notify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:1693,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1695,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:1696,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1698,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:1699,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts:
    - condition: (tls->pending_handshake_secret != NULL)
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1703
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1703
    functionName: commission_handshake_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - setup_traffic_protection
    - ptls_is_server
    - free
    - memcpy
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: int
    signature: int commission_handshake_secret(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:1711,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/lib/picotls.c:1711,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:1712,1
    - Dst: PTLS_LOG_ELEMENT_HEXDUMP
      Src: /src/h2o/deps/picotls/lib/picotls.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1713
    functionName: log_client_random
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_hexdump
    - PTLS_LOG_CONN
    - PTLS_LOG_ELEMENT_HEXDUMP
    - PTLS_PROBE
    linkageType: ''
    returnType: void
    signature: void log_client_random(ptls_t *tls)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1724,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1726,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:1728,1
    - Dst: ptls_context_t*::get_time::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:1728,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1730,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:1731,1
    - Dst: derive_resumption_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:1733,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1738,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1740,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1742,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1744,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1746,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1748,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:1748,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1752,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1754,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:1754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 9
    argNames:
    - ctx
    - buf
    - ticket_age_add
    - ticket_nonce
    - sched
    - server_name
    - key_exchange_id
    - csid
    - negotiated_protocol
    argTypes:
    - ptls_context_t*
    - ptls_buffer_t*
    - uint32_t
    - ptls_iovec_t
    - ptls_key_schedule_t*
    - char*
    - uint16_t
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1718
    functionDepth: 4
    functionLinenumber: 1718
    functionLinenumberEnd: 1760
    functionName: encode_session_identifier
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push64
    - ptls_context_t*::get_time::cb
    - ptls_buffer_push_block
    - ptls_buffer_reserve
    - ptls_buffer_push16
    - ptls_buffer_push32
    - derive_resumption_secret
    - ptls_buffer_pushv
    - strlen
    linkageType: ''
    returnType: int
    signature: "int encode_session_identifier(ptls_context_t *ctx, ptls_buffer_t *buf,
      uint32_t ticket_age_add, ptls_iovec_t ticket_nonce,\n                                     ptls_key_schedule_t
      *sched, const char *server_name, uint16_t key_exchange_id, uint16_t csid,\n
      \                                    const char *negotiated_protocol)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1768,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:1770,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:1775,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1777,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1778,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1781,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1783,1
    - Dst: ptls_decode32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1785,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1787,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1788,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1791,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1792,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 9
    argNames:
    - issued_at
    - psk
    - ticket_age_add
    - ticket_ctx
    - key_exchange_id
    - csid
    - negotiated_protocol
    - src
    - end
    argTypes:
    - uint64_t*
    - ptls_iovec_t*
    - uint32_t*
    - ptls_iovec_t*
    - uint16_t*
    - uint16_t*
    - ptls_iovec_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1799
    functionName: decode_session_identifier
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - memcmp
    - ptls_decode_block
    - ptls_decode64
    - ptls_decode16
    - ptls_decode32
    linkageType: ''
    returnType: int
    signature: "int decode_session_identifier(uint64_t *issued_at, ptls_iovec_t *psk,
      uint32_t *ticket_age_add, ptls_iovec_t *ticket_ctx,\n                              uint16_t
      *key_exchange_id, uint16_t *csid, ptls_iovec_t *negotiated_protocol, const uint8_t
      *src,\n                              const uint8_t *const end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:1805,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:1807,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:1807,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:1808,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1809,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - data
    - sched
    - context_string
    argTypes:
    - uint8_t*
    - ptls_key_schedule_t*
    - char*
    assertStmts:
    - condition: (datalen <= PTLS_MAX_CERTIFICATE_VERIFY_SIGNDATA_SIZE)
      pos:
        line_end: 1810
        line_start: 1810
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1814
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1814
    functionName: build_certificate_verify_signdata
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ctx::final
    - memcpy
    - memset
    - assert
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t build_certificate_verify_signdata(uint8_t *data, ptls_key_schedule_t
      *sched, const char *context_string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:1822,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1823,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1824,1
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:1826,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1827,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1831,1
    - Dst: PTLS_DEBUGF
      Src: /src/h2o/deps/picotls/lib/picotls.c:1832,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:1833,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1834,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - output
    - sched
    - secret
    argTypes:
    - void*
    - ptls_key_schedule_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1838
    functionName: calc_verify_data
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand_label
    - ctx::final
    - ptls_hash_context_t*::final
    - PTLS_DEBUGF
    - ptls_clear_memory
    - ptls_hash_context_t*::update
    - ptls_hmac_create
    linkageType: ''
    returnType: int
    signature: int calc_verify_data(void *output, ptls_key_schedule_t *sched, const
      void *secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calc_verify_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:1850,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/picotls.c:1852,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:1858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 1860
    functionName: verify_finished
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - calc_verify_data
    - ptls_mem_equal
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int verify_finished(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:1866,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:1867,1
    - Dst: calc_verify_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:1869,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - tls
    - emitter
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1862
    functionDepth: 2
    functionLinenumber: 1862
    functionLinenumberEnd: 1877
    functionName: send_finished
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - calc_verify_data
    - ptls_push_message
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int send_finished(ptls_t *tls, ptls_message_emitter_t *emitter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ctx::clone_
      Src: /src/h2o/deps/picotls/lib/picotls.c:1881,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1887,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1888,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1890,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:1895,1
    - Dst: ptls_buffer_push_message_body
      Src: /src/h2o/deps/picotls/lib/picotls.c:1896,1
    - Dst: ptls_buffer_push_message_body
      Src: /src/h2o/deps/picotls/lib/picotls.c:1899,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:1900,1
    - Dst: calc_verify_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:1902,1
    - Dst: ptls_t*::ctx::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:1911,1
    - Dst: encode_session_identifier
      Src: /src/h2o/deps/picotls/lib/picotls.c:1914,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1914,1
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:1920,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1921,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1922,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1923,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1924,1
    - Dst: ptls_t*::ctx::encrypt_ticket::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:1925,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:1926,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1929,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:1931,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/picotls/lib/picotls.c:1932,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:1937,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:1940,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - tls
    - emitter
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    assertStmts:
    - condition: (tls->ctx->encrypt_ticket != NULL)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->state == PTLS_STATE_SERVER_EXPECT_END_OF_EARLY_DATA)
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->ctx->ticket_lifetime != 0)
      pos:
        line_end: 1886
        line_start: 1886
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1879
    functionDepth: 5
    functionLinenumber: 1879
    functionLinenumberEnd: 1944
    functionName: send_session_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_dispose
    - ptls_push_message
    - ptls_buffer_push_block
    - ptls_t*::ctx::encrypt_ticket::cb
    - ctx::clone_
    - ptls_buffer_reserve
    - buffer_push_extension
    - calc_verify_data
    - ctx::final
    - ptls_buffer_push_message_body
    - ptls_buffer_push32
    - encode_session_identifier
    - ptls_t*::ctx::random_bytes
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int send_session_ticket(ptls_t *tls, ptls_message_emitter_t *emitter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buffer_push_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:1963,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:1963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tls
    - emitter
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1969
    functionName: push_change_cipher_spec
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push
    - buffer_push_record
    linkageType: ''
    returnType: int
    signature: int push_change_cipher_spec(ptls_t *tls, ptls_message_emitter_t *emitter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:1978,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:1978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - properties
    - sendbuf
    argTypes:
    - ptls_handshake_properties_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1984
    functionName: push_additional_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_pushv
    - buffer_push_extension
    linkageType: ''
    returnType: int
    signature: int push_additional_extensions(ptls_handshake_properties_t *properties,
      ptls_buffer_t *sendbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:1994,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:1996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vc
    - sendbuf
    argTypes:
    - ptls_verify_certificate_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1986
    functionDepth: 1
    functionLinenumber: 1986
    functionLinenumberEnd: 2002
    functionName: push_signature_algorithms
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push16
    - ptls_buffer_push_block
    linkageType: ''
    returnType: int
    signature: int push_signature_algorithms(ptls_verify_certificate_t *vc, ptls_buffer_t
      *sendbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2008,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2011,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:2013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - sa
    - src
    - end
    argTypes:
    - struct st_ptls_signature_algorithms_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2021
    functionName: decode_signature_algorithms
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_decode_block
    - PTLS_ELEMENTSOF
    - ptls_decode16
    linkageType: ''
    returnType: int
    signature: int decode_signature_algorithms(struct st_ptls_signature_algorithms_t
      *sa, const uint8_t **src, const uint8_t *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2034,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 7
    argNames:
    - selected
    - candidates
    - src
    - end
    - server_preference
    - server_chacha_priority
    - hash
    argTypes:
    - ptls_cipher_suite_t**
    - ptls_cipher_suite_t**
    - uint8_t*
    - uint8_t*
    - int
    - int
    - ptls_hash_algorithm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2066
    functionName: select_cipher
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_decode16
    linkageType: ''
    returnType: int
    signature: "int select_cipher(ptls_cipher_suite_t **selected, ptls_cipher_suite_t
      **candidates, const uint8_t *src,\n                         const uint8_t *const
      end, int server_preference, int server_chacha_priority, ptls_hash_algorithm_t
      *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2072,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2073,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - group
    - pubkey
    argTypes:
    - ptls_buffer_t*
    - uint16_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2077
    functionName: push_key_share_entry
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push16
    - ptls_buffer_pushv
    - ptls_buffer_push_block
    linkageType: ''
    returnType: int
    signature: int push_key_share_entry(ptls_buffer_t *buf, uint16_t group, ptls_iovec_t
      pubkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2083,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2085,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - group
    - key_exchange
    - src
    - end
    argTypes:
    - uint16_t*
    - ptls_iovec_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2079
    functionDepth: 1
    functionLinenumber: 2079
    functionLinenumberEnd: 2092
    functionName: decode_key_share_entry
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_decode_open_block
    - ptls_decode16
    linkageType: ''
    returnType: int
    signature: int decode_key_share_entry(uint16_t *group, ptls_iovec_t *key_exchange,
      const uint8_t **src, const uint8_t *const end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_key_share_entry
      Src: /src/h2o/deps/picotls/lib/picotls.c:2110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - selected
    - peer_key
    - candidates
    - src
    - end
    - expect_one
    argTypes:
    - ptls_key_exchange_algorithm_t**
    - ptls_iovec_t*
    - ptls_key_exchange_algorithm_t**
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2094
    functionDepth: 2
    functionLinenumber: 2094
    functionLinenumberEnd: 2129
    functionName: select_key_share
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - decode_key_share_entry
    linkageType: ''
    returnType: int
    signature: "int select_key_share(ptls_key_exchange_algorithm_t **selected, ptls_iovec_t
      *peer_key,\n                            ptls_key_exchange_algorithm_t **candidates,
      const uint8_t **src, const uint8_t *const end,\n                            int
      expect_one)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2135,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2136,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2137,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2137,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:2137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - server_name
    argTypes:
    - ptls_buffer_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2143
    functionName: emit_server_name_extension
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push
    - ptls_buffer_push_block
    - ptls_buffer_pushv
    - strlen
    linkageType: ''
    returnType: int
    signature: int emit_server_name_extension(ptls_buffer_t *buf, const char *server_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2148
    functionDepth: 0
    functionLinenumber: 2148
    functionLinenumberEnd: 2151
    functionName: outer_ech_header_size
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t outer_ech_header_size(size_t enc_size)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2168,1
    - Dst: ptls_buffer_push_message_body
      Src: /src/h2o/deps/picotls/lib/picotls.c:2170,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2172,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2174,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2176,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2178,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2181,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2184,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2187,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2187,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2189,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2191,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2193,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2194,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2195,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2196,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2197,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2199,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2201,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2202,1
    - Dst: outer_ech_header_size
      Src: /src/h2o/deps/picotls/lib/picotls.c:2203,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:2204,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:2206,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2212,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2213,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2215,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2216,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2219,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2220,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2220,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2223,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2224,1
    - Dst: push_key_share_entry
      Src: /src/h2o/deps/picotls/lib/picotls.c:2226,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2232,1
    - Dst: emit_server_name_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2233,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2238,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2239,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2242,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2244,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2251,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2252,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2254,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2256,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2260,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2261,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:2263,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2264,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2267,1
    - Dst: push_signature_algorithms
      Src: /src/h2o/deps/picotls/lib/picotls.c:2268,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2272,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2274,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2276,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2281,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2282,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2282,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2286,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2287,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2287,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2292,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2293,1
    - Dst: push_additional_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:2297,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2300,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2301,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2303,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:2304,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2310,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2312,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2313,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2314,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:2316,1
    - Dst: ptls_context_t*::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:2318,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:2321,1
    - Dst: ptls_context_t*::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:2326,1
    - Dst: ptls_buffer_push32
      Src: /src/h2o/deps/picotls/lib/picotls.c:2330,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2334,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2335,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:2336,1
    - Dst: ptls_context_t*::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:2338,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 179
    argCount: 18
    argNames:
    - ctx
    - sendbuf
    - mode
    - is_second_flight
    - properties
    - client_random
    - key_share_ctx
    - sni_name
    - legacy_session_id
    - ech
    - ech_size_offset
    - ech_replay
    - psk_secret
    - psk_identity
    - obfuscated_ticket_age
    - psk_binder_size
    - cookie
    - using_early_data
    argTypes:
    - ptls_context_t*
    - ptls_buffer_t*
    - enum encode_ch_mode
    - int
    - ptls_handshake_properties_t*
    - void*
    - ptls_key_exchange_context_t*
    - char*
    - ptls_iovec_t
    - struct st_ptls_ech_t*
    - size_t*
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    - uint32_t
    - size_t
    - ptls_iovec_t*
    - int
    assertStmts:
    - condition: "(sendbuf->off - ext_payload_from ==\n                               outer_ech_header_size(is_second_flight
        ? 0 : ech->client.enc.len))"
      pos:
        line_end: 2202
        line_start: 2201
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (*algo != UINT16_MAX)
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (mode == ENCODE_CH_MODE_INNER || ech != NULL)
      pos:
        line_end: 2167
        line_start: 2167
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2349
      start: 2159
    functionDepth: 2
    functionLinenumber: 2159
    functionLinenumberEnd: 2349
    functionName: encode_client_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memset
    - PTLS_ELEMENTSOF
    - ptls_buffer_push
    - outer_ech_header_size
    - emit_server_name_extension
    - push_additional_extensions
    - push_signature_algorithms
    - ptls_buffer_push_block
    - ptls_buffer_reserve
    - buffer_push_extension
    - ptls_buffer_push16
    - ptls_buffer_push_message_body
    - ptls_buffer_push32
    - ptls_buffer_pushv
    - ptls_context_t*::random_bytes
    - assert
    - push_key_share_entry
    linkageType: ''
    returnType: int
    signature: "int encode_client_hello(ptls_context_t *ctx, ptls_buffer_t *sendbuf,
      enum encode_ch_mode mode, int is_second_flight,\n                               ptls_handshake_properties_t
      *properties, const void *client_random,\n                               ptls_key_exchange_context_t
      *key_share_ctx, const char *sni_name, ptls_iovec_t legacy_session_id,\n                               struct
      st_ptls_ech_t *ech, size_t *ech_size_offset, ptls_iovec_t ech_replay, ptls_iovec_t
      psk_secret,\n                               ptls_iovec_t psk_identity, uint32_t
      obfuscated_ticket_age, size_t psk_binder_size,\n                               ptls_iovec_t
      *cookie, int using_early_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2363,1
    - Dst: calc_verify_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:2365,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - ks
    - ch
    - ch_start
    - ch_end
    - has_psk
    - binder_key
    - is_outer
    argTypes:
    - ptls_key_schedule_t*
    - uint8_t*
    - size_t
    - size_t
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2371
    functionName: update_ch_hash_and_binder
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - calc_verify_data
    - ptls__key_schedule_update_hash
    linkageType: ''
    returnType: int
    signature: "int update_ch_hash_and_binder(ptls_key_schedule_t *ks, uint8_t *ch,
      size_t ch_start, size_t ch_end, int has_psk,\n                                     uint8_t
      *binder_key, int is_outer)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2388,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/lib/picotls.c:2390,1
    - Dst: client_decode_ech_config_list
      Src: /src/h2o/deps/picotls/lib/picotls.c:2398,1
    - Dst: client_setup_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:2400,1
    - Dst: client_setup_ech_grease
      Src: /src/h2o/deps/picotls/lib/picotls.c:2405,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2422,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2428,1
    - Dst: decode_stored_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:2441,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2455,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2476,1
    - Dst: ptls_t*::key_share::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:2478,1
    - Dst: key_schedule_new
      Src: /src/h2o/deps/picotls/lib/picotls.c:2484,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:2488,1
    - Dst: ptls_message_emitter_t*::begin_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:2493,1
    - Dst: encode_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2498,1
    - Dst: derive_secret_with_empty_digest
      Src: /src/h2o/deps/picotls/lib/picotls.c:2507,1
    - Dst: update_ch_hash_and_binder
      Src: /src/h2o/deps/picotls/lib/picotls.c:2510,1
    - Dst: encode_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2517,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2519,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:2524,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:2530,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:2540,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:2542,1
    - Dst: encode_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2550,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2552,1
    - Dst: ptls_aead_encrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:2557,1
    - Dst: outer_ech_header_size
      Src: /src/h2o/deps/picotls/lib/picotls.c:2563,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:2564,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:2568,1
    - Dst: outer_ech_header_size
      Src: /src/h2o/deps/picotls/lib/picotls.c:2569,1
    - Dst: ctx::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:2578,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:2582,1
    - Dst: update_ch_hash_and_binder
      Src: /src/h2o/deps/picotls/lib/picotls.c:2584,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2589,1
    - Dst: ptls_message_emitter_t*::commit_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:2594,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2598,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:2599,1
    - Dst: push_change_cipher_spec
      Src: /src/h2o/deps/picotls/lib/picotls.c:2601,1
    - Dst: derive_exporter_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:2605,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:2612,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:2613,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 176
    argCount: 4
    argNames:
    - tls
    - emitter
    - properties
    - cookie
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_handshake_properties_t*
    - ptls_iovec_t*
    assertStmts:
    - condition: (!is_second_flight)
      pos:
        line_end: 2597
        line_start: 2597
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->cipher_suite != NULL && tls->cipher_suite->hash == tls->ctx->pre_shared_key.hash)
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->client.key_share_ctx == NULL)
      pos:
        line_end: 2475
        line_start: 2475
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->cipher_suite != NULL && "no compatible cipher-suite provided
        that matches psk.hash")
      pos:
        line_end: 2421
        line_start: 2421
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2615
      start: 2373
    functionDepth: 8
    functionLinenumber: 2373
    functionLinenumberEnd: 2615
    functionName: send_client_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - client_decode_ech_config_list
    - setup_traffic_protection
    - key_schedule_extract
    - encode_client_hello
    - update_ch_hash_and_binder
    - ctx::final
    - outer_ech_header_size
    - ptls_t*::key_share::create
    - assert
    - ptls_iovec_init
    - push_change_cipher_spec
    - derive_exporter_secret
    - ptls_buffer_reserve
    - ptls_clear_memory
    - memset
    - ptls_server_name_is_ipaddr
    - malloc
    - ptls_aead_encrypt
    - client_setup_ech
    - derive_secret_with_empty_digest
    - key_schedule_new
    - ptls_aead_free
    - memcpy
    - ptls_message_emitter_t*::commit_message
    - ptls__key_schedule_update_hash
    - strlen
    - ptls_buffer_init
    - ptls_buffer_dispose
    - client_setup_ech_grease
    - decode_stored_session_ticket
    - ptls_message_emitter_t*::begin_message
    linkageType: ''
    returnType: int
    signature: "int send_client_hello(ptls_t *tls, ptls_message_emitter_t *emitter,
      ptls_handshake_properties_t *properties,\n                             ptls_iovec_t
      *cookie)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cipher_suites
    - id
    argTypes:
    - ptls_cipher_suite_t**
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2625
    functionName: ptls_find_cipher_suite
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t *ptls_find_cipher_suite(ptls_cipher_suite_t **cipher_suites,
      uint16_t id)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:2645,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2649,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2654,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2660,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/deps/picotls/lib/picotls.c:2662,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:2670,1
    - Dst: decode_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:2682,1
    - Dst: ptls_t*::ctx::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:2685,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2686,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2690,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2699,1
    - Dst: decode_key_share_entry
      Src: /src/h2o/deps/picotls/lib/picotls.c:2703,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2716,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:2717,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2722,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2727,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:2728,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2732,1
    - Dst: is_supported_version
      Src: /src/h2o/deps/picotls/lib/picotls.c:2750,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 147
    argCount: 4
    argNames:
    - tls
    - sh
    - src
    - end
    argTypes:
    - ptls_t*
    - struct st_ptls_server_hello_t*
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (sh->is_retry_request)
      pos:
        line_end: 2715
        line_start: 2715
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (sh->is_retry_request)
      pos:
        line_end: 2731
        line_start: 2731
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!sh->is_retry_request)
      pos:
        line_end: 2726
        line_start: 2726
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2775
      start: 2627
    functionDepth: 2
    functionLinenumber: 2627
    functionLinenumberEnd: 2775
    functionName: decode_server_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_t*::ctx::on_extension::cb
    - ptls_decode_open_block
    - ptls_find_cipher_suite
    - memcmp
    - ptls_decode8
    - ptls_decode_block
    - ptls_decode16
    - is_supported_version
    - decode_key_share_entry
    - assert
    - decode_extensions
    linkageType: ''
    returnType: int
    signature: int decode_server_hello(ptls_t *tls, struct st_ptls_server_hello_t
      *sh, const uint8_t *src, const uint8_t *const end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_t*::client::key_share_ctx::on_exchange
      Src: /src/h2o/deps/picotls/lib/picotls.c:2783,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2783,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2790,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:2791,1
    - Dst: send_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2815,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 5
    argNames:
    - tls
    - emitter
    - sh
    - message
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - struct st_ptls_server_hello_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (tls->traffic_protection.enc.aead != NULL)
      pos:
        line_end: 2789
        line_start: 2789
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2819
      start: 2777
    functionDepth: 9
    functionLinenumber: 2777
    functionLinenumberEnd: 2819
    functionName: handle_hello_retry_request
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_t*::client::key_share_ctx::on_exchange
    - ptls_aead_free
    - send_client_hello
    - assert
    linkageType: ''
    returnType: int
    signature: "int handle_hello_retry_request(ptls_t *tls, ptls_message_emitter_t
      *emitter, struct st_ptls_server_hello_t *sh,\n                                      ptls_iovec_t
      message, ptls_handshake_properties_t *properties)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:2829,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:2830,1
    - Dst: ech_calc_confirmation
      Src: /src/h2o/deps/picotls/lib/picotls.c:2831,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/picotls.c:2834,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:2835,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:2847,1
    - Dst: key_schedule_select_outer
      Src: /src/h2o/deps/picotls/lib/picotls.c:2849,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:2852,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:2853,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/picotls/lib/picotls.c:2853,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:2854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - tls
    - message
    - confirm_hash_off
    - label
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2821
    functionDepth: 2
    functionLinenumber: 2821
    functionLinenumberEnd: 2856
    functionName: client_ech_select_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ech_calc_confirmation
    - ptls_aead_free
    - PTLS_PROBE
    - PTLS_LOG_ELEMENT_BOOL
    - memcpy
    - key_schedule_select_outer
    - ptls_clear_memory
    - PTLS_LOG_CONN
    - memset
    - ptls_mem_equal
    linkageType: ''
    returnType: int
    signature: int client_ech_select_hello(ptls_t *tls, ptls_iovec_t message, size_t
      confirm_hash_off, const char *label)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: decode_server_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2865,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/picotls.c:2868,1
    - Dst: key_schedule_select_cipher
      Src: /src/h2o/deps/picotls/lib/picotls.c:2874,1
    - Dst: key_schedule_transform_post_ch1hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2876,1
    - Dst: client_ech_select_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2883,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2886,1
    - Dst: handle_hello_retry_request
      Src: /src/h2o/deps/picotls/lib/picotls.c:2887,1
    - Dst: key_schedule_select_cipher
      Src: /src/h2o/deps/picotls/lib/picotls.c:2890,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2891,1
    - Dst: client_ech_select_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:2901,1
    - Dst: clear_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:2906,1
    - Dst: ctx_outer::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:2908,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:2918,1
    - Dst: ptls_t*::client::key_share_ctx::on_exchange
      Src: /src/h2o/deps/picotls/lib/picotls.c:2921,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2922,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:2927,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:2929,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:2932,1
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:2936,1
    - Dst: ptls_t*::ctx::update_traffic_key::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:2939,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:2942,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:2951,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:2952,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 87
    argCount: 4
    argNames:
    - tls
    - emitter
    - message
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (ecdh_secret.base == NULL)
      pos:
        line_end: 2921
        line_start: 2921
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2955
      start: 2858
    functionDepth: 10
    functionLinenumber: 2858
    functionLinenumberEnd: 2955
    functionName: client_handle_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - setup_traffic_protection
    - key_schedule_extract
    - ctx_outer::final
    - handle_hello_retry_request
    - assert
    - ptls_iovec_init
    - derive_secret
    - ptls_t*::ctx::update_traffic_key::cb
    - free
    - key_schedule_select_cipher
    - ptls_clear_memory
    - malloc
    - client_ech_select_hello
    - ptls_mem_equal
    - ptls__key_schedule_update_hash
    - clear_ech
    - ptls_t*::client::key_share_ctx::on_exchange
    - decode_server_hello
    - key_schedule_transform_post_ch1hash
    linkageType: ''
    returnType: int
    signature: "int client_handle_hello(ptls_t *tls, ptls_message_emitter_t *emitter,
      ptls_iovec_t message,\n                               ptls_handshake_properties_t
      *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_handshake_properties_t*::collect_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:2959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - tls
    - properties
    - type
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2957
    functionDepth: 0
    functionLinenumber: 2957
    functionLinenumberEnd: 2960
    functionName: should_collect_unknown_extension
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_handshake_properties_t*::collect_extension
    linkageType: ''
    returnType: int
    signature: int should_collect_unknown_extension(ptls_t *tls, ptls_handshake_properties_t
      *properties, uint16_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2967,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:2973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - tls
    - type
    - src
    - end
    - slots
    argTypes:
    - ptls_t*
    - uint16_t
    - uint8_t*
    - uint8_t*
    - ptls_raw_extension_t*
    assertStmts:
    - condition: (i < MAX_UNKNOWN_EXTENSIONS)
      pos:
        line_end: 2966
        line_start: 2966
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2977
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2977
    functionName: collect_unknown_extension
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - assert
    linkageType: ''
    returnType: int
    signature: "int collect_unknown_extension(ptls_t *tls, uint16_t type, const uint8_t
      *src, const uint8_t *const end,\n                                     ptls_raw_extension_t
      *slots)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:2982,1
    - Dst: ptls_handshake_properties_t*::collected_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:2983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tls
    - properties
    - slots
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - ptls_raw_extension_t*
    assertStmts:
    - condition: (properties->collected_extensions != NULL)
      pos:
        line_end: 2981
        line_start: 2981
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 2987
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 2987
    functionName: report_unknown_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_handshake_properties_t*::collected_extensions
    - assert
    linkageType: ''
    returnType: int
    signature: int report_unknown_extensions(ptls_t *tls, ptls_handshake_properties_t
      *properties, ptls_raw_extension_t *slots)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: decode_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:2998,1
    - Dst: ptls_t*::ctx::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3000,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3001,1
    - Dst: ptls_server_name_is_ipaddr
      Src: /src/h2o/deps/picotls/lib/picotls.c:3009,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3015,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3016,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/picotls/lib/picotls.c:3021,1
    - Dst: client_decode_ech_config_list
      Src: /src/h2o/deps/picotls/lib/picotls.c:3054,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3054,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:3060,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:3064,1
    - Dst: should_collect_unknown_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3070,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:3072,1
    - Dst: collect_unknown_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3078,1
    - Dst: report_unknown_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:3098,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3101,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:3108,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 118
    argCount: 3
    argNames:
    - tls
    - message
    - properties
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 2989
    functionDepth: 4
    functionLinenumber: 2989
    functionLinenumberEnd: 3110
    functionName: client_handle_encrypted_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - client_decode_ech_config_list
    - ptls_t*::ctx::on_extension::cb
    - ptls_decode_open_block
    - malloc
    - should_collect_unknown_extension
    - ptls_decode_block
    - ptls_set_negotiated_protocol
    - free
    - collect_unknown_extension
    - memcpy
    - report_unknown_extensions
    - ptls_server_name_is_ipaddr
    - ptls__key_schedule_update_hash
    - decode_extensions
    linkageType: ''
    returnType: int
    signature: int client_handle_encrypted_extensions(ptls_t *tls, ptls_iovec_t message,
      ptls_handshake_properties_t *properties)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3119,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:3125,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:3130,1
    - Dst: decode_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:3135,1
    - Dst: ptls_t*::ctx::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3137,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3138,1
    - Dst: decode_signature_algorithms
      Src: /src/h2o/deps/picotls/lib/picotls.c:3142,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - tls
    - cr
    - src
    - end
    argTypes:
    - ptls_t*
    - struct st_ptls_certificate_request_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3112
    functionDepth: 2
    functionLinenumber: 3112
    functionLinenumberEnd: 3157
    functionName: decode_certificate_request
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - decode_signature_algorithms
    - malloc
    - ptls_decode_open_block
    - ptls_t*::ctx::on_extension::cb
    - memcpy
    - decode_extensions
    linkageType: ''
    returnType: int
    signature: "int decode_certificate_request(ptls_t *tls, struct st_ptls_certificate_request_t
      *cr, const uint8_t *src,\n                                      const uint8_t
      *const end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3164,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:3164,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3165,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3168,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:3168,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3169,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3171,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:3172,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3173,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:3173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - buf
    - context
    - certificates
    - num_certificates
    - ocsp_status
    argTypes:
    - ptls_buffer_t*
    - ptls_iovec_t
    - ptls_iovec_t*
    - size_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3159
    functionDepth: 1
    functionLinenumber: 3159
    functionLinenumberEnd: 3183
    functionName: ptls_build_certificate_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_buffer_pushv
    - ptls_buffer_push_block
    - ptls_buffer_push
    - buffer_push_extension
    linkageType: ''
    returnType: int
    signature: "int ptls_build_certificate_message(ptls_buffer_t *buf, ptls_iovec_t
      context, ptls_iovec_t *certificates, size_t num_certificates,\n                                   ptls_iovec_t
      ocsp_status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:3191,1
    - Dst: ptls_build_certificate_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:3192,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - _self
    - tls
    - emitter
    - key_sched
    - context
    - push_status_request
    - compress_algos
    - num_compress_algos
    argTypes:
    - ptls_emit_certificate_t*
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_key_schedule_t*
    - ptls_iovec_t
    - int
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3185
    functionDepth: 2
    functionLinenumber: 3185
    functionLinenumberEnd: 3200
    functionName: default_emit_certificate_cb
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_push_message
    - ptls_build_certificate_message
    linkageType: ''
    returnType: int
    signature: "int default_emit_certificate_cb(ptls_emit_certificate_t *_self, ptls_t
      *tls, ptls_message_emitter_t *emitter,\n                                       ptls_key_schedule_t
      *key_sched, ptls_iovec_t context, int push_status_request,\n                                       const
      uint16_t *compress_algos, size_t num_compress_algos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_emit_certificate_t*::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3218,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - tls
    - emitter
    - signature_algorithms
    - context
    - push_status_request
    - compress_algos
    - num_compress_algos
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - struct st_ptls_signature_algorithms_t*
    - ptls_iovec_t
    - int
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (emit_certificate != &default_emit_certificate)
      pos:
        line_end: 3220
        line_start: 3220
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 3231
      start: 3202
    functionDepth: 0
    functionLinenumber: 3202
    functionLinenumberEnd: 3231
    functionName: send_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_emit_certificate_t*::cb
    - assert
    linkageType: ''
    returnType: int
    signature: "int send_certificate(ptls_t *tls, ptls_message_emitter_t *emitter,\n
      \                           struct st_ptls_signature_algorithms_t *signature_algorithms,
      ptls_iovec_t context,\n                            int push_status_request,
      const uint16_t *compress_algos, size_t num_compress_algos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:3242,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3245,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3246,1
    - Dst: build_certificate_verify_signdata
      Src: /src/h2o/deps/picotls/lib/picotls.c:3249,1
    - Dst: ptls_t*::ctx::sign_certificate::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3250,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3252,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3254,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3255,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - tls
    - emitter
    - signature_algorithms
    - context_string
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - struct st_ptls_signature_algorithms_t*
    - char*
    assertStmts:
    - condition: (tls->is_server || !"async operation only supported on the server-side")
      pos:
        line_end: 3253
        line_start: 3253
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->server.async_job != NULL)
      pos:
        line_end: 3254
        line_start: 3254
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!tls->is_server || tls->server.async_job == NULL)
      pos:
        line_end: 3260
        line_start: 3260
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 3270
      start: 3233
    functionDepth: 2
    functionLinenumber: 3233
    functionLinenumberEnd: 3270
    functionName: send_certificate_verify
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - build_certificate_verify_signdata
    - ptls_push_message
    - ptls_buffer_push_block
    - ptls_t*::ctx::sign_certificate::cb
    - ptls_buffer_push16
    - assert
    linkageType: ''
    returnType: int
    signature: "int send_certificate_verify(ptls_t *tls, ptls_message_emitter_t *emitter,\n
      \                                  struct st_ptls_signature_algorithms_t *signature_algorithms,
      const char *context_string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3277,1
    - Dst: decode_certificate_request
      Src: /src/h2o/deps/picotls/lib/picotls.c:3279,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tls
    - message
    - properties
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (!tls->is_psk_handshake && "state machine asserts that this message
        is never delivered when PSK is used")
      pos:
        line_end: 3276
        line_start: 3276
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 3290
      start: 3272
    functionDepth: 3
    functionLinenumber: 3272
    functionLinenumberEnd: 3290
    functionName: client_handle_certificate_request
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - decode_certificate_request
    - ptls__key_schedule_update_hash
    - assert
    linkageType: ''
    returnType: int
    signature: int client_handle_certificate_request(ptls_t *tls, ptls_iovec_t message,
      ptls_handshake_properties_t *properties)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3299,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3306,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3308,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3309,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3310,1
    - Dst: decode_open_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:3314,1
    - Dst: ptls_t*::ctx::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3316,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3317,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:3326,1
    - Dst: ptls_t*::ctx::verify_certificate::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - tls
    - src
    - end
    - got_certs
    argTypes:
    - ptls_t*
    - uint8_t*
    - uint8_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3292
    functionDepth: 1
    functionLinenumber: 3292
    functionLinenumberEnd: 3342
    functionName: handle_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - ptls_t*::ctx::on_extension::cb
    - ptls_decode_open_block
    - ptls_decode_block
    - ptls_is_server
    - ptls_t*::ctx::verify_certificate::cb
    - decode_open_extensions
    linkageType: ''
    returnType: int
    signature: int handle_certificate(ptls_t *tls, const uint8_t *src, const uint8_t
      *end, int *got_certs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:3348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tls
    - src
    - end
    argTypes:
    - ptls_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3344
    functionDepth: 2
    functionLinenumber: 3344
    functionLinenumberEnd: 3354
    functionName: client_do_handle_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - handle_certificate
    linkageType: ''
    returnType: int
    signature: int client_do_handle_certificate(ptls_t *tls, const uint8_t *src, const
      uint8_t *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_do_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:3360,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3356
    functionDepth: 3
    functionLinenumber: 3356
    functionLinenumberEnd: 3367
    functionName: client_handle_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls__key_schedule_update_hash
    - client_do_handle_certificate
    linkageType: ''
    returnType: int
    signature: int client_handle_certificate(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3383,1
    - Dst: ptls_decode24
      Src: /src/h2o/deps/picotls/lib/picotls.c:3385,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:3391,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3395,1
    - Dst: ptls_t*::ctx::decompress_certificate::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3396,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3397,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3398,1
    - Dst: client_do_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:3404,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3407,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:3412,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3369
    functionDepth: 3
    functionLinenumber: 3369
    functionLinenumberEnd: 3414
    functionName: client_handle_compressed_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - ptls_decode_block
    - free
    - client_do_handle_certificate
    - ptls_decode24
    - ptls_decode16
    - ptls_t*::ctx::decompress_certificate::cb
    - ptls__key_schedule_update_hash
    linkageType: ''
    returnType: int
    signature: int client_handle_compressed_certificate(ptls_t *tls, ptls_iovec_t
      message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:3420,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3416
    functionDepth: 2
    functionLinenumber: 3416
    functionLinenumberEnd: 3433
    functionName: server_handle_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - handle_certificate
    - ptls__key_schedule_update_hash
    linkageType: ''
    returnType: int
    signature: int server_handle_certificate(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3445,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3447,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3448,1
    - Dst: build_certificate_verify_signdata
      Src: /src/h2o/deps/picotls/lib/picotls.c:3452,1
    - Dst: ptls_t*::certificate_verify::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3454,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3454,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:3459,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - tls
    - message
    - context_string
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3435
    functionDepth: 2
    functionLinenumber: 3435
    functionLinenumberEnd: 3469
    functionName: handle_certificate_verify
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - build_certificate_verify_signdata
    - ptls_decode_block
    - ptls_decode16
    - ptls_clear_memory
    - ptls__key_schedule_update_hash
    - ptls_t*::certificate_verify::cb
    linkageType: ''
    returnType: int
    signature: int handle_certificate_verify(ptls_t *tls, ptls_iovec_t message, const
      char *context_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:3473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3471
    functionDepth: 3
    functionLinenumber: 3471
    functionLinenumberEnd: 3481
    functionName: client_handle_certificate_verify
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - handle_certificate_verify
    linkageType: ''
    returnType: int
    signature: int client_handle_certificate_verify(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:3485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3483
    functionDepth: 3
    functionLinenumber: 3483
    functionLinenumberEnd: 3493
    functionName: server_handle_certificate_verify
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - handle_certificate_verify
    linkageType: ''
    returnType: int
    signature: int server_handle_certificate_verify(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: verify_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:3500,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:3502,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:3505,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3505,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:3507,1
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:3509,1
    - Dst: derive_exporter_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:3511,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3516,1
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:3518,1
    - Dst: commission_handshake_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:3520,1
    - Dst: push_change_cipher_spec
      Src: /src/h2o/deps/picotls/lib/picotls.c:3524,1
    - Dst: send_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:3528,1
    - Dst: send_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:3530,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:3532,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3533,1
    - Dst: send_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:3538,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:3540,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:3541,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:3551,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 3
    argNames:
    - tls
    - emitter
    - message
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (tls->traffic_protection.enc.aead != NULL || tls->ctx->update_traffic_key
        != NULL)
      pos:
        line_end: 3515
        line_start: 3515
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 3553
      start: 3495
    functionDepth: 5
    functionLinenumber: 3495
    functionLinenumberEnd: 3553
    functionName: client_handle_finished
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - setup_traffic_protection
    - derive_secret
    - key_schedule_extract
    - commission_handshake_secret
    - push_change_cipher_spec
    - send_certificate
    - ptls_push_message
    - free
    - verify_finished
    - derive_exporter_secret
    - send_certificate_verify
    - memcpy
    - ptls_clear_memory
    - send_finished
    - ptls__key_schedule_update_hash
    - assert
    linkageType: ''
    returnType: int
    signature: int client_handle_finished(ptls_t *tls, ptls_message_emitter_t *emitter,
      ptls_iovec_t message)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_new_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:3564,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3575,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:3576,1
    - Dst: ptls_t*::ctx::get_time::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3576,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3577,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3578,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3579,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:3579,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3580,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:3581,1
    - Dst: derive_resumption_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:3583,1
    - Dst: ptls_t*::ctx::save_ticket::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3588,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3588,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:3593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3555
    functionDepth: 4
    functionLinenumber: 3555
    functionLinenumberEnd: 3595
    functionName: client_handle_new_session_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push64
    - ptls_iovec_init
    - ptls_buffer_pushv
    - ptls_buffer_dispose
    - decode_new_session_ticket
    - ptls_buffer_push_block
    - ptls_t*::ctx::save_ticket::cb
    - ptls_buffer_reserve
    - ptls_buffer_push16
    - derive_resumption_secret
    - ptls_t*::ctx::get_time::cb
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int client_handle_new_session_ticket(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3601,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:3604,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3606,1
    - Dst: memchr
      Src: /src/h2o/deps/picotls/lib/picotls.c:3613,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3617,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - name
    - src
    - end
    argTypes:
    - ptls_iovec_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3629
      start: 3597
    functionDepth: 1
    functionLinenumber: 3597
    functionLinenumberEnd: 3629
    functionName: client_hello_decode_server_name
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - memchr
    - ptls_decode_open_block
    - ptls_decode8
    linkageType: ''
    returnType: int
    signature: int client_hello_decode_server_name(ptls_iovec_t *name, const uint8_t
      **src, const uint8_t *const end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3636,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - selected
    - candidates
    - src
    - end
    argTypes:
    - ptls_key_exchange_algorithm_t**
    - ptls_key_exchange_algorithm_t**
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3631
    functionDepth: 1
    functionLinenumber: 3631
    functionLinenumberEnd: 3655
    functionName: select_negotiated_group
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_decode_block
    - ptls_decode16
    linkageType: ''
    returnType: int
    signature: "int select_negotiated_group(ptls_key_exchange_algorithm_t **selected,
      ptls_key_exchange_algorithm_t **candidates,\n                                   const
      uint8_t *src, const uint8_t *const end)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3665,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3681,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3686,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3691,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3696,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3701,1
    - Dst: decode_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:3721,1
    - Dst: ptls_context_t*::on_extension::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:3724,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3725,1
    - Dst: client_hello_decode_server_name
      Src: /src/h2o/deps/picotls/lib/picotls.c:3729,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3737,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3739,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3745,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3746,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3753,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3763,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3770,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3773,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3775,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3781,1
    - Dst: decode_signature_algorithms
      Src: /src/h2o/deps/picotls/lib/picotls.c:3784,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3788,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3791,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3792,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3796,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3805,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3814,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3815,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3817,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3818,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3819,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:3823,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3827,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3838,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3839,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3846,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3849,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3854,1
    - Dst: ptls_decode32
      Src: /src/h2o/deps/picotls/lib/picotls.c:3857,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:3859,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3865,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3868,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3870,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3883,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:3886,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:3908,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3912,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3913,1
    - Dst: ptls_decode8
      Src: /src/h2o/deps/picotls/lib/picotls.c:3915,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3917,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3918,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3921,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3926,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:3935,1
    - Dst: should_collect_unknown_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3944,1
    - Dst: collect_unknown_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3945,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 292
    argCount: 6
    argNames:
    - ctx
    - ch
    - src
    - end
    - properties
    - tls_cbarg
    argTypes:
    - ptls_context_t*
    - struct st_ptls_client_hello_t*
    - uint8_t*
    - uint8_t*
    - ptls_handshake_properties_t*
    - ptls_t*
    assertStmts:
    - condition: (!ch->cookie.sent_key_share)
      pos:
        line_end: 3826
        line_start: 3826
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 3956
      start: 3657
    functionDepth: 2
    functionLinenumber: 3657
    functionLinenumberEnd: 3956
    functionName: decode_client_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - PTLS_ELEMENTSOF
    - decode_signature_algorithms
    - ptls_decode_open_block
    - ptls_decode8
    - client_hello_decode_server_name
    - ptls_decode_block
    - should_collect_unknown_extension
    - ptls_decode16
    - ptls_decode32
    - collect_unknown_extension
    - ptls_context_t*::on_extension::cb
    - assert
    - decode_extensions
    linkageType: ''
    returnType: int
    signature: "int decode_client_hello(ptls_context_t *ctx, struct st_ptls_client_hello_t
      *ch, const uint8_t *src, const uint8_t *const end,\n                               ptls_handshake_properties_t
      *properties, ptls_t *tls_cbarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3963,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3964,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3967,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3969,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:3971,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3976,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3983,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:3984,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:3988,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:3993,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:3994,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:4000,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:4001,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - buf
    - src
    - end
    - outer_ext
    - outer_ext_end
    argTypes:
    - ptls_buffer_t*
    - uint8_t**
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (outer_ext_end - outer_ext >= outersize)
      pos:
        line_end: 3987
        line_start: 3987
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 4012
      start: 3958
    functionDepth: 1
    functionLinenumber: 3958
    functionLinenumberEnd: 4012
    functionName: rebuild_ch_inner_extensions
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_decode_open_block
    - ptls_buffer_push_block
    - ptls_decode16
    - buffer_push_extension
    - ptls_buffer_pushv
    - assert
    linkageType: ''
    returnType: int
    signature: "int rebuild_ch_inner_extensions(ptls_buffer_t *buf, const uint8_t
      **src, const uint8_t *const end, const uint8_t *outer_ext,\n                                       const
      uint8_t *outer_ext_end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push_message_body
      Src: /src/h2o/deps/picotls/lib/picotls.c:4027,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4030,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4032,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:4040,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:4043,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:4049,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:4050,1
    - Dst: COPY_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4053,1
    - Dst: COPY_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4054,1
    - Dst: rebuild_ch_inner_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:4057,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 6
    argNames:
    - buf
    - src
    - end
    - outer_ch
    - outer_ext
    - outer_ext_end
    argTypes:
    - ptls_buffer_t*
    - uint8_t*
    - uint8_t*
    - struct st_ptls_client_hello_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4073
      start: 4014
    functionDepth: 2
    functionLinenumber: 4014
    functionLinenumberEnd: 4073
    functionName: rebuild_ch_inner
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_decode_open_block
    - rebuild_ch_inner_extensions
    - ptls_buffer_push_block
    - ptls_decode16
    - ptls_buffer_push16
    - ptls_buffer_push_message_body
    - COPY_BLOCK
    - ptls_buffer_pushv
    linkageType: ''
    returnType: int
    signature: "int rebuild_ch_inner(ptls_buffer_t *buf, const uint8_t *src, const
      uint8_t *const end,\n                            struct st_ptls_client_hello_t
      *outer_ch, const uint8_t *outer_ext, const uint8_t *outer_ext_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - capacity
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4024
      start: 4017
    functionDepth: 0
    functionLinenumber: 4017
    functionLinenumberEnd: 4024
    functionName: COPY_BLOCK
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_BLOCK(capacity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_t*::ctx::on_client_hello::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:4096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 15
    argNames:
    - tls
    - server_name
    - raw_message
    - cipher_suites
    - alpns
    - num_alpns
    - sig_algos
    - num_sig_algos
    - cert_comp_algos
    - num_cert_comp_algos
    - server_cert_types
    - num_server_cert_types
    - psk_identities
    - num_psk_identities
    - incompatible_version
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t
    - ptls_iovec_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint8_t*
    - size_t
    - ptls_client_hello_psk_identity_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4097
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4097
    functionName: call_on_client_hello_cb
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_t*::ctx::on_client_hello::cb
    linkageType: ''
    returnType: int
    signature: "int call_on_client_hello_cb(ptls_t *tls, ptls_iovec_t server_name,
      ptls_iovec_t raw_message,\n                                          ptls_iovec_t
      cipher_suites, ptls_iovec_t *alpns, size_t num_alpns,\n                                          const
      uint16_t *sig_algos, size_t num_sig_algos, const uint16_t *cert_comp_algos,\n
      \                                         size_t num_cert_comp_algos, const
      uint8_t *server_cert_types,\n                                          size_t
      num_server_cert_types, const ptls_client_hello_psk_identity_t *psk_identities,\n
      \                                         size_t num_psk_identities, int incompatible_version)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/picotls.c:4106,1
    - Dst: is_supported_version
      Src: /src/h2o/deps/picotls/lib/picotls.c:4110,1
    - Dst: call_on_client_hello_cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:4117,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 6
    argNames:
    - ctx
    - ch
    - prev_random
    - ech_is_inner_ch
    - raw_message
    - tls_cbarg
    argTypes:
    - ptls_context_t*
    - struct st_ptls_client_hello_t*
    - void*
    - int
    - ptls_iovec_t
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4150
      start: 4099
    functionDepth: 2
    functionLinenumber: 4099
    functionLinenumberEnd: 4150
    functionName: check_client_hello_constraints
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - call_on_client_hello_cb
    - ptls_mem_equal
    - is_supported_version
    linkageType: ''
    returnType: int
    signature: "int check_client_hello_constraints(ptls_context_t *ctx, struct st_ptls_client_hello_t
      *ch, const void *prev_random,\n                                          int
      ech_is_inner_ch, ptls_iovec_t raw_message, ptls_t *tls_cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:4154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4152
    functionDepth: 0
    functionLinenumber: 4152
    functionLinenumberEnd: 4155
    functionName: vec_is_string
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int vec_is_string(ptls_iovec_t x, const char *y)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ptls_t*::ctx::get_time::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:4166,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:4172,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:4180,1
    - Dst: ptls_t*::ctx::encrypt_ticket::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:4194,1
    - Dst: decode_session_identifier
      Src: /src/h2o/deps/picotls/lib/picotls.c:4203,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:4223,1
    - Dst: vec_is_string
      Src: /src/h2o/deps/picotls/lib/picotls.c:4230,1
    - Dst: vec_is_string
      Src: /src/h2o/deps/picotls/lib/picotls.c:4252,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:4273,1
    - Dst: derive_secret_with_empty_digest
      Src: /src/h2o/deps/picotls/lib/picotls.c:4275,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:4278,1
    - Dst: calc_verify_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:4279,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/picotls.c:4282,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:4290,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:4291,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 102
    argCount: 6
    argNames:
    - tls
    - psk_index
    - accept_early_data
    - ch
    - ch_trunc
    - is_second_flight
    argTypes:
    - ptls_t*
    - size_t*
    - int*
    - struct st_ptls_client_hello_t*
    - ptls_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4293
      start: 4161
    functionDepth: 3
    functionLinenumber: 4161
    functionLinenumberEnd: 4293
    functionName: try_psk_handshake
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - vec_is_string
    - key_schedule_extract
    - ptls_buffer_dispose
    - memcmp
    - decode_session_identifier
    - ptls_t*::ctx::encrypt_ticket::cb
    - derive_secret_with_empty_digest
    - calc_verify_data
    - ptls_clear_memory
    - ptls_t*::ctx::get_time::cb
    - ptls__key_schedule_update_hash
    - ptls_mem_equal
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int try_psk_handshake(ptls_t *tls, size_t *psk_index, int *accept_early_data,
      struct st_ptls_client_hello_t *ch,\n                             ptls_iovec_t
      ch_trunc, int is_second_flight)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:4301,1
    - Dst: UPDATE_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4319,1
    - Dst: UPDATE_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4320,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:4320,1
    - Dst: UPDATE16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4321,1
    - Dst: UPDATE16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4322,1
    - Dst: UPDATE_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4323,1
    - Dst: UPDATE_BLOCK
      Src: /src/h2o/deps/picotls/lib/picotls.c:4325,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - tls
    - properties
    - negotiated_group
    - tbs
    - sig
    argTypes:
    - ptls_t*
    - ptls_handshake_properties_t*
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4332
      start: 4295
    functionDepth: 1
    functionLinenumber: 4295
    functionLinenumberEnd: 4332
    functionName: calc_cookie_signature
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_hash_context_t*::final
    - UPDATE16
    - UPDATE_BLOCK
    - ptls_hmac_create
    - strlen
    linkageType: ''
    returnType: int
    signature: "int calc_cookie_signature(ptls_t *tls, ptls_handshake_properties_t
      *properties,\n                                 ptls_key_exchange_algorithm_t
      *negotiated_group, ptls_iovec_t tbs, uint8_t *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4304
    functionDepth: 0
    functionLinenumber: 4304
    functionLinenumberEnd: 4312
    functionName: UPDATE_BLOCK
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_BLOCK(p, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4318
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4318
    functionName: UPDATE16
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE16(_v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - list
    - count
    - desired_type
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4344
    functionName: certificate_type_exists
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int certificate_type_exists(uint8_t *list, size_t count, uint8_t desired_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:4355,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:4361,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:4362,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4363,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:4364,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:4365,1
    - Dst: buffer_push_extension
      Src: /src/h2o/deps/picotls/lib/picotls.c:4366,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:4367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - tls
    - emitter
    - message
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4372
      start: 4346
    functionDepth: 2
    functionLinenumber: 4346
    functionLinenumberEnd: 4372
    functionName: server_handle_hello
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_push
    - ptls_buffer_push_block
    - ptls_buffer_reserve
    - buffer_push_extension
    - ptls_buffer_push16
    - ptls_buffer_pushv
    linkageType: ''
    returnType: int
    signature: "int server_handle_hello(ptls_t *tls, ptls_message_emitter_t *emitter,
      ptls_iovec_t message,\n                               ptls_handshake_properties_t
      *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sched
    - ','
    - negotiated_group
    - ','
    - additional_extensions
    - ','
    - post_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4392
      start: 4379
    functionDepth: 0
    functionLinenumber: 4379
    functionLinenumberEnd: 4392
    functionName: EMIT_HELLO_RETRY_REQUEST
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_HELLO_RETRY_REQUEST(sched, negotiated_group, additional_extensions,
      post_action)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: send_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:4955,1
    - Dst: send_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:4964,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:4967,1
    - Dst: key_schedule_extract
      Src: /src/h2o/deps/picotls/lib/picotls.c:4968,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:4968,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:4970,1
    - Dst: derive_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:4972,1
    - Dst: derive_exporter_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:4974,1
    - Dst: commission_handshake_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:4979,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:4993,1
    - Dst: send_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:4995,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 4
    argNames:
    - tls
    - emitter
    - send_cert_verify
    - signature_algorithms
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - int
    - struct st_ptls_signature_algorithms_t*
    assertStmts:
    - condition: (tls->key_schedule->generation == 2)
      pos:
        line_end: 4966
        line_start: 4966
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->ctx->ticket_lifetime != 0)
      pos:
        line_end: 4992
        line_start: 4992
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5007
      start: 4949
    functionDepth: 6
    functionLinenumber: 4949
    functionLinenumberEnd: 5007
    functionName: server_finish_handshake
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - setup_traffic_protection
    - derive_secret
    - key_schedule_extract
    - commission_handshake_secret
    - send_session_ticket
    - derive_exporter_secret
    - send_certificate_verify
    - send_finished
    - assert
    linkageType: ''
    returnType: int
    signature: "int server_finish_handshake(ptls_t *tls, ptls_message_emitter_t *emitter,
      int send_cert_verify,\n                                   struct st_ptls_signature_algorithms_t
      *signature_algorithms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commission_handshake_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:5013,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:5016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5022
      start: 5009
    functionDepth: 5
    functionLinenumber: 5009
    functionLinenumberEnd: 5022
    functionName: server_handle_end_of_early_data
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls__key_schedule_update_hash
    - commission_handshake_secret
    linkageType: ''
    returnType: int
    signature: int server_handle_end_of_early_data(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:5028,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5031,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5032,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5033,1
    - Dst: ptls__key_schedule_update_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:5036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tls
    - message
    argTypes:
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5040
      start: 5024
    functionDepth: 4
    functionLinenumber: 5024
    functionLinenumberEnd: 5040
    functionName: server_handle_finished
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - setup_traffic_protection
    - verify_finished
    - memcpy
    - ptls_clear_memory
    - ptls__key_schedule_update_hash
    linkageType: ''
    returnType: int
    signature: int server_handle_finished(ptls_t *tls, ptls_iovec_t message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:5049,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5049,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5050,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5052,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5053,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tls
    - is_enc
    argTypes:
    - ptls_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 5042
    functionDepth: 4
    functionLinenumber: 5042
    functionLinenumberEnd: 5058
    functionName: update_traffic_key
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - setup_traffic_protection
    - ptls_hkdf_expand_label
    - memcpy
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int update_traffic_key(ptls_t *tls, int is_enc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: update_traffic_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:5070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - tls
    - emitter
    - message
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5080
      start: 5060
    functionDepth: 5
    functionLinenumber: 5060
    functionLinenumberEnd: 5080
    functionName: handle_key_update
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - update_traffic_key
    linkageType: ''
    returnType: int
    signature: int handle_key_update(ptls_t *tls, ptls_message_emitter_t *emitter,
      ptls_iovec_t message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ntoh16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5085,1
    - Dst: ntoh16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rec
    - src
    argTypes:
    - struct st_ptls_record_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5082
    functionDepth: 0
    functionLinenumber: 5082
    functionLinenumberEnd: 5093
    functionName: parse_record_header
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ntoh16
    linkageType: ''
    returnType: int
    signature: int parse_record_header(struct st_ptls_record_t *rec, const uint8_t
      *src)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5099,1
    - Dst: parse_record_header
      Src: /src/h2o/deps/picotls/lib/picotls.c:5118,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5132,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5133,1
    - Dst: parse_record_header
      Src: /src/h2o/deps/picotls/lib/picotls.c:5143,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5149,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5154,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - tls
    - rec
    - src
    - len
    argTypes:
    - ptls_t*
    - struct st_ptls_record_t*
    - uint8_t*
    - size_t*
    assertStmts:
    - condition: (*len != 0)
      pos:
        line_end: 5098
        line_start: 5098
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5170
      start: 5095
    functionDepth: 2
    functionLinenumber: 5095
    functionLinenumberEnd: 5170
    functionName: parse_record
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_buffer_reserve
    - parse_record_header
    - memcpy
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int parse_record(ptls_t *tls, struct st_ptls_record_t *rec, const uint8_t
      *src, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_context_t*::update_open_count::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:5175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - delta
    argTypes:
    - ptls_context_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5176
      start: 5172
    functionDepth: 0
    functionLinenumber: 5172
    functionLinenumberEnd: 5176
    functionName: update_open_count
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_context_t*::update_open_count::cb
    linkageType: ''
    returnType: void
    signature: void update_open_count(ptls_context_t *ctx, ssize_t delta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5183,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5185,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5189,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:5194,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5197,1
    - Dst: ptls_log_init_conn_state
      Src: /src/h2o/deps/picotls/lib/picotls.c:5206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - is_server
    argTypes:
    - ptls_context_t*
    - int
    assertStmts:
    - condition: '(ctx->get_time != NULL && "please set ctx->get_time to `&ptls_get_time`;
        see #92")'
      pos:
        line_end: 5182
        line_start: 5182
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: "(ctx->pre_shared_key.identity.len == 0 && ctx->pre_shared_key.secret.base
        == NULL &&\n               ctx->pre_shared_key.secret.len == 0 && ctx->pre_shared_key.hash
        == NULL &&\n               \"`ptls_context_t::pre_shared_key` in inconsitent
        state\")"
      pos:
        line_end: 5190
        line_start: 5188
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: "(ctx->pre_shared_key.identity.len != 0 && ctx->pre_shared_key.secret.base
        != NULL &&\n               ctx->pre_shared_key.secret.len != 0 && ctx->pre_shared_key.hash
        != NULL &&\n               \"`ptls_context_t::pre_shared_key` in incosistent
        state\")"
      pos:
        line_end: 5186
        line_start: 5184
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5211
      start: 5178
    functionDepth: 1
    functionLinenumber: 5178
    functionLinenumberEnd: 5211
    functionName: new_instance
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - malloc
    - update_open_count
    - assert
    - ptls_log_init_conn_state
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *new_instance(ptls_context_t *ctx, int is_server)
  - BBCount: 263
    BranchProfiles: []
    Callsites:
    - Dst: new_instance
      Src: /src/h2o/deps/picotls/lib/picotls.c:5215,1
    - Dst: ptls_t*::ctx::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:5217,1
    - Dst: log_client_random
      Src: /src/h2o/deps/picotls/lib/picotls.c:5218,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5221,1
    - Dst: ptls_t*::ctx::random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:5222,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5225,1
    - Dst: new_instance
      Src: /src/h2o/deps/picotls/lib/picotls.c:5232,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5236,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: tls::tls
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5241,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5246,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:5247,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:5248,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5249,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5250,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5251,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5252,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5253,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5254,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5256,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5257,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5258,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5259,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5270,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5272,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5273,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5274,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5276,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5277,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5278,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5279,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5291,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5297,1
    - Dst: ptls_tls12_phash
      Src: /src/h2o/deps/picotls/lib/picotls.c:5301,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5301,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5302,1
    - Dst: export_tls12_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5318,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5323,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5330,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5330,1
    - Dst: ptls_get_protocol_version
      Src: /src/h2o/deps/picotls/lib/picotls.c:5338,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5339,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5341,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5342,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5343,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5344,1
    - Dst: export_tls12_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5348,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5369,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5371,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5373,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5376,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/picotls.c:5382,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5393,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5395,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5398,1
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5413,1
    - Dst: new_instance
      Src: /src/h2o/deps/picotls/lib/picotls.c:5419,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5425,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5427,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5434,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5436,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/lib/picotls.c:5438,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5443,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/picotls/lib/picotls.c:5445,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5451,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/deps/picotls/lib/picotls.c:5454,1
    - Dst: import_tls12_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5460,1
    - Dst: import_tls12_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5462,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/deps/picotls/lib/picotls.c:5466,1
    - Dst: key_schedule_new
      Src: /src/h2o/deps/picotls/lib/picotls.c:5472,1
    - Dst: import_tls13_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5476,1
    - Dst: import_tls13_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5478,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5487,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:5492,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5497,1
    - Dst: PTLS_PROBE0
      Src: /src/h2o/deps/picotls/lib/picotls.c:5506,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5507,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5509,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5510,1
    - Dst: free_exporter_master_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:5511,1
    - Dst: free_exporter_master_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:5512,1
    - Dst: key_schedule_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5514,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5516,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5518,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5519,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5520,1
    - Dst: clear_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:5521,1
    - Dst: ptls_t*::server::async_job::destroy_
      Src: /src/h2o/deps/picotls/lib/picotls.c:5524,1
    - Dst: ptls_t*::client::key_share_ctx::on_exchange
      Src: /src/h2o/deps/picotls/lib/picotls.c:5527,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5527,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5529,1
    - Dst: ptls_t*::certificate_verify::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5534,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5535,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5537,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5538,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5539,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5549,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5550,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5561,1
    - Dst: get_traffic_keys
      Src: /src/h2o/deps/picotls/lib/picotls.c:5582,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5582,1
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:5599,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5599,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5602,1
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:5617,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5617,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5620,1
    - Dst: client_handle_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:5674,1
    - Dst: client_handle_encrypted_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:5681,1
    - Dst: client_handle_certificate_request
      Src: /src/h2o/deps/picotls/lib/picotls.c:5688,1
    - Dst: client_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5695,1
    - Dst: client_handle_compressed_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5698,1
    - Dst: client_handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:5707,1
    - Dst: client_handle_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:5714,1
    - Dst: client_handle_new_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:5722,1
    - Dst: handle_key_update
      Src: /src/h2o/deps/picotls/lib/picotls.c:5725,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5733,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5738,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5740,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5741,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5742,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5743,1
    - Dst: server_handle_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:5759,1
    - Dst: server_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5766,1
    - Dst: server_handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:5773,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5779,1
    - Dst: server_handle_end_of_early_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:5781,1
    - Dst: server_handle_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:5788,1
    - Dst: handle_key_update
      Src: /src/h2o/deps/picotls/lib/picotls.c:5796,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5804,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5809,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5811,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5812,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5813,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5814,1
    - Dst: PTLS_ALERT_TO_PEER_ERROR
      Src: /src/h2o/deps/picotls/lib/picotls.c:5828,1
    - Dst: message_buffer_is_overflow
      Src: /src/h2o/deps/picotls/lib/picotls.c:5858,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5860,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5862,1
    - Dst: ntoh24
      Src: /src/h2o/deps/picotls/lib/picotls.c:5871,1
    - Dst: cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:5874,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5874,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5881,1
    - Dst: message_buffer_is_overflow
      Src: /src/h2o/deps/picotls/lib/picotls.c:5890,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5893,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5894,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5896,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/lib/picotls.c:5898,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5903,1
    - Dst: parse_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:5916,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5918,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5935,1
    - Dst: aead_decrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:5937,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:5958,1
    - Dst: handle_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5976,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5985,1
    - Dst: parse_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6002,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6004,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6012,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:6013,1
    - Dst: build_tls12_aad
      Src: /src/h2o/deps/picotls/lib/picotls.c:6028,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:6031,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:6033,1
    - Dst: handle_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6048,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6056,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6057,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6072,1
    - Dst: init_record_message_emitter
      Src: /src/h2o/deps/picotls/lib/picotls.c:6074,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6080,1
    - Dst: send_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:6081,1
    - Dst: server_finish_handshake
      Src: /src/h2o/deps/picotls/lib/picotls.c:6084,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6092,1
    - Dst: handle_input
      Src: /src/h2o/deps/picotls/lib/picotls.c:6098,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6100,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6103,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6115,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6119,1
    - Dst: ptls_send_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6120,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6121,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6136,1
    - Dst: handle_input_tls12
      Src: /src/h2o/deps/picotls/lib/picotls.c:6142,1
    - Dst: handle_input
      Src: /src/h2o/deps/picotls/lib/picotls.c:6144,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6158,1
    - Dst: init_record_message_emitter
      Src: /src/h2o/deps/picotls/lib/picotls.c:6175,1
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6178,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6179,1
    - Dst: update_traffic_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6180,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6192,1
    - Dst: update_send_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6204,1
    - Dst: buffer_push_encrypted_records
      Src: /src/h2o/deps/picotls/lib/picotls.c:6210,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6215,1
    - Dst: buffer_push_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6237,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6237,1
    - Dst: buffer_encrypt_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6240,1
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:6272,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:6275,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6275,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6276,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:6278,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6278,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6279,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6282,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6283,1
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6297,1
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6306,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6315,1
    - Dst: struct st_picotls_hmac_context_t*::hash::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6318,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6319,1
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6320,1
    - Dst: struct st_picotls_hmac_context_t*::hash::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6322,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6326,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6327,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6330,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6333,1
    - Dst: ptls_hash_algorithm_t*::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6342,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6344,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6345,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6353,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6355,1
    - Dst: ptls_hash_algorithm_t*::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6359,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6360,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6363,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6364,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6366,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6376,1
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6378,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6380,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6381,1
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6393,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6396,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6398,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6400,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6401,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6406,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6410,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6412,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6424,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6426,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6427,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6430,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6430,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6431,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6431,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6433,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6433,1
    - Dst: ptls_hkdf_expand
      Src: /src/h2o/deps/picotls/lib/picotls.c:6435,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6435,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6438,1
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6449,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6454,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6454,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6455,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6456,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6460,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6462,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6462,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6463,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6466,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6467,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6470,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6474,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6475,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6478,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6487,1
    - Dst: ptls_hash_algorithm_t*::setup_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6490,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6491,1
    - Dst: ptls_cipher_context_t*::do_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6499,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6500,1
    - Dst: get_traffic_keys
      Src: /src/h2o/deps/picotls/lib/picotls.c:6513,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/picotls.c:6515,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6517,1
    - Dst: new_aead
      Src: /src/h2o/deps/picotls/lib/picotls.c:6524,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6524,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6531,1
    - Dst: setup_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6536,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6537,1
    - Dst: ptls_aead_context_t*::dispose_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6546,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6547,1
    - Dst: ptls_aead_get_iv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6555,1
    - Dst: ptls_aead_set_iv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6558,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6580,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/lib/picotls.c:6601,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6637,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6656,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6672,1
    - Dst: ptls_server_handle_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6680,1
    - Dst: ptls_client_handle_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6681,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6687,1
    - Dst: send_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:6694,1
    - Dst: ptls_get_read_epoch
      Src: /src/h2o/deps/picotls/lib/picotls.c:6696,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6699,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6705,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6712,1
    - Dst: server_finish_handshake
      Src: /src/h2o/deps/picotls/lib/picotls.c:6713,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6716,1
    - Dst: ptls_get_read_epoch
      Src: /src/h2o/deps/picotls/lib/picotls.c:6718,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6721,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:6731,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:6736,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6747,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6748,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6749,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6750,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6751,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6751,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6752,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6754,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6755,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6758,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6760,1
    - Dst: byte_to_hex
      Src: /src/h2o/deps/picotls/lib/picotls.c:6780,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6797,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6798,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6799,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6800,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6801,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6802,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6803,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6804,1
    - Dst: byte_to_hex
      Src: /src/h2o/deps/picotls/lib/picotls.c:6812,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6826,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6827,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6828,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6894,1
    - Dst: close
      Src: /src/h2o/deps/picotls/lib/picotls.c:6896,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6901,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6903,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6905,1
    - Dst: strdup
      Src: /src/h2o/deps/picotls/lib/picotls.c:6914,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6919,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6922,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6924,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6936,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:6937,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6946,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6949,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6952,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6953,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6963,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:6968,1
    - Dst: is_in_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6969,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6976,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6982,1
    - Dst: cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:6987,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:6988,1
    - Dst: is_in_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6990,1
    - Dst: is_in_addresslist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6991,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7000,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:7008,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:7009,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7010,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7014,1
    - Dst: format
      Src: /src/h2o/deps/picotls/lib/picotls.c:7020,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7023,1
    - Dst: va_start
      Src: /src/h2o/deps/picotls/lib/picotls.c:7027,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7028,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/lib/picotls.c:7029,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7031,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7037,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7039,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7047,1
    - Dst: ptls_jsonescape
      Src: /src/h2o/deps/picotls/lib/picotls.c:7049,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7056,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/lib/picotls.c:7058,1
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7066,1
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7071,1
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7076,1
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7081,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7086,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7088,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7091,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7099,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:7100,1
    - Dst: strchr
      Src: /src/h2o/deps/picotls/lib/picotls.c:7103,1
    - Dst: snprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7104,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7110,1
    - Dst: syscall
      Src: /src/h2o/deps/picotls/lib/picotls.c:7110,1
    - Dst: pthread_mach_thread_np
      Src: /src/h2o/deps/picotls/lib/picotls.c:7114,1
    - Dst: pthread_self
      Src: /src/h2o/deps/picotls/lib/picotls.c:7114,1
    - Dst: pthread_threadid_np
      Src: /src/h2o/deps/picotls/lib/picotls.c:7116,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7118,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7124,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7125,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/lib/picotls.c:7131,1
    - Dst: snprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7132,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7135,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7143,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7148,1
    - Dst: ptls_log__recalc_point
      Src: /src/h2o/deps/picotls/lib/picotls.c:7152,1
    - Dst: ptls_log__recalc_conn
      Src: /src/h2o/deps/picotls/lib/picotls.c:7155,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7164,1
    - Dst: write
      Src: /src/h2o/deps/picotls/lib/picotls.c:7174,1
    - Dst: close_log_fd
      Src: /src/h2o/deps/picotls/lib/picotls.c:7183,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7187,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7190,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:7192,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7193,1
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:7203,1
    - Dst: ptls_build_v4_mapped_v6_address
      Src: /src/h2o/deps/picotls/lib/picotls.c:7213,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7216,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7241,1
    - Dst: duplicate_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:7243,1
    - Dst: duplicate_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:7247,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:7253,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:7255,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:7260,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:7263,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:7265,1
    - Dst: ptls_build_v4_mapped_v6_address
      Src: /src/h2o/deps/picotls/lib/picotls.c:7267,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:7269,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:7278,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:7281,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7298,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7300,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7301,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7302,1
    CyclomaticComplexity: 359
    EdgeCount: 359
    ICount: 1303
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_context_t*
    assertStmts:
    - condition: (!tls->ctx->omit_end_of_early_data)
      pos:
        line_end: 5778
        line_start: 5778
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->traffic_protection.dec.aead->algo->tls12.record_iv_size ==
        8)
      pos:
        line_end: 6011
        line_start: 6011
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"unexpected state")
      pos:
        line_end: 5803
        line_start: 5803
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input == NULL || *inlen == 0)
      pos:
        line_end: 6079
        line_start: 6079
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (written > 0 && written + logbuf.tid.len < logbuf.buf.capacity)
      pos:
        line_end: 7123
        line_start: 7123
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input != NULL)
      pos:
        line_end: 6715
        line_start: 6715
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->state < PTLS_STATE_POST_HANDSHAKE_MIN)
      pos:
        line_end: 6071
        line_start: 6071
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (l < logbuf.buf.capacity - logbuf.buf.off && "insufficent capacity")
      pos:
        line_end: 7030
        line_start: 7030
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logctx.conns[slot].points != NULL)
      pos:
        line_end: 7163
        line_start: 7163
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (key_size <= algo->block_size)
      pos:
        line_end: 6352
        line_start: 6352
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!tls->ctx->omit_end_of_early_data)
      pos:
        line_end: 6655
        line_start: 6655
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"invalid state")
      pos:
        line_end: 6671
        line_start: 6671
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (cipher->aead->tls12.fixed_iv_size + cipher->aead->tls12.record_iv_size
        != 0 || !"given cipher-suite supports TLS/1.2")
      pos:
        line_end: 5290
        line_start: 5290
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7098
        line_start: 7098
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!tls->is_server)
      pos:
        line_end: 6686
        line_start: 6686
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"unexpected state")
      pos:
        line_end: 5732
        line_start: 5732
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->traffic_protection.enc.aead != NULL)
      pos:
        line_end: 6191
        line_start: 6191
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->ctx->update_traffic_key == NULL)
      pos:
        line_end: 6214
        line_start: 6214
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (written > 0 && written < logbuf.buf.capacity && "caller MUST provide
        smallbuf suffient to emit the prefix")
      pos:
        line_end: 7134
        line_start: 7134
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (self->epoch_offsets[epoch] == self->start_off)
      pos:
        line_end: 6636
        line_start: 6636
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input == NULL || inlen == 0)
      pos:
        line_end: 6711
        line_start: 6711
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (rec.fragment != NULL)
      pos:
        line_end: 6003
        line_start: 6003
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->state >= PTLS_STATE_SERVER_EXPECT_END_OF_EARLY_DATA)
      pos:
        line_end: 6135
        line_start: 6135
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (decryptbuf.off == 0)
      pos:
        line_end: 6099
        line_start: 6099
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logctx.conns[slot].fd >= 0 && logctx.conns[slot].points != NULL)
      pos:
        line_end: 6893
        line_start: 6893
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (rec.fragment != NULL)
      pos:
        line_end: 5917
        line_start: 5917
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"FIXME")
      pos:
        line_end: 6332
        line_start: 6332
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (key_block_len <= sizeof(key_block))
      pos:
        line_end: 5296
        line_start: 5296
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!needs_appdata)
      pos:
        line_end: 7189
        line_start: 7189
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7009
        line_start: 7009
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (mode != PTLS_HASH_FINAL_MODE_SNAPSHOT || !"not supported")
      pos:
        line_end: 6314
        line_start: 6314
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->is_server)
      pos:
        line_end: 6704
        line_start: 6704
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7192
        line_start: 7192
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 7309
      start: 5213
    functionDepth: 11
    functionLinenumber: 5213
    functionLinenumberEnd: 7309
    functionName: ptls_client_new
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_hexdump
    - server_handle_hello
    - PTLS_PROBE
    - pthread_mutex_unlock
    - ptls_client_handle_message
    - gettimeofday
    - PTLS_PROBE0
    - assert
    - ptls_hmac_create
    - ptls_iovec_init
    - ptls_buffer_push64
    - ptls_buffer_push
    - buffer_push_encrypted_records
    - setup_crypto
    - key_schedule_free
    - ptls_decode64
    - pthread_mutex_lock
    - PTLS_LOG_ELEMENT_BOOL
    - ptls_decode16
    - ptls_buffer_push16
    - ptls_clear_memory
    - send_client_hello
    - ptls_set_server_name
    - malloc
    - ptls_aead_set_iv
    - init_record_message_emitter
    - memcmp
    - client_handle_encrypted_extensions
    - buffer_encrypt_record
    - get_traffic_keys
    - key_schedule_new
    - server_handle_certificate_verify
    - server_handle_finished
    - update_open_count
    - client_handle_hello
    - PTLS_LOG_ELEMENT_SIGNED
    - IS_EQUAL
    - ptls_jsonescape
    - client_handle_new_session_ticket
    - ptls_calc_hash
    - ptls_buffer_init
    - ptls_send_alert
    - va_start
    - import_tls13_traffic_protection
    - cb
    - ptls_free
    - server_finish_handshake
    - va_end
    - PTLS_ELEMENTSOF
    - ptls_push_message
    - buffer_push_record
    - client_handle_certificate_verify
    - ptls_t*::ctx::random_bytes
    - PTLS_LOG_CONN
    - duplicate_as_str
    - ptls_t*::certificate_verify::cb
    - PTLS_ALERT_TO_PEER_ERROR
    - ptls_find_cipher_suite
    - handle_input_tls12
    - parse_record
    - update_send_key
    - ptls_hash_context_t*::update
    - struct st_picotls_hmac_context_t*::hash::update
    - ptls_aead_decrypt
    - client_handle_certificate_request
    - is_in_stringlist
    - snprintf
    - ptls_aead_free
    - pthread_mach_thread_np
    - pthread_self
    - message_buffer_is_overflow
    - strlen
    - ptls_aead_get_iv
    - clear_ech
    - strcmp
    - MAP
    - log_client_random
    - aead_decrypt
    - struct st_picotls_hmac_context_t*::hash::final
    - ptls_hash_algorithm_t*::create
    - setup_traffic_protection
    - PTLS_ERROR_GET_CLASS
    - ptls_decode_block
    - free_exporter_master_secret
    - handle_input
    - vsnprintf
    - sprintf
    - ptls_cipher_context_t*::do_dispose
    - memmove
    - is_in_addresslist
    - PTLS_LOG_ELEMENT_UNSIGNED
    - pushf_logbuf_or_invalidate
    - ptls_get_read_epoch
    - server_handle_end_of_early_data
    - ptls_log__recalc_conn
    - ptls_get_protocol_version
    - ptls_set_negotiated_protocol
    - server_handle_certificate
    - ptls_buffer_reserve
    - export_tls12_params
    - client_handle_certificate
    - random_bytes
    - ptls_tls12_phash
    - memcpy
    - new_aead
    - hmac_apply_key
    - ptls_log__recalc_point
    - duplicate_stringlist
    - ptls_buffer_dispose
    - import_tls12_traffic_protection
    - ptls_server_handle_message
    - byte_to_hex
    - ptls_decode_open_block
    - handle_alert
    - ptls_hkdf_expand
    - ptls_is_server
    - client_handle_finished
    - handle_key_update
    - ptls_aead_context_t*::dispose_crypto
    - format
    - ptls_t*::server::async_job::destroy_
    - tls::tls
    - new_instance
    - close_log_fd
    - ptls_hkdf_expand_label
    - free
    - ptls_buffer_push_block
    - ptls_build_v4_mapped_v6_address
    - update_traffic_key
    - expand_logbuf_or_invalidate
    - syscall
    - strchr
    - write
    - memset
    - close
    - export_tls_params
    - ptls_aead_new_direct
    - build_tls12_aad
    - ptls_t*::client::key_share_ctx::on_exchange
    - strdup
    - ptls_hash_algorithm_t*::setup_crypto
    - ptls_hash_context_t*::final
    - client_handle_compressed_certificate
    - handle_handshake_record
    - inet_pton
    - ptls_buffer_pushv
    - pthread_threadid_np
    - ntoh24
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *ptls_client_new(ptls_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_instance
      Src: /src/h2o/deps/picotls/lib/picotls.c:5232,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5236,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: tls::tls
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/deps/picotls/lib/picotls.c:5237,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5241,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5246,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:5247,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:5248,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5249,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5250,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5251,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5252,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5253,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5254,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5256,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5257,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5258,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5259,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5270,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5272,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5273,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5274,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5276,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5277,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5278,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5285
      start: 5226
    functionDepth: 2
    functionLinenumber: 5226
    functionLinenumberEnd: 5285
    functionName: PTLS_LOG_CONN
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 5
    functionsReached:
    - ptls_buffer_push64
    - ptls_buffer_push
    - export_tls_params
    - ptls_buffer_pushv
    - ptls_buffer_push_block
    - PTLS_LOG_ELEMENT_BOOL
    - PTLS_PROBE
    - ptls_buffer_push16
    - tls::tls
    - PTLS_LOG_CONN
    - new_instance
    - strlen
    linkageType: ''
    returnType: void
    signature: "void PTLS_LOG_CONN(new, tls, { PTLS_LOG_ELEMENT_BOOL(is_server, 0);
      });\n    return tls;\n}\n\nptls_t *ptls_server_new(ptls_context_t *ctx)\n{\n
      \   ptls_t *tls = new_instance(ctx, 1);\n    tls->state = PTLS_STATE_SERVER_EXPECT_CLIENT_HELLO;\n
      \   tls->server.early_data_skipped_bytes = UINT32_MAX;\n\n    PTLS_PROBE(NEW,
      tls, 1);\n    PTLS_LOG_CONN(new, tls, { PTLS_LOG_ELEMENT_BOOL(is_server, 1);
      });\n    return tls;\n}\n\n#define export_tls_params(output, is_server, session_reused,
      protocol_version, cipher, client_random, server_name,                 \\\n                          negotiated_protocol,
      ver_block)                                                                          \\\n
      \   do {                                                                                                                           \\\n
      \       const char *_server_name = (server_name);                                                                                  \\\n
      \       ptls_iovec_t _negotiated_protocol = (negotiated_protocol);                                                                 \\\n
      \       ptls_buffer_push_block((output), 2, {                                                                                      \\\n
      \           ptls_buffer_push((output), (is_server));                                                                               \\\n
      \           ptls_buffer_push((output), (session_reused));                                                                          \\\n
      \           ptls_buffer_push16((output), (protocol_version));                                                                      \\\n
      \           ptls_buffer_push16((output), (cipher)->id);                                                                            \\\n
      \           ptls_buffer_pushv((output), (client_random), PTLS_HELLO_RANDOM_SIZE);
      \                                                 \\\n            ptls_buffer_push_block((output),
      2, {                                                                                  \\\n
      \               size_t len = _server_name != NULL ? strlen(_server_name) : 0;
      \                                                     \\\n                ptls_buffer_pushv((output),
      _server_name, len);                                                                    \\\n
      \           });                                                                                                                    \\\n
      \           ptls_buffer_push_block((output), 2,                                                                                    \\\n
      \                                  { ptls_buffer_pushv((output), _negotiated_protocol.base,
      _negotiated_protocol.len); });         \\\n            ptls_buffer_push_block((output),
      2, {ver_block}); /* version-specific block */                                         \\\n
      \           ptls_buffer_push_block((output), 2, {});          /* for future
      extensions */                                          \\\n        });                                                                                                                        \\\n
      \   } while (0)\n\nstatic int export_tls12_params(ptls_buffer_t *output, int
      is_server, int session_reused, ptls_cipher_suite_t *cipher,\n                               const
      void *client_random, const char *server_name, ptls_iovec_t negotiated_protocol,\n
      \                              const void *enc_key, const void *enc_iv, uint64_t
      enc_seq, uint64_t enc_record_iv,\n                               const void
      *dec_key, const void *dec_iv, uint64_t dec_seq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5291,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5297,1
    - Dst: ptls_tls12_phash
      Src: /src/h2o/deps/picotls/lib/picotls.c:5301,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5301,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5302,1
    - Dst: export_tls12_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5318,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 10
    argNames:
    - ctx
    - output
    - is_server
    - session_reused
    - cipher
    - master_secret
    - hello_randoms
    - next_send_record_iv
    - server_name
    - negotiated_protocol
    argTypes:
    - ptls_context_t*
    - ptls_buffer_t*
    - int
    - int
    - ptls_cipher_suite_t*
    - void*
    - void*
    - uint64_t
    - char*
    - ptls_iovec_t
    assertStmts:
    - condition: (cipher->aead->tls12.fixed_iv_size + cipher->aead->tls12.record_iv_size
        != 0 || !"given cipher-suite supports TLS/1.2")
      pos:
        line_end: 5290
        line_start: 5290
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (key_block_len <= sizeof(key_block))
      pos:
        line_end: 5296
        line_start: 5296
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5325
      start: 5287
    functionDepth: 1
    functionLinenumber: 5287
    functionLinenumberEnd: 5325
    functionName: ptls_build_tls12_export_params
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - ptls_tls12_phash
    - ptls_clear_memory
    - export_tls12_params
    - assert
    linkageType: ''
    returnType: int
    signature: "int ptls_build_tls12_export_params(ptls_context_t *ctx, ptls_buffer_t
      *output, int is_server, int session_reused,\n                                   ptls_cipher_suite_t
      *cipher, const void *master_secret, const void *hello_randoms,\n                                   uint64_t
      next_send_record_iv, const char *server_name, ptls_iovec_t negotiated_protocol)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5330,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5330,1
    - Dst: ptls_get_protocol_version
      Src: /src/h2o/deps/picotls/lib/picotls.c:5338,1
    - Dst: export_tls_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5339,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5341,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5342,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:5343,1
    - Dst: ptls_buffer_push64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5344,1
    - Dst: export_tls12_params
      Src: /src/h2o/deps/picotls/lib/picotls.c:5348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - tls
    - output
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5359
      start: 5327
    functionDepth: 1
    functionLinenumber: 5327
    functionLinenumberEnd: 5359
    functionName: ptls_export
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_buffer_push64
    - export_tls_params
    - ptls_get_protocol_version
    - export_tls12_params
    - ptls_buffer_pushv
    - strlen
    linkageType: ''
    returnType: int
    signature: int ptls_export(ptls_t *tls, ptls_buffer_t *output)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5369,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5371,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5373,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5376,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/picotls.c:5382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - tls
    - is_enc
    - src
    - end
    argTypes:
    - ptls_t*
    - int
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5386
      start: 5361
    functionDepth: 1
    functionLinenumber: 5361
    functionLinenumberEnd: 5386
    functionName: import_tls12_traffic_protection
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_decode64
    - memcpy
    - ptls_aead_new_direct
    linkageType: ''
    returnType: int
    signature: int import_tls12_traffic_protection(ptls_t *tls, int is_enc, const
      uint8_t **src, const uint8_t *const end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5393,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:5395,1
    - Dst: setup_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - tls
    - is_enc
    - src
    - end
    argTypes:
    - ptls_t*
    - int
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5388
    functionDepth: 4
    functionLinenumber: 5388
    functionLinenumberEnd: 5402
    functionName: import_tls13_traffic_protection
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_decode64
    - memcpy
    - setup_traffic_protection
    linkageType: ''
    returnType: int
    signature: int import_tls13_traffic_protection(ptls_t *tls, int is_enc, const
      uint8_t **src, const uint8_t *const end)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5413,1
    - Dst: new_instance
      Src: /src/h2o/deps/picotls/lib/picotls.c:5419,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5425,1
    - Dst: ptls_decode16
      Src: /src/h2o/deps/picotls/lib/picotls.c:5427,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5434,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5436,1
    - Dst: ptls_set_server_name
      Src: /src/h2o/deps/picotls/lib/picotls.c:5438,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5443,1
    - Dst: ptls_set_negotiated_protocol
      Src: /src/h2o/deps/picotls/lib/picotls.c:5445,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5451,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/deps/picotls/lib/picotls.c:5454,1
    - Dst: import_tls12_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5460,1
    - Dst: import_tls12_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5462,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/deps/picotls/lib/picotls.c:5466,1
    - Dst: key_schedule_new
      Src: /src/h2o/deps/picotls/lib/picotls.c:5472,1
    - Dst: import_tls13_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5476,1
    - Dst: import_tls13_traffic_protection
      Src: /src/h2o/deps/picotls/lib/picotls.c:5478,1
    - Dst: ptls_decode_open_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:5487,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/picotls.c:5492,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5497,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 98
    argCount: 3
    argNames:
    - ctx
    - tls
    - params
    argTypes:
    - ptls_context_t*
    - ptls_t**
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5502
      start: 5404
    functionDepth: 5
    functionLinenumber: 5404
    functionLinenumberEnd: 5502
    functionName: ptls_import
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_set_server_name
    - ptls_decode_open_block
    - ptls_find_cipher_suite
    - ptls_decode_block
    - ptls_set_negotiated_protocol
    - import_tls13_traffic_protection
    - ptls_is_server
    - ptls_decode16
    - key_schedule_new
    - ptls_free
    - memcpy
    - import_tls12_traffic_protection
    - new_instance
    linkageType: ''
    returnType: int
    signature: int ptls_import(ptls_context_t *ctx, ptls_t **tls, ptls_iovec_t params)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_PROBE0
      Src: /src/h2o/deps/picotls/lib/picotls.c:5506,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5507,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5509,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5510,1
    - Dst: free_exporter_master_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:5511,1
    - Dst: free_exporter_master_secret
      Src: /src/h2o/deps/picotls/lib/picotls.c:5512,1
    - Dst: key_schedule_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5514,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5516,1
    - Dst: ptls_aead_free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5518,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5519,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5520,1
    - Dst: clear_ech
      Src: /src/h2o/deps/picotls/lib/picotls.c:5521,1
    - Dst: ptls_t*::server::async_job::destroy_
      Src: /src/h2o/deps/picotls/lib/picotls.c:5524,1
    - Dst: ptls_t*::client::key_share_ctx::on_exchange
      Src: /src/h2o/deps/picotls/lib/picotls.c:5527,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5527,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5529,1
    - Dst: ptls_t*::certificate_verify::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5532,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5534,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5535,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5537,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:5538,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5540
      start: 5504
    functionDepth: 2
    functionLinenumber: 5504
    functionLinenumberEnd: 5540
    functionName: ptls_free
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 19
    functionsReached:
    - clear_ech
    - ptls_t*::client::key_share_ctx::on_exchange
    - ptls_iovec_init
    - ptls_t*::certificate_verify::cb
    - key_schedule_free
    - free
    - free_exporter_master_secret
    - ptls_aead_free
    - ptls_t*::server::async_job::destroy_
    - ptls_clear_memory
    - update_open_count
    - PTLS_LOG_CONN
    - PTLS_PROBE0
    - ptls_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void ptls_free(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5542
    functionDepth: 0
    functionLinenumber: 5542
    functionLinenumberEnd: 5545
    functionName: ptls_get_context
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ptls_context_t
    signature: ptls_context_t *ptls_get_context(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5549,1
    - Dst: update_open_count
      Src: /src/h2o/deps/picotls/lib/picotls.c:5550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tls
    - ctx
    argTypes:
    - ptls_t*
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5552
      start: 5547
    functionDepth: 0
    functionLinenumber: 5547
    functionLinenumberEnd: 5552
    functionName: ptls_set_context
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - update_open_count
    linkageType: ''
    returnType: void
    signature: void ptls_set_context(ptls_t *tls, ptls_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5554
    functionDepth: 0
    functionLinenumber: 5554
    functionLinenumberEnd: 5557
    functionName: ptls_get_async_job
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ptls_async_job_t
    signature: ptls_async_job_t *ptls_get_async_job(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5562
      start: 5559
    functionDepth: 1
    functionLinenumber: 5559
    functionLinenumberEnd: 5562
    functionName: ptls_get_client_random
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t ptls_get_client_random(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5567
      start: 5564
    functionDepth: 0
    functionLinenumber: 5564
    functionLinenumberEnd: 5567
    functionName: ptls_get_cipher
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: ptls_cipher_suite_t
    signature: ptls_cipher_suite_t *ptls_get_cipher(ptls_t *tls)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5575
      start: 5569
    functionDepth: 0
    functionLinenumber: 5569
    functionLinenumberEnd: 5575
    functionName: ptls_get_protocol_version
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ptls_get_protocol_version(ptls_t *tls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_traffic_keys
      Src: /src/h2o/deps/picotls/lib/picotls.c:5582,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - tls
    - is_enc
    - key
    - iv
    - seq
    argTypes:
    - ptls_t*
    - int
    - uint8_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5587
      start: 5577
    functionDepth: 3
    functionLinenumber: 5577
    functionLinenumberEnd: 5587
    functionName: ptls_get_traffic_keys
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - get_traffic_keys
    linkageType: ''
    returnType: int
    signature: int ptls_get_traffic_keys(ptls_t *tls, int is_enc, uint8_t *key, uint8_t
      *iv, uint64_t *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5592
      start: 5589
    functionDepth: 0
    functionLinenumber: 5589
    functionLinenumberEnd: 5592
    functionName: ptls_get_server_name
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ptls_get_server_name(ptls_t *tls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:5599,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5599,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tls
    - server_name
    - server_name_len
    argTypes:
    - ptls_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5606
      start: 5594
    functionDepth: 2
    functionLinenumber: 5594
    functionLinenumberEnd: 5606
    functionName: ptls_set_server_name
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 12
    functionsReached:
    - free
    - duplicate_as_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int ptls_set_server_name(ptls_t *tls, const char *server_name, size_t
      server_name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5611
      start: 5608
    functionDepth: 0
    functionLinenumber: 5608
    functionLinenumberEnd: 5611
    functionName: ptls_get_negotiated_protocol
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ptls_get_negotiated_protocol(ptls_t *tls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duplicate_as_str
      Src: /src/h2o/deps/picotls/lib/picotls.c:5617,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:5617,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:5620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tls
    - protocol
    - protocol_len
    argTypes:
    - ptls_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5613
    functionDepth: 2
    functionLinenumber: 5613
    functionLinenumberEnd: 5624
    functionName: ptls_set_negotiated_protocol
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 7
    functionsReached:
    - free
    - duplicate_as_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int ptls_set_negotiated_protocol(ptls_t *tls, const char *protocol,
      size_t protocol_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5629
      start: 5626
    functionDepth: 0
    functionLinenumber: 5626
    functionLinenumberEnd: 5629
    functionName: ptls_handshake_is_complete
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_handshake_is_complete(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5634
      start: 5631
    functionDepth: 0
    functionLinenumber: 5631
    functionLinenumberEnd: 5634
    functionName: ptls_is_psk_handshake
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_is_psk_handshake(ptls_t *tls)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - tls
    - config_id
    - kem
    - cipher
    argTypes:
    - ptls_t*
    - uint8_t*
    - ptls_hpke_kem_t**
    - ptls_hpke_cipher_suite_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5636
    functionDepth: 0
    functionLinenumber: 5636
    functionLinenumberEnd: 5648
    functionName: ptls_is_ech_handshake
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_is_ech_handshake(ptls_t *tls, uint8_t *config_id, ptls_hpke_kem_t
      **kem, ptls_hpke_cipher_suite_t **cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5653
    functionName: ptls_get_data_ptr
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void **ptls_get_data_ptr(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5655
    functionDepth: 0
    functionLinenumber: 5655
    functionLinenumberEnd: 5662
    functionName: ptls_get_log_state
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *ptls_get_log_state(ptls_t *tls)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: client_handle_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:5674,1
    - Dst: client_handle_encrypted_extensions
      Src: /src/h2o/deps/picotls/lib/picotls.c:5681,1
    - Dst: client_handle_certificate_request
      Src: /src/h2o/deps/picotls/lib/picotls.c:5688,1
    - Dst: client_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5695,1
    - Dst: client_handle_compressed_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5698,1
    - Dst: client_handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:5707,1
    - Dst: client_handle_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:5714,1
    - Dst: client_handle_new_session_ticket
      Src: /src/h2o/deps/picotls/lib/picotls.c:5722,1
    - Dst: handle_key_update
      Src: /src/h2o/deps/picotls/lib/picotls.c:5725,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5733,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5738,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5740,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5741,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5742,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5743,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 5
    argNames:
    - tls
    - emitter
    - message
    - is_end_of_record
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    - int
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (!"unexpected state")
      pos:
        line_end: 5732
        line_start: 5732
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5747
      start: 5664
    functionDepth: 11
    functionLinenumber: 5664
    functionLinenumberEnd: 5747
    functionName: handle_client_handshake_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - client_handle_certificate
    - client_handle_certificate_request
    - client_handle_encrypted_extensions
    - client_handle_finished
    - handle_key_update
    - PTLS_LOG_ELEMENT_UNSIGNED
    - client_handle_compressed_certificate
    - PTLS_PROBE
    - client_handle_hello
    - PTLS_LOG_ELEMENT_SIGNED
    - client_handle_certificate_verify
    - client_handle_new_session_ticket
    - PTLS_LOG_CONN
    - assert
    linkageType: ''
    returnType: int
    signature: "int handle_client_handshake_message(ptls_t *tls, ptls_message_emitter_t
      *emitter, ptls_iovec_t message, int is_end_of_record,\n                                           ptls_handshake_properties_t
      *properties)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: server_handle_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:5759,1
    - Dst: server_handle_certificate
      Src: /src/h2o/deps/picotls/lib/picotls.c:5766,1
    - Dst: server_handle_certificate_verify
      Src: /src/h2o/deps/picotls/lib/picotls.c:5773,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5779,1
    - Dst: server_handle_end_of_early_data
      Src: /src/h2o/deps/picotls/lib/picotls.c:5781,1
    - Dst: server_handle_finished
      Src: /src/h2o/deps/picotls/lib/picotls.c:5788,1
    - Dst: handle_key_update
      Src: /src/h2o/deps/picotls/lib/picotls.c:5796,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5804,1
    - Dst: PTLS_PROBE
      Src: /src/h2o/deps/picotls/lib/picotls.c:5809,1
    - Dst: PTLS_LOG_CONN
      Src: /src/h2o/deps/picotls/lib/picotls.c:5811,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5812,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5813,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/deps/picotls/lib/picotls.c:5814,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 5
    argNames:
    - tls
    - emitter
    - message
    - is_end_of_record
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_iovec_t
    - int
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (!tls->ctx->omit_end_of_early_data)
      pos:
        line_end: 5778
        line_start: 5778
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"unexpected state")
      pos:
        line_end: 5803
        line_start: 5803
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5818
      start: 5749
    functionDepth: 6
    functionLinenumber: 5749
    functionLinenumberEnd: 5818
    functionName: handle_server_handshake_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - server_handle_end_of_early_data
    - handle_key_update
    - PTLS_LOG_ELEMENT_UNSIGNED
    - server_handle_hello
    - server_handle_certificate
    - PTLS_PROBE
    - server_handle_certificate_verify
    - server_handle_finished
    - PTLS_LOG_ELEMENT_SIGNED
    - PTLS_LOG_CONN
    - assert
    linkageType: ''
    returnType: int
    signature: "int handle_server_handshake_message(ptls_t *tls, ptls_message_emitter_t
      *emitter, ptls_iovec_t message, int is_end_of_record,\n                                           ptls_handshake_properties_t
      *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ALERT_TO_PEER_ERROR
      Src: /src/h2o/deps/picotls/lib/picotls.c:5828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tls
    - src
    - len
    argTypes:
    - ptls_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5829
      start: 5820
    functionDepth: 1
    functionLinenumber: 5820
    functionLinenumberEnd: 5829
    functionName: handle_alert
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - PTLS_ALERT_TO_PEER_ERROR
    linkageType: ''
    returnType: int
    signature: int handle_alert(ptls_t *tls, const uint8_t *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - ptls_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5838
      start: 5831
    functionDepth: 0
    functionLinenumber: 5831
    functionLinenumberEnd: 5838
    functionName: message_buffer_is_overflow
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int message_buffer_is_overflow(ptls_context_t *ctx, size_t size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: message_buffer_is_overflow
      Src: /src/h2o/deps/picotls/lib/picotls.c:5858,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5860,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5862,1
    - Dst: ntoh24
      Src: /src/h2o/deps/picotls/lib/picotls.c:5871,1
    - Dst: cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:5874,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5874,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5881,1
    - Dst: message_buffer_is_overflow
      Src: /src/h2o/deps/picotls/lib/picotls.c:5890,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:5893,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5894,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:5896,1
    - Dst: memmove
      Src: /src/h2o/deps/picotls/lib/picotls.c:5898,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5903,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - tls
    - emitter
    - rec
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - struct st_ptls_record_t*
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5907
      start: 5840
    functionDepth: 2
    functionLinenumber: 5840
    functionLinenumberEnd: 5907
    functionName: handle_handshake_record
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_iovec_init
    - cb
    - ptls_buffer_reserve
    - memcpy
    - memmove
    - message_buffer_is_overflow
    - ptls_buffer_init
    - ntoh24
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: "int handle_handshake_record(ptls_t *tls,\n                                   int
      (*cb)(ptls_t *tls, ptls_message_emitter_t *emitter, ptls_iovec_t message,\n
      \                                            int is_end_of_record, ptls_handshake_properties_t
      *properties),\n                                   ptls_message_emitter_t *emitter,
      struct st_ptls_record_t *rec,\n                                   ptls_handshake_properties_t
      *properties)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: parse_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:5916,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5918,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:5935,1
    - Dst: aead_decrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:5937,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:5958,1
    - Dst: handle_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:5976,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:5985,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 76
    argCount: 6
    argNames:
    - tls
    - emitter
    - decryptbuf
    - input
    - inlen
    - properties
    argTypes:
    - ptls_t*
    - ptls_message_emitter_t*
    - ptls_buffer_t*
    - void*
    - size_t*
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (rec.fragment != NULL)
      pos:
        line_end: 5917
        line_start: 5917
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 5994
      start: 5909
    functionDepth: 3
    functionLinenumber: 5909
    functionLinenumberEnd: 5994
    functionName: handle_input
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 8
    functionsReached:
    - handle_alert
    - handle_handshake_record
    - ptls_buffer_reserve
    - parse_record
    - aead_decrypt
    - assert
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: "int handle_input(ptls_t *tls, ptls_message_emitter_t *emitter, ptls_buffer_t
      *decryptbuf, const void *input, size_t *inlen,\n                        ptls_handshake_properties_t
      *properties)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6002,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6004,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6012,1
    - Dst: ptls_decode64
      Src: /src/h2o/deps/picotls/lib/picotls.c:6013,1
    - Dst: build_tls12_aad
      Src: /src/h2o/deps/picotls/lib/picotls.c:6028,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:6031,1
    - Dst: ptls_aead_decrypt
      Src: /src/h2o/deps/picotls/lib/picotls.c:6033,1
    - Dst: handle_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6048,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6056,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6057,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - tls
    - decryptbuf
    - input
    - inlen
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - void*
    - size_t*
    assertStmts:
    - condition: (rec.fragment != NULL)
      pos:
        line_end: 6003
        line_start: 6003
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (tls->traffic_protection.dec.aead->algo->tls12.record_iv_size ==
        8)
      pos:
        line_end: 6011
        line_start: 6011
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6059
      start: 5996
    functionDepth: 3
    functionLinenumber: 5996
    functionLinenumberEnd: 6059
    functionName: handle_input_tls12
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - handle_alert
    - ptls_buffer_dispose
    - ptls_decode64
    - ptls_buffer_reserve
    - parse_record
    - build_tls12_aad
    - ptls_clear_memory
    - assert
    - ptls_aead_decrypt
    linkageType: ''
    returnType: int
    signature: int handle_input_tls12(ptls_t *tls, ptls_buffer_t *decryptbuf, const
      void *input, size_t *inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tls
    - emitter
    - sendbuf
    argTypes:
    - ptls_t*
    - struct st_ptls_record_message_emitter_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6061
    functionDepth: 0
    functionLinenumber: 6061
    functionLinenumberEnd: 6065
    functionName: init_record_message_emitter
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_record_message_emitter(ptls_t *tls, struct st_ptls_record_message_emitter_t
      *emitter, ptls_buffer_t *sendbuf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6072,1
    - Dst: init_record_message_emitter
      Src: /src/h2o/deps/picotls/lib/picotls.c:6074,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6080,1
    - Dst: send_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:6081,1
    - Dst: server_finish_handshake
      Src: /src/h2o/deps/picotls/lib/picotls.c:6084,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6092,1
    - Dst: handle_input
      Src: /src/h2o/deps/picotls/lib/picotls.c:6098,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6100,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6103,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6115,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6119,1
    - Dst: ptls_send_alert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6120,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6121,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - tls
    - _sendbuf
    - input
    - inlen
    - properties
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - void*
    - size_t*
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (tls->state < PTLS_STATE_POST_HANDSHAKE_MIN)
      pos:
        line_end: 6071
        line_start: 6071
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input == NULL || *inlen == 0)
      pos:
        line_end: 6079
        line_start: 6079
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (decryptbuf.off == 0)
      pos:
        line_end: 6099
        line_start: 6099
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6128
      start: 6067
    functionDepth: 9
    functionLinenumber: 6067
    functionLinenumberEnd: 6128
    functionName: ptls_handshake
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 15
    functionsReached:
    - PTLS_ERROR_GET_CLASS
    - ptls_send_alert
    - init_record_message_emitter
    - ptls_buffer_dispose
    - handle_input
    - ptls_clear_memory
    - server_finish_handshake
    - send_client_hello
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: int ptls_handshake(ptls_t *tls, ptls_buffer_t *_sendbuf, const void
      *input, size_t *inlen, ptls_handshake_properties_t *properties)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6136,1
    - Dst: handle_input_tls12
      Src: /src/h2o/deps/picotls/lib/picotls.c:6142,1
    - Dst: handle_input
      Src: /src/h2o/deps/picotls/lib/picotls.c:6144,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/deps/picotls/lib/picotls.c:6158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - tls
    - decryptbuf
    - _input
    - inlen
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - void*
    - size_t*
    assertStmts:
    - condition: (tls->state >= PTLS_STATE_SERVER_EXPECT_END_OF_EARLY_DATA)
      pos:
        line_end: 6135
        line_start: 6135
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6168
      start: 6130
    functionDepth: 4
    functionLinenumber: 6130
    functionLinenumberEnd: 6168
    functionName: ptls_receive
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached:
    - handle_input_tls12
    - handle_input
    - assert
    - PTLS_ERROR_GET_CLASS
    linkageType: ''
    returnType: int
    signature: int ptls_receive(ptls_t *tls, ptls_buffer_t *decryptbuf, const void
      *_input, size_t *inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_record_message_emitter
      Src: /src/h2o/deps/picotls/lib/picotls.c:6175,1
    - Dst: ptls_push_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6178,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6179,1
    - Dst: update_traffic_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tls
    - _sendbuf
    - request_update
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6170
    functionDepth: 5
    functionLinenumber: 6170
    functionLinenumberEnd: 6188
    functionName: update_send_key
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_push_message
    - ptls_buffer_push
    - update_traffic_key
    - init_record_message_emitter
    linkageType: ''
    returnType: int
    signature: int update_send_key(ptls_t *tls, ptls_buffer_t *_sendbuf, int request_update)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6192,1
    - Dst: update_send_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6204,1
    - Dst: buffer_push_encrypted_records
      Src: /src/h2o/deps/picotls/lib/picotls.c:6210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - tls
    - sendbuf
    - input
    - inlen
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - void*
    - size_t
    assertStmts:
    - condition: (tls->traffic_protection.enc.aead != NULL)
      pos:
        line_end: 6191
        line_start: 6191
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6211
      start: 6190
    functionDepth: 6
    functionLinenumber: 6190
    functionLinenumberEnd: 6211
    functionName: ptls_send
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached:
    - update_send_key
    - assert
    - buffer_push_encrypted_records
    linkageType: ''
    returnType: int
    signature: int ptls_send(ptls_t *tls, ptls_buffer_t *sendbuf, const void *input,
      size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tls
    - request_update
    argTypes:
    - ptls_t*
    - int
    assertStmts:
    - condition: (tls->ctx->update_traffic_key == NULL)
      pos:
        line_end: 6214
        line_start: 6214
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6219
      start: 6213
    functionDepth: 0
    functionLinenumber: 6213
    functionLinenumberEnd: 6219
    functionName: ptls_update_key
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int ptls_update_key(ptls_t *tls, int request_update)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6230
    functionName: ptls_get_record_overhead
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_get_record_overhead(ptls_t *tls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buffer_push_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6237,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6237,1
    - Dst: buffer_encrypt_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - tls
    - sendbuf
    - level
    - description
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6232
    functionDepth: 4
    functionLinenumber: 6232
    functionLinenumberEnd: 6246
    functionName: ptls_send_alert
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached:
    - ptls_buffer_push
    - buffer_push_record
    - buffer_encrypt_record
    linkageType: ''
    returnType: int
    signature: int ptls_send_alert(ptls_t *tls, ptls_buffer_t *sendbuf, uint8_t level,
      uint8_t description)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_calc_hash
      Src: /src/h2o/deps/picotls/lib/picotls.c:6272,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:6275,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6275,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6276,1
    - Dst: ptls_hkdf_expand_label
      Src: /src/h2o/deps/picotls/lib/picotls.c:6278,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6278,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6279,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6282,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - tls
    - output
    - outlen
    - label
    - context_value
    - is_early
    argTypes:
    - ptls_t*
    - void*
    - size_t
    - char*
    - ptls_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6248
    functionDepth: 1
    functionLinenumber: 6248
    functionLinenumberEnd: 6285
    functionName: ptls_export_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_iovec_init
    - ptls_calc_hash
    - ptls_hkdf_expand_label
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int ptls_export_secret(ptls_t *tls, void *output, size_t outlen, const
      char *label, ptls_iovec_t context_value, int is_early)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _ctx
    - src
    - len
    argTypes:
    - ptls_hash_context_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6298
    functionName: hmac_update
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 5
    functionsReached:
    - struct st_picotls_hmac_context_t*::hash::update
    linkageType: ''
    returnType: void
    signature: void hmac_update(ptls_hash_context_t *_ctx, const void *src, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pad
    argTypes:
    - struct st_picotls_hmac_context_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6300
    functionDepth: 0
    functionLinenumber: 6300
    functionLinenumberEnd: 6309
    functionName: hmac_apply_key
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - struct st_picotls_hmac_context_t*::hash::update
    linkageType: ''
    returnType: void
    signature: void hmac_apply_key(struct st_picotls_hmac_context_t *ctx, uint8_t
      pad)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6315,1
    - Dst: struct st_picotls_hmac_context_t*::hash::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6318,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6319,1
    - Dst: struct st_picotls_hmac_context_t*::hash::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6320,1
    - Dst: struct st_picotls_hmac_context_t*::hash::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6322,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6326,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6327,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6330,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - _ctx
    - md
    - mode
    argTypes:
    - ptls_hash_context_t*
    - void*
    - ptls_hash_final_mode_t
    assertStmts:
    - condition: (mode != PTLS_HASH_FINAL_MODE_SNAPSHOT || !"not supported")
      pos:
        line_end: 6314
        line_start: 6314
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"FIXME")
      pos:
        line_end: 6332
        line_start: 6332
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6336
      start: 6311
    functionDepth: 1
    functionLinenumber: 6311
    functionLinenumberEnd: 6336
    functionName: hmac_final
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - assert
    - free
    - ptls_clear_memory
    - hmac_apply_key
    - struct st_picotls_hmac_context_t*::hash::update
    - struct st_picotls_hmac_context_t*::hash::final
    linkageType: ''
    returnType: void
    signature: void hmac_final(ptls_hash_context_t *_ctx, void *md, ptls_hash_final_mode_t
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hash_algorithm_t*::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6342,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6344,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - algo
    - output
    - src
    - len
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6347
      start: 6338
    functionDepth: 0
    functionLinenumber: 6338
    functionLinenumberEnd: 6347
    functionName: ptls_calc_hash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 10
    functionsReached:
    - ptls_hash_algorithm_t*::create
    - ptls_hash_context_t*::update
    - ptls_hash_context_t*::final
    linkageType: ''
    returnType: int
    signature: int ptls_calc_hash(ptls_hash_algorithm_t *algo, void *output, const
      void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6353,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6355,1
    - Dst: ptls_hash_algorithm_t*::create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6359,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6360,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6363,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6364,1
    - Dst: hmac_apply_key
      Src: /src/h2o/deps/picotls/lib/picotls.c:6366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - algo
    - key
    - key_size
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - size_t
    assertStmts:
    - condition: (key_size <= algo->block_size)
      pos:
        line_end: 6352
        line_start: 6352
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6369
      start: 6349
    functionDepth: 1
    functionLinenumber: 6349
    functionLinenumberEnd: 6369
    functionName: ptls_hmac_create
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 4
    functionsReached:
    - malloc
    - free
    - memcpy
    - hmac_apply_key
    - memset
    - ptls_hash_algorithm_t*::create
    - assert
    linkageType: ''
    returnType: ptls_hash_context_t
    signature: ptls_hash_context_t *ptls_hmac_create(ptls_hash_algorithm_t *algo,
      const void *key, size_t key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6376,1
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6378,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6380,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - algo
    - output
    - salt
    - ikm
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6371
    functionDepth: 2
    functionLinenumber: 6371
    functionLinenumberEnd: 6383
    functionName: ptls_hkdf_extract
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 5
    functionsReached:
    - ptls_iovec_init
    - ptls_hash_context_t*::final
    - ptls_hmac_create
    - ptls_hash_context_t*::update
    linkageType: ''
    returnType: int
    signature: int ptls_hkdf_extract(ptls_hash_algorithm_t *algo, void *output, ptls_iovec_t
      salt, ptls_iovec_t ikm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6393,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6396,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6398,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6400,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6401,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6406,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6410,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - algo
    - output
    - outlen
    - prk
    - info
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - size_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6385
    functionDepth: 2
    functionLinenumber: 6385
    functionLinenumberEnd: 6415
    functionName: ptls_hkdf_expand
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached:
    - ptls_hash_context_t*::final
    - memcpy
    - ptls_clear_memory
    - ptls_hash_context_t*::update
    - ptls_hmac_create
    linkageType: ''
    returnType: int
    signature: int ptls_hkdf_expand(ptls_hash_algorithm_t *algo, void *output, size_t
      outlen, ptls_iovec_t prk, ptls_iovec_t info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6424,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6426,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6427,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6430,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6430,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6431,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6431,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6433,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6433,1
    - Dst: ptls_hkdf_expand
      Src: /src/h2o/deps/picotls/lib/picotls.c:6435,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6435,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - algo
    - output
    - outlen
    - secret
    - label
    - hash_value
    - label_prefix
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - size_t
    - ptls_iovec_t
    - char*
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6440
      start: 6417
    functionDepth: 3
    functionLinenumber: 6417
    functionLinenumberEnd: 6440
    functionName: ptls_hkdf_expand_label
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 14
    functionsReached:
    - ptls_iovec_init
    - ptls_hkdf_expand
    - ptls_buffer_dispose
    - ptls_buffer_push_block
    - ptls_buffer_push16
    - ptls_buffer_pushv
    - strlen
    - ptls_buffer_init
    linkageType: ''
    returnType: int
    signature: "int ptls_hkdf_expand_label(ptls_hash_algorithm_t *algo, void *output,
      size_t outlen, ptls_iovec_t secret, const char *label,\n                           ptls_iovec_t
      hash_value, const char *label_prefix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_hmac_create
      Src: /src/h2o/deps/picotls/lib/picotls.c:6449,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6454,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6454,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6455,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6456,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6460,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6462,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6462,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6463,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6466,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6467,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6470,1
    - Dst: ptls_hash_context_t*::update
      Src: /src/h2o/deps/picotls/lib/picotls.c:6474,1
    - Dst: ptls_hash_context_t*::final
      Src: /src/h2o/deps/picotls/lib/picotls.c:6475,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - algo
    - output
    - outlen
    - secret
    - label
    - seed
    argTypes:
    - ptls_hash_algorithm_t*
    - void*
    - size_t
    - ptls_iovec_t
    - char*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6481
      start: 6442
    functionDepth: 2
    functionLinenumber: 6442
    functionLinenumberEnd: 6481
    functionName: ptls_tls12_phash
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_hash_context_t*::final
    - memcpy
    - ptls_clear_memory
    - ptls_hash_context_t*::update
    - ptls_hmac_create
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ptls_tls12_phash(ptls_hash_algorithm_t *algo, void *output, size_t
      outlen, ptls_iovec_t secret, const char *label,\n                     ptls_iovec_t
      seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6487,1
    - Dst: ptls_cipher_algorithm_t*::setup_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6490,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - algo
    - is_enc
    - key
    argTypes:
    - ptls_cipher_algorithm_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6495
      start: 6483
    functionDepth: 0
    functionLinenumber: 6483
    functionLinenumberEnd: 6495
    functionName: ptls_cipher_new
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 12
    functionsReached:
    - free
    - malloc
    - ptls_cipher_algorithm_t*::setup_crypto
    linkageType: ''
    returnType: ptls_cipher_context_t
    signature: ptls_cipher_context_t *ptls_cipher_new(ptls_cipher_algorithm_t *algo,
      int is_enc, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_context_t*::do_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:6499,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6501
      start: 6497
    functionDepth: 0
    functionLinenumber: 6497
    functionLinenumberEnd: 6501
    functionName: ptls_cipher_free
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 14
    functionsReached:
    - free
    - ptls_cipher_context_t*::do_dispose
    linkageType: ''
    returnType: void
    signature: void ptls_cipher_free(ptls_cipher_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_traffic_keys
      Src: /src/h2o/deps/picotls/lib/picotls.c:6513,1
    - Dst: ptls_aead_new_direct
      Src: /src/h2o/deps/picotls/lib/picotls.c:6515,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/picotls.c:6517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - aead
    - hash
    - is_enc
    - secret
    - hash_value
    - label_prefix
    argTypes:
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - int
    - void*
    - ptls_iovec_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6519
      start: 6503
    functionDepth: 3
    functionLinenumber: 6503
    functionLinenumberEnd: 6519
    functionName: new_aead
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_aead_new_direct
    - get_traffic_keys
    - ptls_clear_memory
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: "ptls_aead_context_t *new_aead(ptls_aead_algorithm_t *aead, ptls_hash_algorithm_t
      *hash, int is_enc, const void *secret,\n                              ptls_iovec_t
      hash_value, const char *label_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_aead
      Src: /src/h2o/deps/picotls/lib/picotls.c:6524,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:6524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - aead
    - hash
    - is_enc
    - secret
    - label_prefix
    argTypes:
    - ptls_aead_algorithm_t*
    - ptls_hash_algorithm_t*
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6525
      start: 6521
    functionDepth: 4
    functionLinenumber: 6521
    functionLinenumberEnd: 6525
    functionName: ptls_aead_new
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 11
    functionsReached:
    - ptls_iovec_init
    - new_aead
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: "ptls_aead_context_t *ptls_aead_new(ptls_aead_algorithm_t *aead, ptls_hash_algorithm_t
      *hash, int is_enc, const void *secret,\n                                   const
      char *label_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6531,1
    - Dst: ptls_aead_algorithm_t*::setup_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6536,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - aead
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_algorithm_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6542
      start: 6527
    functionDepth: 0
    functionLinenumber: 6527
    functionLinenumberEnd: 6542
    functionName: ptls_aead_new_direct
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 9
    functionsReached:
    - free
    - ptls_aead_algorithm_t*::setup_crypto
    - malloc
    linkageType: ''
    returnType: ptls_aead_context_t
    signature: ptls_aead_context_t *ptls_aead_new_direct(ptls_aead_algorithm_t *aead,
      int is_enc, const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::dispose_crypto
      Src: /src/h2o/deps/picotls/lib/picotls.c:6546,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6548
      start: 6544
    functionDepth: 0
    functionLinenumber: 6544
    functionLinenumberEnd: 6548
    functionName: ptls_aead_free
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 25
    functionsReached:
    - ptls_aead_context_t*::dispose_crypto
    - free
    linkageType: ''
    returnType: void
    signature: void ptls_aead_free(ptls_aead_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_get_iv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6555,1
    - Dst: ptls_aead_set_iv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - _bytes
    - len
    argTypes:
    - ptls_aead_context_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6550
    functionDepth: 1
    functionLinenumber: 6550
    functionLinenumberEnd: 6559
    functionName: ptls_aead_xor_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached:
    - ptls_aead_set_iv
    - ptls_aead_get_iv
    linkageType: ''
    returnType: void
    signature: void ptls_aead_xor_iv(ptls_aead_context_t *ctx, const void *_bytes,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - algo
    - iv
    - static_iv
    - seq
    argTypes:
    - ptls_aead_algorithm_t*
    - uint8_t*
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6561
    functionDepth: 0
    functionLinenumber: 6561
    functionLinenumberEnd: 6575
    functionName: ptls_aead__build_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptls_aead__build_iv(ptls_aead_algorithm_t *algo, uint8_t *iv,
      const uint8_t *static_iv, uint64_t seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6581
      start: 6577
    functionDepth: 1
    functionLinenumber: 6577
    functionLinenumberEnd: 6581
    functionName: clear_memory
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 55
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void clear_memory(void *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - _x
    - _y
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6594
      start: 6585
    functionDepth: 0
    functionLinenumber: 6585
    functionLinenumberEnd: 6594
    functionName: mem_equal
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_equal(const void *_x, const void *_y, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/lib/picotls.c:6601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_get_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6603
      start: 6598
    functionDepth: 2
    functionLinenumber: 6598
    functionLinenumberEnd: 6603
    functionName: get_time
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_time(ptls_get_time_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6610
      start: 6607
    functionDepth: 0
    functionLinenumber: 6607
    functionLinenumberEnd: 6610
    functionName: ptls_is_server
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_is_server(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_message_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6618
    functionDepth: 0
    functionLinenumber: 6618
    functionLinenumberEnd: 6624
    functionName: begin_raw_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int begin_raw_message(ptls_message_emitter_t *_self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_message_emitter_t*
    assertStmts:
    - condition: (self->epoch_offsets[epoch] == self->start_off)
      pos:
        line_end: 6636
        line_start: 6636
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6644
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6644
    functionName: commit_raw_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int commit_raw_message(ptls_message_emitter_t *_self)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6656,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - tls
    argTypes:
    - ptls_t*
    assertStmts:
    - condition: (!tls->ctx->omit_end_of_early_data)
      pos:
        line_end: 6655
        line_start: 6655
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!"invalid state")
      pos:
        line_end: 6671
        line_start: 6671
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6675
      start: 6646
    functionDepth: 0
    functionLinenumber: 6646
    functionLinenumberEnd: 6675
    functionName: ptls_get_read_epoch
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_get_read_epoch(ptls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_server_handle_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6680,1
    - Dst: ptls_client_handle_message
      Src: /src/h2o/deps/picotls/lib/picotls.c:6681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - tls
    - sendbuf
    - epoch_offsets
    - in_epoch
    - input
    - inlen
    - properties
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - size_t[]
    - size_t
    - void*
    - size_t
    - ptls_handshake_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6682
      start: 6677
    functionDepth: 1
    functionLinenumber: 6677
    functionLinenumberEnd: 6682
    functionName: ptls_handle_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 4
    functionsReached:
    - ptls_client_handle_message
    - ptls_server_handle_message
    linkageType: ''
    returnType: int
    signature: "int ptls_handle_message(ptls_t *tls, ptls_buffer_t *sendbuf, size_t
      epoch_offsets[5], size_t in_epoch, const void *input,\n                        size_t
      inlen, ptls_handshake_properties_t *properties)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6687,1
    - Dst: send_client_hello
      Src: /src/h2o/deps/picotls/lib/picotls.c:6694,1
    - Dst: ptls_get_read_epoch
      Src: /src/h2o/deps/picotls/lib/picotls.c:6696,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - tls
    - sendbuf
    - epoch_offsets
    - in_epoch
    - input
    - inlen
    - properties
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - size_t[]
    - size_t
    - void*
    - size_t
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (!tls->is_server)
      pos:
        line_end: 6686
        line_start: 6686
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6700
      start: 6684
    functionDepth: 9
    functionLinenumber: 6684
    functionLinenumberEnd: 6700
    functionName: ptls_client_handle_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - ptls_get_read_epoch
    - handle_handshake_record
    - send_client_hello
    - assert
    linkageType: ''
    returnType: int
    signature: "int ptls_client_handle_message(ptls_t *tls, ptls_buffer_t *sendbuf,
      size_t epoch_offsets[5], size_t in_epoch, const void *input,\n                               size_t
      inlen, ptls_handshake_properties_t *properties)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6705,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6712,1
    - Dst: server_finish_handshake
      Src: /src/h2o/deps/picotls/lib/picotls.c:6713,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6716,1
    - Dst: ptls_get_read_epoch
      Src: /src/h2o/deps/picotls/lib/picotls.c:6718,1
    - Dst: handle_handshake_record
      Src: /src/h2o/deps/picotls/lib/picotls.c:6721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - tls
    - sendbuf
    - epoch_offsets
    - in_epoch
    - input
    - inlen
    - properties
    argTypes:
    - ptls_t*
    - ptls_buffer_t*
    - size_t[]
    - size_t
    - void*
    - size_t
    - ptls_handshake_properties_t*
    assertStmts:
    - condition: (tls->is_server)
      pos:
        line_end: 6704
        line_start: 6704
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input == NULL || inlen == 0)
      pos:
        line_end: 6711
        line_start: 6711
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (input != NULL)
      pos:
        line_end: 6715
        line_start: 6715
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6722
      start: 6702
    functionDepth: 7
    functionLinenumber: 6702
    functionLinenumberEnd: 6722
    functionName: ptls_server_handle_message
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - server_finish_handshake
    - handle_handshake_record
    - ptls_get_read_epoch
    - assert
    linkageType: ''
    returnType: int
    signature: "int ptls_server_handle_message(ptls_t *tls, ptls_buffer_t *sendbuf,
      size_t epoch_offsets[5], size_t in_epoch, const void *input,\n                               size_t
      inlen, ptls_handshake_properties_t *properties)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:6731,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:6736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6740
      start: 6727
    functionDepth: 2
    functionLinenumber: 6727
    functionLinenumberEnd: 6740
    functionName: ptls_server_name_is_ipaddr
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 4
    functionsReached:
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int ptls_server_name_is_ipaddr(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6747,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6748,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6749,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6750,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6751,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6751,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6752,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6754,1
    - Dst: ptls_buffer_push16
      Src: /src/h2o/deps/picotls/lib/picotls.c:6755,1
    - Dst: ptls_buffer_push
      Src: /src/h2o/deps/picotls/lib/picotls.c:6758,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6759,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/deps/picotls/lib/picotls.c:6760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 7
    argNames:
    - buf
    - config_id
    - kem
    - public_key
    - ciphers
    - max_name_length
    - public_name
    argTypes:
    - ptls_buffer_t*
    - uint8_t
    - ptls_hpke_kem_t*
    - ptls_iovec_t
    - ptls_hpke_cipher_suite_t**
    - uint8_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6765
      start: 6742
    functionDepth: 1
    functionLinenumber: 6742
    functionLinenumberEnd: 6765
    functionName: ptls_ech_encode_config
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - ptls_buffer_push
    - ptls_buffer_push_block
    - ptls_buffer_push16
    - ptls_buffer_pushv
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ptls_ech_encode_config(ptls_buffer_t *buf, uint8_t config_id,
      ptls_hpke_kem_t *kem, ptls_iovec_t public_key,\n                           ptls_hpke_cipher_suite_t
      **ciphers, uint8_t max_name_length, const char *public_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - v
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6767
    functionDepth: 0
    functionLinenumber: 6767
    functionLinenumberEnd: 6772
    functionName: byte_to_hex
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *byte_to_hex(char *dst, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_to_hex
      Src: /src/h2o/deps/picotls/lib/picotls.c:6780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - _src
    - len
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6783
      start: 6774
    functionDepth: 1
    functionLinenumber: 6774
    functionLinenumberEnd: 6783
    functionName: ptls_hexdump
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 6
    functionsReached:
    - byte_to_hex
    linkageType: ''
    returnType: char
    signature: char *ptls_hexdump(char *dst, const void *_src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6797,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6798,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6799,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6800,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6801,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6802,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6803,1
    - Dst: MAP
      Src: /src/h2o/deps/picotls/lib/picotls.c:6804,1
    - Dst: byte_to_hex
      Src: /src/h2o/deps/picotls/lib/picotls.c:6812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - unsafe_str
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6785
    functionDepth: 1
    functionLinenumber: 6785
    functionLinenumberEnd: 6822
    functionName: ptls_jsonescape
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - byte_to_hex
    - MAP
    linkageType: ''
    returnType: char
    signature: char *ptls_jsonescape(char *buf, const char *unsafe_str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ch
    - ','
    - escaped
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6797
      start: 6792
    functionDepth: 0
    functionLinenumber: 6792
    functionLinenumberEnd: 6797
    functionName: MAP
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP(ch, escaped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6826,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/picotls.c:6827,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v6
    - v4
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6824
    functionDepth: 1
    functionLinenumber: 6824
    functionLinenumberEnd: 6829
    functionName: ptls_build_v4_mapped_v6_address
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void ptls_build_v4_mapped_v6_address(void *v6, const void *v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6890
      start: 6883
    functionDepth: 0
    functionLinenumber: 6883
    functionLinenumberEnd: 6890
    functionName: struct
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PTLS_THREADLOCAL
    signature: PTLS_THREADLOCAL struct
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:6894,1
    - Dst: close
      Src: /src/h2o/deps/picotls/lib/picotls.c:6896,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6901,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6903,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:6905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - slot
    argTypes:
    - size_t
    assertStmts:
    - condition: (logctx.conns[slot].fd >= 0 && logctx.conns[slot].points != NULL)
      pos:
        line_end: 6893
        line_start: 6893
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 6909
      start: 6892
    functionDepth: 1
    functionLinenumber: 6892
    functionLinenumberEnd: 6909
    functionName: close_log_fd
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - close
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void close_log_fd(size_t slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/picotls/lib/picotls.c:6914,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6919,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:6922,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:6924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6926
      start: 6911
    functionDepth: 1
    functionLinenumber: 6911
    functionLinenumberEnd: 6926
    functionName: duplicate_stringlist
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - memcpy
    - malloc
    - strdup
    - strlen
    linkageType: ''
    returnType: char
    signature: char *duplicate_stringlist(const char *input)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:6936,1
    - Dst: strcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:6937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - list
    - search_for
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6928
    functionDepth: 1
    functionLinenumber: 6928
    functionLinenumberEnd: 6940
    functionName: is_in_stringlist
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_in_stringlist(const char *list, const char *search_for)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6946,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6949,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6952,1
    - Dst: IS_EQUAL
      Src: /src/h2o/deps/picotls/lib/picotls.c:6953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - list
    - search_for
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6958
      start: 6942
    functionDepth: 1
    functionLinenumber: 6942
    functionLinenumberEnd: 6958
    functionName: is_in_addresslist
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - IS_EQUAL
    linkageType: ''
    returnType: int
    signature: int is_in_addresslist(const struct in6_addr *list, const struct in6_addr
      *search_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6945
      start: 6944
    functionDepth: 0
    functionLinenumber: 6944
    functionLinenumberEnd: 6945
    functionName: IS_EQUAL
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_EQUAL(x, y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6963,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:6968,1
    - Dst: is_in_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6969,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - caller_locked
    - point
    argTypes:
    - int
    - struct st_ptls_log_point_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6977
      start: 6960
    functionDepth: 2
    functionLinenumber: 6960
    functionLinenumberEnd: 6977
    functionName: ptls_log__recalc_point
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - is_in_stringlist
    linkageType: ''
    returnType: void
    signature: void ptls_log__recalc_point(int caller_locked, struct st_ptls_log_point_t
      *point)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:6982,1
    - Dst: ptls_log_getsni_t::cb
      Src: /src/h2o/deps/picotls/lib/picotls.c:6987,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:6988,1
    - Dst: is_in_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6990,1
    - Dst: is_in_addresslist
      Src: /src/h2o/deps/picotls/lib/picotls.c:6991,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - caller_locked
    - conn
    - getsni
    argTypes:
    - int
    - struct st_ptls_log_conn_state_t*
    - ptls_log_getsni_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7001
      start: 6979
    functionDepth: 2
    functionLinenumber: 6979
    functionLinenumberEnd: 7001
    functionName: ptls_log__recalc_conn
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - ptls_log_getsni_t::cb
    - is_in_stringlist
    - pthread_mutex_lock
    - is_in_addresslist
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ptls_log__recalc_conn(int caller_locked, struct st_ptls_log_conn_state_t
      *conn, ptls_log_getsni_t getsni)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/picotls.c:7008,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:7009,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7010,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - capacity
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7009
        line_start: 7009
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 7018
      start: 7003
    functionDepth: 2
    functionLinenumber: 7003
    functionLinenumberEnd: 7018
    functionName: expand_logbuf_or_invalidate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    - ptls_buffer_reserve
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: int expand_logbuf_or_invalidate(const char *prefix, size_t prefix_len,
      size_t capacity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/deps/picotls/lib/picotls.c:7020,1
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7023,1
    - Dst: va_start
      Src: /src/h2o/deps/picotls/lib/picotls.c:7027,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7028,1
    - Dst: va_end
      Src: /src/h2o/deps/picotls/lib/picotls.c:7029,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - prefix
    - prefix_len
    - capacity
    - fmt
    argTypes:
    - char*
    - size_t
    - size_t
    - char*
    assertStmts:
    - condition: (l < logbuf.buf.capacity - logbuf.buf.off && "insufficent capacity")
      pos:
        line_end: 7030
        line_start: 7030
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 7033
      start: 7020
    functionDepth: 3
    functionLinenumber: 7020
    functionLinenumberEnd: 7033
    functionName: pushf_logbuf_or_invalidate
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 1
    functionsReached:
    - va_start
    - vsnprintf
    - format
    - expand_logbuf_or_invalidate
    - va_end
    - assert
    linkageType: ''
    returnType: void
    signature: "void pushf_logbuf_or_invalidate(const char *prefix, size_t prefix_len,
      size_t capacity,\n                                                                             const
      char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7037,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - prefix
    - prefix_len
    - s
    - l
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7043
      start: 7035
    functionDepth: 3
    functionLinenumber: 7035
    functionLinenumberEnd: 7043
    functionName: ptls_log__do_push_element_safestr
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - expand_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_safestr(const char *prefix, size_t prefix_len,
      const char *s, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7047,1
    - Dst: ptls_jsonescape
      Src: /src/h2o/deps/picotls/lib/picotls.c:7049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - prefix
    - prefix_len
    - s
    - l
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7052
      start: 7045
    functionDepth: 3
    functionLinenumber: 7045
    functionLinenumberEnd: 7052
    functionName: ptls_log__do_push_element_unsafestr
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_jsonescape
    - expand_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_unsafestr(const char *prefix, size_t
      prefix_len, const char *s, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7056,1
    - Dst: ptls_hexdump
      Src: /src/h2o/deps/picotls/lib/picotls.c:7058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - prefix
    - prefix_len
    - s
    - l
    argTypes:
    - char*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7062
      start: 7054
    functionDepth: 3
    functionLinenumber: 7054
    functionLinenumberEnd: 7062
    functionName: ptls_log__do_push_element_hexdump
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - ptls_hexdump
    - expand_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_hexdump(const char *prefix, size_t prefix_len,
      const void *s, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - v
    argTypes:
    - char*
    - size_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7067
      start: 7064
    functionDepth: 4
    functionLinenumber: 7064
    functionLinenumberEnd: 7067
    functionName: ptls_log__do_push_element_signed32
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - pushf_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_signed32(const char *prefix, size_t
      prefix_len, int32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - v
    argTypes:
    - char*
    - size_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7072
      start: 7069
    functionDepth: 4
    functionLinenumber: 7069
    functionLinenumberEnd: 7072
    functionName: ptls_log__do_push_element_signed64
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - pushf_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_signed64(const char *prefix, size_t
      prefix_len, int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - v
    argTypes:
    - char*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7077
      start: 7074
    functionDepth: 4
    functionLinenumber: 7074
    functionLinenumberEnd: 7077
    functionName: ptls_log__do_push_element_unsigned32
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - pushf_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_unsigned32(const char *prefix, size_t
      prefix_len, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pushf_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - v
    argTypes:
    - char*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7082
      start: 7079
    functionDepth: 4
    functionLinenumber: 7079
    functionLinenumberEnd: 7082
    functionName: ptls_log__do_push_element_unsigned64
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - pushf_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_unsigned64(const char *prefix, size_t
      prefix_len, uint64_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7086,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7088,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - prefix
    - prefix_len
    - v
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7095
      start: 7084
    functionDepth: 3
    functionLinenumber: 7084
    functionLinenumberEnd: 7095
    functionName: ptls_log__do_push_element_bool
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - expand_logbuf_or_invalidate
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_push_element_bool(const char *prefix, size_t prefix_len,
      int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7099,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/picotls.c:7100,1
    - Dst: strchr
      Src: /src/h2o/deps/picotls/lib/picotls.c:7103,1
    - Dst: snprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7104,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7110,1
    - Dst: syscall
      Src: /src/h2o/deps/picotls/lib/picotls.c:7110,1
    - Dst: pthread_mach_thread_np
      Src: /src/h2o/deps/picotls/lib/picotls.c:7114,1
    - Dst: pthread_self
      Src: /src/h2o/deps/picotls/lib/picotls.c:7114,1
    - Dst: pthread_threadid_np
      Src: /src/h2o/deps/picotls/lib/picotls.c:7116,1
    - Dst: sprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7118,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7124,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7125,1
    - Dst: gettimeofday
      Src: /src/h2o/deps/picotls/lib/picotls.c:7131,1
    - Dst: snprintf
      Src: /src/h2o/deps/picotls/lib/picotls.c:7132,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - point
    - add_time
    argTypes:
    - struct st_ptls_log_point_t*
    - int
    assertStmts:
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7098
        line_start: 7098
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (written > 0 && written + logbuf.tid.len < logbuf.buf.capacity)
      pos:
        line_end: 7123
        line_start: 7123
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (written > 0 && written < logbuf.buf.capacity && "caller MUST provide
        smallbuf suffient to emit the prefix")
      pos:
        line_end: 7134
        line_start: 7134
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 7138
      start: 7097
    functionDepth: 2
    functionLinenumber: 7097
    functionLinenumberEnd: 7138
    functionName: ptls_log__do_write_start
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - pthread_threadid_np
    - snprintf
    - pthread_mach_thread_np
    - sprintf
    - pthread_self
    - memcpy
    - syscall
    - strchr
    - gettimeofday
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void ptls_log__do_write_start(struct st_ptls_log_point_t *point, int
      add_time)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: expand_logbuf_or_invalidate
      Src: /src/h2o/deps/picotls/lib/picotls.c:7143,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7148,1
    - Dst: ptls_log__recalc_point
      Src: /src/h2o/deps/picotls/lib/picotls.c:7152,1
    - Dst: ptls_log__recalc_conn
      Src: /src/h2o/deps/picotls/lib/picotls.c:7155,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7164,1
    - Dst: write
      Src: /src/h2o/deps/picotls/lib/picotls.c:7174,1
    - Dst: close_log_fd
      Src: /src/h2o/deps/picotls/lib/picotls.c:7183,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7187,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7190,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/picotls.c:7192,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/picotls.c:7193,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 4
    argNames:
    - point
    - conn
    - getsni
    - includes_appdata
    argTypes:
    - struct st_ptls_log_point_t*
    - struct st_ptls_log_conn_state_t*
    - ptls_log_getsni_t
    - int
    assertStmts:
    - condition: (logctx.conns[slot].points != NULL)
      pos:
        line_end: 7163
        line_start: 7163
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (!needs_appdata)
      pos:
        line_end: 7189
        line_start: 7189
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - condition: (logbuf.buf.base == NULL)
      pos:
        line_end: 7192
        line_start: 7192
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    constantsTouched: []
    func_position:
      end: 7195
      start: 7140
    functionDepth: 3
    functionLinenumber: 7140
    functionLinenumberEnd: 7195
    functionName: ptls_log__do_write_end
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached:
    - close_log_fd
    - ptls_log__recalc_conn
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - expand_logbuf_or_invalidate
    - write
    - ptls_log__recalc_point
    - assert
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: "int ptls_log__do_write_end(struct st_ptls_log_point_t *point, struct
      st_ptls_log_conn_state_t *conn, ptls_log_getsni_t getsni,\n                           int
      includes_appdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: random_bytes
      Src: /src/h2o/deps/picotls/lib/picotls.c:7203,1
    - Dst: ptls_build_v4_mapped_v6_address
      Src: /src/h2o/deps/picotls/lib/picotls.c:7213,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/picotls.c:7216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - state
    - conn_id
    - _peeraddr
    argTypes:
    - ptls_log_conn_state_t*
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7222
      start: 7199
    functionDepth: 2
    functionLinenumber: 7199
    functionLinenumberEnd: 7222
    functionName: ptls_log_init_conn_state
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ptls_build_v4_mapped_v6_address
    - random_bytes
    linkageType: ''
    returnType: void
    signature: void ptls_log_init_conn_state(ptls_log_conn_state_t *state, void (*random_bytes)(void
      *, size_t), uint64_t conn_id, void *_peeraddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7231
      start: 7224
    functionDepth: 0
    functionLinenumber: 7224
    functionLinenumberEnd: 7231
    functionName: ptls_log_num_lost
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_log_num_lost(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7241,1
    - Dst: duplicate_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:7243,1
    - Dst: duplicate_stringlist
      Src: /src/h2o/deps/picotls/lib/picotls.c:7247,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:7253,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/picotls.c:7255,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/picotls.c:7260,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:7263,1
    - Dst: inet_pton
      Src: /src/h2o/deps/picotls/lib/picotls.c:7265,1
    - Dst: ptls_build_v4_mapped_v6_address
      Src: /src/h2o/deps/picotls/lib/picotls.c:7267,1
    - Dst: memcmp
      Src: /src/h2o/deps/picotls/lib/picotls.c:7269,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:7278,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/picotls.c:7281,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/picotls/lib/picotls.c:7298,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7300,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7301,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/picotls.c:7302,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 6
    argNames:
    - fd
    - sample_ratio
    - _points
    - _snis
    - _addresses
    - appdata
    argTypes:
    - int
    - float
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7309
      start: 7233
    functionDepth: 2
    functionLinenumber: 7233
    functionLinenumberEnd: 7309
    functionName: ptls_log_add_fd
    functionSourceFile: /src/h2o/deps/picotls/lib/picotls.c
    functionUses: 2
    functionsReached:
    - PTLS_ELEMENTSOF
    - malloc
    - memcmp
    - ptls_build_v4_mapped_v6_address
    - free
    - pthread_mutex_lock
    - inet_pton
    - pthread_mutex_unlock
    - duplicate_stringlist
    - strlen
    linkageType: ''
    returnType: int
    signature: int ptls_log_add_fd(int fd, float sample_ratio, const char *_points,
      const char *_snis, const char *_addresses, int appdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: chacha20poly1305_write_u64
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_write_u64(uint8_t *buf, uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct chacha20poly1305_context_t*::poly1305_update
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - n
    argTypes:
    - struct chacha20poly1305_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: chacha20poly1305_encrypt_pad
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - struct chacha20poly1305_context_t*::poly1305_update
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_encrypt_pad(struct chacha20poly1305_context_t
      *ctx, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20poly1305_encrypt_pad
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:62,1
    - Dst: chacha20poly1305_write_u64
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:64,1
    - Dst: chacha20poly1305_write_u64
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:65,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_update
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:66,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_finish
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - tag
    argTypes:
    - struct chacha20poly1305_context_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: chacha20poly1305_finalize
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - chacha20poly1305_write_u64
    - struct chacha20poly1305_context_t*::poly1305_update
    - struct chacha20poly1305_context_t*::poly1305_finish
    - chacha20poly1305_encrypt_pad
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_finalize(struct chacha20poly1305_context_t *ctx,
      uint8_t *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: chacha20poly1305_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - ptls_cipher_free
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:83,1
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:84,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:85,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:88,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:89,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_init
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:90,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:92,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_update
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:96,1
    - Dst: chacha20poly1305_encrypt_pad
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: chacha20poly1305_init
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - chacha20poly1305_encrypt_pad
    - ptls_cipher_encrypt
    - ptls_cipher_init
    - ptls_clear_memory
    - struct chacha20poly1305_context_t*::poly1305_init
    - struct chacha20poly1305_context_t*::poly1305_update
    - ptls_aead__build_iv
    - memset
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_init(ptls_aead_context_t *_ctx, uint64_t seq,
      const void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:108,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_update
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: chacha20poly1305_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - struct chacha20poly1305_context_t*::poly1305_update
    - ptls_cipher_encrypt
    linkageType: ''
    returnType: size_t
    signature: size_t chacha20poly1305_encrypt_update(ptls_aead_context_t *_ctx, void
      *output, const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20poly1305_finalize
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: chacha20poly1305_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - chacha20poly1305_finalize
    linkageType: ''
    returnType: size_t
    signature: size_t chacha20poly1305_encrypt_final(ptls_aead_context_t *_ctx, void
      *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chacha20poly1305_init
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:134,1
    - Dst: struct chacha20poly1305_context_t*::poly1305_update
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:136,1
    - Dst: chacha20poly1305_finalize
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:139,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:140,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:141,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 150
    functionName: chacha20poly1305_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 1
    functionsReached:
    - chacha20poly1305_finalize
    - ptls_cipher_encrypt
    - ptls_clear_memory
    - chacha20poly1305_init
    - struct chacha20poly1305_context_t*::poly1305_update
    - ptls_mem_equal
    linkageType: ''
    returnType: size_t
    signature: "size_t chacha20poly1305_decrypt(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                                       const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: chacha20poly1305_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: chacha20poly1305_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void chacha20poly1305_set_iv(ptls_aead_context_t *_ctx, const void
      *iv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:193,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/chacha20poly1305.h:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    - chacha
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - ptls_cipher_algorithm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 202
    functionName: chacha20poly1305_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_cipher_new
    linkageType: ''
    returnType: int
    signature: "int chacha20poly1305_setup_crypto(ptls_aead_context_t *_ctx, int is_enc,
      const void *key, const void *iv,\n                                         ptls_cipher_algorithm_t
      *chacha,\n                                         void (*poly1305_init)(struct
      chacha20poly1305_context_t *, const void *),\n                                         void
      (*poly1305_update)(struct chacha20poly1305_context_t *, const void *, size_t),\n
      \                                        void (*poly1305_finish)(struct chacha20poly1305_context_t
      *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ptls_bcrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_bcrypt_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ptlc_bcrypt_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptlc_bcrypt_dispose()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: ptls_bcrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ptls_bcrypt_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ptlc_bcrypt_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptlc_bcrypt_dispose()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ptls_bcrypt_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_random_bytes(void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:89,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: ptls_bcrypt_cipher_init_ctr
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_cipher_init_ctr(ptls_cipher_context_t *_ctx, const
      void *iv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BCryptDestroyKey
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:100,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:104,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: ptls_bcrypt_cipher_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    - BCryptDestroyKey
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_cipher_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:116,1
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:120,1
    - Dst: BCryptDecrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:122,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:125,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:125,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:127,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: ((len % ctx->super.algo->block_size) == 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: ptls_bcrypt_cipher_transform_ecb
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - BCryptEncrypt
    - BCRYPT_SUCCESS
    - memset
    - assert
    - BCryptDecrypt
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_cipher_transform_ecb(ptls_cipher_context_t *_ctx,
      void *output, const void *input, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:144,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:145,1
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:149,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:151,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:151,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->super.algo->block_size > 0)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (ctx->super.algo->block_size <= PTLS_MAX_IV_SIZE)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: ptls_bcrypt_cipher_transform_ctr
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - BCryptEncrypt
    - assert
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_cipher_transform_ctr(ptls_cipher_context_t *_ctx,
      void *output, const void *input, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:178,1
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:180,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:182,1
    - Dst: BCryptGetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:186,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:188,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:189,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:198,1
    - Dst: BCryptSetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:199,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:202,1
    - Dst: BCryptGenerateSymmetricKey
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:203,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:208,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:211,1
    - Dst: ptls_bcrypt_cipher_dispose
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key
    - bcrypt_name
    - is_ctr
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 227
    functionName: ptls_bcrypt_cipher_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - malloc
    - ptls_bcrypt_cipher_dispose
    - BCryptOpenAlgorithmProvider
    - BCryptSetProperty
    - BCryptGetProperty
    - BCryptGenerateSymmetricKey
    - BCryptCloseAlgorithmProvider
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: int
    signature: "int ptls_bcrypt_cipher_setup_crypto(ptls_cipher_context_t *_ctx, int
      is_enc, const void *key, wchar_t const *bcrypt_name,\n                                           int
      is_ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: ptls_bcrypt_cipher_setup_crypto_aes_ecb
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_bcrypt_cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int ptls_bcrypt_cipher_setup_crypto_aes_ecb(ptls_cipher_context_t *_ctx,
      int is_enc, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: ptls_bcrypt_cipher_setup_crypto_aes_ctr
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_bcrypt_cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int ptls_bcrypt_cipher_setup_crypto_aes_ctr(ptls_cipher_context_t *_ctx,
      int is_enc, const void *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BCryptDestroyKey
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:314,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:318,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - struct st_ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 322
    functionName: ptls_bcrypt_aead_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    - BCryptDestroyKey
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_aead_dispose_crypto(struct st_ptls_aead_context_t
      *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:329,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:331,1
    - Dst: BCRYPT_INIT_AUTH_MODE_INFO
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:332,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:334,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:335,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:336,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:338,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:339,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->super.algo->tag_size <= sizeof(ctx->bctx.tag))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (ctx->super.algo->iv_size <= sizeof(ctx->bctx.ivbuf))
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (ctx->bctx.maxTagLength <= sizeof(ctx->bctx.auth_tag))
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 354
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 354
    functionName: ptls_bcrypt_aead_do_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - BCRYPT_INIT_AUTH_MODE_INFO
    - ptls_aead__build_iv
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_aead_do_encrypt_init(struct st_ptls_aead_context_t
      *_ctx, uint64_t seq, const void *aad, size_t aadlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:369,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:373,1
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:376,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:380,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:380,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:381,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:382,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:393,1
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:397,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:399,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:399,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:401,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 406
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 406
    functionName: ptls_bcrypt_aead_do_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - BCryptEncrypt
    - assert
    - memcpy
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_bcrypt_aead_do_encrypt_update(struct st_ptls_aead_context_t
      *_ctx, void *output, const void *input, size_t inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BCryptEncrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:417,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:419,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:419,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:421,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:423,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - _ctx
    - output
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    assertStmts:
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (cbResult + ctx->bctx.aead_params.cbTag <= outlenMax)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 428
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 428
    functionName: ptls_bcrypt_aead_do_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BCryptEncrypt
    - assert
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_bcrypt_aead_do_encrypt_final(struct st_ptls_aead_context_t
      *_ctx, void *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead_context_t*::do_encrypt_init
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:435,1
    - Dst: ptls_aead_context_t*::do_encrypt_update
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:436,1
    - Dst: ptls_aead_context_t*::do_encrypt_final
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:437,1
    - Dst: ptls_cipher_init
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:440,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:441,1
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    - supp
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    - ptls_aead_supplementary_encryption_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: ptls_bcrypt_do_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_aead_context_t*::do_encrypt_init
    - ptls_cipher_encrypt
    - ptls_cipher_init
    - ptls_aead_context_t*::do_encrypt_update
    - ptls_aead_context_t*::do_encrypt_final
    - memset
    linkageType: ''
    returnType: void
    signature: "void ptls_bcrypt_do_encrypt(ptls_aead_context_t *ctx, void *output,
      const void *input, size_t inlen, uint64_t seq, const void *aad,\n                            size_t
      aadlen, ptls_aead_supplementary_encryption_t *supp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:460,1
    - Dst: BCRYPT_INIT_AUTH_MODE_INFO
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:463,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:465,1
    - Dst: BCryptDecrypt
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:474,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 482
    functionName: ptls_bcrypt_aead_do_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - BCRYPT_INIT_AUTH_MODE_INFO
    - ptls_aead__build_iv
    - memset
    - BCRYPT_SUCCESS
    - BCryptDecrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t ptls_bcrypt_aead_do_decrypt(struct st_ptls_aead_context_t *_ctx,
      void *output, const void *input, size_t inlen,\n                                          uint64_t
      seq, const void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: ptls_bcrypt_aead_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_aead_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: ptls_bcrypt_aead_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_aead_set_iv(ptls_aead_context_t *_ctx, const void
      *iv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:505,1
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:507,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:509,1
    - Dst: BCryptSetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:510,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:513,1
    - Dst: BCryptGetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:517,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:519,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:520,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:529,1
    - Dst: BCryptGetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:533,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:534,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:539,1
    - Dst: BCryptGenerateSymmetricKey
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:540,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:545,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:548,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:549,1
    - Dst: ptls_bcrypt_aead_dispose_crypto
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 7
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    - bcrypt_name
    - bcrypt_mode
    - bcrypt_mode_size
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 574
    functionName: ptls_bcrypt_aead_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - malloc
    - BCryptOpenAlgorithmProvider
    - BCryptSetProperty
    - memcpy
    - BCryptGetProperty
    - BCryptGenerateSymmetricKey
    - BCryptCloseAlgorithmProvider
    - ptls_bcrypt_aead_dispose_crypto
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: int
    signature: "int ptls_bcrypt_aead_setup_crypto(ptls_aead_context_t *_ctx, int is_enc,
      const void *key, const void *iv,\n                                         wchar_t
      const *bcrypt_name, wchar_t const *bcrypt_mode, size_t bcrypt_mode_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_aead_setup_crypto
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: ptls_bcrypt_aead_setup_crypto_aesgcm
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_bcrypt_aead_setup_crypto
    linkageType: ''
    returnType: int
    signature: int ptls_bcrypt_aead_setup_crypto_aesgcm(ptls_aead_context_t *_ctx,
      int is_enc, const void *key, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BCryptHashData
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:601,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:602,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:602,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - _ctx
    - src
    - len
    argTypes:
    - struct st_ptls_hash_context_t*
    - void*
    - size_t
    assertStmts:
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: ptls_bcrypt_hash_update
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - assert
    - BCRYPT_SUCCESS
    - BCryptHashData
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_hash_update(struct st_ptls_hash_context_t *_ctx, const
      void *src, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:612,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:613,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_ptls_bcrypt_hash_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: ptls_bcrypt_hash_context_free
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - free
    - ptls_clear_memory
    linkageType: ''
    returnType: struct st_ptls_bcrypt_hash_context_t
    signature: struct st_ptls_bcrypt_hash_context_t *ptls_bcrypt_hash_context_free(struct
      st_ptls_bcrypt_hash_context_t *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_hash_clone
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:626,1
    - Dst: ptls_bcrypt_hash_final
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:629,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:631,1
    - Dst: BCryptFinishHash
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:638,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:639,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:639,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:640,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:641,1
    - Dst: BCryptDestroyHash
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:645,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:646,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:646,1
    - Dst: ptls_bcrypt_hash_context_free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:650,1
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:654,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:655,1
    - Dst: BCryptCreateHash
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:657,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:658,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:660,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:660,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:661,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - _ctx
    - md
    - mode
    argTypes:
    - struct st_ptls_hash_context_t*
    - void*
    - ptls_hash_final_mode_t
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (clone_ctx != NULL)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - condition: (BCRYPT_SUCCESS(ret))
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    constantsTouched: []
    func_position:
      end: 671
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 671
    functionName: ptls_bcrypt_hash_final
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 1
    functionsReached:
    - assert
    - ptls_bcrypt_hash_clone
    - BCryptCreateHash
    - BCryptFinishHash
    - BCryptDestroyHash
    - ptls_bcrypt_hash_context_free
    - BCryptOpenAlgorithmProvider
    - ptls_bcrypt_hash_final
    - BCryptCloseAlgorithmProvider
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: void
    signature: void ptls_bcrypt_hash_final(struct st_ptls_hash_context_t *_ctx, void
      *md, ptls_hash_final_mode_t mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:678,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:681,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:683,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:693,1
    - Dst: BCryptDuplicateHash
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:694,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:698,1
    - Dst: ptls_bcrypt_hash_context_free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - struct st_ptls_hash_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 704
    functionName: ptls_bcrypt_hash_clone
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 1
    functionsReached:
    - malloc
    - ptls_bcrypt_hash_context_free
    - ptls_clear_memory
    - BCryptDuplicateHash
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: ptls_hash_context_t
    signature: ptls_hash_context_t *ptls_bcrypt_hash_clone(struct st_ptls_hash_context_t
      *_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:712,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:714,1
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:718,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:720,1
    - Dst: BCryptGetProperty
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:724,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:726,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:727,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:736,1
    - Dst: BCryptCreateHash
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:737,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:740,1
    - Dst: ptls_bcrypt_hash_context_free
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:741,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - bcrypt_name
    - hash_size
    argTypes:
    - wchar_t*
    - ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 750
    functionName: ptls_bcrypt_hash_create
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - malloc
    - BCryptCreateHash
    - ptls_bcrypt_hash_context_free
    - BCryptOpenAlgorithmProvider
    - BCryptGetProperty
    - BCryptCloseAlgorithmProvider
    - memset
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: ptls_hash_context_t
    signature: ptls_hash_context_t *ptls_bcrypt_hash_create(wchar_t const *bcrypt_name,
      ULONG hash_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_hash_create
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: ptls_bcrypt_sha256_create
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_bcrypt_hash_create
    linkageType: ''
    returnType: ptls_hash_context_t
    signature: ptls_hash_context_t *ptls_bcrypt_sha256_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_bcrypt_hash_create
      Src: /src/h2o/deps/picotls/lib/ptlsbcrypt.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: ptls_bcrypt_sha384_create
    functionSourceFile: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    functionUses: 0
    functionsReached:
    - ptls_bcrypt_hash_create
    linkageType: ''
    returnType: ptls_hash_context_t
    signature: ptls_hash_context_t *ptls_bcrypt_sha384_create(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/uecc.c:60,1
    - Dst: uECC_shared_secret
      Src: /src/h2o/deps/picotls/lib/uecc.c:64,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/lib/uecc.c:64,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/uecc.c:68,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/uecc.c:73,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/uecc.c:75,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/uecc.c:76,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: secp256r1_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/uecc.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - free
    - uECC_shared_secret
    - ptls_clear_memory
    - uECC_secp256r1
    linkageType: ''
    returnType: int
    signature: int secp256r1_on_exchange(ptls_key_exchange_context_t **_ctx, int release,
      ptls_iovec_t *secret, ptls_iovec_t peerkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/uecc.c:86,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/uecc.c:88,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/uecc.c:92,1
    - Dst: uECC_get_rng
      Src: /src/h2o/deps/picotls/lib/uecc.c:92,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/lib/uecc.c:93,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/lib/uecc.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - algo
    - _ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts:
    - condition: (uECC_get_rng() != NULL)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/picotls/lib/uecc.c
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 9
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: secp256r1_create_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/uecc.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - uECC_secp256r1
    - uECC_get_rng
    - uECC_make_key
    - assert
    linkageType: ''
    returnType: int
    signature: int secp256r1_create_key_exchange(ptls_key_exchange_algorithm_t *algo,
      ptls_key_exchange_context_t **_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/uecc.c:109,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/uecc.c:113,1
    - Dst: uECC_make_key
      Src: /src/h2o/deps/picotls/lib/uecc.c:119,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/lib/uecc.c:119,1
    - Dst: uECC_shared_secret
      Src: /src/h2o/deps/picotls/lib/uecc.c:120,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/lib/uecc.c:120,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/uecc.c:124,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/uecc.c:125,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/uecc.c:129,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/uecc.c:131,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/uecc.c:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 99
    functionDepth: 9
    functionLinenumber: 99
    functionLinenumberEnd: 135
    functionName: secp256r1_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/uecc.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - free
    - uECC_make_key
    - uECC_shared_secret
    - ptls_clear_memory
    - uECC_secp256r1
    linkageType: ''
    returnType: int
    signature: "int secp256r1_key_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *pubkey, ptls_iovec_t *secret,\n                                  ptls_iovec_t
      peerkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_sha256_init
      Src: /src/h2o/deps/picotls/lib/uecc.c:154,1
    - Dst: cf_sha256_update
      Src: /src/h2o/deps/picotls/lib/uecc.c:155,1
    - Dst: cf_sha256_digest_final
      Src: /src/h2o/deps/picotls/lib/uecc.c:156,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/uecc.c:157,1
    - Dst: uECC_sign
      Src: /src/h2o/deps/picotls/lib/uecc.c:161,1
    - Dst: uECC_secp256r1
      Src: /src/h2o/deps/picotls/lib/uecc.c:161,1
    - Dst: ptls_buffer_push_asn1_sequence
      Src: /src/h2o/deps/picotls/lib/uecc.c:164,1
    - Dst: ptls_buffer_push_asn1_ubigint
      Src: /src/h2o/deps/picotls/lib/uecc.c:165,1
    - Dst: ptls_buffer_push_asn1_ubigint
      Src: /src/h2o/deps/picotls/lib/uecc.c:167,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/uecc.c:175,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/uecc.c:176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 8
    argNames:
    - _self
    - tls
    - async
    - selected_algorithm
    - outbuf
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 178
    functionName: secp256r1sha256_sign
    functionSourceFile: /src/h2o/deps/picotls/lib/uecc.c
    functionUses: 1
    functionsReached:
    - ptls_buffer_push_asn1_sequence
    - uECC_sign
    - cf_sha256_digest_final
    - ptls_clear_memory
    - ptls_buffer_push_asn1_ubigint
    - cf_sha256_update
    - uECC_secp256r1
    - cf_sha256_init
    linkageType: ''
    returnType: int
    signature: "int secp256r1sha256_sign(ptls_sign_certificate_t *_self, ptls_t *tls,
      ptls_async_job_t **async, uint16_t *selected_algorithm,\n                                ptls_buffer_t
      *outbuf, ptls_iovec_t input, const uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/uecc.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - ptls_minicrypto_secp256r1sha256_sign_certificate_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: ptls_minicrypto_init_secp256r1sha256_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/uecc.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ptls_minicrypto_init_secp256r1sha256_sign_certificate(ptls_minicrypto_secp256r1sha256_sign_certificate_t
      *self,\n                                                          ptls_iovec_t
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_up_ref(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: X509_STORE_up_ref
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_up_ref(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: X509_STORE_get0_param
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_get0_param(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:88,1
    - Dst: HMAC_CTX_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: HMAC_CTX_new
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - HMAC_CTX_init
    linkageType: ''
    returnType: HMAC_CTX
    signature: HMAC_CTX *HMAC_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_cleanup
      Src: /src/h2o/deps/picotls/lib/openssl.c:96,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: HMAC_CTX_free
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_cleanup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void HMAC_CTX_free(HMAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cleanup
      Src: /src/h2o/deps/picotls/lib/openssl.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: EVP_CIPHER_CTX_reset
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cleanup
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:148,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/h2o/deps/picotls/lib/openssl.c:153,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:154,1
    - Dst: EC_KEY_get0_group
      Src: /src/h2o/deps/picotls/lib/openssl.c:154,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:171,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: ptls_openssl_lookup_signature_schemes
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EC_KEY_free
    - EC_KEY_get0_group
    - EVP_PKEY_id
    - EVP_PKEY_get1_EC_KEY
    - EC_GROUP_get_curve_name
    linkageType: ''
    returnType: ptls_openssl_signature_scheme_t
    signature: ptls_openssl_signature_scheme_t *ptls_openssl_lookup_signature_schemes(EVP_PKEY
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - available
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_openssl_signature_scheme_t*
    - uint16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: ptls_openssl_select_signature_scheme
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ptls_openssl_signature_scheme_t
    signature: "ptls_openssl_signature_scheme_t *ptls_openssl_select_signature_scheme(const
      ptls_openssl_signature_scheme_t *available,\n                                                                            const
      uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/h2o/deps/picotls/lib/openssl.c:201,1
    - Dst: fprintf
      Src: /src/h2o/deps/picotls/lib/openssl.c:203,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/openssl.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: ptls_openssl_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 3
    functionsReached:
    - abort
    - RAND_bytes
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ptls_openssl_random_bytes(void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:212,1
    - Dst: EC_KEY_set_group
      Src: /src/h2o/deps/picotls/lib/openssl.c:214,1
    - Dst: EC_KEY_generate_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:214,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: ecdh_generate_key
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_KEY_free
    - EC_KEY_set_group
    - EC_KEY_generate_key
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *ecdh_generate_key(EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_degree
      Src: /src/h2o/deps/picotls/lib/openssl.c:227,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:228,1
    - Dst: ECDH_compute_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:232,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - out
    - group
    - privkey
    - peer_point
    argTypes:
    - ptls_iovec_t*
    - EC_GROUP*
    - EC_KEY*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 246
    functionName: ecdh_calc_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_degree
    - ECDH_compute_key
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int ecdh_calc_secret(ptls_iovec_t *out, const EC_GROUP *group, EC_KEY
      *privkey, EC_POINT *peer_point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:252,1
    - Dst: EC_POINT_oct2point
      Src: /src/h2o/deps/picotls/lib/openssl.c:254,1
    - Dst: EC_POINT_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - group
    - vec
    - bn_ctx
    argTypes:
    - EC_GROUP*
    - ptls_iovec_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: x9_62_decode_point
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_new
    - EC_POINT_free
    - EC_POINT_oct2point
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *x9_62_decode_point(const EC_GROUP *group, ptls_iovec_t vec,
      BN_CTX *bn_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2oct
      Src: /src/h2o/deps/picotls/lib/openssl.c:266,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:268,1
    - Dst: EC_POINT_point2oct
      Src: /src/h2o/deps/picotls/lib/openssl.c:270,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - bn_ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 276
    functionName: x9_62_encode_point
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - EC_POINT_point2oct
    linkageType: ''
    returnType: ptls_iovec_t
    signature: ptls_iovec_t x9_62_encode_point(const EC_GROUP *group, const EC_POINT
      *point, BN_CTX *bn_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:286,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:288,1
    - Dst: BN_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:290,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_x9_62_keyex_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: x9_62_free_context
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - free
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void x9_62_free_context(struct st_x9_62_keyex_context_t *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/h2o/deps/picotls/lib/openssl.c:297,1
    - Dst: x9_62_decode_point
      Src: /src/h2o/deps/picotls/lib/openssl.c:306,1
    - Dst: ecdh_calc_secret
      Src: /src/h2o/deps/picotls/lib/openssl.c:310,1
    - Dst: EC_POINT_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:315,1
    - Dst: x9_62_free_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:317,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 321
    functionName: x9_62_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - x9_62_free_context
    - ecdh_calc_secret
    - EC_KEY_get0_group
    - x9_62_decode_point
    linkageType: ''
    returnType: int
    signature: int x9_62_on_exchange(ptls_key_exchange_context_t **_ctx, int release,
      ptls_iovec_t *secret, ptls_iovec_t peerkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:327,1
    - Dst: BN_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:333,1
    - Dst: x9_62_free_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - algo
    - ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - struct st_x9_62_keyex_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 345
    functionName: x9_62_create_context
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    - malloc
    - x9_62_free_context
    linkageType: ''
    returnType: int
    signature: int x9_62_create_context(ptls_key_exchange_algorithm_t *algo, struct
      st_x9_62_keyex_context_t **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/h2o/deps/picotls/lib/openssl.c:349,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:350,1
    - Dst: x9_62_encode_point
      Src: /src/h2o/deps/picotls/lib/openssl.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_x9_62_keyex_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: x9_62_setup_pubkey
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    - x9_62_encode_point
    - EC_KEY_get0_public_key
    linkageType: ''
    returnType: int
    signature: int x9_62_setup_pubkey(struct st_x9_62_keyex_context_t *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:363,1
    - Dst: x9_62_create_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:367,1
    - Dst: ecdh_generate_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:369,1
    - Dst: x9_62_setup_pubkey
      Src: /src/h2o/deps/picotls/lib/openssl.c:373,1
    - Dst: EC_GROUP_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:379,1
    - Dst: x9_62_free_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:384,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - algo
    - _ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 389
    functionName: x9_62_create_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - x9_62_create_context
    - x9_62_free_context
    - EC_GROUP_free
    - EC_GROUP_new_by_curve_name
    - x9_62_setup_pubkey
    - ecdh_generate_key
    linkageType: ''
    returnType: int
    signature: int x9_62_create_key_exchange(ptls_key_exchange_algorithm_t *algo,
      ptls_key_exchange_context_t **_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x9_62_create_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:396,1
    - Dst: x9_62_setup_pubkey
      Src: /src/h2o/deps/picotls/lib/openssl.c:399,1
    - Dst: x9_62_free_context
      Src: /src/h2o/deps/picotls/lib/openssl.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - algo
    - _ctx
    - eckey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 412
    functionName: x9_62_init_key
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - x9_62_setup_pubkey
    - x9_62_create_context
    - x9_62_free_context
    linkageType: ''
    returnType: int
    signature: int x9_62_init_key(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **_ctx, EC_KEY *eckey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: x9_62_decode_point
      Src: /src/h2o/deps/picotls/lib/openssl.c:424,1
    - Dst: ecdh_generate_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:430,1
    - Dst: x9_62_encode_point
      Src: /src/h2o/deps/picotls/lib/openssl.c:436,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:436,1
    - Dst: EC_GROUP_get_degree
      Src: /src/h2o/deps/picotls/lib/openssl.c:442,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:443,1
    - Dst: ECDH_compute_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:449,1
    - Dst: EC_POINT_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:458,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:460,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:462,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:464,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - group
    - pubkey
    - secret
    - peerkey
    - bn_ctx
    argTypes:
    - EC_GROUP*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 468
    functionName: x9_62_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - x9_62_encode_point
    - malloc
    - ECDH_compute_key
    - EC_POINT_free
    - EC_KEY_get0_public_key
    - EC_GROUP_get_degree
    - EC_KEY_free
    - free
    - x9_62_decode_point
    - ecdh_generate_key
    linkageType: ''
    returnType: int
    signature: int x9_62_key_exchange(EC_GROUP *group, ptls_iovec_t *pubkey, ptls_iovec_t
      *secret, ptls_iovec_t peerkey, BN_CTX *bn_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:476,1
    - Dst: BN_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:480,1
    - Dst: x9_62_key_exchange
      Src: /src/h2o/deps/picotls/lib/openssl.c:485,1
    - Dst: BN_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:489,1
    - Dst: EC_GROUP_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: secp_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - x9_62_key_exchange
    - EC_GROUP_free
    - BN_CTX_new
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int secp_key_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *pubkey, ptls_iovec_t *secret, ptls_iovec_t peerkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:505,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:507,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_evp_keyex_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: evp_keyex_free
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void evp_keyex_free(struct st_evp_keyex_context_t *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:523,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:534,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:542,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:546,1
    - Dst: X25519
      Src: /src/h2o/deps/picotls/lib/openssl.c:547,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:548,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/openssl.c:551,1
    - Dst: EVP_PKEY_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:562,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/h2o/deps/picotls/lib/openssl.c:566,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/h2o/deps/picotls/lib/openssl.c:570,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:574,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:578,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/h2o/deps/picotls/lib/openssl.c:582,1
    - Dst: EVP_PKEY_derive
      Src: /src/h2o/deps/picotls/lib/openssl.c:586,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:590,1
    - Dst: EVP_PKEY_derive
      Src: /src/h2o/deps/picotls/lib/openssl.c:594,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:602,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:604,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:606,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:607,1
    - Dst: evp_keyex_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:610,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 97
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (sk_raw_len == sizeof(sk_raw))
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 614
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 614
    functionName: evp_keyex_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - EVP_PKEY_set1_tls_encodedpoint
    - malloc
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_free
    - EVP_PKEY_derive_set_peer
    - X25519
    - free
    - evp_keyex_free
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new
    - ptls_clear_memory
    - EVP_PKEY_derive_init
    - EVP_PKEY_new
    - ptls_mem_equal
    - EVP_PKEY_get_raw_private_key
    - assert
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int evp_keyex_on_exchange(ptls_key_exchange_context_t **_ctx, int release,
      ptls_iovec_t *secret, ptls_iovec_t peerkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:625,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/h2o/deps/picotls/lib/openssl.c:632,1
    - Dst: evp_keyex_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - algo
    - _ctx
    - pkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 646
    functionName: evp_keyex_init
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - malloc
    - EVP_PKEY_get1_tls_encodedpoint
    - evp_keyex_free
    linkageType: ''
    returnType: int
    signature: int evp_keyex_init(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **_ctx, EVP_PKEY *pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:655,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:659,1
    - Dst: EVP_PKEY_keygen
      Src: /src/h2o/deps/picotls/lib/openssl.c:663,1
    - Dst: evp_keyex_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:669,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:676,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:678,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - algo
    - ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 680
    functionName: evp_keyex_create
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - evp_keyex_init
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_id
    linkageType: ''
    returnType: int
    signature: int evp_keyex_create(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:688,1
    - Dst: evp_keyex_create
      Src: /src/h2o/deps/picotls/lib/openssl.c:690,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:692,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:696,1
    - Dst: evp_keyex_on_exchange
      Src: /src/h2o/deps/picotls/lib/openssl.c:698,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:699,1
    - Dst: evp_keyex_on_exchange
      Src: /src/h2o/deps/picotls/lib/openssl.c:703,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:703,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:705,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - algo
    - outpubkey
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (ctx == NULL)
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 709
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 709
    functionName: evp_keyex_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - evp_keyex_on_exchange
    - malloc
    - free
    - memcpy
    - evp_keyex_create
    - assert
    linkageType: ''
    returnType: int
    signature: "int evp_keyex_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *outpubkey, ptls_iovec_t *secret,\n                              ptls_iovec_t
      peerkey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:735,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:745,1
    - Dst: MLKEM768_decap
      Src: /src/h2o/deps/picotls/lib/openssl.c:751,1
    - Dst: X25519
      Src: /src/h2o/deps/picotls/lib/openssl.c:752,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:760,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:761,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:764,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:765,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - ciphertext
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 769
    functionName: x25519mlkem768_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - X25519
    - free
    - MLKEM768_decap
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: "int x25519mlkem768_on_exchange(ptls_key_exchange_context_t **_ctx,
      int release, ptls_iovec_t *secret,\n                                      ptls_iovec_t
      ciphertext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:775,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:778,1
    - Dst: MLKEM768_generate_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:779,1
    - Dst: X25519_keypair
      Src: /src/h2o/deps/picotls/lib/openssl.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - algo
    - _ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 784
    functionName: x25519mlkem768_create
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - X25519_keypair
    - malloc
    - MLKEM768_generate_key
    linkageType: ''
    returnType: int
    signature: int x25519mlkem768_create(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:796,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:797,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:807,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:812,1
    - Dst: CBS_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:818,1
    - Dst: X25519_keypair
      Src: /src/h2o/deps/picotls/lib/openssl.c:819,1
    - Dst: MLKEM768_parse_public_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:820,1
    - Dst: X25519
      Src: /src/h2o/deps/picotls/lib/openssl.c:821,1
    - Dst: MLKEM768_encap
      Src: /src/h2o/deps/picotls/lib/openssl.c:825,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:831,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:832,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:833,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:834,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:836,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - algo
    - ciphertext
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 838
    functionName: x25519mlkem768_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - MLKEM768_encap
    - CBS_init
    - X25519
    - free
    - ptls_clear_memory
    - X25519_keypair
    - MLKEM768_parse_public_key
    linkageType: ''
    returnType: int
    signature: "int x25519mlkem768_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *ciphertext, ptls_iovec_t *secret,\n                                   ptls_iovec_t
      peerkey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:855,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/h2o/deps/picotls/lib/openssl.c:857,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:861,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/h2o/deps/picotls/lib/openssl.c:865,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:869,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/h2o/deps/picotls/lib/openssl.c:873,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:881,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:883,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:884,1
    - Dst: evp_keyex_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:887,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - ciphertext
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 891
    functionName: evp_kem_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - EVP_PKEY_decapsulate_init
    - free
    - evp_keyex_free
    - EVP_PKEY_decapsulate
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int evp_kem_on_exchange(ptls_key_exchange_context_t **_ctx, int release,
      ptls_iovec_t *secret, ptls_iovec_t ciphertext)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:900,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:907,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:911,1
    - Dst: EVP_PKEY_generate
      Src: /src/h2o/deps/picotls/lib/openssl.c:915,1
    - Dst: EVP_PKEY_get1_encoded_public_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:921,1
    - Dst: evp_keyex_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:932,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:934,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - algo
    - _ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 936
    functionName: evp_kem_create
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - malloc
    - evp_keyex_free
    - EVP_PKEY_get1_encoded_public_key
    - EVP_PKEY_generate
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int evp_kem_create(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **_ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:945,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:946,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:948,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:952,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/h2o/deps/picotls/lib/openssl.c:956,1
    - Dst: EVP_PKEY_set1_encoded_public_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:960,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/h2o/deps/picotls/lib/openssl.c:965,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:970,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/h2o/deps/picotls/lib/openssl.c:974,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:978,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:982,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/h2o/deps/picotls/lib/openssl.c:986,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:994,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:996,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:998,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:999,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1000,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:1001,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 4
    argNames:
    - algo
    - ciphertext
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1004
    functionName: evp_kem_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - EVP_PKEY_set1_encoded_public_key
    - EVP_PKEY_CTX_new_from_name
    - malloc
    - EVP_PKEY_free
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_encapsulate
    - free
    - EVP_PKEY_paramgen
    - EVP_PKEY_encapsulate_init
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int evp_kem_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *ciphertext, ptls_iovec_t *secret,\n                            ptls_iovec_t
      peerkey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:1012,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/h2o/deps/picotls/lib/openssl.c:1016,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/h2o/deps/picotls/lib/openssl.c:1020,1
    - Dst: EC_KEY_get0_group
      Src: /src/h2o/deps/picotls/lib/openssl.c:1020,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1035,1
    - Dst: x9_62_init_key
      Src: /src/h2o/deps/picotls/lib/openssl.c:1040,1
    - Dst: EC_KEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1041,1
    - Dst: evp_keyex_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:1050,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/picotls/lib/openssl.c:1052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - ptls_key_exchange_context_t**
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1059
    functionName: ptls_openssl_create_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 3
    functionsReached:
    - x9_62_init_key
    - EVP_PKEY_up_ref
    - EC_KEY_free
    - evp_keyex_init
    - EC_KEY_get0_group
    - EVP_PKEY_id
    - EVP_PKEY_get1_EC_KEY
    - EC_GROUP_get_curve_name
    linkageType: ''
    returnType: int
    signature: int ptls_openssl_create_key_exchange(ptls_key_exchange_context_t **ctx,
      EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_start_job
      Src: /src/h2o/deps/picotls/lib/openssl.c:1082,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1086,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1087,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_async_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1089
    functionName: async_sign_ctx_free
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    - free
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    linkageType: ''
    returnType: void
    signature: void async_sign_ctx_free(ptls_async_job_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/h2o/deps/picotls/lib/openssl.c:1097,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1098,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/h2o/deps/picotls/lib/openssl.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - ptls_async_job_t*
    assertStmts:
    - condition: (numfds == 1)
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1101
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1101
    functionName: async_sign_ctx_get_fd
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - assert
    - ASYNC_WAIT_CTX_get_all_fds
    linkageType: ''
    returnType: int
    signature: int async_sign_ctx_get_fd(ptls_async_job_t *_self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:1107,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:1113,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/openssl.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - scheme
    - ctx
    - siglen
    argTypes:
    - ptls_openssl_signature_scheme_t*
    - EVP_MD_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1119
    functionName: async_sign_ctx_new
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    - ASYNC_WAIT_CTX_new
    linkageType: ''
    returnType: ptls_async_job_t
    signature: ptls_async_job_t *async_sign_ctx_new(const ptls_openssl_signature_scheme_t
      *scheme, EVP_MD_CTX *ctx, size_t siglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestSignFinal
      Src: /src/h2o/deps/picotls/lib/openssl.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _async
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1125
    functionName: do_sign_async_job
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignFinal
    linkageType: ''
    returnType: int
    signature: int do_sign_async_job(void *_async)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_start_job
      Src: /src/h2o/deps/picotls/lib/openssl.c:1132,1
    - Dst: ptls_buffer_pushv
      Src: /src/h2o/deps/picotls/lib/openssl.c:1143,1
    - Dst: async_sign_ctx_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - outbuf
    - _async
    argTypes:
    - ptls_buffer_t*
    - ptls_async_job_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1155
    functionName: do_sign_async
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - async_sign_ctx_free
    - ptls_buffer_pushv
    - ASYNC_start_job
    linkageType: ''
    returnType: int
    signature: int do_sign_async(ptls_buffer_t *outbuf, ptls_async_job_t **_async)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_signature_scheme_t*::scheme_md
      Src: /src/h2o/deps/picotls/lib/openssl.c:1163,1
    - Dst: EVP_MD_CTX_create
      Src: /src/h2o/deps/picotls/lib/openssl.c:1168,1
    - Dst: EVP_DigestSignInit
      Src: /src/h2o/deps/picotls/lib/openssl.c:1173,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:1179,1
    - Dst: EVP_DigestSign
      Src: /src/h2o/deps/picotls/lib/openssl.c:1181,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:1185,1
    - Dst: EVP_DigestSign
      Src: /src/h2o/deps/picotls/lib/openssl.c:1187,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:1194,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/h2o/deps/picotls/lib/openssl.c:1195,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/h2o/deps/picotls/lib/openssl.c:1199,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/h2o/deps/picotls/lib/openssl.c:1203,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1208,1
    - Dst: EVP_DigestSignFinal
      Src: /src/h2o/deps/picotls/lib/openssl.c:1212,1
    - Dst: async_sign_ctx_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:1220,1
    - Dst: do_sign_async
      Src: /src/h2o/deps/picotls/lib/openssl.c:1224,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:1228,1
    - Dst: EVP_DigestSignFinal
      Src: /src/h2o/deps/picotls/lib/openssl.c:1230,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1241,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 5
    argNames:
    - key
    - scheme
    - outbuf
    - input
    - async
    argTypes:
    - EVP_PKEY*
    - ptls_openssl_signature_scheme_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - ptls_async_job_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1243
    functionName: do_sign
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - do_sign_async
    - EVP_MD_CTX_destroy
    - EVP_DigestSign
    - EVP_DigestSignInit
    - EVP_DigestSignFinal
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_DigestSignUpdate
    - ptls_openssl_signature_scheme_t*::scheme_md
    - ptls_buffer_reserve
    - EVP_PKEY_id
    - EVP_PKEY_CTX_set_rsa_padding
    - async_sign_ctx_new
    - EVP_MD_CTX_create
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    linkageType: ''
    returnType: int
    signature: "int do_sign(EVP_PKEY *key, const ptls_openssl_signature_scheme_t *scheme,
      ptls_buffer_t *outbuf, ptls_iovec_t input,\n                   ptls_async_job_t
      **async)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1254
    functionName: cipher_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void cipher_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1260,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1262
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1262
    functionName: cipher_do_init
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - assert
    linkageType: ''
    returnType: void
    signature: void cipher_do_init(ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:1273,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1277,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1280,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/h2o/deps/picotls/lib/openssl.c:1282,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - cipher
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1289
    functionName: cipher_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cipher_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc, const
      void *key, const EVP_CIPHER *cipher,\n                               void (*do_transform)(ptls_cipher_context_t
      *, void *, const void *, size_t))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1294,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1295,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - _len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (len == (int)_len)
      pos:
        line_end: 1295
        line_start: 1295
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (ret)
      pos:
        line_end: 1294
        line_start: 1294
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    functionName: cipher_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 18
    functionsReached:
    - EVP_EncryptUpdate
    - assert
    linkageType: ''
    returnType: void
    signature: void cipher_encrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1302,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1303,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - _len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1302
        line_start: 1302
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (len == (int)_len)
      pos:
        line_end: 1303
        line_start: 1303
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1305
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1305
    functionName: cipher_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - assert
    linkageType: ''
    returnType: void
    signature: void cipher_decrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1309,1
    - Dst: EVP_aes_128_ecb
      Src: /src/h2o/deps/picotls/lib/openssl.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1310
    functionName: aes128ecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_ecb
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes128ecb_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1314,1
    - Dst: EVP_aes_256_ecb
      Src: /src/h2o/deps/picotls/lib/openssl.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1315
    functionName: aes256ecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_ecb
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes256ecb_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1319,1
    - Dst: EVP_aes_128_ctr
      Src: /src/h2o/deps/picotls/lib/openssl.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1320
    functionName: aes128ctr_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_ctr
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes128ctr_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1324,1
    - Dst: EVP_aes_256_ctr
      Src: /src/h2o/deps/picotls/lib/openssl.c:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1325
    functionName: aes256ctr_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_ctr
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes256ctr_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:1345,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:1346,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/openssl.c:1347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1348
    functionName: boringssl_chacha20_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void boringssl_chacha20_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _ctx
    - _iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1358
    functionName: boringssl_chacha20_init
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void boringssl_chacha20_init(ptls_cipher_context_t *_ctx, const void
      *_iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - output
    - input
    - len
    argTypes:
    - struct boringssl_chacha20_context_t*
    - uint8_t**
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1370
    functionName: boringssl_chacha20_transform_buffered
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void boringssl_chacha20_transform_buffered(struct boringssl_chacha20_context_t
      *ctx, uint8_t **output,\n                                                         const
      uint8_t **input, size_t *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: boringssl_chacha20_transform_buffered
      Src: /src/h2o/deps/picotls/lib/openssl.c:1382,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1387,1
    - Dst: CRYPTO_chacha_20
      Src: /src/h2o/deps/picotls/lib/openssl.c:1391,1
    - Dst: memset
      Src: /src/h2o/deps/picotls/lib/openssl.c:1400,1
    - Dst: CRYPTO_chacha_20
      Src: /src/h2o/deps/picotls/lib/openssl.c:1401,1
    - Dst: boringssl_chacha20_transform_buffered
      Src: /src/h2o/deps/picotls/lib/openssl.c:1405,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - _ctx
    - _output
    - _input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ctx->keystream.len == 0)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (len == 0)
      pos:
        line_end: 1405
        line_start: 1405
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1407
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1407
    functionName: boringssl_chacha20_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - boringssl_chacha20_transform_buffered
    - memset
    - assert
    - CRYPTO_chacha_20
    linkageType: ''
    returnType: void
    signature: void boringssl_chacha20_transform(ptls_cipher_context_t *_ctx, void
      *_output, const void *_input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1419
    functionName: boringssl_chacha20_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int boringssl_chacha20_setup_crypto(ptls_cipher_context_t *_ctx, int
      is_enc, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1425,1
    - Dst: EVP_chacha20
      Src: /src/h2o/deps/picotls/lib/openssl.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: chacha20_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_chacha20
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int chacha20_setup_crypto(ptls_cipher_context_t *ctx, int is_enc, const
      void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1435,1
    - Dst: EVP_bf_ecb
      Src: /src/h2o/deps/picotls/lib/openssl.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1436
    functionName: bfecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_bf_ecb
    - cipher_setup_crypto
    linkageType: ''
    returnType: int
    signature: int bfecb_setup_crypto(ptls_cipher_context_t *ctx, int is_enc, const
      void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1449
    functionName: quiclb_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_free
    linkageType: ''
    returnType: void
    signature: void quiclb_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picotls_quiclb_transform
      Src: /src/h2o/deps/picotls/lib/openssl.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1455
    functionName: quiclb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - picotls_quiclb_transform
    linkageType: ''
    returnType: void
    signature: void quiclb_encrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picotls_quiclb_transform
      Src: /src/h2o/deps/picotls/lib/openssl.c:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1461
    functionName: quiclb_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - picotls_quiclb_transform
    linkageType: ''
    returnType: void
    signature: void quiclb_decrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1474
    functionName: quiclb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_cipher_new
    linkageType: ''
    returnType: int
    signature: int quiclb_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc, const
      void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1488
    functionName: aead_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void aead_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1495
    functionName: aead_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aead_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1502
    functionName: aead_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aead_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/openssl.c:1510,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1511,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1512,1
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1516,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (ret)
      pos:
        line_end: 1511
        line_start: 1511
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1519
    functionName: aead_do_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - EVP_EncryptInit_ex
    - EVP_EncryptUpdate
    - assert
    linkageType: ''
    returnType: void
    signature: void aead_do_encrypt_init(ptls_aead_context_t *_ctx, uint64_t seq,
      const void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1526,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1526
        line_start: 1526
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1530
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1530
    functionName: aead_do_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptUpdate
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t aead_do_encrypt_update(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1539,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1540,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/h2o/deps/picotls/lib/openssl.c:1542,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - _ctx
    - _output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (ret)
      pos:
        line_end: 1539
        line_start: 1539
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1547
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1547
    functionName: aead_do_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - assert
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: size_t
    signature: size_t aead_do_encrypt_final(ptls_aead_context_t *_ctx, void *_output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/openssl.c:1560,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1561,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1562,1
    - Dst: EVP_DecryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1564,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1565,1
    - Dst: EVP_DecryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1567,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1568,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/h2o/deps/picotls/lib/openssl.c:1570,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - _ctx
    - _output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1561
        line_start: 1561
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (ret)
      pos:
        line_end: 1564
        line_start: 1564
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (ret)
      pos:
        line_end: 1567
        line_start: 1567
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1577
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1577
    functionName: aead_do_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - EVP_DecryptInit_ex
    - EVP_DecryptFinal_ex
    - ptls_aead__build_iv
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t aead_do_decrypt(ptls_aead_context_t *_ctx, void *_output, const
      void *input, size_t inlen, uint64_t seq,\n                              const
      void *aad, size_t aadlen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:1604,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1609,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:1614,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/h2o/deps/picotls/lib/openssl.c:1619,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1624,1
    - Dst: aead_dispose_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1629,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    - cipher
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1631
    functionName: aead_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - memcpy
    - EVP_EncryptInit_ex
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    - aead_dispose_crypto
    linkageType: ''
    returnType: int
    signature: int aead_setup_crypto(ptls_aead_context_t *_ctx, int is_enc, const
      void *key, const void *iv, const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1635,1
    - Dst: EVP_aes_128_gcm
      Src: /src/h2o/deps/picotls/lib/openssl.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1636
    functionName: aead_aes128gcm_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - aead_setup_crypto
    - EVP_aes_128_gcm
    linkageType: ''
    returnType: int
    signature: int aead_aes128gcm_setup_crypto(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1640,1
    - Dst: EVP_aes_256_gcm
      Src: /src/h2o/deps/picotls/lib/openssl.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1641
    functionName: aead_aes256gcm_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_gcm
    - aead_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aead_aes256gcm_setup_crypto(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_poly1305_init
      Src: /src/h2o/deps/picotls/lib/openssl.c:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - key
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1655
    functionName: boringssl_poly1305_init
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_poly1305_init
    linkageType: ''
    returnType: void
    signature: void boringssl_poly1305_init(struct chacha20poly1305_context_t *_ctx,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_poly1305_update
      Src: /src/h2o/deps/picotls/lib/openssl.c:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _ctx
    - input
    - len
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1661
    functionName: boringssl_poly1305_update
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_poly1305_update
    linkageType: ''
    returnType: void
    signature: void boringssl_poly1305_update(struct chacha20poly1305_context_t *_ctx,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_poly1305_finish
      Src: /src/h2o/deps/picotls/lib/openssl.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - tag
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    functionName: boringssl_poly1305_finish
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_poly1305_finish
    linkageType: ''
    returnType: void
    signature: void boringssl_poly1305_finish(struct chacha20poly1305_context_t *_ctx,
      void *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20poly1305_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    functionName: boringssl_chacha20poly1305_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - chacha20poly1305_setup_crypto
    linkageType: ''
    returnType: int
    signature: int boringssl_chacha20poly1305_setup_crypto(ptls_aead_context_t *ctx,
      int is_enc, const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup_crypto
      Src: /src/h2o/deps/picotls/lib/openssl.c:1679,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/h2o/deps/picotls/lib/openssl.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1680
    functionName: aead_chacha20poly1305_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - aead_setup_crypto
    - EVP_chacha20_poly1305
    linkageType: ''
    returnType: int
    signature: int aead_chacha20poly1305_setup_crypto(ptls_aead_context_t *ctx, int
      is_enc, const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1686
    functionName: _sha256_final
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sha256_final(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1689
    functionName: _sha384_final
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sha384_final(ctx, md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1692
    functionName: _sha512_final
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sha512_final(ctx, md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_sign_async
      Src: /src/h2o/deps/picotls/lib/openssl.c:1705,1
    - Dst: ptls_openssl_select_signature_scheme
      Src: /src/h2o/deps/picotls/lib/openssl.c:1710,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1717,1
    - Dst: do_sign
      Src: /src/h2o/deps/picotls/lib/openssl.c:1721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 8
    argNames:
    - _self
    - tls
    - async
    - selected_algorithm
    - outbuf
    - input
    - algorithms
    - num_algorithms
    argTypes:
    - ptls_sign_certificate_t*
    - ptls_t*
    - ptls_async_job_t**
    - uint16_t*
    - ptls_buffer_t*
    - ptls_iovec_t
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (*async == NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1722
      start: 1694
    functionDepth: 3
    functionLinenumber: 1694
    functionLinenumberEnd: 1722
    functionName: sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 14
    functionsReached:
    - do_sign_async
    - assert
    - ptls_openssl_select_signature_scheme
    - do_sign
    linkageType: ''
    returnType: int
    signature: "int sign_certificate(ptls_sign_certificate_t *_self, ptls_t *tls,
      ptls_async_job_t **async, uint16_t *selected_algorithm,\n                            ptls_buffer_t
      *outbuf, ptls_iovec_t input, const uint16_t *algorithms, size_t num_algorithms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/h2o/deps/picotls/lib/openssl.c:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1724
    functionDepth: 0
    functionLinenumber: 1724
    functionLinenumberEnd: 1728
    functionName: to_x509
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - d2i_X509
    linkageType: ''
    returnType: X509
    signature: X509 *to_x509(ptls_iovec_t vec)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_lookup_signature_schemes
      Src: /src/h2o/deps/picotls/lib/openssl.c:1741,1
    - Dst: EVP_MD_CTX_create
      Src: /src/h2o/deps/picotls/lib/openssl.c:1752,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:1758,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/h2o/deps/picotls/lib/openssl.c:1760,1
    - Dst: EVP_DigestVerify
      Src: /src/h2o/deps/picotls/lib/openssl.c:1764,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/h2o/deps/picotls/lib/openssl.c:1771,1
    - Dst: ptls_openssl_signature_scheme_t*::scheme_md
      Src: /src/h2o/deps/picotls/lib/openssl.c:1771,1
    - Dst: EVP_PKEY_id
      Src: /src/h2o/deps/picotls/lib/openssl.c:1776,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/h2o/deps/picotls/lib/openssl.c:1777,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/h2o/deps/picotls/lib/openssl.c:1781,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/h2o/deps/picotls/lib/openssl.c:1785,1
    - Dst: ptls_openssl_signature_scheme_t*::scheme_md
      Src: /src/h2o/deps/picotls/lib/openssl.c:1785,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:1790,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/h2o/deps/picotls/lib/openssl.c:1794,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/h2o/deps/picotls/lib/openssl.c:1804,1
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1805,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 4
    argNames:
    - verify_ctx
    - algo
    - data
    - signature
    argTypes:
    - void*
    - uint16_t
    - ptls_iovec_t
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1807
    functionName: verify_sign
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_DigestVerifyInit
    - EVP_MD_CTX_destroy
    - EVP_DigestVerifyFinal
    - EVP_PKEY_free
    - ptls_openssl_lookup_signature_schemes
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_DigestVerify
    - ptls_openssl_signature_scheme_t*::scheme_md
    - EVP_PKEY_id
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_MD_CTX_create
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_DigestVerifyUpdate
    linkageType: ''
    returnType: int
    signature: int verify_sign(void *verify_ctx, uint16_t algo, ptls_iovec_t data,
      ptls_iovec_t signature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_lookup_signature_schemes
      Src: /src/h2o/deps/picotls/lib/openssl.c:1813,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/picotls/lib/openssl.c:1815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - ptls_openssl_sign_certificate_t*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1819
    functionName: ptls_openssl_init_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 7
    functionsReached:
    - EVP_PKEY_up_ref
    - ptls_openssl_lookup_signature_schemes
    linkageType: ''
    returnType: int
    signature: int ptls_openssl_init_sign_certificate(ptls_openssl_sign_certificate_t
      *self, EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:1823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_openssl_sign_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1824
    functionName: ptls_openssl_dispose_sign_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void ptls_openssl_dispose_sign_certificate(ptls_openssl_sign_certificate_t
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/h2o/deps/picotls/lib/openssl.c:1828,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1829,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/openssl.c:1831,1
    - Dst: i2d_X509
      Src: /src/h2o/deps/picotls/lib/openssl.c:1834,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cert
    - dst
    argTypes:
    - X509*
    - ptls_iovec_t*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 1828
        line_start: 1828
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - condition: (len == dst->len)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 1838
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1838
    functionName: serialize_cert
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int serialize_cert(X509 *cert, ptls_iovec_t *dst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/h2o/deps/picotls/lib/openssl.c:1962,1
    - Dst: sk_X509_new_null
      Src: /src/h2o/deps/picotls/lib/openssl.c:1962,1
    - Dst: to_x509
      Src: /src/h2o/deps/picotls/lib/openssl.c:1969,1
    - Dst: to_x509
      Src: /src/h2o/deps/picotls/lib/openssl.c:1974,1
    - Dst: sk_X509_push
      Src: /src/h2o/deps/picotls/lib/openssl.c:1979,1
    - Dst: verify_cert_chain
      Src: /src/h2o/deps/picotls/lib/openssl.c:1981,1
    - Dst: ptls_is_server
      Src: /src/h2o/deps/picotls/lib/openssl.c:1981,1
    - Dst: ptls_openssl_verify_certificate_t*::override_callback::cb
      Src: /src/h2o/deps/picotls/lib/openssl.c:1989,1
    - Dst: X509_get_pubkey
      Src: /src/h2o/deps/picotls/lib/openssl.c:1995,1
    - Dst: sk_X509_pop_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2003,1
    - Dst: X509_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2005,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - _self
    - tls
    - server_name
    - verify_data
    - certs
    - num_certs
    argTypes:
    - ptls_verify_certificate_t*
    - ptls_t*
    - char*
    - void**
    - ptls_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 2007
    functionName: verify_cert
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_X509_new_null
    - verify_cert_chain
    - ptls_is_server
    - to_x509
    - sk_X509_pop_free
    - ptls_openssl_verify_certificate_t*::override_callback::cb
    - sk_X509_push
    - X509_get_pubkey
    - X509_free
    linkageType: ''
    returnType: int
    signature: "int verify_cert(ptls_verify_certificate_t *_self, ptls_t *tls, const
      char *server_name,\n                       int (**verifier)(void *, uint16_t,
      ptls_iovec_t, ptls_iovec_t), void **verify_data, ptls_iovec_t *certs,\n                       size_t
      num_certs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_up_ref
      Src: /src/h2o/deps/picotls/lib/openssl.c:2014,1
    - Dst: ptls_openssl_create_default_certificate_store
      Src: /src/h2o/deps/picotls/lib/openssl.c:2018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - store
    argTypes:
    - ptls_openssl_verify_certificate_t*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2023
    functionName: ptls_openssl_init_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 5
    functionsReached:
    - X509_STORE_up_ref
    - ptls_openssl_create_default_certificate_store
    linkageType: ''
    returnType: int
    signature: int ptls_openssl_init_verify_certificate(ptls_openssl_verify_certificate_t
      *self, X509_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_openssl_verify_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2028
    functionName: ptls_openssl_dispose_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    linkageType: ''
    returnType: void
    signature: void ptls_openssl_dispose_verify_certificate(ptls_openssl_verify_certificate_t
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2035,1
    - Dst: X509_STORE_add_lookup
      Src: /src/h2o/deps/picotls/lib/openssl.c:2037,1
    - Dst: X509_LOOKUP_file
      Src: /src/h2o/deps/picotls/lib/openssl.c:2037,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/h2o/deps/picotls/lib/openssl.c:2039,1
    - Dst: X509_STORE_add_lookup
      Src: /src/h2o/deps/picotls/lib/openssl.c:2040,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/h2o/deps/picotls/lib/openssl.c:2040,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/h2o/deps/picotls/lib/openssl.c:2042,1
    - Dst: X509_STORE_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2049
    functionName: ptls_openssl_create_default_certificate_store
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_file
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - X509_LOOKUP_load_file
    - X509_STORE_new
    - X509_STORE_free
    - X509_LOOKUP_hash_dir
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *ptls_openssl_create_default_certificate_store(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:2059,1
    - Dst: i2d_PUBKEY
      Src: /src/h2o/deps/picotls/lib/openssl.c:2064,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/openssl.c:2074,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/picotls/lib/openssl.c:2077,1
    - Dst: OPENSSL_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2082,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - _self
    - tls
    - server_name
    - verify_data
    - certs
    - num_certs
    argTypes:
    - ptls_verify_certificate_t*
    - ptls_t*
    - char*
    - void**
    - ptls_iovec_t*
    - size_t
    assertStmts:
    - condition: (num_certs != 0)
      pos:
        line_end: 2058
        line_start: 2058
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 2084
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2084
    functionName: verify_raw_cert
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_up_ref
    - i2d_PUBKEY
    - ptls_mem_equal
    - assert
    linkageType: ''
    returnType: int
    signature: "int verify_raw_cert(ptls_verify_certificate_t *_self, ptls_t *tls,
      const char *server_name,\n                           int (**verifier)(void *,
      uint16_t algo, ptls_iovec_t, ptls_iovec_t), void **verify_data,\n                           ptls_iovec_t
      *certs, size_t num_certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/h2o/deps/picotls/lib/openssl.c:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - expected_pubkey
    argTypes:
    - ptls_openssl_raw_pubkey_verify_certificate_t*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2091
    functionName: ptls_openssl_raw_pubkey_init_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: int
    signature: int ptls_openssl_raw_pubkey_init_verify_certificate(ptls_openssl_raw_pubkey_verify_certificate_t
      *self, EVP_PKEY *expected_pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ptls_openssl_raw_pubkey_verify_certificate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2095
    functionName: ptls_openssl_raw_pubkey_dispose_verify_certificate
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void ptls_openssl_raw_pubkey_dispose_verify_certificate(ptls_openssl_raw_pubkey_verify_certificate_t
      *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2108,1
    - Dst: HMAC_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2112,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:2117,1
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:2130,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:2135,1
    - Dst: HMAC_Update
      Src: /src/h2o/deps/picotls/lib/openssl.c:2142,1
    - Dst: HMAC_Final
      Src: /src/h2o/deps/picotls/lib/openssl.c:2142,1
    - Dst: HMAC_size
      Src: /src/h2o/deps/picotls/lib/openssl.c:2146,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:2148,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2154,1
    - Dst: HMAC_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2156,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - buf
    - src
    argTypes:
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (dst <= buf->base + buf->capacity)
      pos:
        line_end: 2147
        line_start: 2147
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 2158
      start: 2100
    functionDepth: 2
    functionLinenumber: 2100
    functionLinenumberEnd: 2158
    functionName: ptls_openssl_encrypt_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - HMAC_size
    - EVP_EncryptUpdate
    - HMAC_Final
    - HMAC_Update
    - EVP_EncryptFinal_ex
    - ptls_buffer_reserve
    - HMAC_CTX_new
    - HMAC_CTX_free
    - assert
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ptls_openssl_encrypt_ticket(ptls_buffer_t *buf, ptls_iovec_t src,\n
      \                               int (*cb)(unsigned char *key_name, unsigned
      char *iv, EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc))"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2167,1
    - Dst: HMAC_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2171,1
    - Dst: HMAC_size
      Src: /src/h2o/deps/picotls/lib/openssl.c:2188,1
    - Dst: HMAC_Update
      Src: /src/h2o/deps/picotls/lib/openssl.c:2195,1
    - Dst: HMAC_Final
      Src: /src/h2o/deps/picotls/lib/openssl.c:2195,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/openssl.c:2199,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:2207,1
    - Dst: EVP_DecryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:2209,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:2214,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2224,1
    - Dst: HMAC_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2226,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 2
    argNames:
    - buf
    - src
    argTypes:
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2160
    functionDepth: 2
    functionLinenumber: 2160
    functionLinenumberEnd: 2228
    functionName: ptls_openssl_decrypt_ticket
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - HMAC_size
    - HMAC_Final
    - EVP_DecryptUpdate
    - HMAC_Update
    - ptls_buffer_reserve
    - HMAC_CTX_new
    - EVP_DecryptFinal_ex
    - HMAC_CTX_free
    - ptls_mem_equal
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ptls_openssl_decrypt_ticket(ptls_buffer_t *buf, ptls_iovec_t src,\n
      \                               int (*cb)(unsigned char *key_name, unsigned
      char *iv, EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc))"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2242,1
    - Dst: EVP_MAC_fetch
      Src: /src/h2o/deps/picotls/lib/openssl.c:2246,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2250,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:2255,1
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:2268,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:2273,1
    - Dst: EVP_MAC_update
      Src: /src/h2o/deps/picotls/lib/openssl.c:2280,1
    - Dst: EVP_MAC_final
      Src: /src/h2o/deps/picotls/lib/openssl.c:2281,1
    - Dst: EVP_MAC_CTX_get_mac_size
      Src: /src/h2o/deps/picotls/lib/openssl.c:2281,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/openssl.c:2287,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2293,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2295,1
    - Dst: EVP_MAC_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2297,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - buf
    - src
    argTypes:
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (dst <= buf->base + buf->capacity)
      pos:
        line_end: 2286
        line_start: 2286
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    constantsTouched: []
    func_position:
      end: 2299
      start: 2231
    functionDepth: 2
    functionLinenumber: 2231
    functionLinenumberEnd: 2299
    functionName: ptls_openssl_encrypt_ticket_evp
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_EncryptUpdate
    - EVP_MAC_final
    - EVP_MAC_CTX_get_mac_size
    - ptls_buffer_reserve
    - EVP_EncryptFinal_ex
    - EVP_MAC_update
    - EVP_MAC_fetch
    - EVP_MAC_CTX_free
    - EVP_MAC_free
    - EVP_MAC_CTX_new
    - assert
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ptls_openssl_encrypt_ticket_evp(ptls_buffer_t *buf, ptls_iovec_t
      src,\n                                    int (*cb)(unsigned char *key_name,
      unsigned char *iv, EVP_CIPHER_CTX *ctx, EVP_MAC_CTX *hctx,\n                                              int
      enc))"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2311,1
    - Dst: EVP_MAC_fetch
      Src: /src/h2o/deps/picotls/lib/openssl.c:2315,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/h2o/deps/picotls/lib/openssl.c:2319,1
    - Dst: EVP_MAC_CTX_get_mac_size
      Src: /src/h2o/deps/picotls/lib/openssl.c:2336,1
    - Dst: EVP_MAC_update
      Src: /src/h2o/deps/picotls/lib/openssl.c:2343,1
    - Dst: EVP_MAC_final
      Src: /src/h2o/deps/picotls/lib/openssl.c:2343,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/openssl.c:2347,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/lib/openssl.c:2355,1
    - Dst: EVP_DecryptUpdate
      Src: /src/h2o/deps/picotls/lib/openssl.c:2357,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/h2o/deps/picotls/lib/openssl.c:2362,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2372,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2374,1
    - Dst: EVP_MAC_free
      Src: /src/h2o/deps/picotls/lib/openssl.c:2376,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - buf
    - src
    argTypes:
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2378
    functionName: ptls_openssl_decrypt_ticket_evp
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_DecryptUpdate
    - EVP_MAC_CTX_get_mac_size
    - EVP_MAC_final
    - ptls_buffer_reserve
    - EVP_MAC_update
    - EVP_MAC_fetch
    - EVP_DecryptFinal_ex
    - EVP_MAC_CTX_free
    - EVP_MAC_free
    - ptls_mem_equal
    - EVP_MAC_CTX_new
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ptls_openssl_decrypt_ticket_evp(ptls_buffer_t *buf, ptls_iovec_t
      src,\n                                    int (*cb)(unsigned char *key_name,
      unsigned char *iv, EVP_CIPHER_CTX *ctx, EVP_MAC_CTX *hctx,\n                                              int
      enc))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lowcase
    - ','
    - upcase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2420
    functionName: DEFINE_MLKEM_KEYEX
    functionSourceFile: /src/h2o/deps/picotls/lib/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_MLKEM_KEYEX(lowcase, upcase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_cipher_encrypt
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aesecb
    - block
    argTypes:
    - void*
    - union picotls_quiclb_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: picotls_quiclb_cipher_aes
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 0
    functionsReached:
    - ptls_cipher_encrypt
    linkageType: ''
    returnType: void
    signature: void picotls_quiclb_cipher_aes(void *aesecb, union picotls_quiclb_block
      *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_or_si128
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:55,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:55,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:57,1
    - Dst: aesecb_func
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:61,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:64,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - aesecb_ctx
    - dest
    - x
    - y
    - mask
    - len_pass
    argTypes:
    - void*
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: picotls_quiclb_one_round
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - _mm_and_si128
    - _mm_or_si128
    - _mm_xor_si128
    - aesecb_func
    linkageType: ''
    returnType: void
    signature: "void picotls_quiclb_one_round(void (*aesecb_func)(void *aesecb, union
      picotls_quiclb_block *), void *aesecb_ctx,\n                                            union
      picotls_quiclb_block *dest, const union picotls_quiclb_block *x,\n                                            const
      union picotls_quiclb_block *y, const union picotls_quiclb_block *mask,\n                                            const
      union picotls_quiclb_block *len_pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:77,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - l
    - r
    - input
    - len
    argTypes:
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: picotls_quiclb_split_input
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: "void picotls_quiclb_split_input(union picotls_quiclb_block *l, union
      picotls_quiclb_block *r, const uint8_t *input,\n                                              size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - output
    - len
    - l
    - r
    argTypes:
    - uint8_t*
    - size_t
    - union picotls_quiclb_block*
    - union picotls_quiclb_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: picotls_quiclb_merge_output
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void picotls_quiclb_merge_output(uint8_t *output, size_t len, const
      union picotls_quiclb_block *l,\n                                               const
      union picotls_quiclb_block *r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: picotls_quiclb_do_init
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void picotls_quiclb_do_init(ptls_cipher_context_t *ctx, const void
      *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:132,1
    - Dst: PTLS_BUILD_ASSERT
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:133,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:133,1
    - Dst: picotls_quiclb_split_input
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:146,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:147,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:148,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:149,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:150,1
    - Dst: picotls_quiclb_merge_output
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:151,1
    - Dst: picotls_quiclb_split_input
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:153,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:154,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:155,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:156,1
    - Dst: ROUND
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:157,1
    - Dst: picotls_quiclb_merge_output
      Src: /src/h2o/deps/picotls/lib/quiclb-impl.h:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - aesecb_ctx
    - output
    - input
    - len
    - encrypt
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (PTLS_QUICLB_MIN_BLOCK_SIZE <= len && len <= PTLS_QUICLB_MAX_BLOCK_SIZE)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/deps/picotls/lib/quiclb-impl.h
    constantsTouched: []
    func_position:
      end: 162
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 162
    functionName: picotls_quiclb_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 4
    functionsReached:
    - PTLS_ELEMENTSOF
    - picotls_quiclb_split_input
    - ROUND
    - PTLS_BUILD_ASSERT
    - assert
    - picotls_quiclb_merge_output
    linkageType: ''
    returnType: void
    signature: "void picotls_quiclb_transform(void (*aesecb_func)(void *aesecb, union
      picotls_quiclb_block *), void *aesecb_ctx,\n                                            void
      *output, const void *input, size_t len, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - rnd
    - ','
    - dest
    - ','
    - x
    - ','
    - y
    - ','
    - mask_side
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: ROUND
    functionSourceFile: /src/h2o/deps/picotls/lib/quiclb-impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(rnd, dest, x, y, mask_side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - text
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: ptls_base64_cell
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptls_base64_cell(const uint8_t *data, char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ptls_base64_howlong
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ptls_base64_howlong(size_t data_length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_base64_cell
      Src: /src/h2o/deps/picotls/lib/pembase64.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - data
    - data_len
    - ptls_base64_text
    argTypes:
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: ptls_base64_encode
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 0
    functionsReached:
    - ptls_base64_cell
    linkageType: ''
    returnType: int
    signature: int ptls_base64_encode(const uint8_t *data, size_t data_len, char *ptls_base64_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - ptls_base64_decode_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: ptls_base64_decode_init
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ptls_base64_decode_init(ptls_base64_decode_state_t *state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer__do_pushv
      Src: /src/h2o/deps/picotls/lib/pembase64.c:186,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 71
    argCount: 3
    argNames:
    - text
    - state
    - buf
    argTypes:
    - char*
    - ptls_base64_decode_state_t*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 215
    functionName: ptls_base64_decode
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 1
    functionsReached:
    - ptls_buffer__do_pushv
    linkageType: ''
    returnType: int
    signature: int ptls_base64_decode(const char *text, ptls_base64_decode_state_t
      *state, ptls_buffer_t *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/lib/pembase64.c:241,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/pembase64.c:245,1
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/lib/pembase64.c:246,1
    - Dst: strlen
      Src: /src/h2o/deps/picotls/lib/pembase64.c:256,1
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/lib/pembase64.c:257,1
    - Dst: strncmp
      Src: /src/h2o/deps/picotls/lib/pembase64.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - line
    - begin_or_end
    - label
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: ptls_compare_separator_line
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int ptls_compare_separator_line(const char *line, const char *begin_or_end,
      const char *label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/h2o/deps/picotls/lib/pembase64.c:275,1
    - Dst: ptls_compare_separator_line
      Src: /src/h2o/deps/picotls/lib/pembase64.c:276,1
    - Dst: ptls_base64_decode_init
      Src: /src/h2o/deps/picotls/lib/pembase64.c:278,1
    - Dst: fgets
      Src: /src/h2o/deps/picotls/lib/pembase64.c:283,1
    - Dst: ptls_compare_separator_line
      Src: /src/h2o/deps/picotls/lib/pembase64.c:284,1
    - Dst: ptls_base64_decode
      Src: /src/h2o/deps/picotls/lib/pembase64.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - F
    - label
    - buf
    argTypes:
    - FILE*
    - char*
    - ptls_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: ptls_get_pem_object
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 0
    functionsReached:
    - ptls_compare_separator_line
    - ptls_base64_decode_init
    - ptls_base64_decode
    - fgets
    linkageType: ''
    returnType: int
    signature: int ptls_get_pem_object(FILE *F, const char *label, ptls_buffer_t *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/h2o/deps/picotls/lib/pembase64.c:305,1
    - Dst: fopen
      Src: /src/h2o/deps/picotls/lib/pembase64.c:310,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/lib/pembase64.c:322,1
    - Dst: ptls_get_pem_object
      Src: /src/h2o/deps/picotls/lib/pembase64.c:324,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/pembase64.c:332,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/lib/pembase64.c:335,1
    - Dst: fclose
      Src: /src/h2o/deps/picotls/lib/pembase64.c:348,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - pem_fname
    - label
    - list
    - list_max
    - nb_objects
    argTypes:
    - char*
    - char*
    - ptls_iovec_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 352
    functionName: ptls_load_pem_objects
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 4
    functionsReached:
    - fopen_s
    - ptls_get_pem_object
    - fopen
    - fclose
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: int ptls_load_pem_objects(char const *pem_fname, const char *label,
      ptls_iovec_t *list, size_t list_max, size_t *nb_objects)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/pembase64.c:360,1
    - Dst: ptls_load_pem_objects
      Src: /src/h2o/deps/picotls/lib/pembase64.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert_pem_file
    argTypes:
    - ptls_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: ptls_load_certificates
    functionSourceFile: /src/h2o/deps/picotls/lib/pembase64.c
    functionUses: 4
    functionsReached:
    - malloc
    - ptls_load_pem_objects
    linkageType: ''
    returnType: int
    signature: int ptls_load_certificates(ptls_context_t *ctx, char const *cert_pem_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: PSA_FUNC_FAILED
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSA_FUNC_FAILED(fn, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: CALL_WITH_CHECK
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_WITH_CHECK(fn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ptls_mbedtls_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 1
    functionsReached:
    - CALL_WITH_CHECK
    linkageType: ''
    returnType: void
    signature: void ptls_mbedtls_random_bytes(void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - name_upcase
    - ','
    - psa_alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: DEFINE_HASH
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_HASH(name, name_upcase, psa_alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: psa_cipher_abort
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:98,1
    - Dst: psa_cipher_operation_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:102,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:104,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:106,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: cipher_init
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 9
    functionsReached:
    - CALL_WITH_CHECK
    - psa_cipher_abort
    - psa_cipher_operation_init
    linkageType: ''
    returnType: void
    signature: void cipher_init(ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: cipher_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - CALL_WITH_CHECK
    linkageType: ''
    returnType: void
    signature: void cipher_transform(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_cipher_abort
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:126,1
    - Dst: psa_destroy_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: cipher_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 1
    functionsReached:
    - psa_cipher_abort
    - psa_destroy_key
    linkageType: ''
    returnType: void
    signature: void cipher_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:137,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:138,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:139,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:140,1
    - Dst: psa_import_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:141,1
    - Dst: psa_cipher_operation_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - _ctx
    - is_enc
    - key_bytes
    - alg
    - key_type
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    - psa_algorithm_t
    - psa_key_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: cipher_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - psa_set_key_bits
    - psa_set_key_algorithm
    - psa_cipher_operation_init
    - psa_set_key_usage_flags
    - psa_set_key_type
    - psa_import_key
    linkageType: ''
    returnType: int
    signature: "int cipher_setup(ptls_cipher_context_t *_ctx, int is_enc, const void
      *key_bytes, psa_algorithm_t alg,\n                        psa_key_type_t key_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:161,1
    - Dst: cipher_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key_bytes
    - key_type
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    - psa_key_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: ecb_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - cipher_setup
    - cipher_init
    linkageType: ''
    returnType: int
    signature: int ecb_setup(ptls_cipher_context_t *ctx, int is_enc, const void *key_bytes,
      psa_key_type_t key_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecb_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key_bytes
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: setup_aes128ecb
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - ecb_setup
    linkageType: ''
    returnType: int
    signature: int setup_aes128ecb(ptls_cipher_context_t *ctx, int is_enc, const void
      *key_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecb_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key_bytes
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: setup_aes256ecb
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - ecb_setup
    linkageType: ''
    returnType: int
    signature: int setup_aes256ecb(ptls_cipher_context_t *ctx, int is_enc, const void
      *key_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key_bytes
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: setup_aes128ctr
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - cipher_setup
    linkageType: ''
    returnType: int
    signature: int setup_aes128ctr(ptls_cipher_context_t *ctx, int is_enc, const void
      *key_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key_bytes
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: setup_aes256ctr
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - cipher_setup
    linkageType: ''
    returnType: int
    signature: int setup_aes256ctr(ptls_cipher_context_t *ctx, int is_enc, const void
      *key_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key_bytes
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: setup_chacha20
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - cipher_setup
    linkageType: ''
    returnType: int
    signature: int setup_chacha20(ptls_cipher_context_t *ctx, int is_enc, const void
      *key_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_chacha20_starts
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:230,1
    - Dst: PSA_FUNC_FAILED
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - v_iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: chacha20_init
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 2
    functionsReached:
    - mbedtls_chacha20_starts
    - PSA_FUNC_FAILED
    linkageType: ''
    returnType: void
    signature: void chacha20_init(ptls_cipher_context_t *_ctx, const void *v_iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_chacha20_update
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:239,1
    - Dst: PSA_FUNC_FAILED
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: chacha20_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_chacha20_update
    - PSA_FUNC_FAILED
    linkageType: ''
    returnType: void
    signature: void chacha20_transform(ptls_cipher_context_t *_ctx, void *output,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_chacha20_free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: chacha20_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_chacha20_free
    linkageType: ''
    returnType: void
    signature: void chacha20_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_chacha20_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:255,1
    - Dst: mbedtls_chacha20_setkey
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: setup_chacha20
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_chacha20_setkey
    - mbedtls_chacha20_init
    linkageType: ''
    returnType: int
    signature: int setup_chacha20(ptls_cipher_context_t *_ctx, int is_enc, const void
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_destroy_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - struct st_ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: aead_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 2
    functionsReached:
    - psa_destroy_key
    linkageType: ''
    returnType: void
    signature: void aead_dispose_crypto(struct st_ptls_aead_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: aead_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aead_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: aead_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aead_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_aead_operation_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:306,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:311,1
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:312,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:313,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:314,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:318,1
    - Dst: CALL_WITH_CHECK
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:321,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:323,1
    - Dst: psa_aead_abort
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - incnt
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - ptls_iovec_t*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 327
    functionName: aead_encrypt_v
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 3
    functionsReached:
    - CALL_WITH_CHECK
    - memcpy
    - psa_aead_operation_init
    - psa_aead_abort
    - ptls_aead__build_iv
    linkageType: ''
    returnType: void
    signature: "void aead_encrypt_v(struct st_ptls_aead_context_t *_ctx, void *output,
      ptls_iovec_t *input, size_t incnt, uint64_t seq,\n                           const
      void *aad, size_t aadlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:336,1
    - Dst: psa_aead_decrypt
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:339,1
    - Dst: PSA_FUNC_FAILED
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - struct st_ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 352
    functionName: aead_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 19
    functionsReached:
    - psa_aead_decrypt
    - ptls_aead__build_iv
    - PSA_FUNC_FAILED
    linkageType: ''
    returnType: size_t
    signature: "size_t aead_decrypt(struct st_ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen, uint64_t seq,\n                           const
      void *aad, size_t aadlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:361,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:362,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:363,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:364,1
    - Dst: psa_import_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:365,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - _ctx
    - is_enc
    - key_bytes
    - iv
    - psa_alg
    - key_bits
    - key_type
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    - psa_algorithm_t
    - size_t
    - psa_key_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 383
    functionName: aead_setup
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - psa_set_key_bits
    - psa_set_key_algorithm
    - psa_set_key_usage_flags
    - psa_set_key_type
    - memcpy
    - psa_import_key
    linkageType: ''
    returnType: int
    signature: "int aead_setup(ptls_aead_context_t *_ctx, int is_enc, const void *key_bytes,
      const void *iv, psa_algorithm_t psa_alg,\n                      size_t key_bits,
      psa_key_type_t key_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key_bytes
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: aead_setup_aes128gcm
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - aead_setup
    linkageType: ''
    returnType: int
    signature: int aead_setup_aes128gcm(ptls_aead_context_t *_ctx, int is_enc, const
      void *key_bytes, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key_bytes
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: aead_setup_aes256gcm
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - aead_setup
    linkageType: ''
    returnType: int
    signature: int aead_setup_aes256gcm(ptls_aead_context_t *_ctx, int is_enc, const
      void *key_bytes, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_setup
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key_bytes
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: aead_setup_chacha20poly1305
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - aead_setup
    linkageType: ''
    returnType: int
    signature: int aead_setup_chacha20poly1305(ptls_aead_context_t *_ctx, int is_enc,
      const void *key_bytes, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_set_key_usage_flags
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:490,1
    - Dst: psa_set_key_algorithm
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:491,1
    - Dst: psa_set_key_type
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:492,1
    - Dst: PSA_KEY_TYPE_ECC_KEY_PAIR
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:492,1
    - Dst: psa_set_key_bits
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:493,1
    - Dst: psa_generate_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - private_key
    - params
    argTypes:
    - psa_key_id_t*
    - struct ptls_mbedtls_key_exchange_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: generate_private_key
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - psa_set_key_bits
    - PSA_KEY_TYPE_ECC_KEY_PAIR
    - psa_set_key_algorithm
    - psa_set_key_type
    - psa_generate_key
    - psa_set_key_usage_flags
    linkageType: ''
    returnType: int
    signature: int generate_private_key(psa_key_id_t *private_key, const struct ptls_mbedtls_key_exchange_params_t
      *params)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:510,1
    - Dst: psa_raw_key_agreement
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:514,1
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:519,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:524,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:525,1
    - Dst: psa_destroy_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:528,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - _keyex
    - release
    - secret
    - peerkey
    argTypes:
    - struct st_ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (keyex->params->secret_size == secret->len)
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    constantsTouched: []
    func_position:
      end: 533
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 533
    functionName: key_exchange_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - free
    - psa_destroy_key
    - psa_raw_key_agreement
    - assert
    linkageType: ''
    returnType: int
    signature: "int key_exchange_on_exchange(struct st_ptls_key_exchange_context_t
      **_keyex, int release, ptls_iovec_t *secret,\n                                    ptls_iovec_t
      peerkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:543,1
    - Dst: generate_private_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:553,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:554,1
    - Dst: psa_export_public_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:559,1
    - Dst: PSA_FUNC_FAILED
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - algo
    - ctx
    - params
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    - struct ptls_mbedtls_key_exchange_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 566
    functionName: key_exchange_create
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - PSA_FUNC_FAILED
    - generate_private_key
    - psa_export_public_key
    linkageType: ''
    returnType: int
    signature: "int key_exchange_create(ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
      **ctx,\n                               const struct ptls_mbedtls_key_exchange_params_t
      *params)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:574,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:575,1
    - Dst: generate_private_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:578,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:582,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:586,1
    - Dst: psa_export_public_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:592,1
    - Dst: psa_raw_key_agreement
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:593,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:603,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:604,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:605,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:606,1
    - Dst: psa_destroy_key
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:608,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    - params
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    - struct ptls_mbedtls_key_exchange_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 611
    functionName: key_exchange_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - free
    - psa_destroy_key
    - psa_raw_key_agreement
    - generate_private_key
    - psa_export_public_key
    linkageType: ''
    returnType: int
    signature: "int key_exchange_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *pubkey, ptls_iovec_t *secret,\n                                 ptls_iovec_t
      peerkey, const struct ptls_mbedtls_key_exchange_params_t *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_create
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algo
    - ctx
    argTypes:
    - struct st_ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 616
    functionName: secp256r1_create
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - key_exchange_create
    linkageType: ''
    returnType: int
    signature: int secp256r1_create(const struct st_ptls_key_exchange_algorithm_t
      *algo, ptls_key_exchange_context_t **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_exchange
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    argTypes:
    - struct st_ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: secp256r1_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - key_exchange_exchange
    linkageType: ''
    returnType: int
    signature: "int secp256r1_exchange(const struct st_ptls_key_exchange_algorithm_t
      *algo, ptls_iovec_t *pubkey, ptls_iovec_t *secret,\n                              ptls_iovec_t
      peerkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_create
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algo
    - ctx
    argTypes:
    - struct st_ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: x25519_create
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - key_exchange_create
    linkageType: ''
    returnType: int
    signature: int x25519_create(const struct st_ptls_key_exchange_algorithm_t *algo,
      ptls_key_exchange_context_t **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_exchange
      Src: /src/h2o/deps/picotls/lib/mbedtls.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    argTypes:
    - struct st_ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: x25519_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/mbedtls.c
    functionUses: 0
    functionsReached:
    - key_exchange_exchange
    linkageType: ''
    returnType: int
    signature: "int x25519_exchange(const struct st_ptls_key_exchange_algorithm_t
      *algo, ptls_iovec_t *pubkey, ptls_iovec_t *secret,\n                           ptls_iovec_t
      peerkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:49,1
    - Dst: CryptGenRandom
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:50,1
    - Dst: CryptReleaseContext
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:51,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:55,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - entropy
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: read_entropy
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/random.c
    functionUses: 0
    functionsReached:
    - perror
    - abort
    - CryptAcquireContext
    - CryptGenRandom
    - CryptReleaseContext
    linkageType: ''
    returnType: void
    signature: void read_entropy(uint8_t *entropy, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BCryptOpenAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:70,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:72,1
    - Dst: BCryptGenRandom
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:73,1
    - Dst: BCryptCloseAlgorithmProvider
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:75,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:78,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:79,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - entropy
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: read_entropy
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/random.c
    functionUses: 0
    functionsReached:
    - perror
    - abort
    - BCryptOpenAlgorithmProvider
    - BCryptCloseAlgorithmProvider
    - BCryptGenRandom
    - BCRYPT_SUCCESS
    linkageType: ''
    returnType: void
    signature: void read_entropy(uint8_t *entropy, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:89,1
    - Dst: open
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:90,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:91,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:92,1
    - Dst: read
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:98,1
    - Dst: perror
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:101,1
    - Dst: abort
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:102,1
    - Dst: close
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - entropy
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: read_entropy
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/random.c
    functionUses: 0
    functionsReached:
    - close
    - perror
    - read
    - abort
    - open
    linkageType: ''
    returnType: void
    signature: void read_entropy(uint8_t *entropy, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_hash_drbg_sha256_needs_reseed
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:116,1
    - Dst: read_entropy
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:118,1
    - Dst: cf_hash_drbg_sha256_init
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:119,1
    - Dst: cf_hash_drbg_sha256_gen
      Src: /src/h2o/deps/picotls/lib/cifra/random.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: ptls_minicrypto_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/random.c
    functionUses: 0
    functionsReached:
    - cf_hash_drbg_sha256_needs_reseed
    - cf_hash_drbg_sha256_gen
    - read_entropy
    - cf_hash_drbg_sha256_init
    linkageType: ''
    returnType: void
    signature: void ptls_minicrypto_random_bytes(void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesecb_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes256.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: aes256ecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes256.c
    functionUses: 0
    functionsReached:
    - aesecb_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes256ecb_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesctr_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes256.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: aes256ctr_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes256.c
    functionUses: 0
    functionsReached:
    - aesctr_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes256ctr_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_aesgcm_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes256.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: aead_aes256gcm_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes256.c
    functionUses: 0
    functionsReached:
    - aead_aesgcm_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aead_aes256gcm_setup_crypto(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: aesecb_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 3
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void aesecb_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:44,1
    - Dst: cf_aes_encrypt
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (len % AES_BLOCKSZ == 0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: aesecb_encrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 5
    functionsReached:
    - cf_aes_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: void aesecb_encrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:51,1
    - Dst: cf_aes_decrypt
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (len % AES_BLOCKSZ == 0)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: aesecb_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - cf_aes_decrypt
    - assert
    linkageType: ''
    returnType: void
    signature: void aesecb_decrypt(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: aesecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 1
    functionsReached:
    - cf_aes_init
    linkageType: ''
    returnType: int
    signature: int aesecb_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc, const
      void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: aesctr_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void aesctr_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ctr_init
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: aesctr_init
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - cf_ctr_init
    linkageType: ''
    returnType: void
    signature: void aesctr_init(ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ctr_cipher
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: aesctr_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - cf_ctr_cipher
    linkageType: ''
    returnType: void
    signature: void aesctr_transform(ptls_cipher_context_t *_ctx, void *output, const
      void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: aesctr_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 1
    functionsReached:
    - cf_aes_init
    linkageType: ''
    returnType: int
    signature: int aesctr_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc, const
      void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_aead_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: aesgcm_dispose_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void aesgcm_dispose_crypto(ptls_aead_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:119,1
    - Dst: cf_gcm_encrypt_init
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: aesgcm_encrypt_init
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - ptls_aead__build_iv
    - cf_gcm_encrypt_init
    linkageType: ''
    returnType: void
    signature: void aesgcm_encrypt_init(ptls_aead_context_t *_ctx, uint64_t seq, const
      void *aad, size_t aadlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gcm_encrypt_update
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - inlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: aesgcm_encrypt_update
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt_update
    linkageType: ''
    returnType: size_t
    signature: size_t aesgcm_encrypt_update(ptls_aead_context_t *_ctx, void *output,
      const void *input, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_gcm_encrypt_final
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _ctx
    - output
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: aesgcm_encrypt_final
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - cf_gcm_encrypt_final
    linkageType: ''
    returnType: size_t
    signature: size_t aesgcm_encrypt_final(ptls_aead_context_t *_ctx, void *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ptls_aead__build_iv
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:149,1
    - Dst: cf_gcm_decrypt
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - _ctx
    - output
    - input
    - inlen
    - seq
    - aad
    - aadlen
    argTypes:
    - ptls_aead_context_t*
    - void*
    - void*
    - size_t
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 7
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: aesgcm_decrypt
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 3
    functionsReached:
    - ptls_aead__build_iv
    - cf_gcm_decrypt
    linkageType: ''
    returnType: size_t
    signature: "size_t aesgcm_decrypt(ptls_aead_context_t *_ctx, void *output, const
      void *input, size_t inlen, uint64_t seq,\n                                    const
      void *aad, size_t aadlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: aesgcm_get_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aesgcm_get_iv(ptls_aead_context_t *_ctx, void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_aead_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: aesgcm_set_iv
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aesgcm_set_iv(ptls_aead_context_t *_ctx, const void *iv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_aes_init
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:194,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/cifra/aes-common.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - _ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: aead_aesgcm_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    functionUses: 1
    functionsReached:
    - memcpy
    - cf_aes_init
    linkageType: ''
    returnType: int
    signature: int aead_aesgcm_setup_crypto(ptls_aead_context_t *_ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_minicrypto_random_bytes
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:37,1
    - Dst: cf_curve25519_mul_base
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - priv
    - pub
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: x25519_create_keypair
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/x25519.c
    functionUses: 0
    functionsReached:
    - cf_curve25519_mul_base
    - ptls_minicrypto_random_bytes
    linkageType: ''
    returnType: void
    signature: void x25519_create_keypair(uint8_t *priv, uint8_t *pub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:44,1
    - Dst: cf_curve25519_mul
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:47,1
    - Dst: ptls_mem_equal
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:50,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - secret
    - clientpriv
    - clientpub
    - serverpriv
    - serverpub
    argTypes:
    - ptls_iovec_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: x25519_derive_secret
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/x25519.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - ptls_mem_equal
    - cf_curve25519_mul
    linkageType: ''
    returnType: int
    signature: "int x25519_derive_secret(ptls_iovec_t *secret, const uint8_t *clientpriv,
      const uint8_t *clientpub,\n                                const uint8_t *serverpriv,
      const uint8_t *serverpub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x25519_derive_secret
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:74,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:78,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - _ctx
    - release
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_context_t**
    - int
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: x25519_on_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/x25519.c
    functionUses: 0
    functionsReached:
    - free
    - x25519_derive_secret
    - ptls_clear_memory
    linkageType: ''
    returnType: int
    signature: int x25519_on_exchange(ptls_key_exchange_context_t **_ctx, int release,
      ptls_iovec_t *secret, ptls_iovec_t peerkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:89,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:91,1
    - Dst: x25519_create_keypair
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - algo
    - _ctx
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_key_exchange_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: x25519_create_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/x25519.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - x25519_create_keypair
    linkageType: ''
    returnType: int
    signature: int x25519_create_key_exchange(ptls_key_exchange_algorithm_t *algo,
      ptls_key_exchange_context_t **_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:108,1
    - Dst: x25519_create_keypair
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:113,1
    - Dst: x25519_derive_secret
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:114,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:117,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:121,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:123,1
    - Dst: free
      Src: /src/h2o/deps/picotls/lib/cifra/x25519.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - algo
    - pubkey
    - secret
    - peerkey
    argTypes:
    - ptls_key_exchange_algorithm_t*
    - ptls_iovec_t*
    - ptls_iovec_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 8
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: x25519_key_exchange
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/x25519.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - malloc
    - free
    - x25519_derive_secret
    - ptls_clear_memory
    - x25519_create_keypair
    linkageType: ''
    returnType: int
    signature: "int x25519_key_exchange(ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
      *pubkey, ptls_iovec_t *secret,\n                               ptls_iovec_t
      peerkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesecb_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes128.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: aes128ecb_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes128.c
    functionUses: 0
    functionsReached:
    - aesecb_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes128ecb_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesctr_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes128.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: aes128ctr_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes128.c
    functionUses: 0
    functionsReached:
    - aesctr_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aes128ctr_setup_crypto(ptls_cipher_context_t *ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_aesgcm_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/aes128.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: aead_aes128gcm_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/aes128.c
    functionUses: 0
    functionsReached:
    - aead_aesgcm_setup_crypto
    linkageType: ''
    returnType: int
    signature: int aead_aes128gcm_setup_crypto(ptls_aead_context_t *ctx, int is_enc,
      const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_clear_memory
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - ptls_cipher_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: chacha20_dispose
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - ptls_clear_memory
    linkageType: ''
    returnType: void
    signature: void chacha20_dispose(ptls_cipher_context_t *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _ctx
    - iv
    argTypes:
    - ptls_cipher_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: chacha20_init
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void chacha20_init(ptls_cipher_context_t *_ctx, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chacha20_cipher
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _ctx
    - output
    - input
    - len
    argTypes:
    - ptls_cipher_context_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: chacha20_transform
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_chacha20_cipher
    linkageType: ''
    returnType: void
    signature: void chacha20_transform(ptls_cipher_context_t *_ctx, void *output,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_chacha20_init
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ctx
    - is_enc
    - key
    argTypes:
    - ptls_cipher_context_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: chacha20_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_chacha20_init
    linkageType: ''
    returnType: int
    signature: int chacha20_setup_crypto(ptls_cipher_context_t *_ctx, int is_enc,
      const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_poly1305_init
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - rs
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: cifra_poly1305_init
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_poly1305_init
    linkageType: ''
    returnType: void
    signature: void cifra_poly1305_init(struct chacha20poly1305_context_t *_ctx, const
      void *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_poly1305_update
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _ctx
    - input
    - len
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: cifra_poly1305_update
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_poly1305_update
    linkageType: ''
    returnType: void
    signature: void cifra_poly1305_update(struct chacha20poly1305_context_t *_ctx,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_poly1305_finish
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _ctx
    - tag
    argTypes:
    - struct chacha20poly1305_context_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: cifra_poly1305_finish
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - cf_poly1305_finish
    linkageType: ''
    returnType: void
    signature: void cifra_poly1305_finish(struct chacha20poly1305_context_t *_ctx,
      void *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20poly1305_setup_crypto
      Src: /src/h2o/deps/picotls/lib/cifra/chacha20.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - is_enc
    - key
    - iv
    argTypes:
    - ptls_aead_context_t*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: cifra_chacha20poly1305_setup_crypto
    functionSourceFile: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    functionUses: 0
    functionsReached:
    - chacha20poly1305_setup_crypto
    linkageType: ''
    returnType: int
    signature: int cifra_chacha20poly1305_setup_crypto(ptls_aead_context_t *ctx, int
      is_enc, const void *key, const void *iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: deterministic_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void deterministic_random_bytes(void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _self
    - tls
    - src
    argTypes:
    - ptls_save_ticket_t*
    - ptls_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: fake_ticket_cb
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fake_ticket_cb(ptls_save_ticket_t *_self, ptls_t *tls, ptls_iovec_t
      src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:47,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:59,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:62,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:65,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:66,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:70,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:76,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:77,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:79,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:83,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 35
    functionDepth: 10
    functionLinenumber: 35
    functionLinenumberEnd: 87
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c
    functionUses: 0
    functionsReached:
    - ptls_new
    - ptls_handshake
    - ptls_free
    - ptls_receive
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - orig_data
    - orig_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: feeder_init
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void feeder_init(const uint8_t *orig_data, size_t orig_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: feeder_next_byte
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t feeder_next_byte(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - format
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: count_printf
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void count_printf(void *ctx, const char *format, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: feeder_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:49,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:51,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:51,1
    - Dst: malloc
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:56,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:58,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:61,1
    - Dst: ptls_asn1_validation
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:64,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:66,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:66,1
    - Dst: feeder_next_byte
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:68,1
    - Dst: ptls_asn1_get_expected_type_and_length
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:69,1
    - Dst: mkstemp
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:75,1
    - Dst: write
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:79,1
    - Dst: ptls_load_certificates
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:89,1
    - Dst: free
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:93,1
    - Dst: free
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:95,1
    - Dst: ptls_minicrypto_load_private_key
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:98,1
    - Dst: close
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:101,1
    - Dst: unlink
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:102,1
    - Dst: free
      Src: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 40
    functionDepth: 7
    functionLinenumber: 40
    functionLinenumberEnd: 107
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
    functionUses: 0
    functionsReached:
    - close
    - write
    - malloc
    - mkstemp
    - ptls_asn1_get_expected_type_and_length
    - free
    - ptls_asn1_validation
    - ptls_minicrypto_load_private_key
    - ptls_load_certificates
    - feeder_init
    - unlink
    - feeder_next_byte
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: deterministic_random_bytes
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void deterministic_random_bytes(void *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:42,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:44,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:47,1
    - Dst: memcpy
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - _self
    - tls
    - is_encrypt
    - dst
    - src
    argTypes:
    - ptls_encrypt_ticket_t*
    - ptls_t*
    - int
    - ptls_buffer_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: encrypt_ticket_cb_fake
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptls_buffer_reserve
    linkageType: ''
    returnType: int
    signature: int encrypt_ticket_cb_fake(ptls_encrypt_ticket_t *_self, ptls_t *tls,
      int is_encrypt, ptls_buffer_t *dst, ptls_iovec_t src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_new
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:76,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:83,1
    - Dst: ptls_handshake
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:87,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:93,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:94,1
    - Dst: ptls_receive
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:96,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:100,1
    - Dst: ptls_free
      Src: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 56
    functionDepth: 10
    functionLinenumber: 56
    functionLinenumberEnd: 105
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c
    functionUses: 0
    functionsReached:
    - ptls_new
    - ptls_handshake
    - ptls_free
    - ptls_receive
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/mruby-env/src/env.c:22,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:22,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby-env/src/env.c:24,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby-env/src/env.c:25,1
    - Dst: _putenv
      Src: /src/h2o/deps/mruby-env/src/env.c:26,1
    - Dst: free
      Src: /src/h2o/deps/mruby-env/src/env.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: unsetenv
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 4
    functionsReached:
    - strcat
    - malloc
    - _putenv
    - free
    - strlen
    - strcpy
    linkageType: ''
    returnType: int
    signature: int unsetenv(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/mruby-env/src/env.c:35,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:35,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:35,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby-env/src/env.c:37,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby-env/src/env.c:38,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby-env/src/env.c:39,1
    - Dst: _putenv
      Src: /src/h2o/deps/mruby-env/src/env.c:40,1
    - Dst: free
      Src: /src/h2o/deps/mruby-env/src/env.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: setenv
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 6
    functionsReached:
    - strcat
    - malloc
    - _putenv
    - free
    - strlen
    - strcpy
    linkageType: ''
    returnType: int
    signature: int setenv(const char* name, const char* value, int overwrite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-env/src/env.c:56,1
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:57,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby-env/src/env.c:58,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:60,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-env/src/env.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: mrb_env_aget
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_string_value_cstr
    - getenv
    - mrb_str_new_cstr
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_aget(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-env/src/env.c:71,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:72,1
    - Dst: getenv
      Src: /src/h2o/deps/mruby-env/src/env.c:73,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-env/src/env.c:74,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-env/src/env.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: mrb_env_has_key
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_str_to_cstr
    - mrb_get_args
    - getenv
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_has_key(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-env/src/env.c:86,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-env/src/env.c:88,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-env/src/env.c:91,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: mrb_env_keys
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - strchr
    - mrb_ary_new
    - mrb_str_new
    - mrb_ary_push
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_keys(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-env/src/env.c:104,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-env/src/env.c:106,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:110,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-env/src/env.c:111,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 9
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: mrb_env_values
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_ary_push
    - mrb_str_new
    - strchr
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_values(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-env/src/env.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: mrb_env_size
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_size(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby-env/src/env.c:135,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-env/src/env.c:137,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-env/src/env.c:140,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:142,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:144,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:144,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby-env/src/env.c:145,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-env/src/env.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 129
    functionDepth: 10
    functionLinenumber: 129
    functionLinenumberEnd: 151
    functionName: mrb_env_to_hash
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_gc_arena_restore
    - mrb_hash_set
    - mrb_gc_arena_save
    - mrb_hash_new
    - mrb_str_new
    - strchr
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_to_hash(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-env/src/env.c:159,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-env/src/env.c:161,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-env/src/env.c:163,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-env/src/env.c:164,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-env/src/env.c:166,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:166,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-env/src/env.c:168,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-env/src/env.c:168,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-env/src/env.c:168,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-env/src/env.c:169,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-env/src/env.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 153
    functionDepth: 9
    functionLinenumber: 153
    functionLinenumberEnd: 175
    functionName: mrb_env_to_a
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_gc_arena_restore
    - mrb_ary_push
    - mrb_gc_arena_save
    - mrb_str_new
    - strchr
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_to_a(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_env_to_hash
      Src: /src/h2o/deps/mruby-env/src/env.c:180,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-env/src/env.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 11
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: mrb_env_inspect
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_env_to_hash
    - mrb_funcall
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_inspect(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 8
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: mrb_env_to_s
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_to_s(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-env/src/env.c:196,1
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:197,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-env/src/env.c:199,1
    - Dst: unsetenv
      Src: /src/h2o/deps/mruby-env/src/env.c:200,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-env/src/env.c:201,1
    - Dst: mrb_convert_type
      Src: /src/h2o/deps/mruby-env/src/env.c:204,1
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/deps/mruby-env/src/env.c:205,1
    - Dst: setenv
      Src: /src/h2o/deps/mruby-env/src/env.c:206,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-env/src/env.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 190
    functionDepth: 9
    functionLinenumber: 190
    functionLinenumberEnd: 211
    functionName: mrb_env_aset
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_args
    - mrb_string_value_cstr
    - setenv
    - unsetenv
    - mrb_nil_p
    - mrb_convert_type
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_env_aset(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby-env/src/env.c:218,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby-env/src/env.c:220,1
    - Dst: mrb_module_get
      Src: /src/h2o/deps/mruby-env/src/env.c:220,1
    - Dst: mrb_include_module
      Src: /src/h2o/deps/mruby-env/src/env.c:222,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-env/src/env.c:222,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:225,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-env/src/env.c:225,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:226,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-env/src/env.c:226,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:227,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-env/src/env.c:227,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:228,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:228,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:229,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:229,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:230,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:230,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:231,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-env/src/env.c:231,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:232,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:232,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:233,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:233,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:234,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:234,1
    - Dst: mrb_define_singleton_method
      Src: /src/h2o/deps/mruby-env/src/env.c:235,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-env/src/env.c:235,1
    - Dst: mrb_define_global_const
      Src: /src/h2o/deps/mruby-env/src/env.c:237,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-env/src/env.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 13
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: mrb_mruby_env_gem_init
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached:
    - mrb_module_get
    - mrb_obj_alloc
    - mrb_include_module
    - mrb_define_global_const
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_obj_value
    - mrb_class_get
    - mrb_define_singleton_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_env_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: mrb_mruby_env_gem_final
    functionSourceFile: /src/h2o/deps/mruby-env/src/env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_env_gem_final(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - bit
    argTypes:
    - struct st_golombset_encode_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: golombset_encode_bit
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int golombset_encode_bit(struct st_golombset_encode_t *ctx, int bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: golombset_encode_bit
      Src: /src/h2o/deps/golombset/golombset.h:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - bits
    - value
    argTypes:
    - struct st_golombset_encode_t*
    - unsigned
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: golombset_encode_bits
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_encode_bit
    linkageType: ''
    returnType: int
    signature: int golombset_encode_bits(struct st_golombset_encode_t *ctx, unsigned
      bits, uint64_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_golombset_decode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: golombset_decode_bit
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int golombset_decode_bit(struct st_golombset_decode_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: golombset_decode_bit
      Src: /src/h2o/deps/golombset/golombset.h:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - bits
    - value
    argTypes:
    - struct st_golombset_decode_t*
    - unsigned
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: golombset_decode_bits
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_decode_bit
    linkageType: ''
    returnType: int
    signature: int golombset_decode_bits(struct st_golombset_decode_t *ctx, unsigned
      bits, uint64_t *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: golombset_encode_bit
      Src: /src/h2o/deps/golombset/golombset.h:94,1
    - Dst: golombset_encode_bit
      Src: /src/h2o/deps/golombset/golombset.h:96,1
    - Dst: golombset_encode_bits
      Src: /src/h2o/deps/golombset/golombset.h:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - fixed_bits
    - value
    argTypes:
    - struct st_golombset_encode_t*
    - unsigned
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: golombset_encode_value
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_encode_bits
    - golombset_encode_bit
    linkageType: ''
    returnType: int
    signature: int golombset_encode_value(struct st_golombset_encode_t *ctx, unsigned
      fixed_bits, uint64_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: golombset_decode_bit
      Src: /src/h2o/deps/golombset/golombset.h:109,1
    - Dst: golombset_decode_bits
      Src: /src/h2o/deps/golombset/golombset.h:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - fixed_bits
    - value
    argTypes:
    - struct st_golombset_decode_t*
    - unsigned
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: golombset_decode_value
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_decode_bits
    - golombset_decode_bit
    linkageType: ''
    returnType: int
    signature: int golombset_decode_value(struct st_golombset_decode_t *ctx, unsigned
      fixed_bits, uint64_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: golombset_encode_value
      Src: /src/h2o/deps/golombset/golombset.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - fixed_bits
    - keys
    - num_keys
    - buf
    - bufsize
    argTypes:
    - unsigned
    - uint64_t*
    - size_t
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: golombset_encode
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_encode_value
    linkageType: ''
    returnType: int
    signature: int golombset_encode(unsigned fixed_bits, uint64_t *keys, size_t num_keys,
      void *buf, size_t *bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: golombset_decode_value
      Src: /src/h2o/deps/golombset/golombset.h:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - fixed_bits
    - buf
    - bufsize
    - keys
    - num_keys
    argTypes:
    - unsigned
    - void*
    - size_t
    - uint64_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 160
    functionName: golombset_decode
    functionSourceFile: /src/h2o/deps/golombset/golombset.h
    functionUses: 0
    functionsReached:
    - golombset_decode_value
    linkageType: ''
    returnType: int
    signature: int golombset_decode(unsigned fixed_bits, const void *buf, size_t bufsize,
      uint64_t *keys, size_t *num_keys)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: golombset_encode
      Src: /src/h2o/deps/golombset/test.c:35,1
    - Dst: fprintf
      Src: /src/h2o/deps/golombset/test.c:36,1
    - Dst: printf
      Src: /src/h2o/deps/golombset/test.c:39,1
    - Dst: golombset_decode
      Src: /src/h2o/deps/golombset/test.c:43,1
    - Dst: fprintf
      Src: /src/h2o/deps/golombset/test.c:44,1
    - Dst: fprintf
      Src: /src/h2o/deps/golombset/test.c:49,1
    - Dst: memcmp
      Src: /src/h2o/deps/golombset/test.c:52,1
    - Dst: fprintf
      Src: /src/h2o/deps/golombset/test.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/h2o/deps/golombset/test.c
    functionUses: 8
    functionsReached:
    - golombset_decode
    - memcmp
    - golombset_encode
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: yoml__strdup
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: char
    signature: char *yoml__strdup(yaml_char_t *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: yoml__scalar_get_line
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t yoml__scalar_get_line(yaml_event_t *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/yoml/yoml-parser.h:68,1
    - Dst: strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:69,1
    - Dst: yoml__strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:73,1
    - Dst: yoml__strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - filename
    - type
    - sz
    - anchor
    - tag
    - line
    - column
    argTypes:
    - char*
    - yoml_type_t
    - size_t
    - yaml_char_t*
    - yaml_char_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: yoml__new_node
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - yoml__strdup
    linkageType: ''
    returnType: yoml_t
    signature: "yoml_t *yoml__new_node(const char *filename, yoml_type_t type, size_t
      sz, yaml_char_t *anchor, yaml_char_t *tag,\n                                     size_t
      line, size_t column)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yoml__new_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:82,1
    - Dst: yoml__parse_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:91,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:95,1
    - Dst: realloc
      Src: /src/h2o/deps/yoml/yoml-parser.h:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - parser
    - event
    - parse_args
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: yoml__parse_sequence
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 0
    functionsReached:
    - yoml__new_node
    - yoml_free
    - realloc
    - yoml__parse_node
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml__parse_sequence(yaml_parser_t *parser, yaml_event_t *event,
      yoml_parse_args_t *parse_args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yoml__new_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:109,1
    - Dst: yoml__parse_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:118,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:122,1
    - Dst: yoml__parse_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:127,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:128,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:129,1
    - Dst: realloc
      Src: /src/h2o/deps/yoml/yoml-parser.h:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - parser
    - event
    - parse_args
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 140
    functionName: yoml__parse_mapping
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 0
    functionsReached:
    - yoml__new_node
    - yoml_free
    - realloc
    - yoml__parse_node
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml__parse_mapping(yaml_parser_t *parser, yaml_event_t *event,
      yoml_parse_args_t *parse_args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yoml/yoml-parser.h:152,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yoml/yoml-parser.h:156,1
    - Dst: yoml__new_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:161,1
    - Dst: yoml__strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:163,1
    - Dst: yoml__new_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:166,1
    - Dst: yoml__scalar_get_line
      Src: /src/h2o/deps/yoml/yoml-parser.h:167,1
    - Dst: yoml__strdup
      Src: /src/h2o/deps/yoml/yoml-parser.h:168,1
    - Dst: yoml_parse_args_t*::mem_set
      Src: /src/h2o/deps/yoml/yoml-parser.h:170,1
    - Dst: strlen
      Src: /src/h2o/deps/yoml/yoml-parser.h:170,1
    - Dst: yoml__parse_sequence
      Src: /src/h2o/deps/yoml/yoml-parser.h:173,1
    - Dst: yoml__parse_mapping
      Src: /src/h2o/deps/yoml/yoml-parser.h:176,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yoml/yoml-parser.h:185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - parser
    - unhandled
    - parse_args
    argTypes:
    - yaml_parser_t*
    - yaml_event_type_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 188
    functionName: yoml__parse_node
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 2
    functionsReached:
    - yoml__new_node
    - yoml__scalar_get_line
    - yoml__parse_mapping
    - yaml_event_delete
    - yoml__parse_sequence
    - yoml_parse_args_t*::mem_set
    - yaml_parser_parse
    - strlen
    - yoml__strdup
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml__parse_node(yaml_parser_t *parser, yaml_event_type_t *unhandled,
      yoml_parse_args_t *parse_args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yoml/yoml-parser.h:192,1
    - Dst: yoml__new_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:198,1
    - Dst: memcpy
      Src: /src/h2o/deps/yoml/yoml-parser.h:204,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/yoml-parser.h:213,1
    - Dst: memcpy
      Src: /src/h2o/deps/yoml/yoml-parser.h:222,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - dest
    - offset
    - delete_count
    - src
    - parse_args
    argTypes:
    - yoml_t**
    - size_t
    - size_t
    - yoml_t*
    - yoml_parse_args_t*
    assertStmts:
    - condition: (offset + delete_count <= (*dest)->data.mapping.size)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/h2o/deps/yoml/yoml-parser.h
    constantsTouched: []
    func_position:
      end: 238
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 238
    functionName: yoml__merge
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 1
    functionsReached:
    - yoml__new_node
    - strcmp
    - memcpy
    - yoml_free
    - assert
    linkageType: ''
    returnType: int
    signature: int yoml__merge(yoml_t **dest, size_t offset, size_t delete_count,
      yoml_t *src, yoml_parse_args_t *parse_args)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: yoml__resolve_merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:253,1
    - Dst: yoml__resolve_merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:262,1
    - Dst: yoml__resolve_merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:264,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/yoml-parser.h:267,1
    - Dst: yoml__merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:272,1
    - Dst: yoml__merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:282,1
    - Dst: assert
      Src: /src/h2o/deps/yoml/yoml-parser.h:290,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - target
    - parser
    - parse_args
    argTypes:
    - yoml_t**
    - yaml_parser_t*
    - yoml_parse_args_t*
    assertStmts:
    - condition: (!"unreachable")
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/h2o/deps/yoml/yoml-parser.h
    constantsTouched: []
    func_position:
      end: 295
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 295
    functionName: yoml__resolve_merge
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 1
    functionsReached:
    - yoml__merge
    - yoml__resolve_merge
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: int yoml__resolve_merge(yoml_t **target, yaml_parser_t *parser, yoml_parse_args_t
      *parse_args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: yoml__resolve_alias
      Src: /src/h2o/deps/yoml/yoml-parser.h:306,1
    - Dst: yoml__resolve_alias
      Src: /src/h2o/deps/yoml/yoml-parser.h:312,1
    - Dst: yoml__resolve_alias
      Src: /src/h2o/deps/yoml/yoml-parser.h:314,1
    - Dst: yoml_find_anchor
      Src: /src/h2o/deps/yoml/yoml-parser.h:319,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - target
    - doc
    - parser
    - parse_args
    argTypes:
    - yoml_t**
    - yoml_t*
    - yaml_parser_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 335
    functionName: yoml__resolve_alias
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 1
    functionsReached:
    - yoml__resolve_alias
    - yoml_free
    - yoml_find_anchor
    linkageType: ''
    returnType: int
    signature: int yoml__resolve_alias(yoml_t **target, yoml_t *doc, yaml_parser_t
      *parser, yoml_parse_args_t *parse_args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: yoml_parse_args_t*::resolve_tag::cb
      Src: /src/h2o/deps/yoml/yoml-parser.h:345,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:354,1
    - Dst: yoml__resolve_tag
      Src: /src/h2o/deps/yoml/yoml-parser.h:363,1
    - Dst: yoml__resolve_tag
      Src: /src/h2o/deps/yoml/yoml-parser.h:369,1
    - Dst: yoml__resolve_tag
      Src: /src/h2o/deps/yoml/yoml-parser.h:371,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - target
    - parser
    - parse_args
    argTypes:
    - yoml_t**
    - yaml_parser_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 380
    functionName: yoml__resolve_tag
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 1
    functionsReached:
    - yoml_free
    - yoml_parse_args_t*::resolve_tag::cb
    - yoml__resolve_tag
    linkageType: ''
    returnType: int
    signature: int yoml__resolve_tag(yoml_t **target, yaml_parser_t *parser, yoml_parse_args_t
      *parse_args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yoml__parse_node
      Src: /src/h2o/deps/yoml/yoml-parser.h:387,1
    - Dst: yoml__resolve_tag
      Src: /src/h2o/deps/yoml/yoml-parser.h:394,1
    - Dst: yoml__resolve_alias
      Src: /src/h2o/deps/yoml/yoml-parser.h:396,1
    - Dst: yoml__resolve_merge
      Src: /src/h2o/deps/yoml/yoml-parser.h:398,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml-parser.h:404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - parser
    - unhandled
    - parse_args
    argTypes:
    - yaml_parser_t*
    - yaml_event_type_t*
    - yoml_parse_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 406
    functionName: yoml_parse_document
    functionSourceFile: /src/h2o/deps/yoml/yoml-parser.h
    functionUses: 3
    functionsReached:
    - yoml__resolve_alias
    - yoml_free
    - yoml__parse_node
    - yoml__resolve_merge
    - yoml__resolve_tag
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml_parse_document(yaml_parser_t *parser, yaml_event_type_t
      *unhandled, yoml_parse_args_t *parse_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yoml/test-yoml.c:33,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yoml/test-yoml.c:34,1
    - Dst: strlen
      Src: /src/h2o/deps/yoml/test-yoml.c:34,1
    - Dst: yoml_parse_document
      Src: /src/h2o/deps/yoml/test-yoml.c:36,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yoml/test-yoml.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - s
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: parse
    functionSourceFile: /src/h2o/deps/yoml/test-yoml.c
    functionUses: 10
    functionsReached:
    - yaml_parser_initialize
    - yoml_parse_document
    - yaml_parser_delete
    - yaml_parser_set_input_string
    - strlen
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *parse(const char *fn, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mapping
    - key
    argTypes:
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: get_value
    functionSourceFile: /src/h2o/deps/yoml/test-yoml.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *get_value(yoml_t *mapping, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:57,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:58,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:59,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:59,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:60,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:61,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:61,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/test-yoml.c:62,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:64,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:71,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:72,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:72,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:73,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:74,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:76,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:76,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:77,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:78,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:78,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:80,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:80,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:81,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:82,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:82,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:84,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:84,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:85,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:86,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:86,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:88,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:88,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:89,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:90,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:90,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/test-yoml.c:91,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:93,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:98,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:99,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:99,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:100,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:101,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:103,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:103,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:104,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:105,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:107,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:107,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:108,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:109,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:109,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:111,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:111,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:112,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:113,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:113,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:115,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:115,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:116,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:117,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:117,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:119,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:119,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:120,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:121,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:121,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:123,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:123,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:124,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:125,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:125,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/test-yoml.c:126,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:128,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:134,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:135,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:135,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:136,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:137,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:138,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:140,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:140,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:141,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:142,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:143,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:145,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:145,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:146,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:147,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:147,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:149,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:149,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:150,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:151,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:151,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:153,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:160,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:161,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:162,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:163,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:164,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:165,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:166,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:166,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:167,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:168,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:168,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:169,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:170,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:170,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:171,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:172,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:172,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:173,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:174,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:174,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:175,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:176,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:176,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:177,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:178,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:178,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:179,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:180,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:180,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:182,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:200,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:201,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:203,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:204,1
    - Dst: get_value
      Src: /src/h2o/deps/yoml/test-yoml.c:205,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:206,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:207,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:208,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:208,1
    - Dst: get_value
      Src: /src/h2o/deps/yoml/test-yoml.c:209,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:210,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:211,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:212,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:212,1
    - Dst: get_value
      Src: /src/h2o/deps/yoml/test-yoml.c:213,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:214,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:215,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:216,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:216,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:219,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:227,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:228,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:229,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:230,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:231,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:232,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:233,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:233,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:234,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:235,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:235,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:236,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:237,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:237,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:238,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:239,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:239,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:240,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:241,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:242,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:242,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:243,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:244,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:244,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:245,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:246,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:246,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:247,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:248,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:248,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:249,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:250,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:250,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:251,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:252,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:252,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:254,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:264,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:265,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:266,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:267,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:268,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:269,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:270,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:270,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:271,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:272,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:272,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:273,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:274,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:274,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:275,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:276,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:276,1
    - Dst: parse
      Src: /src/h2o/deps/yoml/test-yoml.c:278,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:286,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:287,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:288,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:289,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:290,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:291,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:291,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:292,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:293,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:293,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:294,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:295,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:295,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:296,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:297,1
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/test-yoml.c:297,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:301,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:302,1
    - Dst: ok
      Src: /src/h2o/deps/yoml/test-yoml.c:303,1
    - Dst: done_testing
      Src: /src/h2o/deps/yoml/test-yoml.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 177
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 52
    functionDepth: 7
    functionLinenumber: 52
    functionLinenumberEnd: 307
    functionName: main
    functionSourceFile: /src/h2o/deps/yoml/test-yoml.c
    functionUses: 8
    functionsReached:
    - get_value
    - strcmp
    - yoml_free
    - ok
    - parse
    - done_testing
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yoml/yoml.h:76,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:78,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:79,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:80,1
    - Dst: mem_set
      Src: /src/h2o/deps/yoml/yoml.h:84,1
    - Dst: strlen
      Src: /src/h2o/deps/yoml/yoml.h:84,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:85,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml.h:89,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml.h:94,1
    - Dst: yoml_free
      Src: /src/h2o/deps/yoml/yoml.h:95,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:99,1
    - Dst: free
      Src: /src/h2o/deps/yoml/yoml.h:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - node
    - (*mem_set)(void *, int, size_t)
    argTypes:
    - yoml_t*
    - void*
    assertStmts:
    - condition: (node->_refcnt > 0)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/yoml/yoml.h
    constantsTouched: []
    func_position:
      end: 104
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 104
    functionName: yoml_free
    functionSourceFile: /src/h2o/deps/yoml/yoml.h
    functionUses: 12
    functionsReached:
    - mem_set
    - free
    - yoml_free
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void yoml_free(yoml_t *node, void *(*mem_set)(void *, int, size_t))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/yoml.h:111,1
    - Dst: yoml_find_anchor
      Src: /src/h2o/deps/yoml/yoml.h:117,1
    - Dst: yoml_find_anchor
      Src: /src/h2o/deps/yoml/yoml.h:122,1
    - Dst: yoml_find_anchor
      Src: /src/h2o/deps/yoml/yoml.h:123,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 131
    functionName: yoml_find_anchor
    functionSourceFile: /src/h2o/deps/yoml/yoml.h
    functionUses: 2
    functionsReached:
    - yoml_find_anchor
    - strcmp
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml_find_anchor(yoml_t *node, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yoml/yoml.h:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: yoml_get
    functionSourceFile: /src/h2o/deps/yoml/yoml.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *yoml_get(yoml_t *node, const char *name)
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 95
    functionName: _wsaErrorToErrno
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _wsaErrorToErrno(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wsaErrorToErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:98,1
    - Dst: WSAGetLastError
      Src: /src/h2o/deps/hiredis/sockcompat.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - success
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: _updateErrno
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _wsaErrorToErrno
    - WSAGetLastError
    linkageType: ''
    returnType: void
    signature: void _updateErrno(int success)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/h2o/deps/hiredis/sockcompat.c:105,1
    - Dst: MAKEWORD
      Src: /src/h2o/deps/hiredis/sockcompat.c:105,1
    - Dst: _wsaErrorToErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: _initWinsock
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - WSAStartup
    - _wsaErrorToErrno
    - MAKEWORD
    linkageType: ''
    returnType: int
    signature: int _initWinsock()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _initWinsock
      Src: /src/h2o/deps/hiredis/sockcompat.c:117,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/hiredis/sockcompat.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 4
    argNames:
    - node
    - service
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: win32_getaddrinfo
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _initWinsock
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: int win32_getaddrinfo(const char *node, const char *service, const
      struct addrinfo *hints, struct addrinfo **res)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gai_strerror
      Src: /src/h2o/deps/hiredis/sockcompat.c:146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: win32_gai_strerror
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - gai_strerror
    linkageType: ''
    returnType: char
    signature: char *win32_gai_strerror(int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/hiredis/sockcompat.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: win32_freeaddrinfo
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void win32_freeaddrinfo(struct addrinfo *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _initWinsock
      Src: /src/h2o/deps/hiredis/sockcompat.c:157,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:161,1
    - Dst: socket
      Src: /src/h2o/deps/hiredis/sockcompat.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: win32_socket
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _updateErrno
    - _initWinsock
    - socket
    linkageType: ''
    returnType: SOCKET
    signature: SOCKET win32_socket(int domain, int type, int protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/h2o/deps/hiredis/sockcompat.c:166,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - request
    - argp
    argTypes:
    - SOCKET
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: win32_ioctl
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - ioctlsocket
    - _updateErrno
    linkageType: ''
    returnType: int
    signature: int win32_ioctl(SOCKET fd, unsigned long request, unsigned long *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/h2o/deps/hiredis/sockcompat.c:172,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sockfd
    - addr
    - addrlen
    argTypes:
    - SOCKET
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: win32_bind
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - bind
    - _updateErrno
    linkageType: ''
    returnType: int
    signature: int win32_bind(SOCKET sockfd, const struct sockaddr *addr, socklen_t
      addrlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/h2o/deps/hiredis/sockcompat.c:178,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sockfd
    - addr
    - addrlen
    argTypes:
    - SOCKET
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: win32_connect
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - connect
    - _updateErrno
    linkageType: ''
    returnType: int
    signature: int win32_connect(SOCKET sockfd, const struct sockaddr *addr, socklen_t
      addrlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/h2o/deps/hiredis/sockcompat.c:205,1
    - Dst: getsockopt
      Src: /src/h2o/deps/hiredis/sockcompat.c:213,1
    - Dst: _wsaErrorToErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:219,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:223,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - sockfd
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - SOCKET
    - int
    - int
    - void*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 225
    functionName: win32_getsockopt
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _wsaErrorToErrno
    - _updateErrno
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int win32_getsockopt(SOCKET sockfd, int level, int optname, void *optval,
      socklen_t *optlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/sockcompat.c:232,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/sockcompat.c:234,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - sockfd
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - SOCKET
    - int
    - int
    - void*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: win32_setsockopt
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _updateErrno
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int win32_setsockopt(SOCKET sockfd, int level, int optname, const void
      *optval, socklen_t optlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/h2o/deps/hiredis/sockcompat.c:241,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: win32_close
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - closesocket
    - _updateErrno
    linkageType: ''
    returnType: int
    signature: int win32_close(SOCKET fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/h2o/deps/hiredis/sockcompat.c:247,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - SOCKET
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: win32_recv
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _updateErrno
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t win32_recv(SOCKET sockfd, void *buf, size_t len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/h2o/deps/hiredis/sockcompat.c:253,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - SOCKET
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: win32_send
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _updateErrno
    - send
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t win32_send(SOCKET sockfd, const void *buf, size_t len, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAPoll
      Src: /src/h2o/deps/hiredis/sockcompat.c:259,1
    - Dst: _updateErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fds
    - nfds
    - timeout
    argTypes:
    - struct pollfd*
    - nfds_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: win32_poll
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - WSAPoll
    - _updateErrno
    linkageType: ''
    returnType: int
    signature: int win32_poll(struct pollfd *fds, nfds_t nfds, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAIoctl
      Src: /src/h2o/deps/hiredis/sockcompat.c:273,1
    - Dst: _wsaErrorToErrno
      Src: /src/h2o/deps/hiredis/sockcompat.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sockfd
    - interval_ms
    argTypes:
    - SOCKET
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: win32_redisKeepAlive
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.c
    functionUses: 0
    functionsReached:
    - _wsaErrorToErrno
    - WSAIoctl
    linkageType: ''
    returnType: int
    signature: int win32_redisKeepAlive(SOCKET sockfd, int interval_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DICT_NOTUSED
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DICT_NOTUSED(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ht
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: dictFreeEntryVal
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictFreeEntryVal(ht, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ht
    - ','
    - entry
    - ','
    - _val_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: dictSetHashVal
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictSetHashVal(ht, entry, _val_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ht
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: dictFreeEntryKey
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictFreeEntryKey(ht, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ht
    - ','
    - entry
    - ','
    - _key_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: dictSetHashKey
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictSetHashKey(ht, entry, _key_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ht
    - ','
    - key1
    - ','
    - key2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: dictCompareHashKeys
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictCompareHashKeys(ht, key1, key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ht
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: dictHashKey
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictHashKey(ht, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - he
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: dictGetEntryKey
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictGetEntryKey(he)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - he
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: dictGetEntryVal
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictGetEntryVal(he)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ht
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: dictSlots
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictSlots(ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ht
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: dictSize
    functionSourceFile: /src/h2o/deps/hiredis/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dictSize(ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: test
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test(_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: test_cond
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_cond(_c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: test_skipped
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_skipped()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/h2o/deps/hiredis/test.c:82,1
    - Dst: usleep
      Src: /src/h2o/deps/hiredis/test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: millisleep
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - usleep
    - Sleep
    linkageType: ''
    returnType: void
    signature: void millisleep(int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/hiredis/test.c:91,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/h2o/deps/hiredis/test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: usec
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - gettimeofday
    linkageType: ''
    returnType: long long
    signature: long long usec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: assert
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 545
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:114,1
    - Dst: strstr
      Src: /src/h2o/deps/hiredis/test.c:117,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/test.c:120,1
    - Dst: strstr
      Src: /src/h2o/deps/hiredis/test.c:123,1
    - Dst: strtol
      Src: /src/h2o/deps/hiredis/test.c:127,1
    - Dst: strtol
      Src: /src/h2o/deps/hiredis/test.c:129,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:135,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:139,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/test.c:140,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:141,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - c
    - majorptr
    - minorptr
    argTypes:
    - redisContext*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: get_redis_version
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisCommand
    - strstr
    - exit
    - fprintf
    - freeReplyObject
    - strtol
    - strlen
    linkageType: ''
    returnType: void
    signature: void get_redis_version(redisContext *c, int *majorptr, int *minorptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:148,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:149,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:150,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:153,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:154,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:157,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:159,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts:
    - condition: (reply != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: select_database
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisCommand
    - exit
    - printf
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: redisContext
    signature: redisContext *select_database(redisContext *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:171,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:173,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - version
    argTypes:
    - redisContext*
    - int
    assertStmts:
    - condition: (reply != NULL && reply->type == expected)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: send_hello
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - redisCommand
    - assert
    linkageType: ''
    returnType: void
    signature: void send_hello(redisContext *c, int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:181,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:182,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - str
    argTypes:
    - redisContext*
    - char*
    assertStmts:
    - condition: (reply != NULL && reply->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: send_client_tracking
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - redisCommand
    - assert
    linkageType: ''
    returnType: void
    signature: void send_client_tracking(redisContext *c, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:190,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:191,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:192,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:193,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:194,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:195,1
    - Dst: redisFreeKeepFd
      Src: /src/h2o/deps/hiredis/test.c:199,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - c
    - keep_fd
    argTypes:
    - redisContext*
    - int
    assertStmts:
    - condition: (reply != NULL)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: disconnect
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisCommand
    - redisFree
    - redisFreeKeepFd
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: int
    signature: int disconnect(redisContext *c, int keep_fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisInitiateSSLWithContext
      Src: /src/h2o/deps/hiredis/test.c:206,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:208,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:209,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: do_ssl_handshake
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisFree
    - exit
    - printf
    - redisInitiateSSLWithContext
    linkageType: ''
    returnType: void
    signature: void do_ssl_handshake(redisContext *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: redisConnect
      Src: /src/h2o/deps/hiredis/test.c:221,1
    - Dst: redisConnect
      Src: /src/h2o/deps/hiredis/test.c:223,1
    - Dst: redisConnectUnix
      Src: /src/h2o/deps/hiredis/test.c:225,1
    - Dst: redisConnectUnix
      Src: /src/h2o/deps/hiredis/test.c:228,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:230,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:231,1
    - Dst: redisConnectFd
      Src: /src/h2o/deps/hiredis/test.c:232,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:235,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:239,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:240,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:242,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:243,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:244,1
    - Dst: do_ssl_handshake
      Src: /src/h2o/deps/hiredis/test.c:248,1
    - Dst: select_database
      Src: /src/h2o/deps/hiredis/test.c:251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (NULL)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 252
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 252
    functionName: do_connect
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - select_database
    - exit
    - redisConnect
    - redisConnectUnix
    - redisConnectFd
    - redisFree
    - disconnect
    - printf
    - do_ssl_handshake
    - assert
    linkageType: ''
    returnType: redisContext
    signature: redisContext *do_connect(struct config config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisReconnect
      Src: /src/h2o/deps/hiredis/test.c:255,1
    - Dst: do_ssl_handshake
      Src: /src/h2o/deps/hiredis/test.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - config
    argTypes:
    - redisContext*
    - struct config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: do_reconnect
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisReconnect
    - do_ssl_handshake
    linkageType: ''
    returnType: void
    signature: void do_reconnect(redisContext *c, struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:266,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:267,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:268,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:268,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:270,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:272,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:273,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:274,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:274,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:276,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:278,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:279,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:280,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:280,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:282,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:284,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:285,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:286,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:286,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:288,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:290,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:291,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:292,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:292,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:294,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:296,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:297,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:298,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:298,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:300,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:302,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:303,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:304,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:304,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:306,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:329,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:330,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:331,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:332,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:333,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:334,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:335,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:336,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:337,1
    - Dst: INTEGER_WIDTH_TEST
      Src: /src/h2o/deps/hiredis/test.c:338,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:342,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:343,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:344,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:346,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:347,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:348,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:357,1
    - Dst: redisFormatCommandArgv
      Src: /src/h2o/deps/hiredis/test.c:358,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:359,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:359,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:361,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:363,1
    - Dst: redisFormatCommandArgv
      Src: /src/h2o/deps/hiredis/test.c:364,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:365,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:365,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:367,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:372,1
    - Dst: redisFormatSdsCommandArgv
      Src: /src/h2o/deps/hiredis/test.c:373,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:374,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:374,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/test.c:376,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:379,1
    - Dst: redisFormatSdsCommandArgv
      Src: /src/h2o/deps/hiredis/test.c:380,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:381,1
    - Dst: strncmp
      Src: /src/h2o/deps/hiredis/test.c:381,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/test.c:383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 384
    functionName: test_format_commands
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - strncmp
    - test_cond
    - redisFormatCommandArgv
    - redisFormatSdsCommandArgv
    - INTEGER_WIDTH_TEST
    - hi_free
    - sdsfree
    - test
    - redisFormatCommand
    linkageType: ''
    returnType: void
    signature: void test_format_commands(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: INTEGER_WIDTH_TEST
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTEGER_WIDTH_TEST(fmt, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 328
    functionName: FLOAT_WIDTH_TEST
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLOAT_WIDTH_TEST(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:392,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:394,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/test.c:396,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:398,1
    - Dst: redisAppendFormattedCommand
      Src: /src/h2o/deps/hiredis/test.c:398,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:400,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:400,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:402,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:403,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (redisGetReply(c, (void*)&reply) == REDIS_OK)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: test_append_formatted_commands
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisGetReply
    - test_cond
    - do_connect
    - disconnect
    - freeReplyObject
    - hi_free
    - test
    - redisFormatCommand
    - assert
    - redisAppendFormattedCommand
    linkageType: ''
    returnType: void
    signature: void test_append_formatted_commands(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:411,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:413,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:414,1
    - Dst: redisEnableKeepAlive
      Src: /src/h2o/deps/hiredis/test.c:414,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:417,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:418,1
    - Dst: redisSetTcpUserTimeout
      Src: /src/h2o/deps/hiredis/test.c:418,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:420,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:421,1
    - Dst: redisSetTcpUserTimeout
      Src: /src/h2o/deps/hiredis/test.c:421,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 425
    functionName: test_tcp_options
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisEnableKeepAlive
    - test_cond
    - do_connect
    - redisFree
    - redisSetTcpUserTimeout
    - test
    linkageType: ''
    returnType: void
    signature: void test_tcp_options(struct config cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:433,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:434,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:435,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:436,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:437,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:438,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:439,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:443,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:444,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:445,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:446,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:447,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:448,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:449,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:450,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:451,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:453,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:454,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:456,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:458,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:459,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:461,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:465,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:467,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:470,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:471,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:472,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:473,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:475,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:476,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:477,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:478,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:479,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:482,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:483,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:485,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:486,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:487,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:488,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:489,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:490,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:491,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:492,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:494,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:495,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:496,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:497,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:498,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:501,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:502,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:504,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:505,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:506,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:507,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:508,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:509,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:510,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:511,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:513,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:514,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:515,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:516,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:517,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:518,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:519,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:520,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:522,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:523,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:524,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:525,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:526,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:527,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:528,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:529,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:531,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:532,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:534,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:535,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:536,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:537,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:538,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:539,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:541,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/test.c:544,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:547,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:549,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/test.c:549,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:550,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:551,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:551,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:552,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:553,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:556,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:557,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:558,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:559,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:560,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:561,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:562,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:563,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:565,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:566,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:567,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:568,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:569,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:570,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:571,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:572,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:575,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:576,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:578,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:579,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:580,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:581,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:583,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:584,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:586,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:587,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:588,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:589,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:590,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:591,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:592,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:594,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:595,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:597,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:598,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:599,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:600,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:601,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:602,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:604,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:605,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:606,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:607,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:608,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:609,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:610,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:611,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:614,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:615,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:618,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:619,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:620,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:621,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:622,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:625,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:626,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:629,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:630,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:631,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:632,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:633,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:635,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:636,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:637,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:640,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:641,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:642,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:643,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:644,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:648,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:651,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:652,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:654,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:655,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:656,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:657,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:658,1
    - Dst: fabs
      Src: /src/h2o/deps/hiredis/test.c:660,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:662,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:663,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:664,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:666,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:667,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:668,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:669,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:670,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:671,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:672,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:673,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:675,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:676,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:677,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:678,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:679,1
    - Dst: isinf
      Src: /src/h2o/deps/hiredis/test.c:681,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:683,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:684,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:686,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:687,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:688,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:689,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:690,1
    - Dst: isnan
      Src: /src/h2o/deps/hiredis/test.c:692,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:693,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:694,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:696,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:697,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:698,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:699,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:700,1
    - Dst: isnan
      Src: /src/h2o/deps/hiredis/test.c:702,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:703,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:704,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:706,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:707,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:708,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:709,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:710,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:712,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:713,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:715,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:716,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:717,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:718,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:719,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:720,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:721,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:722,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:724,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:725,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:726,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:727,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:728,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:731,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:732,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:734,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:735,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:736,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:737,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:738,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:741,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:742,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:744,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:745,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:746,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:747,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:748,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:749,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:750,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:751,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:753,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:754,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:755,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:756,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:757,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:762,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:767,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:770,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:771,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:773,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:774,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:775,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:776,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:777,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:782,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:785,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:792,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:793,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:795,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:796,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:797,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:798,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:799,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:802,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:803,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:804,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:806,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:807,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/test.c:808,1
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/test.c:809,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:810,1
    - Dst: fabs
      Src: /src/h2o/deps/hiredis/test.c:814,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:816,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:817,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/test.c:818,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 260
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reply != NULL && ((redisReply*)reply)->type == REDIS_REPLY_ARRAY)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ret == REDIS_OK)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ret == REDIS_ERR)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ret == REDIS_OK && reply == NULL)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 819
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 819
    functionName: test_reply_reader
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisReaderCreate
    - memcmp
    - test_cond
    - isnan
    - snprintf
    - redisReaderGetReply
    - strcmp
    - strcasecmp
    - freeReplyObject
    - fabs
    - redisReaderFree
    - isinf
    - test
    - assert
    - strlen
    - redisReaderFeed
    linkageType: ''
    returnType: void
    signature: void test_reply_reader(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:825,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:826,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:827,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:829,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:830,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 832
    functionName: test_free_null
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisFree
    - freeReplyObject
    - test
    - test_cond
    linkageType: ''
    returnType: void
    signature: void test_free_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: hi_malloc_fail
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *hi_malloc_fail(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 843
    functionName: hi_calloc_fail
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *hi_calloc_fail(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: hi_calloc_insecure
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *hi_calloc_insecure(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: hi_realloc_fail
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *hi_realloc_fail(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hiredisSetAllocators
      Src: /src/h2o/deps/hiredis/test.c:870,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:872,1
    - Dst: redisConnect
      Src: /src/h2o/deps/hiredis/test.c:873,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:874,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:876,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/test.c:877,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:878,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:881,1
    - Dst: hiredisSetAllocators
      Src: /src/h2o/deps/hiredis/test.c:883,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/test.c:884,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:885,1
    - Dst: hiredisResetAllocators
      Src: /src/h2o/deps/hiredis/test.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 889
    functionName: test_allocator_injection
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisReaderCreate
    - hiredisResetAllocators
    - test_cond
    - hi_calloc
    - redisConnect
    - hiredisSetAllocators
    - test
    linkageType: ''
    returnType: void
    signature: void test_allocator_injection(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/h2o/deps/hiredis/test.c:897,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:900,1
    - Dst: redisConnect
      Src: /src/h2o/deps/hiredis/test.c:902,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:903,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:905,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:906,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:907,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:908,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:909,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:910,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:911,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:912,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:913,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:914,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:915,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:917,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/hiredis/test.c:918,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:925,1
    - Dst: redisConnect
      Src: /src/h2o/deps/hiredis/test.c:926,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:927,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:928,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:929,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:933,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/test.c:936,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:937,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:938,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:939,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:940,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:942,1
    - Dst: redisConnectUnix
      Src: /src/h2o/deps/hiredis/test.c:943,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:944,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:945,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 947
    functionName: test_blocking_connection_errors
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - test_cond
    - freeaddrinfo
    - getaddrinfo
    - redisConnect
    - strcmp
    - redisConnectUnix
    - redisFree
    - printf
    - REDIS_OPTIONS_SET_TCP
    - test
    linkageType: ''
    returnType: void
    signature: void test_blocking_connection_errors(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:954,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - privdata
    - r
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (reply && reply->type == REDIS_REPLY_PUSH && reply->elements == 2)
      pos:
        line_end: 953
        line_start: 953
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 968
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 968
    functionName: push_handler
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void push_handler(void *privdata, void *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ac
    - reply
    argTypes:
    - redisAsyncContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 974
    functionName: push_handler_async
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void push_handler_async(redisAsyncContext *ac, void *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_hello
      Src: /src/h2o/deps/hiredis/test.c:983,1
    - Dst: send_client_tracking
      Src: /src/h2o/deps/hiredis/test.c:984,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:988,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:989,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:990,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:992,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:993,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:994,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:995,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:997,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:997,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:998,1
    - Dst: redisSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1000,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1001,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1002,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1005,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1006,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1007,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1008,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1009,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1011,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1012,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1013,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1014,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1015,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1016,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1017,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1021,1
    - Dst: redisSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1022,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1023,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1023,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1024,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1025,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1025,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1029,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1030,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1032,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1033,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1035,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1036,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1036,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1037,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1038,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1041,1
    - Dst: redisSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1042,1
    - Dst: send_client_tracking
      Src: /src/h2o/deps/hiredis/test.c:1046,1
    - Dst: send_hello
      Src: /src/h2o/deps/hiredis/test.c:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts:
    - condition: (old != NULL)
      pos:
        line_end: 1040
        line_start: 1040
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((reply = redisCommand(c, "GET key:0")) != NULL)
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((reply = redisCommand(c, "GET key:0")) != NULL)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (redisGetReply(c, (void**)&reply) == REDIS_OK)
      pos:
        line_end: 1035
        line_start: 1035
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL)
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((reply = redisCommand(c, "SET key:0 invalid")) != NULL)
      pos:
        line_end: 1024
        line_start: 1024
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1048
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1048
    functionName: test_resp3_push_handler
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisGetReply
    - redisCommand
    - redisSetPushCallback
    - test
    - test_cond
    - send_hello
    - freeReplyObject
    - send_client_tracking
    - assert
    linkageType: ''
    returnType: void
    signature: void test_resp3_push_handler(redisContext *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/test.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: get_redis_tcp_options
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    linkageType: ''
    returnType: redisOptions
    signature: redisOptions get_redis_tcp_options(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1061,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1062,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1063,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1063,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1064,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1065,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1067,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1068,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1069,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1069,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1070,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/test.c:1071,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1073,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1074,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1076,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1076,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1077,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1078,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1080,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1081,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1083,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1083,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1084,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1085,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1087,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1088,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1090,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1090,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1091,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/test.c:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: ((ac = redisAsyncConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1068
        line_start: 1068
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((c = redisConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1082
        line_start: 1082
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((c = redisConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1075
        line_start: 1075
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((c = redisConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1062
        line_start: 1062
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: ((ac = redisAsyncConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1089
        line_start: 1089
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1093
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1093
    functionName: test_resp3_push_options
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - redisAsyncConnectWithOptions
    - redisAsyncFree
    - test_cond
    - redisFree
    - test
    - assert
    - get_redis_tcp_options
    linkageType: ''
    returnType: void
    signature: void test_resp3_push_options(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1098
    functionName: free_privdata
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_privdata(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1105,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1106,1
    - Dst: REDIS_OPTIONS_SET_PRIVDATA
      Src: /src/h2o/deps/hiredis/test.c:1107,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1108,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1108,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1109,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1111,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1112,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: ((c = redisConnectWithOptions(&options)) != NULL)
      pos:
        line_end: 1107
        line_start: 1107
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1114
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1114
    functionName: test_privdata_hooks
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - test_cond
    - redisFree
    - REDIS_OPTIONS_SET_PRIVDATA
    - test
    - assert
    - get_redis_tcp_options
    linkageType: ''
    returnType: void
    signature: void test_privdata_hooks(struct config config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1121,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1123,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1124,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1125,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:1126,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1127,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1129,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1130,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1131,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:1132,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1133,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1135,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1136,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1137,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1138,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1139,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1140,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1141,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1143,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1144,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1145,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1146,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1147,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1148,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1150,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1151,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1152,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1154,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1155,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1156,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1157,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1160,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1161,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1162,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1163,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1165,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1166,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1166,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1167,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1167,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1168,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1169,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1171,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1172,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1173,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1177,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1178,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1178,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1179,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1179,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1180,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1180,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1181,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1182,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1186,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1187,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:1189,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1190,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1192,1
    - Dst: redisCommandArgv
      Src: /src/h2o/deps/hiredis/test.c:1195,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1196,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1197,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1200,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1201,1
    - Dst: redisAppendCommand
      Src: /src/h2o/deps/hiredis/test.c:1201,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1202,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1202,1
    - Dst: get_redis_version
      Src: /src/h2o/deps/hiredis/test.c:1204,1
    - Dst: test_resp3_push_handler
      Src: /src/h2o/deps/hiredis/test.c:1205,1
    - Dst: test_resp3_push_options
      Src: /src/h2o/deps/hiredis/test.c:1206,1
    - Dst: test_privdata_hooks
      Src: /src/h2o/deps/hiredis/test.c:1208,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:1210,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (redisAppendCommand(c, "PING") == REDIS_OK)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1211
    functionName: test_blocking_connection
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - test_resp3_push_handler
    - redisGetReply
    - redisCommand
    - test_resp3_push_options
    - memcmp
    - test_privdata_hooks
    - test_cond
    - do_connect
    - strcmp
    - redisAppendCommand
    - disconnect
    - strcasecmp
    - freeReplyObject
    - redisCommandArgv
    - get_redis_version
    - test
    - assert
    linkageType: ''
    returnType: void
    signature: void test_blocking_connection(struct config config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1216,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/test.c:1220,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1221,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1228
    functionName: detect_debug_sleep
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - exit
    - redisCommand
    - fprintf
    linkageType: ''
    returnType: int
    signature: int detect_debug_sleep(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1237,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1238,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1239,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1240,1
    - Dst: redisSetTimeout
      Src: /src/h2o/deps/hiredis/test.c:1243,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1244,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1245,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/test.c:1245,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1246,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:1247,1
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1249,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1250,1
    - Dst: detect_debug_sleep
      Src: /src/h2o/deps/hiredis/test.c:1251,1
    - Dst: redisAppendFormattedCommand
      Src: /src/h2o/deps/hiredis/test.c:1252,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/test.c:1252,1
    - Dst: redisContext*::funcs::write
      Src: /src/h2o/deps/hiredis/test.c:1255,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1256,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/test.c:1256,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/test.c:1257,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/test.c:1258,1
    - Dst: redisSetTimeout
      Src: /src/h2o/deps/hiredis/test.c:1262,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1263,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1265,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1266,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1268,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1269,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1271,1
    - Dst: millisleep
      Src: /src/h2o/deps/hiredis/test.c:1274,1
    - Dst: test_skipped
      Src: /src/h2o/deps/hiredis/test.c:1276,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1279,1
    - Dst: do_reconnect
      Src: /src/h2o/deps/hiredis/test.c:1280,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1281,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1282,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1282,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1283,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1285,1
    - Dst: do_reconnect
      Src: /src/h2o/deps/hiredis/test.c:1288,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1289,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1290,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1290,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1291,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:1293,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (s == (ssize_t)sdslen(c->obuf))
      pos:
        line_end: 1255
        line_start: 1255
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1294
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1294
    functionName: test_blocking_connection_timeouts
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - sdsempty
    - sdsfree
    - test
    - assert
    - redisCommand
    - millisleep
    - redisSetTimeout
    - redisAppendFormattedCommand
    - redisContext*::funcs::write
    - memcmp
    - test_cond
    - detect_debug_sleep
    - do_reconnect
    - do_connect
    - test_skipped
    - strlen
    - sdslen
    - strcmp
    - disconnect
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void test_blocking_connection_timeouts(struct config config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1303,1
    - Dst: get_redis_version
      Src: /src/h2o/deps/hiredis/test.c:1304,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1306,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1307,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1311,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/test.c:1311,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1312,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1313,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1315,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1324,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1325,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1327,1
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1329,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1330,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1332,1
    - Dst: redisSetTimeout
      Src: /src/h2o/deps/hiredis/test.c:1332,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1333,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1335,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1337,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: "(c->err == REDIS_ERR_EOF &&\n        strcmp(c->errstr,\"Server closed
        the connection\") == 0)"
      pos:
        line_end: 1324
        line_start: 1323
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (redisSetTimeout(c,tv) == REDIS_OK)
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1340
      start: 1296
    functionDepth: 3
    functionLinenumber: 1296
    functionLinenumberEnd: 1340
    functionName: test_blocking_io_errors
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisGetReply
    - redisCommand
    - test_cond
    - do_connect
    - strcmp
    - redisFree
    - strcasecmp
    - freeReplyObject
    - redisSetTimeout
    - get_redis_version
    - test
    - assert
    linkageType: ''
    returnType: void
    signature: void test_blocking_io_errors(struct config config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1345,1
    - Dst: redisConnectWithTimeout
      Src: /src/h2o/deps/hiredis/test.c:1351,1
    - Dst: redisConnectUnixWithTimeout
      Src: /src/h2o/deps/hiredis/test.c:1353,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1355,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1358,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1358,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1359,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1361,1
    - Dst: redisConnectWithTimeout
      Src: /src/h2o/deps/hiredis/test.c:1367,1
    - Dst: redisConnectUnixWithTimeout
      Src: /src/h2o/deps/hiredis/test.c:1369,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1371,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1374,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1374,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (NULL)
      pos:
        line_end: 1354
        line_start: 1354
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (NULL)
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1376
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1376
    functionName: test_invalid_timeout_errors
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithTimeout
    - test_cond
    - strcmp
    - redisConnectUnixWithTimeout
    - redisFree
    - test
    - assert
    linkageType: ''
    returnType: void
    signature: void test_invalid_timeout_errors(struct config config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/test.c:1381,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/test.c:1383,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1388
    functionName: hi_malloc_safe
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *hi_malloc_safe(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:1391,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1396,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1398,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1398,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1401,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1402,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1404,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1405,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1407,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1408,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1409,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1410,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1412,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1413,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1415,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1416,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1417,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1419,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1420,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1421,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1422,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1424,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1425,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1427,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1428,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1430,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1431,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1432,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1433,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1436,1
    - Dst: redisAppendCommand
      Src: /src/h2o/deps/hiredis/test.c:1438,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1439,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1441,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1441,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1442,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1444,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1445,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1446,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1447,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1449,1
    - Dst: redisAppendCommand
      Src: /src/h2o/deps/hiredis/test.c:1451,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1452,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1454,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1454,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1455,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1456,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1458,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1459,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1460,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1461,1
    - Dst: hi_malloc_safe
      Src: /src/h2o/deps/hiredis/test.c:1463,1
    - Dst: redisAppendCommand
      Src: /src/h2o/deps/hiredis/test.c:1465,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1466,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1468,1
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/test.c:1468,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1469,1
    - Dst: usec
      Src: /src/h2o/deps/hiredis/test.c:1471,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1472,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/test.c:1473,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1474,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:1476,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 1404
        line_start: 1404
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->elements == 500)
      pos:
        line_end: 1416
        line_start: 1416
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_ARRAY)
      pos:
        line_end: 1454
        line_start: 1454
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_INTEGER)
      pos:
        line_end: 1468
        line_start: 1468
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_ARRAY)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (redisGetReply(c, (void*)&replies[i]) == REDIS_OK)
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_INTEGER)
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (redisGetReply(c, (void*)&replies[i]) == REDIS_OK)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (redisGetReply(c, (void*)&replies[i]) == REDIS_OK)
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (replies[i] != NULL && replies[i]->elements == 500)
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1477
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1477
    functionName: test_throughput
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisGetReply
    - redisCommand
    - test
    - do_connect
    - redisAppendCommand
    - disconnect
    - printf
    - hi_free
    - hi_malloc_safe
    - usec
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void test_throughput(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/test.c:1593,1
    - Dst: event_base_loopbreak
      Src: /src/h2o/deps/hiredis/test.c:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1595
    functionName: async_disconnect
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void async_disconnect(redisAsyncContext *ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1600,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1602
    functionName: timeout_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void timeout_cb(int fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1607,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1609
    functionName: unexpected_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void unexpected_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1613,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1614,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1615,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1616,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1617,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:1618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - options
    - channel
    - msg
    argTypes:
    - redisOptions*
    - char*
    - char*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply->type == REDIS_REPLY_INTEGER && reply->integer == 1)
      pos:
        line_end: 1615
        line_start: 1615
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1619
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1619
    functionName: publish_msg
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - redisCommand
    - disconnect
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void publish_msg(redisOptions *options, const char* channel, const
      char* msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1625,1
    - Dst: async_disconnect
      Src: /src/h2o/deps/hiredis/test.c:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: (reply != NULL && reply->type == REDIS_REPLY_INTEGER)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1628
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1628
    functionName: integer_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - async_disconnect
    - assert
    linkageType: ''
    returnType: void
    signature: void integer_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1637,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1641,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1642,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1642,1
    - Dst: publish_msg
      Src: /src/h2o/deps/hiredis/test.c:1644,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1645,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1646,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1646,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1647,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1652,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1657,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1659,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1660,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1660,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1663,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: "(reply != NULL &&\n           reply->type == (state->resp3 ? REDIS_REPLY_PUSH
        : REDIS_REPLY_ARRAY) &&\n           reply->elements == 3)"
      pos:
        line_end: 1638
        line_start: 1636
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"mychannel\") == 0 &&\n               reply->element[2]->str
        == NULL)"
      pos:
        line_end: 1642
        line_start: 1641
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"mychannel\") == 0 &&\n               strcmp(reply->element[2]->str,\"Hello!\")
        == 0)"
      pos:
        line_end: 1646
        line_start: 1645
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"mychannel\") == 0 &&\n               reply->element[2]->str
        == NULL)"
      pos:
        line_end: 1660
        line_start: 1659
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1666
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1666
    functionName: subscribe_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - exit
    - strcmp
    - printf
    - publish_msg
    - assert
    linkageType: ''
    returnType: void
    signature: void subscribe_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1672,1
    - Dst: async_disconnect
      Src: /src/h2o/deps/hiredis/test.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: (reply != NULL && reply->type == REDIS_REPLY_ARRAY)
      pos:
        line_end: 1671
        line_start: 1671
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1675
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1675
    functionName: array_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - async_disconnect
    - assert
    linkageType: ''
    returnType: void
    signature: void array_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: (r == NULL)
      pos:
        line_end: 1679
        line_start: 1679
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1683
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1683
    functionName: null_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void null_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1686,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/test.c:1688,1
    - Dst: evtimer_new
      Src: /src/h2o/deps/hiredis/test.c:1689,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1690,1
    - Dst: evtimer_assign
      Src: /src/h2o/deps/hiredis/test.c:1692,1
    - Dst: evtimer_add
      Src: /src/h2o/deps/hiredis/test.c:1694,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1697,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1698,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1699,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/test.c:1700,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1704,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1707,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1710,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/test.c:1710,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/test.c:1711,1
    - Dst: event_base_free
      Src: /src/h2o/deps/hiredis/test.c:1712,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (timeout != NULL)
      pos:
        line_end: 1689
        line_start: 1689
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ac != NULL && ac->err == 0)
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (state.checkpoint == 3)
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1716
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1716
    functionName: test_pubsub_handling
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_free
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - test_cond
    - get_redis_tcp_options
    - event_base_free
    - event_base_new
    - evtimer_add
    - event_base_dispatch
    - evtimer_new
    - test
    - redisLibeventAttach
    - assert
    - evtimer_assign
    linkageType: ''
    returnType: void
    signature: void test_pubsub_handling(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1721,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ac
    - r
    argTypes:
    - redisAsyncContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1723
    functionName: unexpected_push_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void unexpected_push_cb(redisAsyncContext *ac, void *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1726,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/test.c:1728,1
    - Dst: evtimer_new
      Src: /src/h2o/deps/hiredis/test.c:1729,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1730,1
    - Dst: evtimer_assign
      Src: /src/h2o/deps/hiredis/test.c:1732,1
    - Dst: evtimer_add
      Src: /src/h2o/deps/hiredis/test.c:1734,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1737,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1738,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1739,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/test.c:1740,1
    - Dst: redisAsyncSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1743,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1746,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1750,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1753,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1754,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1755,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1757,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1760,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/test.c:1760,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/test.c:1761,1
    - Dst: event_base_free
      Src: /src/h2o/deps/hiredis/test.c:1762,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (ac != NULL && ac->err == 0)
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (state.checkpoint == 6)
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (timeout != NULL)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1766
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1766
    functionName: test_pubsub_handling_resp3
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_free
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - test_cond
    - redisAsyncSetPushCallback
    - get_redis_tcp_options
    - event_base_free
    - event_base_new
    - evtimer_add
    - event_base_dispatch
    - evtimer_new
    - test
    - redisLibeventAttach
    - assert
    - evtimer_assign
    linkageType: ''
    returnType: void
    signature: void test_pubsub_handling_resp3(struct config config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/h2o/deps/hiredis/test.c:1780,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1784,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1787,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1788,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1788,1
    - Dst: publish_msg
      Src: /src/h2o/deps/hiredis/test.c:1790,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1792,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1793,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1793,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1794,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1798,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1799,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1801,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: "(reply->type == (state->resp3 ? REDIS_REPLY_PUSH : REDIS_REPLY_ARRAY)
        &&\n           reply->elements == 3)"
      pos:
        line_end: 1784
        line_start: 1783
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"mychannel\") == 0 &&\n               reply->element[2]->str
        == NULL)"
      pos:
        line_end: 1788
        line_start: 1787
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"mychannel\") == 0 &&\n               strcmp(reply->element[2]->str,\"Hello!\")
        == 0)"
      pos:
        line_end: 1793
        line_start: 1792
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1804
      start: 1772
    functionDepth: 2
    functionLinenumber: 1772
    functionLinenumberEnd: 1804
    functionName: subscribe_with_timeout_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - exit
    - strcmp
    - printf
    - event_base_loopbreak
    - publish_msg
    - assert
    linkageType: ''
    returnType: void
    signature: void subscribe_with_timeout_cb(redisAsyncContext *ac, void *r, void
      *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1807,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/test.c:1809,1
    - Dst: evtimer_new
      Src: /src/h2o/deps/hiredis/test.c:1810,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1811,1
    - Dst: evtimer_assign
      Src: /src/h2o/deps/hiredis/test.c:1813,1
    - Dst: evtimer_add
      Src: /src/h2o/deps/hiredis/test.c:1815,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1818,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1819,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1820,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/test.c:1821,1
    - Dst: redisAsyncSetTimeout
      Src: /src/h2o/deps/hiredis/test.c:1825,1
    - Dst: redisAsyncSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1828,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1831,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1835,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1838,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/test.c:1838,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/test.c:1839,1
    - Dst: event_base_free
      Src: /src/h2o/deps/hiredis/test.c:1840,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (event_base_dispatch(base) == 0)
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (timeout != NULL)
      pos:
        line_end: 1810
        line_start: 1810
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ac != NULL && ac->err == 0)
      pos:
        line_end: 1819
        line_start: 1819
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1844
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1844
    functionName: test_command_timeout_during_pubsub
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_free
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - test_cond
    - redisAsyncSetPushCallback
    - get_redis_tcp_options
    - redisAsyncSetTimeout
    - event_base_free
    - event_base_new
    - evtimer_add
    - event_base_dispatch
    - evtimer_new
    - test
    - redisLibeventAttach
    - assert
    - evtimer_assign
    linkageType: ''
    returnType: void
    signature: void test_command_timeout_during_pubsub(struct config config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1851,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1854,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1855,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1855,1
    - Dst: publish_msg
      Src: /src/h2o/deps/hiredis/test.c:1856,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1858,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1859,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1859,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1860,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1864,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1868,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1873,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1874,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1875,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1875,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1878,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: "(reply != NULL && reply->type == REDIS_REPLY_ARRAY &&\n           reply->elements
        == 3)"
      pos:
        line_end: 1851
        line_start: 1850
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strcmp(reply->element[1]->str,"A") == 0)
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: "(strcmp(reply->element[1]->str,\"A\") == 0 &&\n               strcmp(reply->element[2]->str,\"Hello!\")
        == 0)"
      pos:
        line_end: 1859
        line_start: 1858
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strcmp(reply->element[1]->str,"A") == 0)
      pos:
        line_end: 1874
        line_start: 1874
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1881
      start: 1847
    functionDepth: 2
    functionLinenumber: 1847
    functionLinenumberEnd: 1881
    functionName: subscribe_channel_a_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - exit
    - strcmp
    - printf
    - publish_msg
    - assert
    linkageType: ''
    returnType: void
    signature: void subscribe_channel_a_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1889,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1892,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1893,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1893,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1895,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1896,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:1896,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:1899,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:1900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: "(reply != NULL && reply->type == REDIS_REPLY_ARRAY &&\n           reply->elements
        == 3)"
      pos:
        line_end: 1889
        line_start: 1888
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strcmp(reply->element[1]->str,"B") == 0)
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strcmp(reply->element[1]->str,"B") == 0)
      pos:
        line_end: 1895
        line_start: 1895
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1902
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1902
    functionName: subscribe_channel_b_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    - assert
    - strcmp
    linkageType: ''
    returnType: void
    signature: void subscribe_channel_b_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1912,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/test.c:1914,1
    - Dst: evtimer_new
      Src: /src/h2o/deps/hiredis/test.c:1915,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1916,1
    - Dst: evtimer_assign
      Src: /src/h2o/deps/hiredis/test.c:1918,1
    - Dst: evtimer_add
      Src: /src/h2o/deps/hiredis/test.c:1920,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:1923,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1924,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1925,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/test.c:1926,1
    - Dst: redisAsyncSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:1929,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1933,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1934,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1937,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/test.c:1937,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/test.c:1938,1
    - Dst: event_base_free
      Src: /src/h2o/deps/hiredis/test.c:1939,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:1942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (timeout != NULL)
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ac != NULL && ac->err == 0)
      pos:
        line_end: 1924
        line_start: 1924
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (event_base_dispatch(base) == 0)
      pos:
        line_end: 1936
        line_start: 1936
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1943
      start: 1911
    functionDepth: 2
    functionLinenumber: 1911
    functionLinenumberEnd: 1943
    functionName: test_pubsub_multiple_channels
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_free
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - test_cond
    - redisAsyncSetPushCallback
    - get_redis_tcp_options
    - event_base_free
    - event_base_new
    - evtimer_add
    - event_base_dispatch
    - evtimer_new
    - test
    - redisLibeventAttach
    - assert
    - evtimer_assign
    linkageType: ''
    returnType: void
    signature: void test_pubsub_multiple_channels(struct config config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/h2o/deps/hiredis/test.c:1952,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1956,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1961,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1962,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1963,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1964,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1965,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1966,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1969,1
    - Dst: strstr
      Src: /src/h2o/deps/hiredis/test.c:1969,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:1970,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1971,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/test.c:1972,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1973,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/test.c:1974,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/test.c:1975,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1978,1
    - Dst: strstr
      Src: /src/h2o/deps/hiredis/test.c:1978,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:1980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - ac
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: (reply->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 1963
        line_start: 1963
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strstr(reply->str,"first") != NULL)
      pos:
        line_end: 1968
        line_start: 1968
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (c != NULL)
      pos:
        line_end: 1970
        line_start: 1970
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (c != NULL)
      pos:
        line_end: 1961
        line_start: 1961
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 1972
        line_start: 1972
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (strstr(reply->str,"second") != NULL)
      pos:
        line_end: 1977
        line_start: 1977
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL && reply->type == REDIS_REPLY_STATUS)
      pos:
        line_end: 1955
        line_start: 1955
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 1982
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1982
    functionName: monitor_cb
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - redisCommand
    - redisAsyncCommand
    - strstr
    - redisFree
    - event_base_loopbreak
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void monitor_cb(redisAsyncContext *ac, void *r, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:1989,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/test.c:1991,1
    - Dst: evtimer_new
      Src: /src/h2o/deps/hiredis/test.c:1992,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:1993,1
    - Dst: evtimer_assign
      Src: /src/h2o/deps/hiredis/test.c:1995,1
    - Dst: evtimer_add
      Src: /src/h2o/deps/hiredis/test.c:1997,1
    - Dst: get_redis_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:2000,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:2001,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2002,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/test.c:2003,1
    - Dst: redisAsyncSetPushCallback
      Src: /src/h2o/deps/hiredis/test.c:2006,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:2010,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2013,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/test.c:2013,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/test.c:2014,1
    - Dst: event_base_free
      Src: /src/h2o/deps/hiredis/test.c:2015,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (timeout != NULL)
      pos:
        line_end: 1992
        line_start: 1992
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (ac != NULL && ac->err == 0)
      pos:
        line_end: 2001
        line_start: 2001
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (state.checkpoint == 3)
      pos:
        line_end: 2017
        line_start: 2017
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2019
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 2019
    functionName: test_monitor
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - event_free
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - test_cond
    - redisAsyncSetPushCallback
    - get_redis_tcp_options
    - event_base_free
    - event_base_new
    - evtimer_add
    - event_base_dispatch
    - evtimer_new
    - test
    - redisLibeventAttach
    - assert
    - evtimer_assign
    linkageType: ''
    returnType: void
    signature: void test_monitor(struct config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2056
    functionName: asCleanup
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void asCleanup(void* data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2062,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2063,1
    - Dst: strcpy
      Src: /src/h2o/deps/hiredis/test.c:2065,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/test.c:2072,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:2076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts:
    - condition: (t == &astest)
      pos:
        line_end: 2061
        line_start: 2061
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (t->connects == 0)
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2078
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2078
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncDisconnect
    - redisAsyncCommand
    - assert
    - strcpy
    linkageType: ''
    returnType: void
    signature: void connectCallback(redisAsyncContext *c, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2080,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2081,1
    - Dst: strcpy
      Src: /src/h2o/deps/hiredis/test.c:2083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts:
    - condition: (c->data == (void*)&astest)
      pos:
        line_end: 2079
        line_start: 2079
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.disconnects == 0)
      pos:
        line_end: 2080
        line_start: 2080
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2087
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2087
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - assert
    - strcpy
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2093,1
    - Dst: strcpy
      Src: /src/h2o/deps/hiredis/test.c:2096,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2100,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2100,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/test.c:2102,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2107,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2107,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:2110,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2111,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/test.c:2113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - ac
    - _reply
    - _privdata
    argTypes:
    - struct redisAsyncContext*
    - void*
    - void*
    assertStmts:
    - condition: (t == &astest)
      pos:
        line_end: 2092
        line_start: 2092
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL && reply->type == REDIS_REPLY_STATUS && strcmp(reply->str,
        "PONG") == 0)
      pos:
        line_end: 2099
        line_start: 2099
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (reply != NULL && reply->type == REDIS_REPLY_STATUS && strcmp(reply->str,
        "PONG") == 0)
      pos:
        line_end: 2106
        line_start: 2106
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (status == REDIS_OK)
      pos:
        line_end: 2110
        line_start: 2110
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2116
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2116
    functionName: commandCallback
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - redisAsyncFree
    - strcmp
    - assert
    - strcpy
    linkageType: ''
    returnType: void
    signature: void commandCallback(struct redisAsyncContext *ac, void* _reply, void*
      _privdata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/hiredis/test.c:2121,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/test.c:2129,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/test.c:2133,1
    - Dst: redisConnectUnix
      Src: /src/h2o/deps/hiredis/test.c:2140,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:2142,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2143,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/test.c:2147,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2148,1
    - Dst: redisPollAttach
      Src: /src/h2o/deps/hiredis/test.c:2152,1
    - Dst: redisAsyncSetConnectCallbackNC
      Src: /src/h2o/deps/hiredis/test.c:2153,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/test.c:2154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - config
    - testno
    argTypes:
    - struct config
    - astest_no
    assertStmts:
    - condition: (c)
      pos:
        line_end: 2147
        line_start: 2147
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2156
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2156
    functionName: do_aconnect
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisAsyncConnectWithOptions
    - redisPollAttach
    - redisConnectUnix
    - disconnect
    - printf
    - redisAsyncSetDisconnectCallback
    - redisAsyncSetConnectCallbackNC
    - REDIS_OPTIONS_SET_TCP
    - memset
    - assert
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *do_aconnect(struct config config, astest_no testno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2160
    functionName: as_printerr
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void as_printerr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2167
    functionName: ASASSERT
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASASSERT(e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2173,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2174,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2175,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2177,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2178,1
    - Dst: ASASSERT
      Src: /src/h2o/deps/hiredis/test.c:2179,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2180,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2181,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2183,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2184,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/test.c:2185,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2186,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2187,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2188,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2192,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2195,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2196,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2197,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2199,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2200,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2205,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2206,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2211,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2212,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2214,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:2215,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2216,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2218,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2219,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2225,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2227,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2229,1
    - Dst: millisleep
      Src: /src/h2o/deps/hiredis/test.c:2231,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/test.c:2232,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2233,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2235,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2236,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2243,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2244,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2246,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2247,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2248,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2249,1
    - Dst: test
      Src: /src/h2o/deps/hiredis/test.c:2254,1
    - Dst: do_aconnect
      Src: /src/h2o/deps/hiredis/test.c:2255,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/test.c:2258,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2259,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2260,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2261,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/test.c:2262,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct config
    assertStmts:
    - condition: (astest.connected == -1)
      pos:
        line_end: 2199
        line_start: 2199
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (status == REDIS_OK)
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.connects == 1)
      pos:
        line_end: 2247
        line_start: 2247
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.connected == 0)
      pos:
        line_end: 2258
        line_start: 2258
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (c)
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.ac == NULL)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (c)
      pos:
        line_end: 2195
        line_start: 2195
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (status == REDIS_OK)
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.connected == 0)
      pos:
        line_end: 2246
        line_start: 2246
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.connects == 1)
      pos:
        line_end: 2259
        line_start: 2259
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.connects == 1)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.disconnects == 0)
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.disconnects == 1)
      pos:
        line_end: 2260
        line_start: 2260
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.ac != NULL)
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.disconnects == 1)
      pos:
        line_end: 2185
        line_start: 2185
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (c->err == 0)
      pos:
        line_end: 2196
        line_start: 2196
        source_file: /src/h2o/deps/hiredis/test.c
    - condition: (astest.ac == NULL)
      pos:
        line_end: 2204
        line_start: 2204
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2263
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2263
    functionName: test_async_polling
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 0
    functionsReached:
    - redisPollTick
    - do_aconnect
    - ASASSERT
    - redisAsyncFree
    - redisAsyncCommand
    - millisleep
    - test_cond
    - test
    - assert
    linkageType: ''
    returnType: void
    signature: void test_async_polling(struct config config)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2284,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2287,1
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/test.c:2289,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2290,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2293,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2295,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2297,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2300,1
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/test.c:2302,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2303,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2306,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2309,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/test.c:2312,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/test.c:2317,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/test.c:2318,1
    - Dst: signal
      Src: /src/h2o/deps/hiredis/test.c:2325,1
    - Dst: access
      Src: /src/h2o/deps/hiredis/test.c:2327,1
    - Dst: test_allocator_injection
      Src: /src/h2o/deps/hiredis/test.c:2334,1
    - Dst: test_format_commands
      Src: /src/h2o/deps/hiredis/test.c:2336,1
    - Dst: test_reply_reader
      Src: /src/h2o/deps/hiredis/test.c:2337,1
    - Dst: test_blocking_connection_errors
      Src: /src/h2o/deps/hiredis/test.c:2338,1
    - Dst: test_free_null
      Src: /src/h2o/deps/hiredis/test.c:2339,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2341,1
    - Dst: test_blocking_connection
      Src: /src/h2o/deps/hiredis/test.c:2343,1
    - Dst: test_blocking_connection_timeouts
      Src: /src/h2o/deps/hiredis/test.c:2344,1
    - Dst: test_blocking_io_errors
      Src: /src/h2o/deps/hiredis/test.c:2345,1
    - Dst: test_invalid_timeout_errors
      Src: /src/h2o/deps/hiredis/test.c:2346,1
    - Dst: test_append_formatted_commands
      Src: /src/h2o/deps/hiredis/test.c:2347,1
    - Dst: test_tcp_options
      Src: /src/h2o/deps/hiredis/test.c:2348,1
    - Dst: test_throughput
      Src: /src/h2o/deps/hiredis/test.c:2349,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2351,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2353,1
    - Dst: test_blocking_connection
      Src: /src/h2o/deps/hiredis/test.c:2355,1
    - Dst: test_blocking_connection_timeouts
      Src: /src/h2o/deps/hiredis/test.c:2356,1
    - Dst: test_blocking_io_errors
      Src: /src/h2o/deps/hiredis/test.c:2357,1
    - Dst: test_invalid_timeout_errors
      Src: /src/h2o/deps/hiredis/test.c:2358,1
    - Dst: test_throughput
      Src: /src/h2o/deps/hiredis/test.c:2359,1
    - Dst: test_skipped
      Src: /src/h2o/deps/hiredis/test.c:2361,1
    - Dst: redisInitOpenSSL
      Src: /src/h2o/deps/hiredis/test.c:2367,1
    - Dst: redisCreateSSLContext
      Src: /src/h2o/deps/hiredis/test.c:2368,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/test.c:2369,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2371,1
    - Dst: test_blocking_connection
      Src: /src/h2o/deps/hiredis/test.c:2374,1
    - Dst: test_blocking_connection_timeouts
      Src: /src/h2o/deps/hiredis/test.c:2375,1
    - Dst: test_blocking_io_errors
      Src: /src/h2o/deps/hiredis/test.c:2376,1
    - Dst: test_invalid_timeout_errors
      Src: /src/h2o/deps/hiredis/test.c:2377,1
    - Dst: test_append_formatted_commands
      Src: /src/h2o/deps/hiredis/test.c:2378,1
    - Dst: test_throughput
      Src: /src/h2o/deps/hiredis/test.c:2379,1
    - Dst: redisFreeSSLContext
      Src: /src/h2o/deps/hiredis/test.c:2381,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2388,1
    - Dst: do_connect
      Src: /src/h2o/deps/hiredis/test.c:2392,1
    - Dst: get_redis_version
      Src: /src/h2o/deps/hiredis/test.c:2393,1
    - Dst: disconnect
      Src: /src/h2o/deps/hiredis/test.c:2394,1
    - Dst: test_pubsub_handling
      Src: /src/h2o/deps/hiredis/test.c:2396,1
    - Dst: test_pubsub_multiple_channels
      Src: /src/h2o/deps/hiredis/test.c:2397,1
    - Dst: test_monitor
      Src: /src/h2o/deps/hiredis/test.c:2398,1
    - Dst: test_pubsub_handling_resp3
      Src: /src/h2o/deps/hiredis/test.c:2400,1
    - Dst: test_command_timeout_during_pubsub
      Src: /src/h2o/deps/hiredis/test.c:2401,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2406,1
    - Dst: test_async_polling
      Src: /src/h2o/deps/hiredis/test.c:2407,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2410,1
    - Dst: test_async_polling
      Src: /src/h2o/deps/hiredis/test.c:2411,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2415,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2417,1
    - Dst: test_blocking_connection
      Src: /src/h2o/deps/hiredis/test.c:2419,1
    - Dst: test_skipped
      Src: /src/h2o/deps/hiredis/test.c:2421,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2426,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2428,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/test.c:2433,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 145
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (_ssl_ctx != NULL)
      pos:
        line_end: 2368
        line_start: 2368
        source_file: /src/h2o/deps/hiredis/test.c
    constantsTouched: []
    func_position:
      end: 2435
      start: 2266
    functionDepth: 4
    functionLinenumber: 2266
    functionLinenumberEnd: 2435
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/test.c
    functionUses: 8
    functionsReached:
    - redisCreateSSLContext
    - test_blocking_connection_timeouts
    - test_blocking_io_errors
    - test_blocking_connection_errors
    - test_monitor
    - test_allocator_injection
    - assert
    - test_command_timeout_during_pubsub
    - test_pubsub_handling
    - test_format_commands
    - test_tcp_options
    - signal
    - printf
    - test_pubsub_multiple_channels
    - fprintf
    - test_append_formatted_commands
    - test_async_polling
    - access
    - redisInitOpenSSL
    - test_invalid_timeout_errors
    - exit
    - test_free_null
    - do_connect
    - test_skipped
    - test_reply_reader
    - redisFreeSSLContext
    - test_throughput
    - atoi
    - strcmp
    - test_pubsub_handling_resp3
    - disconnect
    - get_redis_version
    - test_blocking_connection
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mallocFn
      Src: /src/h2o/deps/hiredis/alloc.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: hi_malloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.h
    functionUses: 1
    functionsReached:
    - mallocFn
    linkageType: ''
    returnType: void
    signature: void *hi_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callocFn
      Src: /src/h2o/deps/hiredis/alloc.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: hi_calloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.h
    functionUses: 1
    functionsReached:
    - callocFn
    linkageType: ''
    returnType: void
    signature: void *hi_calloc(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reallocFn
      Src: /src/h2o/deps/hiredis/alloc.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: hi_realloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.h
    functionUses: 0
    functionsReached:
    - reallocFn
    linkageType: ''
    returnType: void
    signature: void *hi_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdupFn
      Src: /src/h2o/deps/hiredis/alloc.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: hi_strdup
    functionSourceFile: /src/h2o/deps/hiredis/alloc.h
    functionUses: 0
    functionsReached:
    - strdupFn
    linkageType: ''
    returnType: char
    signature: char *hi_strdup(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeFn
      Src: /src/h2o/deps/hiredis/alloc.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: hi_free
    functionSourceFile: /src/h2o/deps/hiredis/alloc.h
    functionUses: 3
    functionsReached:
    - freeFn
    linkageType: ''
    returnType: void
    signature: void hi_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: redisReaderSetPrivdata
    functionSourceFile: /src/h2o/deps/hiredis/read.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: redisReaderSetPrivdata(_r, _p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: redisReaderGetObject
    functionSourceFile: /src/h2o/deps/hiredis/read.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: redisReaderGetObject(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: redisReaderGetError
    functionSourceFile: /src/h2o/deps/hiredis/read.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: redisReaderGetError(_r)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: sdsHdrSize
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sdsHdrSize(char type)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - string_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: sdsReqType
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char sdsReqType(size_t string_size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sdsReqType
      Src: /src/h2o/deps/hiredis/sds.c:86,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:90,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:94,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/sds.c:97,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:106,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:113,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:120,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:127,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - init
    - initlen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 138
    functionName: sdsnewlen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - SDS_HDR_VAR
    - sdsHdrSize
    - s_malloc
    - sdsReqType
    - memcpy
    - memset
    linkageType: ''
    returnType: sds
    signature: sds sdsnewlen(const void *init, size_t initlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: sdsempty
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 1
    functionsReached:
    - sdsnewlen
    linkageType: ''
    returnType: sds
    signature: sds sdsempty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:148,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - init
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: sdsnew
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - strlen
    - sdsnewlen
    linkageType: ''
    returnType: sds
    signature: sds sdsnew(const char *init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:154,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: sdsdup
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - sdsnewlen
    linkageType: ''
    returnType: sds
    signature: sds sdsdup(const sds s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:160,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: sdsfree
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 2
    functionsReached:
    - sdsHdrSize
    - s_free
    linkageType: ''
    returnType: void
    signature: void sdsfree(sds s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:178,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: sdsupdatelen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdssetlen
    - strlen
    linkageType: ''
    returnType: void
    signature: void sdsupdatelen(sds s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: sdsclear
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdssetlen
    linkageType: ''
    returnType: void
    signature: void sdsclear(sds s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:199,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:207,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:208,1
    - Dst: sdsReqType
      Src: /src/h2o/deps/hiredis/sds.c:216,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:223,1
    - Dst: s_realloc
      Src: /src/h2o/deps/hiredis/sds.c:226,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:232,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:234,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:235,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:238,1
    - Dst: sdssetalloc
      Src: /src/h2o/deps/hiredis/sds.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - s
    - addlen
    argTypes:
    - sds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 242
    functionName: sdsMakeRoomFor
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - s_free
    - sdsHdrSize
    - s_realloc
    - sdsavail
    - s_malloc
    - sdssetalloc
    - sdsReqType
    - memcpy
    - sdssetlen
    linkageType: ''
    returnType: sds
    signature: sds sdsMakeRoomFor(sds s, size_t addlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:254,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:255,1
    - Dst: sdsReqType
      Src: /src/h2o/deps/hiredis/sds.c:257,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:258,1
    - Dst: s_realloc
      Src: /src/h2o/deps/hiredis/sds.c:260,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:264,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:266,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:267,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:270,1
    - Dst: sdssetalloc
      Src: /src/h2o/deps/hiredis/sds.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: sdsRemoveFreeSpace
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - s_free
    - sdsHdrSize
    - s_realloc
    - s_malloc
    - sdssetalloc
    - sdsReqType
    - memcpy
    - sdssetlen
    linkageType: ''
    returnType: sds
    signature: sds sdsRemoveFreeSpace(sds s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsalloc
      Src: /src/h2o/deps/hiredis/sds.c:284,1
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: sdsAllocSize
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsHdrSize
    - sdsalloc
    linkageType: ''
    returnType: size_t
    signature: size_t sdsAllocSize(sds s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsHdrSize
      Src: /src/h2o/deps/hiredis/sds.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: sdsAllocPtr
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsHdrSize
    linkageType: ''
    returnType: void
    signature: void *sdsAllocPtr(sds s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SDS_TYPE_5_LEN
      Src: /src/h2o/deps/hiredis/sds.c:323,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/sds.c:324,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:330,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/sds.c:331,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:336,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/sds.c:337,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:342,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/sds.c:343,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.c:348,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/sds.c:349,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 2
    argNames:
    - s
    - incr
    argTypes:
    - sds
    - int
    assertStmts:
    - condition: ((incr >= 0 && sh->alloc-sh->len >= incr) || (incr < 0 && sh->len
        >= (unsigned int)(-incr)))
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/h2o/deps/hiredis/sds.c
    - condition: ((incr > 0 && oldlen+incr < 32) || (incr < 0 && oldlen >= (unsigned
        int)(-incr)))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/h2o/deps/hiredis/sds.c
    - condition: ((incr >= 0 && sh->alloc-sh->len >= incr) || (incr < 0 && sh->len
        >= (unsigned int)(-incr)))
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/h2o/deps/hiredis/sds.c
    - condition: ((incr >= 0 && sh->alloc-sh->len >= (unsigned int)incr) || (incr
        < 0 && sh->len >= (unsigned int)(-incr)))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/h2o/deps/hiredis/sds.c
    - condition: ((incr >= 0 && sh->alloc-sh->len >= (uint64_t)incr) || (incr < 0
        && sh->len >= (uint64_t)(-incr)))
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/h2o/deps/hiredis/sds.c
    constantsTouched: []
    func_position:
      end: 356
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 356
    functionName: sdsIncrLen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - SDS_TYPE_5_LEN
    - assert
    - SDS_HDR_VAR
    linkageType: ''
    returnType: void
    signature: void sdsIncrLen(sds s, int incr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:364,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:367,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/sds.c:371,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - sds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 374
    functionName: sdsgrowzero
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - memset
    - sdssetlen
    - sdsMakeRoomFor
    linkageType: ''
    returnType: sds
    signature: sds sdsgrowzero(sds s, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:382,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:384,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:386,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - t
    - len
    argTypes:
    - sds
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: sdscatlen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sdslen
    - sdssetlen
    - sdsMakeRoomFor
    linkageType: ''
    returnType: sds
    signature: sds sdscatlen(sds s, const void *t, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:397,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - sds
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: sdscat
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - strlen
    - sdscatlen
    linkageType: ''
    returnType: sds
    signature: sds sdscat(sds s, const char *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:405,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - sds
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: sdscatsds
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - sdscatlen
    linkageType: ''
    returnType: sds
    signature: sds sdscatsds(sds s, const sds t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sdsalloc
      Src: /src/h2o/deps/hiredis/sds.c:411,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:412,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:412,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:415,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - t
    - len
    argTypes:
    - sds
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: sdscpylen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - memcpy
    - sdsMakeRoomFor
    - sdssetlen
    - sdsalloc
    linkageType: ''
    returnType: sds
    signature: sds sdscpylen(sds s, const char *t, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdscpylen
      Src: /src/h2o/deps/hiredis/sds.c:424,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - sds
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: sdscpy
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdscpylen
    - strlen
    linkageType: ''
    returnType: sds
    signature: sds sdscpy(sds s, const char *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - char*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 463
    functionName: sdsll2str
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sdsll2str(char *s, long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 492
    functionName: sdsull2str
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sdsull2str(char *s, unsigned long long v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsll2str
      Src: /src/h2o/deps/hiredis/sds.c:500,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: sdsfromlonglong
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsll2str
    - sdsnewlen
    linkageType: ''
    returnType: sds
    signature: sds sdsfromlonglong(long long value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:509,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:514,1
    - Dst: va_copy
      Src: /src/h2o/deps/hiredis/sds.c:524,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/hiredis/sds.c:525,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/sds.c:526,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:528,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:530,1
    - Dst: sdscat
      Src: /src/h2o/deps/hiredis/sds.c:538,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - s
    - fmt
    - ap
    argTypes:
    - sds
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 506
    functionDepth: 4
    functionLinenumber: 506
    functionLinenumberEnd: 541
    functionName: sdscatvprintf
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - va_copy
    - s_free
    - sdscat
    - s_malloc
    - vsnprintf
    - va_end
    - strlen
    linkageType: ''
    returnType: sds
    signature: sds sdscatvprintf(sds s, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/sds.c:562,1
    - Dst: sdscatvprintf
      Src: /src/h2o/deps/hiredis/sds.c:563,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/sds.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - sds
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 566
    functionName: sdscatprintf
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sdscatvprintf
    linkageType: ''
    returnType: sds
    signature: sds sdscatprintf(sds s, const char *fmt, ...)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/sds.c:589,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:590,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:598,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:599,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/sds.c:610,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/sds.c:611,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:611,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:612,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:613,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:616,1
    - Dst: sdsinclen
      Src: /src/h2o/deps/hiredis/sds.c:617,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/sds.c:623,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/sds.c:625,1
    - Dst: sdsll2str
      Src: /src/h2o/deps/hiredis/sds.c:628,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:629,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:630,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:633,1
    - Dst: sdsinclen
      Src: /src/h2o/deps/hiredis/sds.c:634,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/sds.c:641,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/sds.c:643,1
    - Dst: sdsull2str
      Src: /src/h2o/deps/hiredis/sds.c:646,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:647,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:648,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/sds.c:651,1
    - Dst: sdsinclen
      Src: /src/h2o/deps/hiredis/sds.c:652,1
    - Dst: sdsinclen
      Src: /src/h2o/deps/hiredis/sds.c:658,1
    - Dst: sdsinclen
      Src: /src/h2o/deps/hiredis/sds.c:664,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/sds.c:669,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/sds.c:676,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - sds
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 678
    functionName: sdscatfmt
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - va_start
    - va_end
    - sdsavail
    - sdsull2str
    - sdsMakeRoomFor
    - memcpy
    - sdsll2str
    - sdsinclen
    - strlen
    - va_arg
    linkageType: ''
    returnType: sds
    signature: sds sdscatfmt(sds s, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:699,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/sds.c:700,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/sds.c:701,1
    - Dst: memmove
      Src: /src/h2o/deps/hiredis/sds.c:703,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - s
    - cset
    argTypes:
    - sds
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 707
    functionName: sdstrim
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - strchr
    - sdslen
    - memmove
    - sdssetlen
    linkageType: ''
    returnType: sds
    signature: sds sdstrim(sds s, const char *cset)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:730,1
    - Dst: memmove
      Src: /src/h2o/deps/hiredis/sds.c:753,1
    - Dst: sdssetlen
      Src: /src/h2o/deps/hiredis/sds.c:755,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - s
    - start
    - end
    argTypes:
    - sds
    - ssize_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 757
    functionName: sdsrange
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - memmove
    - sdssetlen
    linkageType: ''
    returnType: int
    signature: int sdsrange(sds s, ssize_t start, ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:761,1
    - Dst: tolower
      Src: /src/h2o/deps/hiredis/sds.c:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 764
    functionName: sdstolower
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - tolower
    linkageType: ''
    returnType: void
    signature: void sdstolower(sds s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:768,1
    - Dst: toupper
      Src: /src/h2o/deps/hiredis/sds.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: sdstoupper
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - toupper
    - sdslen
    linkageType: ''
    returnType: void
    signature: void sdstoupper(sds s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:788,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:789,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - sds
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 794
    functionName: sdscmp
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sdscmp(const sds s1, const sds s2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:818,1
    - Dst: s_realloc
      Src: /src/h2o/deps/hiredis/sds.c:831,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:836,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:837,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:845,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:854,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:855,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - s
    - len
    - sep
    - seplen
    - count
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 859
    functionName: sdssplitlen
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - s_free
    - memcmp
    - s_realloc
    - s_malloc
    - sdsnewlen
    - sdsfree
    linkageType: ''
    returnType: sds
    signature: sds *sdssplitlen(const char *s, int len, const char *sep, int seplen,
      int *count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:865,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - tokens
    - count
    argTypes:
    - sds*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: sdsfreesplitres
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsfree
    - s_free
    linkageType: ''
    returnType: void
    signature: void sdsfreesplitres(sds *tokens, int count)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:876,1
    - Dst: sdscatprintf
      Src: /src/h2o/deps/hiredis/sds.c:881,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:883,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:884,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:885,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:886,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:887,1
    - Dst: isprint
      Src: /src/h2o/deps/hiredis/sds.c:889,1
    - Dst: sdscatprintf
      Src: /src/h2o/deps/hiredis/sds.c:890,1
    - Dst: sdscatprintf
      Src: /src/h2o/deps/hiredis/sds.c:892,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:897,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - s
    - p
    - len
    argTypes:
    - sds
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 875
    functionDepth: 6
    functionLinenumber: 875
    functionLinenumberEnd: 898
    functionName: sdscatrepr
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdscatprintf
    - isprint
    - sdscatlen
    linkageType: ''
    returnType: sds
    signature: sds sdscatrepr(sds s, const char *p, size_t len)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 922
    functionName: hex_digit_to_int
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_digit_to_int(char c)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/h2o/deps/hiredis/sds.c:951,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/sds.c:958,1
    - Dst: isxdigit
      Src: /src/h2o/deps/hiredis/sds.c:962,1
    - Dst: isxdigit
      Src: /src/h2o/deps/hiredis/sds.c:963,1
    - Dst: hex_digit_to_int
      Src: /src/h2o/deps/hiredis/sds.c:967,1
    - Dst: hex_digit_to_int
      Src: /src/h2o/deps/hiredis/sds.c:968,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:969,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:983,1
    - Dst: isspace
      Src: /src/h2o/deps/hiredis/sds.c:987,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:993,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:998,1
    - Dst: isspace
      Src: /src/h2o/deps/hiredis/sds.c:1002,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:1008,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:1026,1
    - Dst: s_realloc
      Src: /src/h2o/deps/hiredis/sds.c:1034,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:1036,1
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:1047,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1054,1
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:1055,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1056,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 116
    argCount: 2
    argNames:
    - line
    - argc
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 1059
    functionName: sdssplitargs
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - s_free
    - s_realloc
    - isxdigit
    - s_malloc
    - isspace
    - sdsempty
    - sdsfree
    - sdscatlen
    - hex_digit_to_int
    linkageType: ''
    returnType: sds
    signature: sds *sdssplitargs(const char *line, int *argc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - s
    - from
    - to
    - setlen
    argTypes:
    - sds
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1082
    functionName: sdsmapchars
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdslen
    linkageType: ''
    returnType: sds
    signature: sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/sds.c:1087,1
    - Dst: sdscat
      Src: /src/h2o/deps/hiredis/sds.c:1091,1
    - Dst: sdscat
      Src: /src/h2o/deps/hiredis/sds.c:1092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - argv
    - argc
    - sep
    argTypes:
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1095
    functionName: sdsjoin
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsempty
    - sdscat
    linkageType: ''
    returnType: sds
    signature: sds sdsjoin(char **argv, int argc, char *sep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/sds.c:1099,1
    - Dst: sdscatsds
      Src: /src/h2o/deps/hiredis/sds.c:1103,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/sds.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - argv
    - argc
    - sep
    - seplen
    argTypes:
    - sds*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1107
    functionName: sdsjoinsds
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdscatsds
    - sdsempty
    - sdscatlen
    linkageType: ''
    returnType: sds
    signature: sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_malloc
      Src: /src/h2o/deps/hiredis/sds.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1114
    functionName: sds_malloc
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - s_malloc
    linkageType: ''
    returnType: void
    signature: void *sds_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_realloc
      Src: /src/h2o/deps/hiredis/sds.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1115
    functionName: sds_realloc
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - s_realloc
    linkageType: ''
    returnType: void
    signature: void *sds_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_free
      Src: /src/h2o/deps/hiredis/sds.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1116
    functionName: sds_free
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - s_free
    linkageType: ''
    returnType: void
    signature: void sds_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1124
    functionName: UNUSED
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1126,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1128,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1129,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1129,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1131,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:1132,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1133,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1134,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1134,1
    - Dst: sdscat
      Src: /src/h2o/deps/hiredis/sds.c:1136,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1137,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1138,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1138,1
    - Dst: sdscpy
      Src: /src/h2o/deps/hiredis/sds.c:1140,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1141,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1142,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1142,1
    - Dst: sdscpy
      Src: /src/h2o/deps/hiredis/sds.c:1144,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1145,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1146,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1147,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1149,1
    - Dst: sdscatprintf
      Src: /src/h2o/deps/hiredis/sds.c:1150,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/sds.c:1150,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1151,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1152,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1152,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1154,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1155,1
    - Dst: sdscatfmt
      Src: /src/h2o/deps/hiredis/sds.c:1156,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1157,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1158,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1159,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/sds.c:1161,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1163,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1164,1
    - Dst: sdscatfmt
      Src: /src/h2o/deps/hiredis/sds.c:1165,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1166,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1167,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1168,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1170,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1171,1
    - Dst: sdstrim
      Src: /src/h2o/deps/hiredis/sds.c:1172,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1173,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1174,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1176,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1177,1
    - Dst: sdstrim
      Src: /src/h2o/deps/hiredis/sds.c:1178,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1179,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1180,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1182,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1183,1
    - Dst: sdstrim
      Src: /src/h2o/deps/hiredis/sds.c:1184,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1185,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1186,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1186,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1188,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1189,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1190,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1191,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1191,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1193,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1194,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1195,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1196,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1197,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1197,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1199,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1200,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1201,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1202,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1203,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1203,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1205,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1206,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1207,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1208,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1209,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1209,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1211,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1212,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1213,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1214,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1215,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1215,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1217,1
    - Dst: sdsdup
      Src: /src/h2o/deps/hiredis/sds.c:1218,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/sds.c:1219,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1220,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1221,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1221,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1223,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1224,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1225,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1226,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1227,1
    - Dst: sdscmp
      Src: /src/h2o/deps/hiredis/sds.c:1227,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1229,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1230,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1231,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1232,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1233,1
    - Dst: sdscmp
      Src: /src/h2o/deps/hiredis/sds.c:1233,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1235,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1236,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1237,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1238,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1239,1
    - Dst: sdscmp
      Src: /src/h2o/deps/hiredis/sds.c:1239,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1241,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1242,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/sds.c:1243,1
    - Dst: sdscatrepr
      Src: /src/h2o/deps/hiredis/sds.c:1244,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/sds.c:1244,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1244,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1245,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1246,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1253,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1254,1
    - Dst: sdsnew
      Src: /src/h2o/deps/hiredis/sds.c:1255,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1256,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1256,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:1256,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1261,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/sds.c:1262,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1265,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1265,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1267,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:1267,1
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/sds.c:1268,1
    - Dst: sdsIncrLen
      Src: /src/h2o/deps/hiredis/sds.c:1274,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1276,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/sds.c:1277,1
    - Dst: test_cond
      Src: /src/h2o/deps/hiredis/sds.c:1278,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/sds.c:1278,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/sds.c:1280,1
    - Dst: test_report
      Src: /src/h2o/deps/hiredis/sds.c:1283,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1124
    functionDepth: 7
    functionLinenumber: 1124
    functionLinenumberEnd: 1285
    functionName: sdsTest
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 0
    functionsReached:
    - sdsrange
    - sdsnew
    - sdsempty
    - sdscatfmt
    - sdsnewlen
    - sdscatrepr
    - sdsfree
    - sdscpy
    - sdsMakeRoomFor
    - printf
    - memcmp
    - test_cond
    - sdsavail
    - sdsIncrLen
    - sdstrim
    - sdscatprintf
    - sdslen
    - sdscat
    - sdscmp
    - test_report
    - sdsdup
    linkageType: ''
    returnType: int
    signature: int sdsTest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsTest
      Src: /src/h2o/deps/hiredis/sds.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1289
    functionDepth: 8
    functionLinenumber: 1289
    functionLinenumberEnd: 1291
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/sds.c
    functionUses: 8
    functionsReached:
    - sdsTest
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: redisIsPushReply
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: redisIsPushReply(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opts
    - ','
    - ip_
    - ','
    - port_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: REDIS_OPTIONS_SET_TCP
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDIS_OPTIONS_SET_TCP(opts, ip_, port_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opts
    - ','
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: REDIS_OPTIONS_SET_UNIX
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDIS_OPTIONS_SET_UNIX(opts, path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opts
    - ','
    - data
    - ','
    - dtor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: REDIS_OPTIONS_SET_PRIVDATA
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDIS_OPTIONS_SET_PRIVDATA(opts, data, dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: assert
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 582
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictGenHashFunction
      Src: /src/h2o/deps/hiredis/async.c:61,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/async.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: callbackHash
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - sdslen
    - dictGenHashFunction
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int callbackHash(const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/async.c:69,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/async.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - privdata
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: callbackValDup
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *callbackValDup(void *privdata, const void *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/async.c:81,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/async.c:82,1
    - Dst: memcmp
      Src: /src/h2o/deps/hiredis/async.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - privdata
    - key1
    - key2
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: callbackKeyCompare
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - sdslen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int callbackKeyCompare(void *privdata, const void *key1, const void
      *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/async.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - privdata
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: callbackKeyDestructor
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - sdsfree
    linkageType: ''
    returnType: void
    signature: void callbackKeyDestructor(void *privdata, void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/async.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - privdata
    - val
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: callbackValDestructor
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void callbackValDestructor(void *privdata, void *val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dictCreate
      Src: /src/h2o/deps/hiredis/async.c:110,1
    - Dst: dictCreate
      Src: /src/h2o/deps/hiredis/async.c:114,1
    - Dst: hi_realloc
      Src: /src/h2o/deps/hiredis/async.c:118,1
    - Dst: dictRelease
      Src: /src/h2o/deps/hiredis/async.c:156,1
    - Dst: dictRelease
      Src: /src/h2o/deps/hiredis/async.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 159
    functionName: redisAsyncInitialize
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - dictRelease
    - hi_realloc
    - dictCreate
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *redisAsyncInitialize(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: __redisAsyncCopyError
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __redisAsyncCopyError(redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/async.c:183,1
    - Dst: redisAsyncInitialize
      Src: /src/h2o/deps/hiredis/async.c:188,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/async.c:190,1
    - Dst: redisAsyncSetPushCallback
      Src: /src/h2o/deps/hiredis/async.c:195,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - options
    argTypes:
    - redisOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 199
    functionName: redisAsyncConnectWithOptions
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 7
    functionsReached:
    - redisConnectWithOptions
    - redisAsyncSetPushCallback
    - redisAsyncInitialize
    - redisFree
    - __redisAsyncCopyError
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *redisAsyncConnectWithOptions(const redisOptions
      *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/async.c:203,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/async.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: redisAsyncConnect
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisAsyncConnectWithOptions
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *redisAsyncConnect(const char *ip, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/async.c:210,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/async.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ip
    - port
    - source_addr
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: redisAsyncConnectBind
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisAsyncConnectWithOptions
    linkageType: ''
    returnType: redisAsyncContext
    signature: "redisAsyncContext *redisAsyncConnectBind(const char *ip, int port,\n
      \                                        const char *source_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/async.c:218,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/async.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - source_addr
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: redisAsyncConnectBindWithReuse
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisAsyncConnectWithOptions
    linkageType: ''
    returnType: redisAsyncContext
    signature: "redisAsyncContext *redisAsyncConnectBindWithReuse(const char *ip,
      int port,\n                                                  const char *source_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_UNIX
      Src: /src/h2o/deps/hiredis/async.c:226,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/async.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: redisAsyncConnectUnix
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_UNIX
    - redisAsyncConnectWithOptions
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *redisAsyncConnectUnix(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _EL_ADD_WRITE
      Src: /src/h2o/deps/hiredis/async.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ac
    - fn
    - fn_nc
    argTypes:
    - redisAsyncContext*
    - redisConnectCallback*
    - redisConnectCallbackNC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 250
    functionName: redisAsyncSetConnectCallbackImpl
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - _EL_ADD_WRITE
    linkageType: ''
    returnType: int
    signature: "int redisAsyncSetConnectCallbackImpl(redisAsyncContext *ac, redisConnectCallback
      *fn,\n                                 redisConnectCallbackNC *fn_nc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncSetConnectCallbackImpl
      Src: /src/h2o/deps/hiredis/async.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ac
    - fn
    argTypes:
    - redisAsyncContext*
    - redisConnectCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: redisAsyncSetConnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisAsyncSetConnectCallbackImpl
    linkageType: ''
    returnType: int
    signature: int redisAsyncSetConnectCallback(redisAsyncContext *ac, redisConnectCallback
      *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncSetConnectCallbackImpl
      Src: /src/h2o/deps/hiredis/async.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ac
    - fn
    argTypes:
    - redisAsyncContext*
    - redisConnectCallbackNC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: redisAsyncSetConnectCallbackNC
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 1
    functionsReached:
    - redisAsyncSetConnectCallbackImpl
    linkageType: ''
    returnType: int
    signature: int redisAsyncSetConnectCallbackNC(redisAsyncContext *ac, redisConnectCallbackNC
      *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ac
    - fn
    argTypes:
    - redisAsyncContext*
    - redisDisconnectCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: redisAsyncSetDisconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int redisAsyncSetDisconnectCallback(redisAsyncContext *ac, redisDisconnectCallback
      *fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/async.c:273,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/async.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - list
    - source
    argTypes:
    - redisCallbackList*
    - redisCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 289
    functionName: __redisPushCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int __redisPushCallback(redisCallbackList *list, redisCallback *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/async.c:300,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/async.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - list
    - target
    argTypes:
    - redisCallbackList*
    - redisCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 305
    functionName: __redisShiftCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - memcpy
    - hi_free
    linkageType: ''
    returnType: int
    signature: int __redisShiftCallback(redisCallbackList *list, redisCallback *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisCallback*::fn
      Src: /src/h2o/deps/hiredis/async.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ac
    - cb
    - reply
    argTypes:
    - redisAsyncContext*
    - redisCallback*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: __redisRunCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisCallback*::fn
    linkageType: ''
    returnType: void
    signature: void __redisRunCallback(redisAsyncContext *ac, redisCallback *cb, redisReply
      *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncContext*::push_cb
      Src: /src/h2o/deps/hiredis/async.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ac
    - reply
    argTypes:
    - redisAsyncContext*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: __redisRunPushCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisAsyncContext*::push_cb
    linkageType: ''
    returnType: void
    signature: void __redisRunPushCallback(redisAsyncContext *ac, redisReply *reply)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncContext*::onConnect
      Src: /src/h2o/deps/hiredis/async.c:332,1
    - Dst: redisAsyncContext*::onConnectNC
      Src: /src/h2o/deps/hiredis/async.c:334,1
    - Dst: redisAsyncContext*::onConnect
      Src: /src/h2o/deps/hiredis/async.c:340,1
    - Dst: redisAsyncContext*::onConnectNC
      Src: /src/h2o/deps/hiredis/async.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ac
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 345
    functionName: __redisRunConnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisAsyncContext*::onConnectNC
    - redisAsyncContext*::onConnect
    linkageType: ''
    returnType: void
    signature: void __redisRunConnectCallback(redisAsyncContext *ac, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncContext*::onDisconnect
      Src: /src/h2o/deps/hiredis/async.c:352,1
    - Dst: redisAsyncContext*::onDisconnect
      Src: /src/h2o/deps/hiredis/async.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ac
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: __redisRunDisconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisAsyncContext*::onDisconnect
    linkageType: ''
    returnType: void
    signature: void __redisRunDisconnectCallback(redisAsyncContext *ac, int status)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:369,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:370,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:371,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:372,1
    - Dst: dictInitIterator
      Src: /src/h2o/deps/hiredis/async.c:376,1
    - Dst: dictNext
      Src: /src/h2o/deps/hiredis/async.c:377,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:378,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:378,1
    - Dst: dictRelease
      Src: /src/h2o/deps/hiredis/async.c:380,1
    - Dst: dictInitIterator
      Src: /src/h2o/deps/hiredis/async.c:384,1
    - Dst: dictNext
      Src: /src/h2o/deps/hiredis/async.c:385,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:386,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:386,1
    - Dst: dictRelease
      Src: /src/h2o/deps/hiredis/async.c:388,1
    - Dst: _EL_CLEANUP
      Src: /src/h2o/deps/hiredis/async.c:392,1
    - Dst: __redisRunDisconnectCallback
      Src: /src/h2o/deps/hiredis/async.c:400,1
    - Dst: redisAsyncContext*::dataCleanup
      Src: /src/h2o/deps/hiredis/async.c:404,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/async.c:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 409
    functionName: __redisAsyncFree
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - _EL_CLEANUP
    - dictInitIterator
    - dictGetEntryVal
    - dictRelease
    - redisFree
    - __redisRunDisconnectCallback
    - dictNext
    - __redisShiftCallback
    - __redisRunCallback
    - redisAsyncContext*::dataCleanup
    linkageType: ''
    returnType: void
    signature: void __redisAsyncFree(redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __redisAsyncFree
      Src: /src/h2o/deps/hiredis/async.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: redisAsyncFree
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 4
    functionsReached:
    - __redisAsyncFree
    linkageType: ''
    returnType: void
    signature: void redisAsyncFree(redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:431,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:435,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:436,1
    - Dst: _EL_CLEANUP
      Src: /src/h2o/deps/hiredis/async.c:445,1
    - Dst: __redisAsyncFree
      Src: /src/h2o/deps/hiredis/async.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts:
    - condition: (ret == REDIS_ERR)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 452
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 452
    functionName: __redisAsyncDisconnect
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - _EL_CLEANUP
    - __redisAsyncFree
    - __redisShiftCallback
    - __redisAsyncCopyError
    - assert
    linkageType: ''
    returnType: void
    signature: void __redisAsyncDisconnect(redisAsyncContext *ac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: redisAsyncDisconnect
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 3
    functionsReached:
    - __redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void redisAsyncDisconnect(redisAsyncContext *ac)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:484,1
    - Dst: tolower
      Src: /src/h2o/deps/hiredis/async.c:486,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/async.c:495,1
    - Dst: dictFind
      Src: /src/h2o/deps/hiredis/async.c:498,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:499,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/async.c:500,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/async.c:505,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:506,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/async.c:509,1
    - Dst: dictDelete
      Src: /src/h2o/deps/hiredis/async.c:513,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:517,1
    - Dst: dictSize
      Src: /src/h2o/deps/hiredis/async.c:522,1
    - Dst: dictSize
      Src: /src/h2o/deps/hiredis/async.c:523,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:529,1
    - Dst: __redisPushCallback
      Src: /src/h2o/deps/hiredis/async.c:530,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/async.c:534,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:537,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/async.c:541,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:542,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - ac
    - reply
    - dstcb
    argTypes:
    - redisAsyncContext*
    - redisReply*
    - redisCallback*
    assertStmts:
    - condition: (cb != NULL)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/h2o/deps/hiredis/async.c
    - condition: (reply->element[0]->type == REDIS_REPLY_STRING)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/h2o/deps/hiredis/async.c
    - condition: (reply->element[2]->type == REDIS_REPLY_INTEGER)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 544
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 544
    functionName: __redisGetSubscribeCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - dictSize
    - dictGetEntryVal
    - __redisSetError
    - tolower
    - __redisAsyncCopyError
    - memcpy
    - strcasecmp
    - dictFind
    - dictDelete
    - sdsnewlen
    - __redisPushCallback
    - __redisShiftCallback
    - sdsfree
    - assert
    linkageType: ''
    returnType: int
    signature: int __redisGetSubscribeCallback(redisAsyncContext *ac, redisReply *reply,
      redisCallback *dstcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: redisIsSpontaneousPushReply
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: redisIsSpontaneousPushReply(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/h2o/deps/hiredis/async.c:561,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:565,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:566,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - reply
    argTypes:
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 568
    functionName: redisIsSubscribeReply
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - tolower
    linkageType: ''
    returnType: int
    signature: int redisIsSubscribeReply(redisReply *reply)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/async.c:575,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/async.c:579,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:581,1
    - Dst: redisIsPushReply
      Src: /src/h2o/deps/hiredis/async.c:590,1
    - Dst: redisIsSpontaneousPushReply
      Src: /src/h2o/deps/hiredis/async.c:596,1
    - Dst: __redisRunPushCallback
      Src: /src/h2o/deps/hiredis/async.c:597,1
    - Dst: redisContext*::reader::fn::freeObject
      Src: /src/h2o/deps/hiredis/async.c:598,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:605,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/async.c:623,1
    - Dst: redisContext*::reader::fn::freeObject
      Src: /src/h2o/deps/hiredis/async.c:624,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:625,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:629,1
    - Dst: __redisGetSubscribeCallback
      Src: /src/h2o/deps/hiredis/async.c:631,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:635,1
    - Dst: redisContext*::reader::fn::freeObject
      Src: /src/h2o/deps/hiredis/async.c:637,1
    - Dst: __redisAsyncFree
      Src: /src/h2o/deps/hiredis/async.c:642,1
    - Dst: redisContext*::reader::fn::freeObject
      Src: /src/h2o/deps/hiredis/async.c:650,1
    - Dst: __redisPushCallback
      Src: /src/h2o/deps/hiredis/async.c:655,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:661,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts:
    - condition: (c->flags & REDIS_SUBSCRIBED)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 662
      start: 570
    functionDepth: 4
    functionLinenumber: 570
    functionLinenumberEnd: 662
    functionName: redisProcessCallbacks
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - __redisGetSubscribeCallback
    - redisGetReply
    - sdslen
    - __redisRunPushCallback
    - __redisAsyncDisconnect
    - redisIsSpontaneousPushReply
    - redisIsPushReply
    - snprintf
    - redisContext*::reader::fn::freeObject
    - __redisPushCallback
    - __redisAsyncFree
    - __redisShiftCallback
    - __redisRunCallback
    - assert
    linkageType: ''
    returnType: void
    signature: void redisProcessCallbacks(redisAsyncContext *ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __redisRunConnectCallback
      Src: /src/h2o/deps/hiredis/async.c:665,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: __redisAsyncHandleConnectFailure
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - __redisAsyncDisconnect
    - __redisRunConnectCallback
    linkageType: ''
    returnType: void
    signature: void __redisAsyncHandleConnectFailure(redisAsyncContext *ac)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: redisCheckConnectDone
      Src: /src/h2o/deps/hiredis/async.c:676,1
    - Dst: redisCheckSocketError
      Src: /src/h2o/deps/hiredis/async.c:678,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:679,1
    - Dst: __redisAsyncHandleConnectFailure
      Src: /src/h2o/deps/hiredis/async.c:680,1
    - Dst: redisSetTcpNoDelay
      Src: /src/h2o/deps/hiredis/async.c:685,1
    - Dst: __redisAsyncHandleConnectFailure
      Src: /src/h2o/deps/hiredis/async.c:686,1
    - Dst: __redisRunConnectCallback
      Src: /src/h2o/deps/hiredis/async.c:695,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:697,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/async.c:700,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 672
    functionDepth: 5
    functionLinenumber: 672
    functionLinenumberEnd: 707
    functionName: __redisAsyncHandleConnect
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisCheckConnectDone
    - __redisAsyncHandleConnectFailure
    - redisCheckSocketError
    - redisAsyncFree
    - redisSetTcpNoDelay
    - redisAsyncDisconnect
    - __redisRunConnectCallback
    - __redisAsyncCopyError
    linkageType: ''
    returnType: int
    signature: int __redisAsyncHandleConnect(redisAsyncContext *ac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisBufferRead
      Src: /src/h2o/deps/hiredis/async.c:712,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:713,1
    - Dst: _EL_ADD_READ
      Src: /src/h2o/deps/hiredis/async.c:716,1
    - Dst: redisProcessCallbacks
      Src: /src/h2o/deps/hiredis/async.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: redisAsyncRead
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - _EL_ADD_READ
    - __redisAsyncDisconnect
    - redisProcessCallbacks
    - redisBufferRead
    linkageType: ''
    returnType: void
    signature: void redisAsyncRead(redisAsyncContext *ac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:727,1
    - Dst: __redisAsyncHandleConnect
      Src: /src/h2o/deps/hiredis/async.c:731,1
    - Dst: redisContext*::funcs::async_read
      Src: /src/h2o/deps/hiredis/async.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts:
    - condition: (!(c->flags & REDIS_IN_CALLBACK))
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 739
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 739
    functionName: redisAsyncHandleRead
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisContext*::funcs::async_read
    - __redisAsyncHandleConnect
    - assert
    linkageType: ''
    returnType: void
    signature: void redisAsyncHandleRead(redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisBufferWrite
      Src: /src/h2o/deps/hiredis/async.c:745,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:746,1
    - Dst: _EL_ADD_WRITE
      Src: /src/h2o/deps/hiredis/async.c:750,1
    - Dst: _EL_DEL_WRITE
      Src: /src/h2o/deps/hiredis/async.c:752,1
    - Dst: _EL_ADD_READ
      Src: /src/h2o/deps/hiredis/async.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 757
    functionName: redisAsyncWrite
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - _EL_ADD_READ
    - __redisAsyncDisconnect
    - _EL_ADD_WRITE
    - _EL_DEL_WRITE
    - redisBufferWrite
    linkageType: ''
    returnType: void
    signature: void redisAsyncWrite(redisAsyncContext *ac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:762,1
    - Dst: __redisAsyncHandleConnect
      Src: /src/h2o/deps/hiredis/async.c:766,1
    - Dst: redisContext*::funcs::async_write
      Src: /src/h2o/deps/hiredis/async.c:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts:
    - condition: (!(c->flags & REDIS_IN_CALLBACK))
      pos:
        line_end: 761
        line_start: 761
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 774
      start: 759
    functionDepth: 6
    functionLinenumber: 759
    functionLinenumberEnd: 774
    functionName: redisAsyncHandleWrite
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - redisContext*::funcs::async_write
    - __redisAsyncHandleConnect
    - assert
    linkageType: ''
    returnType: void
    signature: void redisAsyncHandleWrite(redisAsyncContext *ac)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:780,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/async.c:796,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:797,1
    - Dst: __redisRunConnectCallback
      Src: /src/h2o/deps/hiredis/async.c:801,1
    - Dst: __redisShiftCallback
      Src: /src/h2o/deps/hiredis/async.c:804,1
    - Dst: __redisRunCallback
      Src: /src/h2o/deps/hiredis/async.c:805,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/async.c:812,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts:
    - condition: (!(c->flags & REDIS_IN_CALLBACK))
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 813
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 813
    functionName: redisAsyncHandleTimeout
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - __redisAsyncDisconnect
    - __redisSetError
    - __redisRunCallback
    - __redisRunConnectCallback
    - __redisShiftCallback
    - __redisAsyncCopyError
    - assert
    linkageType: ''
    returnType: void
    signature: void redisAsyncHandleTimeout(redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/async.c:820,1
    - Dst: strtol
      Src: /src/h2o/deps/hiredis/async.c:824,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/async.c:825,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - start
    - str
    - len
    argTypes:
    - char*
    - char**
    - size_t*
    assertStmts:
    - condition: (p)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 829
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 829
    functionName: nextArgument
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - strchr
    - assert
    - strtol
    linkageType: ''
    returnType: char
    signature: char *nextArgument(const char *start, const char **str, size_t *len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nextArgument
      Src: /src/h2o/deps/hiredis/async.c:858,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/async.c:859,1
    - Dst: tolower
      Src: /src/h2o/deps/hiredis/async.c:861,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:865,1
    - Dst: nextArgument
      Src: /src/h2o/deps/hiredis/async.c:869,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/async.c:870,1
    - Dst: dictFind
      Src: /src/h2o/deps/hiredis/async.c:879,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:882,1
    - Dst: dictReplace
      Src: /src/h2o/deps/hiredis/async.c:886,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/async.c:888,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:890,1
    - Dst: nextArgument
      Src: /src/h2o/deps/hiredis/async.c:903,1
    - Dst: sdsnewlen
      Src: /src/h2o/deps/hiredis/async.c:904,1
    - Dst: dictFind
      Src: /src/h2o/deps/hiredis/async.c:908,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:910,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/async.c:920,1
    - Dst: dictInitIterator
      Src: /src/h2o/deps/hiredis/async.c:926,1
    - Dst: dictNext
      Src: /src/h2o/deps/hiredis/async.c:927,1
    - Dst: dictGetEntryVal
      Src: /src/h2o/deps/hiredis/async.c:928,1
    - Dst: strncasecmp
      Src: /src/h2o/deps/hiredis/async.c:943,1
    - Dst: __redisPushCallback
      Src: /src/h2o/deps/hiredis/async.c:946,1
    - Dst: __redisPushCallback
      Src: /src/h2o/deps/hiredis/async.c:950,1
    - Dst: __redisPushCallback
      Src: /src/h2o/deps/hiredis/async.c:953,1
    - Dst: __redisAppendCommand
      Src: /src/h2o/deps/hiredis/async.c:958,1
    - Dst: _EL_ADD_WRITE
      Src: /src/h2o/deps/hiredis/async.c:961,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/async.c:965,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:966,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 5
    argNames:
    - ac
    - fn
    - privdata
    - cmd
    - len
    argTypes:
    - redisAsyncContext*
    - redisCallbackFn*
    - void*
    - char*
    - size_t
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/h2o/deps/hiredis/async.c
    constantsTouched: []
    func_position:
      end: 968
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 968
    functionName: __redisAsyncCommand
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - __redisAppendCommand
    - dictGetEntryVal
    - dictInitIterator
    - _EL_ADD_WRITE
    - tolower
    - __redisSetError
    - __redisAsyncCopyError
    - strncasecmp
    - dictFind
    - nextArgument
    - dictNext
    - sdsnewlen
    - __redisPushCallback
    - sdsfree
    - dictReplace
    - assert
    linkageType: ''
    returnType: int
    signature: int __redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn,
      void *privdata, const char *cmd, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisvFormatCommand
      Src: /src/h2o/deps/hiredis/async.c:974,1
    - Dst: __redisAsyncCommand
      Src: /src/h2o/deps/hiredis/async.c:980,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/async.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ac
    - fn
    - privdata
    - format
    - ap
    argTypes:
    - redisAsyncContext*
    - redisCallbackFn*
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 983
    functionName: redisvAsyncCommand
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - hi_free
    - redisvFormatCommand
    - __redisAsyncCommand
    linkageType: ''
    returnType: int
    signature: int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn,
      void *privdata, const char *format, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/async.c:988,1
    - Dst: redisvAsyncCommand
      Src: /src/h2o/deps/hiredis/async.c:989,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/async.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ac
    - fn
    - privdata
    - format
    argTypes:
    - redisAsyncContext*
    - redisCallbackFn*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 4
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: redisAsyncCommand
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 13
    functionsReached:
    - va_end
    - redisvAsyncCommand
    - va_start
    linkageType: ''
    returnType: int
    signature: int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void
      *privdata, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisFormatSdsCommandArgv
      Src: /src/h2o/deps/hiredis/async.c:998,1
    - Dst: __redisAsyncCommand
      Src: /src/h2o/deps/hiredis/async.c:1001,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/async.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ac
    - fn
    - privdata
    - argc
    - argv
    - argvlen
    argTypes:
    - redisAsyncContext*
    - redisCallbackFn*
    - void*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 994
    functionDepth: 3
    functionLinenumber: 994
    functionLinenumberEnd: 1004
    functionName: redisAsyncCommandArgv
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - sdsfree
    - __redisAsyncCommand
    - redisFormatSdsCommandArgv
    linkageType: ''
    returnType: int
    signature: int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn,
      void *privdata, int argc, const char **argv, const size_t *argvlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __redisAsyncCommand
      Src: /src/h2o/deps/hiredis/async.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ac
    - fn
    - privdata
    - cmd
    - len
    argTypes:
    - redisAsyncContext*
    - redisCallbackFn*
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: redisAsyncFormattedCommand
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 0
    functionsReached:
    - __redisAsyncCommand
    linkageType: ''
    returnType: int
    signature: int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn
      *fn, void *privdata, const char *cmd, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ac
    - fn
    argTypes:
    - redisAsyncContext*
    - redisAsyncPushFn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: redisAsyncSetPushCallback
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: redisAsyncPushFn
    signature: redisAsyncPushFn *redisAsyncSetPushCallback(redisAsyncContext *ac,
      redisAsyncPushFn *fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/async.c:1019,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/async.c:1021,1
    - Dst: __redisAsyncCopyError
      Src: /src/h2o/deps/hiredis/async.c:1022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ac
    - tv
    argTypes:
    - redisAsyncContext*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1034
    functionName: redisAsyncSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/async.c
    functionUses: 1
    functionsReached:
    - hi_calloc
    - __redisAsyncCopyError
    - __redisSetError
    linkageType: ''
    returnType: int
    signature: int redisAsyncSetTimeout(redisAsyncContext *ac, struct timeval tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: SDS_HDR_VAR
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SDS_HDR_VAR(T,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: SDS_HDR
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SDS_HDR(T,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: SDS_TYPE_5_LEN
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SDS_TYPE_5_LEN(f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_TYPE_5_LEN
      Src: /src/h2o/deps/hiredis/sds.h:97,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:99,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:101,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:103,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: sdslen
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 19
    functionsReached:
    - SDS_TYPE_5_LEN
    - SDS_HDR
    linkageType: ''
    returnType: size_t
    signature: size_t sdslen(const sds s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.h:117,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.h:121,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.h:125,1
    - Dst: SDS_HDR_VAR
      Src: /src/h2o/deps/hiredis/sds.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: sdsavail
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 3
    functionsReached:
    - SDS_HDR_VAR
    linkageType: ''
    returnType: size_t
    signature: size_t sdsavail(const sds s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:146,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:149,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:152,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - s
    - newlen
    argTypes:
    - sds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: sdssetlen
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 9
    functionsReached:
    - SDS_HDR
    linkageType: ''
    returnType: void
    signature: void sdssetlen(sds s, size_t newlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_TYPE_5_LEN
      Src: /src/h2o/deps/hiredis/sds.h:166,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:171,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:174,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:177,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - s
    - inc
    argTypes:
    - sds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: sdsinclen
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 1
    functionsReached:
    - SDS_TYPE_5_LEN
    - SDS_HDR
    linkageType: ''
    returnType: void
    signature: void sdsinclen(sds s, size_t inc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_TYPE_5_LEN
      Src: /src/h2o/deps/hiredis/sds.h:190,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:192,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:194,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:196,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: sdsalloc
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 2
    functionsReached:
    - SDS_TYPE_5_LEN
    - SDS_HDR
    linkageType: ''
    returnType: size_t
    signature: size_t sdsalloc(const sds s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:210,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:213,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:216,1
    - Dst: SDS_HDR
      Src: /src/h2o/deps/hiredis/sds.h:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - newlen
    argTypes:
    - sds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: sdssetalloc
    functionSourceFile: /src/h2o/deps/hiredis/sds.h
    functionUses: 2
    functionsReached:
    - SDS_HDR
    linkageType: ''
    returnType: void
    signature: void sdssetalloc(sds s, size_t newlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisReader*::fn::freeObject
      Src: /src/h2o/deps/hiredis/read.c:57,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/read.c:62,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/read.c:71,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/read.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - type
    - str
    argTypes:
    - redisReader*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: __redisReaderSetError
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sdsfree
    - strlen
    - redisReader*::fn::freeObject
    linkageType: ''
    returnType: void
    signature: void __redisReaderSetError(redisReader *r, int type, const char *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:83,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:85,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:86,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:87,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:88,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:89,1
    - Dst: isprint
      Src: /src/h2o/deps/hiredis/read.c:91,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:92,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - buf
    - size
    - byte
    argTypes:
    - char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: chrtos
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - isprint
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: size_t chrtos(char *buf, size_t size, char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chrtos
      Src: /src/h2o/deps/hiredis/read.c:104,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/read.c:105,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - byte
    argTypes:
    - redisReader*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: __redisReaderSetErrorProtocolByte
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - __redisReaderSetError
    - snprintf
    - chrtos
    linkageType: ''
    returnType: void
    signature: void __redisReaderSetErrorProtocolByte(redisReader *r, char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: __redisReaderSetErrorOOM
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - __redisReaderSetError
    linkageType: ''
    returnType: void
    signature: void __redisReaderSetErrorOOM(redisReader *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - bytes
    argTypes:
    - redisReader*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: readBytes
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *readBytes(redisReader *r, unsigned int bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/hiredis/read.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: seekNewline
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *seekNewline(char *s, size_t len)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 3
    argNames:
    - s
    - slen
    - value
    argTypes:
    - char*
    - size_t
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 223
    functionName: string2ll
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int string2ll(const char *s, size_t slen, long long *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: seekNewline
      Src: /src/h2o/deps/hiredis/read.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - _len
    argTypes:
    - redisReader*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: readLine
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - seekNewline
    linkageType: ''
    returnType: char
    signature: char *readLine(redisReader *r, int *_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/hiredis/read.c:251,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/read.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts:
    - condition: "(prv->type == REDIS_REPLY_ARRAY ||\n               prv->type ==
        REDIS_REPLY_MAP ||\n               prv->type == REDIS_REPLY_SET ||\n               prv->type
        == REDIS_REPLY_PUSH)"
      pos:
        line_end: 253
        line_start: 250
        source_file: /src/h2o/deps/hiredis/read.c
    - condition: (cur->idx < prv->elements)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/h2o/deps/hiredis/read.c
    constantsTouched: []
    func_position:
      end: 266
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 266
    functionName: moveToNextTask
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void moveToNextTask(redisReader *r)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: readLine
      Src: /src/h2o/deps/hiredis/read.c:274,1
    - Dst: string2ll
      Src: /src/h2o/deps/hiredis/read.c:278,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:279,1
    - Dst: redisReader*::fn::createInteger
      Src: /src/h2o/deps/hiredis/read.c:285,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:294,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/read.c:299,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/read.c:302,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/read.c:304,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/read.c:306,1
    - Dst: strcasecmp
      Src: /src/h2o/deps/hiredis/read.c:307,1
    - Dst: strtod
      Src: /src/h2o/deps/hiredis/read.c:310,1
    - Dst: isfinite
      Src: /src/h2o/deps/hiredis/read.c:315,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:316,1
    - Dst: redisReader*::fn::createDouble
      Src: /src/h2o/deps/hiredis/read.c:323,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:329,1
    - Dst: redisReader*::fn::createNil
      Src: /src/h2o/deps/hiredis/read.c:335,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/read.c:341,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:342,1
    - Dst: redisReader*::fn::createBool
      Src: /src/h2o/deps/hiredis/read.c:349,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:359,1
    - Dst: redisReader*::fn::createString
      Src: /src/h2o/deps/hiredis/read.c:365,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:372,1
    - Dst: redisReader*::fn::createString
      Src: /src/h2o/deps/hiredis/read.c:378,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:384,1
    - Dst: moveToNextTask
      Src: /src/h2o/deps/hiredis/read.c:390,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 93
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 395
    functionName: processLineItem
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - strtod
    - redisReader*::fn::createDouble
    - redisReader*::fn::createNil
    - isfinite
    - redisReader*::fn::createBool
    - redisReader*::fn::createInteger
    - redisReader*::fn::createString
    - memcpy
    - string2ll
    - __redisReaderSetError
    - strcasecmp
    - __redisReaderSetErrorOOM
    - moveToNextTask
    - strchr
    - readLine
    linkageType: ''
    returnType: int
    signature: int processLineItem(redisReader *r)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: seekNewline
      Src: /src/h2o/deps/hiredis/read.c:406,1
    - Dst: string2ll
      Src: /src/h2o/deps/hiredis/read.c:411,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:412,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:418,1
    - Dst: redisReader*::fn::createNil
      Src: /src/h2o/deps/hiredis/read.c:426,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:437,1
    - Dst: redisReader*::fn::createString
      Src: /src/h2o/deps/hiredis/read.c:443,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:453,1
    - Dst: moveToNextTask
      Src: /src/h2o/deps/hiredis/read.c:461,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 467
    functionName: processBulkItem
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - redisReader*::fn::createNil
    - redisReader*::fn::createString
    - seekNewline
    - string2ll
    - __redisReaderSetError
    - __redisReaderSetErrorOOM
    - moveToNextTask
    linkageType: ''
    returnType: int
    signature: int processBulkItem(redisReader *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_realloc
      Src: /src/h2o/deps/hiredis/read.c:475,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/read.c:483,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 492
    functionName: redisReaderGrow
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - hi_realloc
    - __redisReaderSetErrorOOM
    - hi_calloc
    linkageType: ''
    returnType: int
    signature: int redisReaderGrow(redisReader *r)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: redisReaderGrow
      Src: /src/h2o/deps/hiredis/read.c:503,1
    - Dst: readLine
      Src: /src/h2o/deps/hiredis/read.c:507,1
    - Dst: string2ll
      Src: /src/h2o/deps/hiredis/read.c:508,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:509,1
    - Dst: __redisReaderSetError
      Src: /src/h2o/deps/hiredis/read.c:519,1
    - Dst: redisReader*::fn::createNil
      Src: /src/h2o/deps/hiredis/read.c:526,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:531,1
    - Dst: moveToNextTask
      Src: /src/h2o/deps/hiredis/read.c:535,1
    - Dst: redisReader*::fn::createArray
      Src: /src/h2o/deps/hiredis/read.c:540,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:545,1
    - Dst: moveToNextTask
      Src: /src/h2o/deps/hiredis/read.c:561,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 571
    functionName: processAggregateItem
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - redisReaderGrow
    - redisReader*::fn::createNil
    - redisReader*::fn::createArray
    - string2ll
    - __redisReaderSetError
    - __redisReaderSetErrorOOM
    - moveToNextTask
    - readLine
    linkageType: ''
    returnType: int
    signature: int processAggregateItem(redisReader *r)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: readBytes
      Src: /src/h2o/deps/hiredis/read.c:579,1
    - Dst: __redisReaderSetErrorProtocolByte
      Src: /src/h2o/deps/hiredis/read.c:621,1
    - Dst: processLineItem
      Src: /src/h2o/deps/hiredis/read.c:639,1
    - Dst: processBulkItem
      Src: /src/h2o/deps/hiredis/read.c:642,1
    - Dst: processAggregateItem
      Src: /src/h2o/deps/hiredis/read.c:647,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/read.c:649,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts:
    - condition: (NULL)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/h2o/deps/hiredis/read.c
    constantsTouched: []
    func_position:
      end: 652
      start: 573
    functionDepth: 6
    functionLinenumber: 573
    functionLinenumberEnd: 652
    functionName: processItem
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - processAggregateItem
    - processBulkItem
    - __redisReaderSetErrorProtocolByte
    - processLineItem
    - readBytes
    - assert
    linkageType: ''
    returnType: int
    signature: int processItem(redisReader *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/read.c:657,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/read.c:661,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/read.c:665,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/read.c:670,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/read.c:682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - fn
    argTypes:
    - redisReplyObjectFunctions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 684
    functionName: redisReaderCreateWithFunctions
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 0
    functionsReached:
    - hi_calloc
    - sdsempty
    - redisReaderFree
    linkageType: ''
    returnType: redisReader
    signature: redisReader *redisReaderCreateWithFunctions(redisReplyObjectFunctions
      *fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisReader*::fn::freeObject
      Src: /src/h2o/deps/hiredis/read.c:691,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/read.c:696,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/read.c:699,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/read.c:702,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/read.c:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - redisReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 704
    functionName: redisReaderFree
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 2
    functionsReached:
    - sdsfree
    - hi_free
    - redisReader*::fn::freeObject
    linkageType: ''
    returnType: void
    signature: void redisReaderFree(redisReader *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sdsavail
      Src: /src/h2o/deps/hiredis/read.c:716,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/read.c:717,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/read.c:718,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/read.c:724,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/read.c:728,1
    - Dst: __redisReaderSetErrorOOM
      Src: /src/h2o/deps/hiredis/read.c:733,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - r
    - buf
    - len
    argTypes:
    - redisReader*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 735
    functionName: redisReaderFeed
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 1
    functionsReached:
    - sdslen
    - sdsavail
    - __redisReaderSetErrorOOM
    - sdsempty
    - sdsfree
    - sdscatlen
    linkageType: ''
    returnType: int
    signature: int redisReaderFeed(redisReader *r, const char *buf, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: processItem
      Src: /src/h2o/deps/hiredis/read.c:763,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/read.c:773,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/read.c:775,1
    - Dst: redisReader*::fn::freeObject
      Src: /src/h2o/deps/hiredis/read.c:783,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 2
    argNames:
    - r
    - reply
    argTypes:
    - redisReader*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 737
    functionDepth: 7
    functionLinenumber: 737
    functionLinenumberEnd: 788
    functionName: redisReaderGetReply
    functionSourceFile: /src/h2o/deps/hiredis/read.c
    functionUses: 1
    functionsReached:
    - processItem
    - sdslen
    - sdsrange
    - redisReader*::fn::freeObject
    linkageType: ''
    returnType: int
    signature: int redisReaderGetReply(redisReader *r, void **reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: dictGenHashFunction
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dictGenHashFunction(const unsigned char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ht
    argTypes:
    - dict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: _dictReset
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _dictReset(dict *ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/dict.c:75,1
    - Dst: _dictInit
      Src: /src/h2o/deps/hiredis/dict.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - privDataPtr
    argTypes:
    - dictType*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: dictCreate
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached:
    - hi_malloc
    - _dictInit
    linkageType: ''
    returnType: dict
    signature: dict *dictCreate(dictType *type, void *privDataPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dictReset
      Src: /src/h2o/deps/hiredis/dict.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ht
    - type
    - privDataPtr
    argTypes:
    - dict*
    - dictType*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: _dictInit
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached:
    - _dictReset
    linkageType: ''
    returnType: int
    signature: int _dictInit(dict *ht, dictType *type, void *privDataPtr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _dictNextPower
      Src: /src/h2o/deps/hiredis/dict.c:94,1
    - Dst: _dictInit
      Src: /src/h2o/deps/hiredis/dict.c:101,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/dict.c:104,1
    - Dst: dictHashKey
      Src: /src/h2o/deps/hiredis/dict.c:124,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/dict.c:132,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/dict.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ht
    - size
    argTypes:
    - dict*
    - unsigned long
    assertStmts:
    - condition: (ht->used == 0)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/deps/hiredis/dict.c
    constantsTouched: []
    func_position:
      end: 138
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 138
    functionName: dictExpand
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 0
    functionsReached:
    - _dictNextPower
    - hi_calloc
    - _dictInit
    - dictHashKey
    - hi_free
    - assert
    linkageType: ''
    returnType: int
    signature: int dictExpand(dict *ht, unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dictKeyIndex
      Src: /src/h2o/deps/hiredis/dict.c:147,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/dict.c:151,1
    - Dst: dictSetHashKey
      Src: /src/h2o/deps/hiredis/dict.c:159,1
    - Dst: dictSetHashVal
      Src: /src/h2o/deps/hiredis/dict.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ht
    - key
    - val
    argTypes:
    - dict*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: dictAdd
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - _dictKeyIndex
    - dictSetHashVal
    - dictSetHashKey
    linkageType: ''
    returnType: int
    signature: int dictAdd(dict *ht, void *key, void *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictAdd
      Src: /src/h2o/deps/hiredis/dict.c:174,1
    - Dst: dictFind
      Src: /src/h2o/deps/hiredis/dict.c:177,1
    - Dst: dictSetHashVal
      Src: /src/h2o/deps/hiredis/dict.c:188,1
    - Dst: dictFreeEntryVal
      Src: /src/h2o/deps/hiredis/dict.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ht
    - key
    - val
    argTypes:
    - dict*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 191
    functionName: dictReplace
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached:
    - dictSetHashVal
    - dictAdd
    - dictFind
    - dictFreeEntryVal
    linkageType: ''
    returnType: int
    signature: int dictReplace(dict *ht, void *key, void *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dictHashKey
      Src: /src/h2o/deps/hiredis/dict.c:200,1
    - Dst: dictCompareHashKeys
      Src: /src/h2o/deps/hiredis/dict.c:205,1
    - Dst: dictFreeEntryKey
      Src: /src/h2o/deps/hiredis/dict.c:212,1
    - Dst: dictFreeEntryVal
      Src: /src/h2o/deps/hiredis/dict.c:213,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/dict.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - dict*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 222
    functionName: dictDelete
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached:
    - dictFreeEntryKey
    - dictCompareHashKeys
    - hi_free
    - dictFreeEntryVal
    - dictHashKey
    linkageType: ''
    returnType: int
    signature: int dictDelete(dict *ht, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictFreeEntryKey
      Src: /src/h2o/deps/hiredis/dict.c:235,1
    - Dst: dictFreeEntryVal
      Src: /src/h2o/deps/hiredis/dict.c:236,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/dict.c:237,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/dict.c:243,1
    - Dst: _dictReset
      Src: /src/h2o/deps/hiredis/dict.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ht
    argTypes:
    - dict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 247
    functionName: _dictClear
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 0
    functionsReached:
    - dictFreeEntryKey
    - hi_free
    - dictFreeEntryVal
    - _dictReset
    linkageType: ''
    returnType: int
    signature: int _dictClear(dict *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dictClear
      Src: /src/h2o/deps/hiredis/dict.c:251,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/dict.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ht
    argTypes:
    - dict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: dictRelease
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 2
    functionsReached:
    - hi_free
    - _dictClear
    linkageType: ''
    returnType: void
    signature: void dictRelease(dict *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictHashKey
      Src: /src/h2o/deps/hiredis/dict.c:260,1
    - Dst: dictCompareHashKeys
      Src: /src/h2o/deps/hiredis/dict.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - dict*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: dictFind
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 3
    functionsReached:
    - dictCompareHashKeys
    - dictHashKey
    linkageType: ''
    returnType: dictEntry
    signature: dictEntry *dictFind(dict *ht, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - iter
    - ht
    argTypes:
    - dictIterator*
    - dict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: dictInitIterator
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dictInitIterator(dictIterator *iter, dict *ht)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - iter
    argTypes:
    - dictIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 295
    functionName: dictNext
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: dictEntry
    signature: dictEntry *dictNext(dictIterator *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictExpand
      Src: /src/h2o/deps/hiredis/dict.c:304,1
    - Dst: dictExpand
      Src: /src/h2o/deps/hiredis/dict.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ht
    argTypes:
    - dict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: _dictExpandIfNeeded
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 0
    functionsReached:
    - dictExpand
    linkageType: ''
    returnType: int
    signature: int _dictExpandIfNeeded(dict *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: _dictNextPower
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _dictNextPower(unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dictExpandIfNeeded
      Src: /src/h2o/deps/hiredis/dict.c:330,1
    - Dst: dictHashKey
      Src: /src/h2o/deps/hiredis/dict.c:333,1
    - Dst: dictCompareHashKeys
      Src: /src/h2o/deps/hiredis/dict.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ht
    - key
    argTypes:
    - dict*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: _dictKeyIndex
    functionSourceFile: /src/h2o/deps/hiredis/dict.c
    functionUses: 1
    functionsReached:
    - dictCompareHashKeys
    - _dictExpandIfNeeded
    - dictHashKey
    linkageType: ''
    returnType: int
    signature: int _dictKeyIndex(dict *ht, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: _EL_ADD_READ
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EL_ADD_READ(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: _EL_DEL_READ
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EL_DEL_READ(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: _EL_ADD_WRITE
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EL_ADD_WRITE(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: _EL_DEL_WRITE
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EL_DEL_WRITE(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: _EL_CLEANUP
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EL_CLEANUP(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_EL_TIMER
      Src: /src/h2o/deps/hiredis/async_private.h:66,1
    - Dst: REDIS_EL_TIMER
      Src: /src/h2o/deps/hiredis/async_private.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: refreshTimeout
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 0
    functionsReached:
    - REDIS_EL_TIMER
    linkageType: ''
    returnType: void
    signature: void refreshTimeout(redisAsyncContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: REDIS_TIMER_ISSET
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDIS_TIMER_ISSET(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ac
    - ','
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: REDIS_EL_TIMER
    functionSourceFile: /src/h2o/deps/hiredis/async_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDIS_EL_TIMER(ac, tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - node
    - ','
    - service
    - ','
    - hints
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: getaddrinfo
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getaddrinfo(node, service, hints, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: gai_strerror
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gai_strerror(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: freeaddrinfo
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freeaddrinfo(res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - domain
    - ','
    - type
    - ','
    - protocol
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: socket
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: socket(domain, type, protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - request
    - ','
    - argp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: ioctl
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctl(fd, request, argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sockfd
    - ','
    - addr
    - ','
    - addrlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: bind
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bind(sockfd, addr, addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sockfd
    - ','
    - addr
    - ','
    - addrlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: connect
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: connect(sockfd, addr, addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - sockfd
    - ','
    - level
    - ','
    - optname
    - ','
    - optval
    - ','
    - optlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: getsockopt
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getsockopt(sockfd, level, optname, optval, optlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - sockfd
    - ','
    - level
    - ','
    - optname
    - ','
    - optval
    - ','
    - optlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: setsockopt
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setsockopt(sockfd, level, optname, optval, optlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: close
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: close(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sockfd
    - ','
    - buf
    - ','
    - len
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: recv
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recv(sockfd, buf, len, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sockfd
    - ','
    - buf
    - ','
    - len
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: send
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send(sockfd, buf, len, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fds
    - ','
    - nfds
    - ','
    - timeout
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: poll
    functionSourceFile: /src/h2o/deps/hiredis/sockcompat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poll(fds, nfds, timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: va_copy
    functionSourceFile: /src/h2o/deps/hiredis/win32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(d,s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf_s
      Src: /src/h2o/deps/hiredis/win32.h:31,1
    - Dst: _vscprintf
      Src: /src/h2o/deps/hiredis/win32.h:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - str
    - size
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: c99_vsnprintf
    functionSourceFile: /src/h2o/deps/hiredis/win32.h
    functionUses: 0
    functionsReached:
    - _vsnprintf_s
    - _vscprintf
    linkageType: ''
    returnType: int
    signature: int c99_vsnprintf(char* str, size_t size, const char* format, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/win32.h:43,1
    - Dst: c99_vsnprintf
      Src: /src/h2o/deps/hiredis/win32.h:44,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/win32.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: c99_snprintf
    functionSourceFile: /src/h2o/deps/hiredis/win32.h
    functionUses: 0
    functionsReached:
    - c99_vsnprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int c99_snprintf(char* str, size_t size, const char* format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - errno
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: strerror_r
    functionSourceFile: /src/h2o/deps/hiredis/win32.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strerror_r(errno,buf,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeCriticalSection
      Src: /src/h2o/deps/hiredis/ssl.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sslLockInit
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - InitializeCriticalSection
    linkageType: ''
    returnType: void
    signature: void sslLockInit(sslLockType* l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/h2o/deps/hiredis/ssl.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: sslLockAcquire
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: void
    signature: void sslLockAcquire(sslLockType* l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/h2o/deps/hiredis/ssl.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: sslLockRelease
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: void
    signature: void sslLockRelease(sslLockType* l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/deps/hiredis/ssl.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: sslLockInit
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void sslLockInit(sslLockType *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/hiredis/ssl.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: sslLockAcquire
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void sslLockAcquire(sslLockType *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/hiredis/ssl.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - sslLockType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sslLockRelease
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void sslLockRelease(sslLockType *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sslLockAcquire
      Src: /src/h2o/deps/hiredis/ssl.c:140,1
    - Dst: sslLockRelease
      Src: /src/h2o/deps/hiredis/ssl.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - mode
    - lkid
    - f
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: opensslDoLock
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - sslLockRelease
    - sslLockAcquire
    linkageType: ''
    returnType: void
    signature: void opensslDoLock(int mode, int lkid, const char *f, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_locking_callback
      Src: /src/h2o/deps/hiredis/ssl.c:151,1
    - Dst: CRYPTO_num_locks
      Src: /src/h2o/deps/hiredis/ssl.c:155,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/ssl.c:156,1
    - Dst: sslLockInit
      Src: /src/h2o/deps/hiredis/ssl.c:161,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/h2o/deps/hiredis/ssl.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: initOpensslLocks
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - CRYPTO_get_locking_callback
    - CRYPTO_num_locks
    - sslLockInit
    - CRYPTO_set_locking_callback
    linkageType: ''
    returnType: int
    signature: int initOpensslLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/h2o/deps/hiredis/ssl.c:170,1
    - Dst: initOpensslLocks
      Src: /src/h2o/deps/hiredis/ssl.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: redisInitOpenSSL
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 1
    functionsReached:
    - initOpensslLocks
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int redisInitOpenSSL(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - redisSSLContextError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 204
    functionName: redisSSLContextGetError
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *redisSSLContextGetError(redisSSLContextError error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/ssl.c:212,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/deps/hiredis/ssl.c:217,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/ssl.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - redisSSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: redisFreeSSLContext
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 1
    functionsReached:
    - hi_free
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void redisFreeSSLContext(redisSSLContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisCreateSSLContextWithOptions
      Src: /src/h2o/deps/hiredis/ssl.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cacert_filename
    - capath
    - cert_filename
    - private_key_filename
    - server_name
    - error
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - redisSSLContextError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: redisCreateSSLContext
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 1
    functionsReached:
    - redisCreateSSLContextWithOptions
    linkageType: ''
    returnType: redisSSLContext
    signature: "redisSSLContext *redisCreateSSLContext(const char *cacert_filename,
      const char *capath,\n        const char *cert_filename, const char *private_key_filename,\n
      \       const char *server_name, redisSSLContextError *error)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/ssl.c:257,1
    - Dst: TLS_client_method
      Src: /src/h2o/deps/hiredis/ssl.c:263,1
    - Dst: SSLv23_client_method
      Src: /src/h2o/deps/hiredis/ssl.c:265,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/deps/hiredis/ssl.c:268,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/h2o/deps/hiredis/ssl.c:275,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/deps/hiredis/ssl.c:277,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/deps/hiredis/ssl.c:280,1
    - Dst: strcmp
      Src: /src/h2o/deps/hiredis/ssl.c:290,1
    - Dst: CertOpenSystemStore
      Src: /src/h2o/deps/hiredis/ssl.c:291,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/h2o/deps/hiredis/ssl.c:296,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/h2o/deps/hiredis/ssl.c:297,1
    - Dst: d2i_X509
      Src: /src/h2o/deps/hiredis/ssl.c:299,1
    - Dst: X509_STORE_add_cert
      Src: /src/h2o/deps/hiredis/ssl.c:301,1
    - Dst: SSL_CTX_add_client_CA
      Src: /src/h2o/deps/hiredis/ssl.c:302,1
    - Dst: X509_free
      Src: /src/h2o/deps/hiredis/ssl.c:307,1
    - Dst: CertFreeCertificateContext
      Src: /src/h2o/deps/hiredis/ssl.c:310,1
    - Dst: CertCloseStore
      Src: /src/h2o/deps/hiredis/ssl.c:311,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/deps/hiredis/ssl.c:314,1
    - Dst: SSL_CTX_set_default_verify_paths
      Src: /src/h2o/deps/hiredis/ssl.c:319,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/deps/hiredis/ssl.c:326,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/deps/hiredis/ssl.c:330,1
    - Dst: hi_strdup
      Src: /src/h2o/deps/hiredis/ssl.c:337,1
    - Dst: CertCloseStore
      Src: /src/h2o/deps/hiredis/ssl.c:344,1
    - Dst: redisFreeSSLContext
      Src: /src/h2o/deps/hiredis/ssl.c:346,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 2
    argNames:
    - options
    - error
    argTypes:
    - redisSSLOptions*
    - redisSSLContextError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 348
    functionName: redisCreateSSLContextWithOptions
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 1
    functionsReached:
    - CertCloseStore
    - SSL_CTX_load_verify_locations
    - hi_calloc
    - SSL_CTX_use_certificate_chain_file
    - SSLv23_client_method
    - TLS_client_method
    - SSL_CTX_set_verify
    - CertFreeCertificateContext
    - SSL_CTX_set_default_verify_paths
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_add_client_CA
    - X509_STORE_add_cert
    - SSL_CTX_new
    - CertOpenSystemStore
    - d2i_X509
    - redisFreeSSLContext
    - CertEnumCertificatesInStore
    - SSL_CTX_set_options
    - SSL_CTX_use_PrivateKey_file
    - hi_strdup
    - SSL_CTX_get_cert_store
    - strcmp
    - X509_free
    linkageType: ''
    returnType: redisSSLContext
    signature: redisSSLContext *redisCreateSSLContextWithOptions(redisSSLOptions *options,
      redisSSLContextError *error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:357,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/ssl.c:361,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:363,1
    - Dst: SSL_set_mode
      Src: /src/h2o/deps/hiredis/ssl.c:370,1
    - Dst: SSL_set_fd
      Src: /src/h2o/deps/hiredis/ssl.c:371,1
    - Dst: SSL_set_connect_state
      Src: /src/h2o/deps/hiredis/ssl.c:372,1
    - Dst: ERR_clear_error
      Src: /src/h2o/deps/hiredis/ssl.c:374,1
    - Dst: SSL_connect
      Src: /src/h2o/deps/hiredis/ssl.c:375,1
    - Dst: SSL_get_error
      Src: /src/h2o/deps/hiredis/ssl.c:381,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/ssl.c:391,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/ssl.c:391,1
    - Dst: ERR_peek_last_error
      Src: /src/h2o/deps/hiredis/ssl.c:393,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/ssl.c:394,1
    - Dst: ERR_reason_error_string
      Src: /src/h2o/deps/hiredis/ssl.c:395,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:397,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/ssl.c:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - c
    - ssl
    argTypes:
    - redisContext*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 402
    functionName: redisSSLConnect
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_fd
    - SSL_get_error
    - hi_calloc
    - __redisSetError
    - SSL_set_connect_state
    - SSL_set_mode
    - SSL_connect
    - snprintf
    - hi_free
    - ERR_clear_error
    - strerror
    - ERR_reason_error_string
    - ERR_peek_last_error
    linkageType: ''
    returnType: int
    signature: int redisSSLConnect(redisContext *c, SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisSSLConnect
      Src: /src/h2o/deps/hiredis/ssl.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - ssl
    argTypes:
    - redisContext*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: redisInitiateSSL
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - redisSSLConnect
    linkageType: ''
    returnType: int
    signature: int redisInitiateSSL(redisContext *c, SSL *ssl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/h2o/deps/hiredis/ssl.c:429,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:431,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/h2o/deps/hiredis/ssl.c:436,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:437,1
    - Dst: redisSSLConnect
      Src: /src/h2o/deps/hiredis/ssl.c:442,1
    - Dst: SSL_free
      Src: /src/h2o/deps/hiredis/ssl.c:450,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - c
    - redis_ssl_ctx
    argTypes:
    - redisContext*
    - redisSSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 452
    functionName: redisInitiateSSLWithContext
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 1
    functionsReached:
    - __redisSetError
    - SSL_free
    - SSL_set_tlsext_host_name
    - SSL_new
    - redisSSLConnect
    linkageType: ''
    returnType: int
    signature: int redisInitiateSSLWithContext(redisContext *c, redisSSLContext *redis_ssl_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - rssl
    - rv
    argTypes:
    - redisSSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: maybeCheckWant
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int maybeCheckWant(redisSSL *rssl, int rv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/h2o/deps/hiredis/ssl.c:479,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/ssl.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - privctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: redisSSLFree
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - hi_free
    linkageType: ''
    returnType: void
    signature: void redisSSLFree(void *privctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_read
      Src: /src/h2o/deps/hiredis/ssl.c:488,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:492,1
    - Dst: SSL_get_error
      Src: /src/h2o/deps/hiredis/ssl.c:495,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:510,1
    - Dst: maybeCheckWant
      Src: /src/h2o/deps/hiredis/ssl.c:518,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:521,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - c
    - buf
    - bufcap
    argTypes:
    - redisContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 525
    functionName: redisSSLRead
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - maybeCheckWant
    - __redisSetError
    - SSL_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t redisSSLRead(redisContext *c, char *buf, size_t bufcap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/ssl.c:530,1
    - Dst: SSL_write
      Src: /src/h2o/deps/hiredis/ssl.c:531,1
    - Dst: SSL_get_error
      Src: /src/h2o/deps/hiredis/ssl.c:538,1
    - Dst: maybeCheckWant
      Src: /src/h2o/deps/hiredis/ssl.c:539,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/ssl.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 547
    functionName: redisSSLWrite
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - sdslen
    - maybeCheckWant
    - SSL_get_error
    - __redisSetError
    - SSL_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t redisSSLWrite(redisContext *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: redisBufferWrite
      Src: /src/h2o/deps/hiredis/ssl.c:561,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/ssl.c:563,1
    - Dst: _EL_ADD_WRITE
      Src: /src/h2o/deps/hiredis/ssl.c:566,1
    - Dst: redisBufferRead
      Src: /src/h2o/deps/hiredis/ssl.c:570,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/ssl.c:572,1
    - Dst: _EL_ADD_READ
      Src: /src/h2o/deps/hiredis/ssl.c:574,1
    - Dst: redisProcessCallbacks
      Src: /src/h2o/deps/hiredis/ssl.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 577
    functionName: redisSSLAsyncRead
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - _EL_ADD_READ
    - __redisAsyncDisconnect
    - _EL_ADD_WRITE
    - redisProcessCallbacks
    - redisBufferWrite
    - redisBufferRead
    linkageType: ''
    returnType: void
    signature: void redisSSLAsyncRead(redisAsyncContext *ac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisBufferWrite
      Src: /src/h2o/deps/hiredis/ssl.c:585,1
    - Dst: __redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/ssl.c:587,1
    - Dst: _EL_DEL_WRITE
      Src: /src/h2o/deps/hiredis/ssl.c:595,1
    - Dst: _EL_ADD_WRITE
      Src: /src/h2o/deps/hiredis/ssl.c:598,1
    - Dst: _EL_DEL_WRITE
      Src: /src/h2o/deps/hiredis/ssl.c:602,1
    - Dst: _EL_ADD_READ
      Src: /src/h2o/deps/hiredis/ssl.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 607
    functionName: redisSSLAsyncWrite
    functionSourceFile: /src/h2o/deps/hiredis/ssl.c
    functionUses: 0
    functionsReached:
    - _EL_ADD_READ
    - __redisAsyncDisconnect
    - _EL_ADD_WRITE
    - _EL_DEL_WRITE
    - redisBufferWrite
    linkageType: ''
    returnType: void
    signature: void redisSSLAsyncWrite(redisAsyncContext *ac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/deps/hiredis/net.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: redisNetClose
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void redisNetClose(redisContext *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/h2o/deps/hiredis/net.c:63,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:70,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:73,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:73,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - c
    - buf
    - bufcap
    argTypes:
    - redisContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: redisNetRead
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - strerror
    - __redisSetError
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t redisNetRead(redisContext *c, char *buf, size_t bufcap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/h2o/deps/hiredis/net.c:87,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/net.c:87,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:93,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: redisNetWrite
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - sdslen
    - __redisSetError
    - strerror
    - send
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t redisNetWrite(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/net.c:107,1
    - Dst: strerror_r
      Src: /src/h2o/deps/hiredis/net.c:108,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - type
    - prefix
    argTypes:
    - redisContext*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: __redisSetErrorFromErrno
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - __redisSetError
    - snprintf
    - strerror_r
    linkageType: ''
    returnType: void
    signature: void __redisSetErrorFromErrno(redisContext *c, int type, const char
      *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:114,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:115,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: redisSetReuseAddr
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisNetClose
    - __redisSetErrorFromErrno
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int redisSetReuseAddr(redisContext *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/hiredis/net.c:124,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:125,1
    - Dst: redisSetReuseAddr
      Src: /src/h2o/deps/hiredis/net.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: redisCreateSocket
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisSetReuseAddr
    - socket
    - __redisSetErrorFromErrno
    linkageType: ''
    returnType: int
    signature: int redisCreateSocket(redisContext *c, int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/deps/hiredis/net.c:144,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:145,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:146,1
    - Dst: fcntl
      Src: /src/h2o/deps/hiredis/net.c:155,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:156,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:157,1
    - Dst: ioctl
      Src: /src/h2o/deps/hiredis/net.c:162,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:163,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - c
    - blocking
    argTypes:
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 169
    functionName: redisSetBlocking
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - ioctl
    - redisNetClose
    - __redisSetErrorFromErrno
    - fcntl
    linkageType: ''
    returnType: int
    signature: int redisSetBlocking(redisContext *c, int blocking)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:176,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:177,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:177,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:184,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:185,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:185,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:190,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:191,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:191,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:197,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:198,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:198,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:203,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:204,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:204,1
    - Dst: win32_redisKeepAlive
      Src: /src/h2o/deps/hiredis/net.c:212,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:214,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - c
    - interval
    argTypes:
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: redisKeepAlive
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 1
    functionsReached:
    - strerror
    - __redisSetError
    - win32_redisKeepAlive
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int redisKeepAlive(redisContext *c, int interval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:223,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:224,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: redisSetTcpNoDelay
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 1
    functionsReached:
    - redisNetClose
    - __redisSetErrorFromErrno
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int redisSetTcpNoDelay(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:234,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:241,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - redisContext*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: redisContextSetTcpUserTimeout
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisNetClose
    - __redisSetErrorFromErrno
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int redisContextSetTcpUserTimeout(redisContext *c, unsigned int timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - c
    - result
    argTypes:
    - redisContext*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: redisContextTimeoutMsec
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - __redisSetError
    linkageType: ''
    returnType: int
    signature: int redisContextTimeoutMsec(redisContext *c, long *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/h2o/deps/hiredis/net.c:283,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:284,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:285,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:289,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:290,1
    - Dst: redisCheckConnectDone
      Src: /src/h2o/deps/hiredis/net.c:294,1
    - Dst: redisCheckSocketError
      Src: /src/h2o/deps/hiredis/net.c:295,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:302,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - c
    - msec
    argTypes:
    - redisContext*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: redisContextWaitReady
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisCheckConnectDone
    - redisCheckSocketError
    - poll
    - redisNetClose
    - __redisSetErrorFromErrno
    linkageType: ''
    returnType: int
    signature: int redisContextWaitReady(redisContext *c, long msec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/h2o/deps/hiredis/net.c:308,1
    - Dst: getsockopt
      Src: /src/h2o/deps/hiredis/net.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - c
    - completed
    argTypes:
    - redisContext*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 341
    functionName: redisCheckConnectDone
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 2
    functionsReached:
    - connect
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int redisCheckConnectDone(redisContext *c, int *completed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/h2o/deps/hiredis/net.c:347,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:348,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 363
    functionName: redisCheckSocketError
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 2
    functionsReached:
    - __redisSetErrorFromErrno
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int redisCheckSocketError(redisContext *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisContextUpdateCommandTimeout
      Src: /src/h2o/deps/hiredis/net.c:369,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:370,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:373,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:374,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:377,1
    - Dst: __redisSetErrorFromErrno
      Src: /src/h2o/deps/hiredis/net.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - c
    - tv
    argTypes:
    - redisContext*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: redisContextSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisContextUpdateCommandTimeout
    - __redisSetError
    - __redisSetErrorFromErrno
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int redisContextSetTimeout(redisContext *c, const struct timeval tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/net.c:391,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/net.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - redisContext*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 398
    functionName: redisContextUpdateConnectTimeout
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int redisContextUpdateConnectTimeout(redisContext *c, const struct
      timeval *timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/net.c:407,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/net.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - redisContext*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: redisContextUpdateCommandTimeout
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 1
    functionsReached:
    - hi_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int redisContextUpdateCommandTimeout(redisContext *c, const struct
      timeval *timeout)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:440,1
    - Dst: hi_strdup
      Src: /src/h2o/deps/hiredis/net.c:442,1
    - Dst: redisContextUpdateConnectTimeout
      Src: /src/h2o/deps/hiredis/net.c:448,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:451,1
    - Dst: redisContextTimeoutMsec
      Src: /src/h2o/deps/hiredis/net.c:455,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:460,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:463,1
    - Dst: hi_strdup
      Src: /src/h2o/deps/hiredis/net.c:464,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/net.c:467,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/net.c:468,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:482,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:486,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:489,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/hiredis/net.c:489,1
    - Dst: socket
      Src: /src/h2o/deps/hiredis/net.c:494,1
    - Dst: redisSetTcpNoDelay
      Src: /src/h2o/deps/hiredis/net.c:498,1
    - Dst: redisSetBlocking
      Src: /src/h2o/deps/hiredis/net.c:500,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:505,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/net.c:507,1
    - Dst: gai_strerror
      Src: /src/h2o/deps/hiredis/net.c:507,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:508,1
    - Dst: setsockopt
      Src: /src/h2o/deps/hiredis/net.c:514,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:516,1
    - Dst: bind
      Src: /src/h2o/deps/hiredis/net.c:522,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:527,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/net.c:530,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:530,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:531,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:537,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/net.c:538,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/net.c:542,1
    - Dst: connect
      Src: /src/h2o/deps/hiredis/net.c:545,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:547,1
    - Dst: redisNetClose
      Src: /src/h2o/deps/hiredis/net.c:561,1
    - Dst: redisContextWaitReady
      Src: /src/h2o/deps/hiredis/net.c:566,1
    - Dst: redisSetBlocking
      Src: /src/h2o/deps/hiredis/net.c:570,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/net.c:579,1
    - Dst: strerror
      Src: /src/h2o/deps/hiredis/net.c:579,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:580,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:585,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/hiredis/net.c:590,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 151
    argCount: 5
    argNames:
    - c
    - addr
    - port
    - timeout
    - source_addr
    argTypes:
    - redisContext*
    - char*
    - int
    - struct timeval*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 594
    functionName: _redisContextConnectTcp
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisContextTimeoutMsec
    - hi_malloc
    - getaddrinfo
    - gai_strerror
    - redisSetBlocking
    - connect
    - redisContextWaitReady
    - setsockopt
    - hi_free
    - strerror
    - memset
    - __redisSetError
    - snprintf
    - memcpy
    - redisNetClose
    - hi_strdup
    - redisSetTcpNoDelay
    - freeaddrinfo
    - redisContextUpdateConnectTimeout
    - bind
    - socket
    linkageType: ''
    returnType: int
    signature: "int _redisContextConnectTcp(redisContext *c, const char *addr, int
      port,\n                                   const struct timeval *timeout,\n                                   const
      char *source_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _redisContextConnectTcp
      Src: /src/h2o/deps/hiredis/net.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - c
    - addr
    - port
    - timeout
    argTypes:
    - redisContext*
    - char*
    - int
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: redisContextConnectTcp
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 1
    functionsReached:
    - _redisContextConnectTcp
    linkageType: ''
    returnType: int
    signature: "int redisContextConnectTcp(redisContext *c, const char *addr, int
      port,\n                           const struct timeval *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _redisContextConnectTcp
      Src: /src/h2o/deps/hiredis/net.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - c
    - addr
    - port
    - timeout
    - source_addr
    argTypes:
    - redisContext*
    - char*
    - int
    - struct timeval*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 605
    functionName: redisContextConnectBindTcp
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - _redisContextConnectTcp
    linkageType: ''
    returnType: int
    signature: "int redisContextConnectBindTcp(redisContext *c, const char *addr,
      int port,\n                               const struct timeval *timeout,\n                               const
      char *source_addr)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: redisCreateSocket
      Src: /src/h2o/deps/hiredis/net.c:613,1
    - Dst: redisSetBlocking
      Src: /src/h2o/deps/hiredis/net.c:615,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:620,1
    - Dst: hi_strdup
      Src: /src/h2o/deps/hiredis/net.c:622,1
    - Dst: redisContextUpdateConnectTimeout
      Src: /src/h2o/deps/hiredis/net.c:628,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:631,1
    - Dst: redisContextTimeoutMsec
      Src: /src/h2o/deps/hiredis/net.c:635,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/net.c:639,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/net.c:641,1
    - Dst: strncpy
      Src: /src/h2o/deps/hiredis/net.c:647,1
    - Dst: connect
      Src: /src/h2o/deps/hiredis/net.c:648,1
    - Dst: redisContextWaitReady
      Src: /src/h2o/deps/hiredis/net.c:652,1
    - Dst: redisSetBlocking
      Src: /src/h2o/deps/hiredis/net.c:658,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/net.c:670,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - c
    - path
    - timeout
    argTypes:
    - redisContext*
    - char*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 672
    functionName: redisContextConnectUnix
    functionSourceFile: /src/h2o/deps/hiredis/net.c
    functionUses: 0
    functionsReached:
    - redisCreateSocket
    - redisSetBlocking
    - redisContextTimeoutMsec
    - hi_strdup
    - hi_malloc
    - __redisSetError
    - hi_free
    - redisContextUpdateConnectTimeout
    - connect
    - redisContextWaitReady
    - strncpy
    linkageType: ''
    returnType: int
    signature: int redisContextConnectUnix(redisContext *c, const char *path, const
      struct timeval *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - override
    argTypes:
    - hiredisAllocFuncs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: hiredisSetAllocators
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: hiredisAllocFuncs
    signature: hiredisAllocFuncs hiredisSetAllocators(hiredisAllocFuncs *override)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: hiredisResetAllocators
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hiredisResetAllocators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mallocFn
      Src: /src/h2o/deps/hiredis/alloc.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: hi_malloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 10
    functionsReached:
    - mallocFn
    linkageType: ''
    returnType: void
    signature: void *hi_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callocFn
      Src: /src/h2o/deps/hiredis/alloc.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: hi_calloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 7
    functionsReached:
    - callocFn
    linkageType: ''
    returnType: void
    signature: void *hi_calloc(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reallocFn
      Src: /src/h2o/deps/hiredis/alloc.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: hi_realloc
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 2
    functionsReached:
    - reallocFn
    linkageType: ''
    returnType: void
    signature: void *hi_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdupFn
      Src: /src/h2o/deps/hiredis/alloc.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: hi_strdup
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 3
    functionsReached:
    - strdupFn
    linkageType: ''
    returnType: char
    signature: char *hi_strdup(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeFn
      Src: /src/h2o/deps/hiredis/alloc.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: hi_free
    functionSourceFile: /src/h2o/deps/hiredis/alloc.c
    functionUses: 16
    functionsReached:
    - freeFn
    linkageType: ''
    returnType: void
    signature: void hi_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/hiredis.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: createReplyObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_calloc
    linkageType: ''
    returnType: redisReply
    signature: redisReply *createReplyObject(int type)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:109,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:110,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:119,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - reply
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: freeReplyObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 19
    functionsReached:
    - freeReplyObject
    - hi_free
    linkageType: ''
    returnType: void
    signature: void freeReplyObject(void *reply)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:129,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:133,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/hiredis.c:141,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:144,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:146,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/hiredis.c:150,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:153,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:161,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:170,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - task
    - str
    - len
    argTypes:
    - redisReadTask*
    - char*
    - size_t
    assertStmts:
    - condition: "(task->type == REDIS_REPLY_ERROR  ||\n           task->type == REDIS_REPLY_STATUS
        ||\n           task->type == REDIS_REPLY_STRING ||\n           task->type
        == REDIS_REPLY_VERB   ||\n           task->type == REDIS_REPLY_BIGNUM)"
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/h2o/deps/hiredis/hiredis.c
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 163
        line_start: 160
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 172
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 172
    functionName: createStringObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - memcpy
    - createReplyObject
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void *createStringObject(const redisReadTask *task, char *str, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:177,1
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/hiredis.c:182,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:184,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - task
    - elements
    argTypes:
    - redisReadTask*
    - size_t
    assertStmts:
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 195
        line_start: 192
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 200
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 200
    functionName: createArrayObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_calloc
    - freeReplyObject
    - assert
    - createReplyObject
    linkageType: ''
    returnType: void
    signature: void *createArrayObject(const redisReadTask *task, size_t elements)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:205,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - task
    - value
    argTypes:
    - redisReadTask*
    - long long
    assertStmts:
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 215
        line_start: 212
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: createIntegerObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - assert
    - createReplyObject
    linkageType: ''
    returnType: void
    signature: void *createIntegerObject(const redisReadTask *task, long long value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:228,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/hiredis.c:233,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:235,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:244,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - task
    - value
    - str
    - len
    argTypes:
    - redisReadTask*
    - double
    - char*
    - size_t
    assertStmts:
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 252
        line_start: 249
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: createDoubleObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_malloc
    - memcpy
    - createReplyObject
    - freeReplyObject
    - assert
    linkageType: ''
    returnType: void
    signature: void *createDoubleObject(const redisReadTask *task, double value, char
      *str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:262,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - task
    argTypes:
    - redisReadTask*
    assertStmts:
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 270
        line_start: 267
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: createNilObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - assert
    - createReplyObject
    linkageType: ''
    returnType: void
    signature: void *createNilObject(const redisReadTask *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: createReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:280,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - task
    - bval
    argTypes:
    - redisReadTask*
    - int
    assertStmts:
    - condition: "(parent->type == REDIS_REPLY_ARRAY ||\n               parent->type
        == REDIS_REPLY_MAP ||\n               parent->type == REDIS_REPLY_SET ||\n
        \              parent->type == REDIS_REPLY_PUSH)"
      pos:
        line_end: 290
        line_start: 287
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 295
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 295
    functionName: createBoolObject
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - assert
    - createReplyObject
    linkageType: ''
    returnType: void
    signature: void *createBoolObject(const redisReadTask *task, int bval)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: countDigits
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t countDigits(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countDigits
      Src: /src/h2o/deps/hiredis/hiredis.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: bulklen
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - countDigits
    linkageType: ''
    returnType: size_t
    signature: size_t bulklen(size_t len)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:333,1
    - Dst: hi_realloc
      Src: /src/h2o/deps/hiredis/hiredis.c:341,1
    - Dst: bulklen
      Src: /src/h2o/deps/hiredis/hiredis.c:345,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:345,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:348,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:353,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/hiredis.c:367,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:368,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:370,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/hiredis.c:373,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/hiredis.c:374,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:376,1
    - Dst: sdscat
      Src: /src/h2o/deps/hiredis/hiredis.c:379,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:392,1
    - Dst: isdigit
      Src: /src/h2o/deps/hiredis/hiredis.c:395,1
    - Dst: isdigit
      Src: /src/h2o/deps/hiredis/hiredis.c:400,1
    - Dst: va_copy
      Src: /src/h2o/deps/hiredis/hiredis.c:404,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:412,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:418,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:426,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:436,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:446,1
    - Dst: strchr
      Src: /src/h2o/deps/hiredis/hiredis.c:456,1
    - Dst: va_arg
      Src: /src/h2o/deps/hiredis/hiredis.c:457,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/hiredis.c:464,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:470,1
    - Dst: sdscatvprintf
      Src: /src/h2o/deps/hiredis/hiredis.c:472,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/hiredis.c:479,1
    - Dst: hi_realloc
      Src: /src/h2o/deps/hiredis/hiredis.c:497,1
    - Dst: bulklen
      Src: /src/h2o/deps/hiredis/hiredis.c:501,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:501,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:503,1
    - Dst: countDigits
      Src: /src/h2o/deps/hiredis/hiredis.c:510,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/hiredis.c:513,1
    - Dst: sprintf
      Src: /src/h2o/deps/hiredis/hiredis.c:516,1
    - Dst: sprintf
      Src: /src/h2o/deps/hiredis/hiredis.c:518,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:518,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:519,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:519,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:520,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:521,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:525,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:528,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:543,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:544,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:547,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:548,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 193
    argCount: 3
    argNames:
    - target
    - format
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts:
    - condition: (pos == totlen)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 551
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 551
    functionName: redisvFormatCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - va_copy
    - hi_malloc
    - hi_realloc
    - sprintf
    - sdsempty
    - sdsfree
    - assert
    - bulklen
    - hi_free
    - strchr
    - va_arg
    - memcpy
    - isdigit
    - strlen
    - sdslen
    - sdscat
    - sdscatlen
    - va_end
    - sdscatvprintf
    - countDigits
    linkageType: ''
    returnType: int
    signature: int redisvFormatCommand(char **target, const char *format, va_list
      ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/hiredis.c:568,1
    - Dst: redisvFormatCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:569,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/hiredis.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - target
    - format
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 565
    functionDepth: 6
    functionLinenumber: 565
    functionLinenumberEnd: 578
    functionName: redisFormatCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - va_end
    - redisvFormatCommand
    - va_start
    linkageType: ''
    returnType: int
    signature: int redisFormatCommand(char **target, const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: countDigits
      Src: /src/h2o/deps/hiredis/hiredis.c:598,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:600,1
    - Dst: bulklen
      Src: /src/h2o/deps/hiredis/hiredis.c:601,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:605,1
    - Dst: sdsMakeRoomFor
      Src: /src/h2o/deps/hiredis/hiredis.c:610,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:612,1
    - Dst: sdscatfmt
      Src: /src/h2o/deps/hiredis/hiredis.c:619,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:621,1
    - Dst: sdscatfmt
      Src: /src/h2o/deps/hiredis/hiredis.c:622,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:623,1
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:624,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:627,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - target
    - argc
    - argv
    - argvlen
    argTypes:
    - sds*
    - int
    - char**
    - size_t*
    assertStmts:
    - condition: (sdslen(cmd)==totlen)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 631
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 631
    functionName: redisFormatSdsCommandArgv
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - sdslen
    - countDigits
    - sdscatlen
    - sdsMakeRoomFor
    - sdsempty
    - sdscatfmt
    - sdsfree
    - assert
    - strlen
    - bulklen
    linkageType: ''
    returnType: long long
    signature: "long long redisFormatSdsCommandArgv(sds *target, int argc, const char
      **argv,\n                                    const size_t *argvlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - sds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 635
    functionName: redisFreeSdsCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - sdsfree
    linkageType: ''
    returnType: void
    signature: void redisFreeSdsCommand(sds cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: countDigits
      Src: /src/h2o/deps/hiredis/hiredis.c:653,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:655,1
    - Dst: bulklen
      Src: /src/h2o/deps/hiredis/hiredis.c:656,1
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/hiredis.c:660,1
    - Dst: sprintf
      Src: /src/h2o/deps/hiredis/hiredis.c:664,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:666,1
    - Dst: sprintf
      Src: /src/h2o/deps/hiredis/hiredis.c:667,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:668,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - target
    - argc
    - argv
    - argvlen
    argTypes:
    - char**
    - int
    - char**
    - size_t*
    assertStmts:
    - condition: (pos == totlen)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 678
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 678
    functionName: redisFormatCommandArgv
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - hi_malloc
    - countDigits
    - sprintf
    - memcpy
    - assert
    - strlen
    - bulklen
    linkageType: ''
    returnType: long long
    signature: long long redisFormatCommandArgv(char **target, int argc, const char
      **argv, const size_t *argvlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: redisFreeCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void redisFreeCommand(char *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:689,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/hiredis.c:691,1
    - Dst: assert
      Src: /src/h2o/deps/hiredis/hiredis.c:695,1
    - Dst: strerror_r
      Src: /src/h2o/deps/hiredis/hiredis.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - c
    - type
    - str
    argTypes:
    - redisContext*
    - int
    - char*
    assertStmts:
    - condition: (type == REDIS_ERR_IO)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/h2o/deps/hiredis/hiredis.c
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: __redisSetError
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 16
    functionsReached:
    - memcpy
    - assert
    - strlen
    - strerror_r
    linkageType: ''
    returnType: void
    signature: void __redisSetError(redisContext *c, int type, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisReaderCreateWithFunctions
      Src: /src/h2o/deps/hiredis/hiredis.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: redisReaderCreate
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - redisReaderCreateWithFunctions
    linkageType: ''
    returnType: redisReader
    signature: redisReader *redisReaderCreate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - privdata
    - reply
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: redisPushAutoFree
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void redisPushAutoFree(void *privdata, void *reply)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/hiredis.c:712,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:718,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/hiredis.c:719,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/hiredis.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 728
    functionName: redisContextInit
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_calloc
    - redisReaderCreate
    - sdsempty
    - redisFree
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisContextInit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: redisContext*::funcs::close
      Src: /src/h2o/deps/hiredis/hiredis.c:735,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:738,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/hiredis.c:739,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:740,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:741,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:742,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:743,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:744,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:745,1
    - Dst: redisContext*::free_privdata
      Src: /src/h2o/deps/hiredis/hiredis.c:748,1
    - Dst: redisContext*::funcs::free_privctx
      Src: /src/h2o/deps/hiredis/hiredis.c:751,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/hiredis.c:753,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 755
    functionName: redisFree
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 15
    functionsReached:
    - memset
    - redisContext*::free_privdata
    - redisContext*::funcs::free_privctx
    - hi_free
    - redisReaderFree
    - redisContext*::funcs::close
    - sdsfree
    linkageType: ''
    returnType: void
    signature: void redisFree(redisContext *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/hiredis.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 762
    functionName: redisFreeKeepFd
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisFree
    linkageType: ''
    returnType: redisFD
    signature: redisFD redisFreeKeepFd(redisContext *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/hiredis/hiredis.c:766,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/hiredis.c:766,1
    - Dst: redisContext*::funcs::free_privctx
      Src: /src/h2o/deps/hiredis/hiredis.c:769,1
    - Dst: redisContext*::funcs::close
      Src: /src/h2o/deps/hiredis/hiredis.c:774,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:777,1
    - Dst: redisReaderFree
      Src: /src/h2o/deps/hiredis/hiredis.c:778,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:780,1
    - Dst: redisReaderCreate
      Src: /src/h2o/deps/hiredis/hiredis.c:781,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:784,1
    - Dst: redisContextConnectBindTcp
      Src: /src/h2o/deps/hiredis/hiredis.c:790,1
    - Dst: redisContextConnectUnix
      Src: /src/h2o/deps/hiredis/hiredis.c:793,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:797,1
    - Dst: redisContextSetTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:802,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 806
    functionName: redisReconnect
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisReaderCreate
    - __redisSetError
    - redisContext*::funcs::free_privctx
    - redisContextConnectBindTcp
    - sdsfree
    - redisContextSetTimeout
    - sdsempty
    - redisReaderFree
    - redisContext*::funcs::close
    - redisContextConnectUnix
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: int redisReconnect(redisContext *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: redisContextInit
      Src: /src/h2o/deps/hiredis/hiredis.c:809,1
    - Dst: redisSetPushCallback
      Src: /src/h2o/deps/hiredis/hiredis.c:835,1
    - Dst: redisSetPushCallback
      Src: /src/h2o/deps/hiredis/hiredis.c:837,1
    - Dst: redisContextUpdateConnectTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:842,1
    - Dst: redisContextUpdateCommandTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:843,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:844,1
    - Dst: redisContextConnectBindTcp
      Src: /src/h2o/deps/hiredis/hiredis.c:849,1
    - Dst: redisContextConnectUnix
      Src: /src/h2o/deps/hiredis/hiredis.c:853,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/hiredis.c:859,1
    - Dst: redisContextSetTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:866,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - options
    argTypes:
    - redisOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 808
    functionDepth: 6
    functionLinenumber: 808
    functionLinenumberEnd: 870
    functionName: redisConnectWithOptions
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 6
    functionsReached:
    - redisSetPushCallback
    - redisContextUpdateCommandTimeout
    - __redisSetError
    - redisContextConnectBindTcp
    - redisContextInit
    - redisFree
    - redisContextSetTimeout
    - redisContextUpdateConnectTimeout
    - redisContextConnectUnix
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectWithOptions(const redisOptions *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/hiredis.c:877,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 7
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: redisConnect
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 4
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnect(const char *ip, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/hiredis.c:883,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ip
    - port
    - tv
    argTypes:
    - char*
    - int
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 7
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: redisConnectWithTimeout
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectWithTimeout(const char *ip, int port, const
      struct timeval tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/hiredis.c:890,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 888
    functionDepth: 7
    functionLinenumber: 888
    functionLinenumberEnd: 893
    functionName: redisConnectNonBlock
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectNonBlock(const char *ip, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/hiredis.c:898,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - source_addr
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 895
    functionDepth: 7
    functionLinenumber: 895
    functionLinenumberEnd: 902
    functionName: redisConnectBindNonBlock
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: "redisContext *redisConnectBindNonBlock(const char *ip, int port,\n
      \                                      const char *source_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/hiredis.c:907,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - source_addr
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 904
    functionDepth: 7
    functionLinenumber: 904
    functionLinenumberEnd: 911
    functionName: redisConnectBindNonBlockWithReuse
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - REDIS_OPTIONS_SET_TCP
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: "redisContext *redisConnectBindNonBlockWithReuse(const char *ip, int
      port,\n                                                const char *source_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_UNIX
      Src: /src/h2o/deps/hiredis/hiredis.c:915,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 7
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: redisConnectUnix
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 3
    functionsReached:
    - redisConnectWithOptions
    - REDIS_OPTIONS_SET_UNIX
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectUnix(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_UNIX
      Src: /src/h2o/deps/hiredis/hiredis.c:921,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - path
    - tv
    argTypes:
    - char*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 919
    functionDepth: 7
    functionLinenumber: 919
    functionLinenumberEnd: 924
    functionName: redisConnectUnixWithTimeout
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisConnectWithOptions
    - REDIS_OPTIONS_SET_UNIX
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectUnixWithTimeout(const char *path, const struct
      timeval tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDIS_OPTIONS_SET_UNIX
      Src: /src/h2o/deps/hiredis/hiredis.c:928,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 7
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: redisConnectUnixNonBlock
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - redisConnectWithOptions
    - REDIS_OPTIONS_SET_UNIX
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectUnixNonBlock(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/hiredis.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - redisFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 933
    functionDepth: 7
    functionLinenumber: 933
    functionLinenumberEnd: 938
    functionName: redisConnectFd
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisConnectWithOptions
    linkageType: ''
    returnType: redisContext
    signature: redisContext *redisConnectFd(redisFD fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisContextSetTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - tv
    argTypes:
    - redisContext*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 3
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: redisSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - redisContextSetTimeout
    linkageType: ''
    returnType: int
    signature: int redisSetTimeout(redisContext *c, const struct timeval tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisKeepAlive
      Src: /src/h2o/deps/hiredis/hiredis.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - interval
    argTypes:
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: redisEnableKeepAliveWithInterval
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - redisKeepAlive
    linkageType: ''
    returnType: int
    signature: int redisEnableKeepAliveWithInterval(redisContext *c, int interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisKeepAlive
      Src: /src/h2o/deps/hiredis/hiredis.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 954
    functionName: redisEnableKeepAlive
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisKeepAlive
    linkageType: ''
    returnType: int
    signature: int redisEnableKeepAlive(redisContext *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisContextSetTcpUserTimeout
      Src: /src/h2o/deps/hiredis/hiredis.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - redisContext*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: redisSetTcpUserTimeout
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisContextSetTcpUserTimeout
    linkageType: ''
    returnType: int
    signature: int redisSetTcpUserTimeout(redisContext *c, unsigned int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - fn
    argTypes:
    - redisContext*
    - redisPushFn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: redisSetPushCallback
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: redisPushFn
    signature: redisPushFn *redisSetPushCallback(redisContext *c, redisPushFn *fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisContext*::funcs::read
      Src: /src/h2o/deps/hiredis/hiredis.c:981,1
    - Dst: redisReaderFeed
      Src: /src/h2o/deps/hiredis/hiredis.c:985,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 973
    functionDepth: 5
    functionLinenumber: 973
    functionLinenumberEnd: 990
    functionName: redisBufferRead
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - redisContext*::funcs::read
    - __redisSetError
    - redisReaderFeed
    linkageType: ''
    returnType: int
    signature: int redisBufferRead(redisContext *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:1007,1
    - Dst: redisContext*::funcs::write
      Src: /src/h2o/deps/hiredis/hiredis.c:1008,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:1012,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:1013,1
    - Dst: sdsempty
      Src: /src/h2o/deps/hiredis/hiredis.c:1014,1
    - Dst: sdsrange
      Src: /src/h2o/deps/hiredis/hiredis.c:1018,1
    - Dst: sdslen
      Src: /src/h2o/deps/hiredis/hiredis.c:1022,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1026,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - c
    - done
    argTypes:
    - redisContext*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1028
    functionName: redisBufferWrite
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 3
    functionsReached:
    - sdslen
    - redisContext*::funcs::write
    - sdsrange
    - __redisSetError
    - sdsempty
    - sdsfree
    linkageType: ''
    returnType: int
    signature: int redisBufferWrite(redisContext *c, int *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisIsPushReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1033,1
    - Dst: redisContext*::push_cb
      Src: /src/h2o/deps/hiredis/hiredis.c:1034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - c
    - reply
    argTypes:
    - redisContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1039
    functionName: redisHandledPushReply
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - redisContext*::push_cb
    - redisIsPushReply
    linkageType: ''
    returnType: int
    signature: int redisHandledPushReply(redisContext *c, void *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisReaderGetReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1043,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - reply
    argTypes:
    - redisContext*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1042
    functionDepth: 8
    functionLinenumber: 1042
    functionLinenumberEnd: 1049
    functionName: redisGetReplyFromReader
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - __redisSetError
    - redisReaderGetReply
    linkageType: ''
    returnType: int
    signature: int redisGetReplyFromReader(redisContext *c, void **reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisGetReplyFromReader
      Src: /src/h2o/deps/hiredis/hiredis.c:1056,1
    - Dst: redisHandledPushReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - reply
    argTypes:
    - redisContext*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1054
    functionDepth: 9
    functionLinenumber: 1054
    functionLinenumberEnd: 1061
    functionName: redisNextInBandReplyFromReader
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - redisHandledPushReply
    - redisGetReplyFromReader
    linkageType: ''
    returnType: int
    signature: int redisNextInBandReplyFromReader(redisContext *c, void **reply)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: redisNextInBandReplyFromReader
      Src: /src/h2o/deps/hiredis/hiredis.c:1068,1
    - Dst: redisBufferWrite
      Src: /src/h2o/deps/hiredis/hiredis.c:1075,1
    - Dst: redisBufferRead
      Src: /src/h2o/deps/hiredis/hiredis.c:1081,1
    - Dst: redisNextInBandReplyFromReader
      Src: /src/h2o/deps/hiredis/hiredis.c:1084,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/hiredis.c:1093,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - c
    - reply
    argTypes:
    - redisContext*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1063
    functionDepth: 10
    functionLinenumber: 1063
    functionLinenumberEnd: 1097
    functionName: redisGetReply
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 6
    functionsReached:
    - redisNextInBandReplyFromReader
    - freeReplyObject
    - redisBufferWrite
    - redisBufferRead
    linkageType: ''
    returnType: int
    signature: int redisGetReply(redisContext *c, void **reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdscatlen
      Src: /src/h2o/deps/hiredis/hiredis.c:1109,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - c
    - cmd
    - len
    argTypes:
    - redisContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1117
    functionName: __redisAppendCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - __redisSetError
    - sdscatlen
    linkageType: ''
    returnType: int
    signature: int __redisAppendCommand(redisContext *c, const char *cmd, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __redisAppendCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - cmd
    - len
    argTypes:
    - redisContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1119
    functionDepth: 4
    functionLinenumber: 1119
    functionLinenumberEnd: 1126
    functionName: redisAppendFormattedCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 2
    functionsReached:
    - __redisAppendCommand
    linkageType: ''
    returnType: int
    signature: int redisAppendFormattedCommand(redisContext *c, const char *cmd, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisvFormatCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1132,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1134,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1137,1
    - Dst: __redisAppendCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1141,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:1142,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/hiredis.c:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - c
    - format
    - ap
    argTypes:
    - redisContext*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1128
    functionDepth: 6
    functionLinenumber: 1128
    functionLinenumberEnd: 1148
    functionName: redisvAppendCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - hi_free
    - __redisSetError
    - redisvFormatCommand
    - __redisAppendCommand
    linkageType: ''
    returnType: int
    signature: int redisvAppendCommand(redisContext *c, const char *format, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/hiredis.c:1154,1
    - Dst: redisvAppendCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1155,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/hiredis.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - format
    argTypes:
    - redisContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1150
    functionDepth: 7
    functionLinenumber: 1150
    functionLinenumberEnd: 1158
    functionName: redisAppendCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 5
    functionsReached:
    - redisvAppendCommand
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int redisAppendCommand(redisContext *c, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisFormatSdsCommandArgv
      Src: /src/h2o/deps/hiredis/hiredis.c:1164,1
    - Dst: __redisSetError
      Src: /src/h2o/deps/hiredis/hiredis.c:1166,1
    - Dst: __redisAppendCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1170,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:1171,1
    - Dst: sdsfree
      Src: /src/h2o/deps/hiredis/hiredis.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - c
    - argc
    - argv
    - argvlen
    argTypes:
    - redisContext*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1160
    functionDepth: 4
    functionLinenumber: 1160
    functionLinenumberEnd: 1177
    functionName: redisAppendCommandArgv
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - sdsfree
    - __redisSetError
    - __redisAppendCommand
    - redisFormatSdsCommandArgv
    linkageType: ''
    returnType: int
    signature: int redisAppendCommandArgv(redisContext *c, int argc, const char **argv,
      const size_t *argvlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisGetReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1190
    functionDepth: 11
    functionLinenumber: 1190
    functionLinenumberEnd: 1199
    functionName: __redisBlockForReply
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - redisGetReply
    linkageType: ''
    returnType: void
    signature: void *__redisBlockForReply(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisvAppendCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1202,1
    - Dst: __redisBlockForReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - format
    - ap
    argTypes:
    - redisContext*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1201
    functionDepth: 12
    functionLinenumber: 1201
    functionLinenumberEnd: 1205
    functionName: redisvCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 0
    functionsReached:
    - __redisBlockForReply
    - redisvAppendCommand
    linkageType: ''
    returnType: void
    signature: void *redisvCommand(redisContext *c, const char *format, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/hiredis/hiredis.c:1209,1
    - Dst: redisvCommand
      Src: /src/h2o/deps/hiredis/hiredis.c:1210,1
    - Dst: va_end
      Src: /src/h2o/deps/hiredis/hiredis.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - format
    argTypes:
    - redisContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1207
    functionDepth: 13
    functionLinenumber: 1207
    functionLinenumberEnd: 1213
    functionName: redisCommand
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 14
    functionsReached:
    - va_end
    - redisvCommand
    - va_start
    linkageType: ''
    returnType: void
    signature: void *redisCommand(redisContext *c, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisAppendCommandArgv
      Src: /src/h2o/deps/hiredis/hiredis.c:1216,1
    - Dst: __redisBlockForReply
      Src: /src/h2o/deps/hiredis/hiredis.c:1218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - c
    - argc
    - argv
    - argvlen
    argTypes:
    - redisContext*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1215
    functionDepth: 12
    functionLinenumber: 1215
    functionLinenumberEnd: 1219
    functionName: redisCommandArgv
    functionSourceFile: /src/h2o/deps/hiredis/hiredis.c
    functionUses: 1
    functionsReached:
    - redisAppendCommandArgv
    - __redisBlockForReply
    linkageType: ''
    returnType: void
    signature: void *redisCommandArgv(redisContext *c, int argc, const char **argv,
      const size_t *argvlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CFRunLoopSourceInvalidate
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:23,1
    - Dst: CFRelease
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:24,1
    - Dst: CFSocketInvalidate
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:27,1
    - Dst: CFRelease
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:28,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - redisRunLoop
    argTypes:
    - RedisRunLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: freeRedisRunLoop
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFRunLoopSourceInvalidate
    - hi_free
    - CFRelease
    - CFSocketInvalidate
    linkageType: ''
    returnType: int
    signature: int freeRedisRunLoop(RedisRunLoop* redisRunLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFSocketEnableCallBacks
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: redisMacOSAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFSocketEnableCallBacks
    linkageType: ''
    returnType: void
    signature: void redisMacOSAddRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFSocketDisableCallBacks
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: redisMacOSDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFSocketDisableCallBacks
    linkageType: ''
    returnType: void
    signature: void redisMacOSDelRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFSocketEnableCallBacks
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: redisMacOSAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFSocketEnableCallBacks
    linkageType: ''
    returnType: void
    signature: void redisMacOSAddWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFSocketDisableCallBacks
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: redisMacOSDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFSocketDisableCallBacks
    linkageType: ''
    returnType: void
    signature: void redisMacOSDelWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeRedisRunLoop
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: redisMacOSCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - freeRedisRunLoop
    linkageType: ''
    returnType: void
    signature: void redisMacOSCleanup(void *privdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:65,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - __unused
    - callbackType
    - __unused
    - data
    - info
    argTypes:
    - CFSocketRef
    - CFSocketCallBackType
    - CFDataRef
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: redisMacOSAsyncCallback
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisMacOSAsyncCallback(CFSocketRef __unused s, CFSocketCallBackType
      callbackType, CFDataRef __unused address, const void __unused *data, void *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:83,1
    - Dst: CFSocketCreateWithNative
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:100,1
    - Dst: freeRedisRunLoop
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:104,1
    - Dst: CFSocketCreateRunLoopSource
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:106,1
    - Dst: freeRedisRunLoop
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:107,1
    - Dst: CFRunLoopAddSource
      Src: /src/h2o/deps/hiredis/adapters/macosx.h:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - redisAsyncCtx
    - runLoop
    argTypes:
    - redisAsyncContext*
    - CFRunLoopRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 112
    functionName: redisMacOSAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/macosx.h
    functionUses: 0
    functionsReached:
    - CFSocketCreateRunLoopSource
    - freeRedisRunLoop
    - hi_calloc
    - CFRunLoopAddSource
    - CFSocketCreateWithNative
    linkageType: ''
    returnType: int
    signature: int redisMacOSAttach(redisAsyncContext *redisAsyncCtx, CFRunLoopRef
      runLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:20,1
    - Dst: g_main_context_wakeup
      Src: /src/h2o/deps/hiredis/adapters/glib.h:22,1
    - Dst: g_source_get_context
      Src: /src/h2o/deps/hiredis/adapters/glib.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: redis_source_add_read
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_get_context
    - g_return_if_fail
    - g_main_context_wakeup
    linkageType: ''
    returnType: void
    signature: void redis_source_add_read (gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:29,1
    - Dst: g_main_context_wakeup
      Src: /src/h2o/deps/hiredis/adapters/glib.h:31,1
    - Dst: g_source_get_context
      Src: /src/h2o/deps/hiredis/adapters/glib.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: redis_source_del_read
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_get_context
    - g_return_if_fail
    - g_main_context_wakeup
    linkageType: ''
    returnType: void
    signature: void redis_source_del_read (gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:38,1
    - Dst: g_main_context_wakeup
      Src: /src/h2o/deps/hiredis/adapters/glib.h:40,1
    - Dst: g_source_get_context
      Src: /src/h2o/deps/hiredis/adapters/glib.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: redis_source_add_write
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_get_context
    - g_return_if_fail
    - g_main_context_wakeup
    linkageType: ''
    returnType: void
    signature: void redis_source_add_write (gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:47,1
    - Dst: g_main_context_wakeup
      Src: /src/h2o/deps/hiredis/adapters/glib.h:49,1
    - Dst: g_source_get_context
      Src: /src/h2o/deps/hiredis/adapters/glib.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: redis_source_del_write
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_get_context
    - g_return_if_fail
    - g_main_context_wakeup
    linkageType: ''
    returnType: void
    signature: void redis_source_del_write (gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:57,1
    - Dst: redis_source_del_read
      Src: /src/h2o/deps/hiredis/adapters/glib.h:59,1
    - Dst: redis_source_del_write
      Src: /src/h2o/deps/hiredis/adapters/glib.h:60,1
    - Dst: g_source_remove_poll
      Src: /src/h2o/deps/hiredis/adapters/glib.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: redis_source_cleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - redis_source_del_write
    - redis_source_del_read
    - g_return_if_fail
    - g_source_remove_poll
    linkageType: ''
    returnType: void
    signature: void redis_source_cleanup (gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source
    - timeout_
    argTypes:
    - GSource*
    - gint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: redis_source_prepare
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean redis_source_prepare (GSource *source,\n                      gint
      \   *timeout_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - GSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: redis_source_check
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean redis_source_check (GSource *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/glib.h:95,1
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/glib.h:100,1
    - Dst: callback
      Src: /src/h2o/deps/hiredis/adapters/glib.h:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - source
    - callback
    - user_data
    argTypes:
    - GSource*
    - GSourceFunc
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: redis_source_dispatch
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - callback
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    linkageType: ''
    returnType: gboolean
    signature: "gboolean redis_source_dispatch (GSource      *source,\n                       GSourceFunc
      \  callback,\n                       gpointer      user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove_poll
      Src: /src/h2o/deps/hiredis/adapters/glib.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - source
    argTypes:
    - GSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: redis_source_finalize
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_remove_poll
    linkageType: ''
    returnType: void
    signature: void redis_source_finalize (GSource *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/h2o/deps/hiredis/adapters/glib.h:134,1
    - Dst: g_source_new
      Src: /src/h2o/deps/hiredis/adapters/glib.h:136,1
    - Dst: g_source_add_poll
      Src: /src/h2o/deps/hiredis/adapters/glib.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 154
    functionName: redis_source_new
    functionSourceFile: /src/h2o/deps/hiredis/adapters/glib.h
    functionUses: 0
    functionsReached:
    - g_source_add_poll
    - g_return_val_if_fail
    - g_source_new
    linkageType: ''
    returnType: GSource
    signature: 'GSource *

      redis_source_new (redisAsyncContext *ac)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - privdata
    - mask
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 7
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: redisModuleReadEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisModuleReadEvent(int fd, void *privdata, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - privdata
    - mask
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: redisModuleWriteEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void redisModuleWriteEvent(int fd, void *privdata, int mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_EventLoopAdd
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: redisModuleAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - RedisModule_EventLoopAdd
    linkageType: ''
    returnType: void
    signature: void redisModuleAddRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_EventLoopDel
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: redisModuleDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - RedisModule_EventLoopDel
    linkageType: ''
    returnType: void
    signature: void redisModuleDelRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_EventLoopAdd
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: redisModuleAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - RedisModule_EventLoopAdd
    linkageType: ''
    returnType: void
    signature: void redisModuleAddWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_EventLoopDel
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: redisModuleDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - RedisModule_EventLoopDel
    linkageType: ''
    returnType: void
    signature: void redisModuleDelWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_StopTimer
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: redisModuleStopTimer
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - RedisModule_StopTimer
    linkageType: ''
    returnType: void
    signature: void redisModuleStopTimer(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisModuleDelRead
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:78,1
    - Dst: redisModuleDelWrite
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:79,1
    - Dst: redisModuleStopTimer
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:80,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: redisModuleCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - redisModuleStopTimer
    - redisModuleDelWrite
    - hi_free
    - redisModuleDelRead
    linkageType: ''
    returnType: void
    signature: void redisModuleCleanup(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - privdata
    argTypes:
    - RedisModuleCtx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: redisModuleTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleTimeout
    linkageType: ''
    returnType: void
    signature: void redisModuleTimeout(RedisModuleCtx *ctx, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisModuleStopTimer
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:95,1
    - Dst: RedisModule_CreateTimer
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - privdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: redisModuleSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - redisModuleStopTimer
    - RedisModule_CreateTimer
    linkageType: ''
    returnType: void
    signature: void redisModuleSetTimeout(void *privdata, struct timeval tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: redisModuleCompatibilityCheck
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int redisModuleCompatibilityCheck(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/redismoduleapi.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ac
    - module_ctx
    argTypes:
    - redisAsyncContext*
    - RedisModuleCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: redisModuleAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    functionUses: 0
    functionsReached:
    - hi_malloc
    linkageType: ''
    returnType: int
    signature: int redisModuleAttach(redisAsyncContext *ac, RedisModuleCtx *module_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_source_disable_unref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:22,1
    - Dst: sd_event_source_disable_unref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:25,1
    - Dst: sd_event_unref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:27,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - redisLibsdeventEvents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: redisLibsdeventDestroy
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_unref
    - hi_free
    - sd_event_source_disable_unref
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventDestroy(redisLibsdeventEvents *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - s
    - usec
    - userdata
    argTypes:
    - sd_event_source*
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: redisLibsdeventTimeoutHandler
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleTimeout
    linkageType: ''
    returnType: int
    signature: int redisLibsdeventTimeoutHandler(sd_event_source *s, uint64_t usec,
      void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:51,1
    - Dst: CHECK_DELETED
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:52,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:56,1
    - Dst: CHECK_DELETED
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - s
    - fd
    - event
    - userdata
    argTypes:
    - sd_event_source*
    - int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 64
    functionName: redisLibsdeventHandler
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    - CHECK_DELETED
    linkageType: ''
    returnType: int
    signature: int redisLibsdeventHandler(sd_event_source *s, int fd, uint32_t event,
      void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: CHECK_DELETED
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DELETED()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_source_set_io_events
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:76,1
    - Dst: sd_event_add_io
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: redisLibsdeventAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_source_set_io_events
    - sd_event_add_io
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventAddRead(void *userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_source_set_io_events
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:88,1
    - Dst: sd_event_source_disable_unref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: redisLibsdeventDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_source_set_io_events
    - sd_event_source_disable_unref
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventDelRead(void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_source_set_io_events
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:104,1
    - Dst: sd_event_add_io
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 108
    functionName: redisLibsdeventAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_source_set_io_events
    - sd_event_add_io
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventAddWrite(void *userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_source_set_io_events
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:116,1
    - Dst: sd_event_source_disable_unref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: redisLibsdeventDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_source_set_io_events
    - sd_event_source_disable_unref
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventDelWrite(void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisLibsdeventDestroy
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: redisLibsdeventCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - redisLibsdeventDestroy
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventCleanup(void *userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_event_add_time_relative
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:141,1
    - Dst: sd_event_source_set_time_relative
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - userdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: redisLibsdeventSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - sd_event_source_set_time_relative
    - sd_event_add_time_relative
    linkageType: ''
    returnType: void
    signature: void redisLibsdeventSetTimeout(void *userdata, struct timeval tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:156,1
    - Dst: sd_event_ref
      Src: /src/h2o/deps/hiredis/adapters/libsdevent.h:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ac
    - event
    argTypes:
    - redisAsyncContext*
    - struct sd_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: redisLibsdeventAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libsdevent.h
    functionUses: 0
    functionsReached:
    - hi_calloc
    - sd_event_ref
    linkageType: ''
    returnType: int
    signature: int redisLibsdeventAttach(redisAsyncContext *ac, struct sd_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: redisIvykisReadEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisIvykisReadEvent(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 7
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: redisIvykisWriteEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void redisIvykisWriteEvent(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_fd_set_handler_in
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: redisIvykisAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - iv_fd_set_handler_in
    linkageType: ''
    returnType: void
    signature: void redisIvykisAddRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_fd_set_handler_in
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: redisIvykisDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - iv_fd_set_handler_in
    linkageType: ''
    returnType: void
    signature: void redisIvykisDelRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_fd_set_handler_out
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: redisIvykisAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - iv_fd_set_handler_out
    linkageType: ''
    returnType: void
    signature: void redisIvykisAddWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_fd_set_handler_out
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: redisIvykisDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - iv_fd_set_handler_out
    linkageType: ''
    returnType: void
    signature: void redisIvykisDelWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iv_fd_unregister
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:45,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: redisIvykisCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - hi_free
    - iv_fd_unregister
    linkageType: ''
    returnType: void
    signature: void redisIvykisCleanup(void *privdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:58,1
    - Dst: IV_FD_INIT
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:73,1
    - Dst: iv_fd_register
      Src: /src/h2o/deps/hiredis/adapters/ivykis.h:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: redisIvykisAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ivykis.h
    functionUses: 0
    functionsReached:
    - hi_malloc
    - iv_fd_register
    - IV_FD_INIT
    linkageType: ''
    returnType: int
    signature: int redisIvykisAttach(redisAsyncContext *ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/libev.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - watcher
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: redisLibevReadEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisLibevReadEvent(EV_P_ ev_io *watcher, int revents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/libev.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - watcher
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: redisLibevWriteEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void redisLibevWriteEvent(EV_P_ ev_io *watcher, int revents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ev_io_start
      Src: /src/h2o/deps/hiredis/adapters/libev.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: redisLibevAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_io_start
    linkageType: ''
    returnType: void
    signature: void redisLibevAddRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ev_io_stop
      Src: /src/h2o/deps/hiredis/adapters/libev.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: redisLibevDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_io_stop
    linkageType: ''
    returnType: void
    signature: void redisLibevDelRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ev_io_start
      Src: /src/h2o/deps/hiredis/adapters/libev.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: redisLibevAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_io_start
    linkageType: ''
    returnType: void
    signature: void redisLibevAddWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ev_io_stop
      Src: /src/h2o/deps/hiredis/adapters/libev.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: redisLibevDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_io_stop
    linkageType: ''
    returnType: void
    signature: void redisLibevDelWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_timer_stop
      Src: /src/h2o/deps/hiredis/adapters/libev.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: redisLibevStopTimer
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_timer_stop
    linkageType: ''
    returnType: void
    signature: void redisLibevStopTimer(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibevDelRead
      Src: /src/h2o/deps/hiredis/adapters/libev.h:121,1
    - Dst: redisLibevDelWrite
      Src: /src/h2o/deps/hiredis/adapters/libev.h:122,1
    - Dst: redisLibevStopTimer
      Src: /src/h2o/deps/hiredis/adapters/libev.h:123,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libev.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: redisLibevCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - redisLibevDelWrite
    - hi_free
    - redisLibevStopTimer
    - redisLibevDelRead
    linkageType: ''
    returnType: void
    signature: void redisLibevCleanup(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/libev.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - timer
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: redisLibevTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleTimeout
    linkageType: ''
    returnType: void
    signature: void redisLibevTimeout(EV_P_ ev_timer *timer, int revents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ev_is_active
      Src: /src/h2o/deps/hiredis/adapters/libev.h:142,1
    - Dst: ev_init
      Src: /src/h2o/deps/hiredis/adapters/libev.h:143,1
    - Dst: ev_timer_again
      Src: /src/h2o/deps/hiredis/adapters/libev.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - privdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: redisLibevSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - ev_init
    - ev_timer_again
    - ev_is_active
    linkageType: ''
    returnType: void
    signature: void redisLibevSetTimeout(void *privdata, struct timeval tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/adapters/libev.h:160,1
    - Dst: ev_io_init
      Src: /src/h2o/deps/hiredis/adapters/libev.h:183,1
    - Dst: ev_io_init
      Src: /src/h2o/deps/hiredis/adapters/libev.h:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - redisAsyncContext *ac
    argTypes:
    - EV_P_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 186
    functionName: redisLibevAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libev.h
    functionUses: 0
    functionsReached:
    - hi_calloc
    - ev_io_init
    linkageType: ''
    returnType: int
    signature: int redisLibevAttach(EV_P_ redisAsyncContext *ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/ae.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - el
    - fd
    - privdata
    - mask
    argTypes:
    - aeEventLoop*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 7
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: redisAeReadEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, int
      mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/ae.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - el
    - fd
    - privdata
    - mask
    argTypes:
    - aeEventLoop*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 7
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: redisAeWriteEvent
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, int
      mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aeCreateFileEvent
      Src: /src/h2o/deps/hiredis/adapters/ae.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: redisAeAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - aeCreateFileEvent
    linkageType: ''
    returnType: void
    signature: void redisAeAddRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aeDeleteFileEvent
      Src: /src/h2o/deps/hiredis/adapters/ae.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: redisAeDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - aeDeleteFileEvent
    linkageType: ''
    returnType: void
    signature: void redisAeDelRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aeCreateFileEvent
      Src: /src/h2o/deps/hiredis/adapters/ae.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: redisAeAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - aeCreateFileEvent
    linkageType: ''
    returnType: void
    signature: void redisAeAddWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aeDeleteFileEvent
      Src: /src/h2o/deps/hiredis/adapters/ae.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: redisAeDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - aeDeleteFileEvent
    linkageType: ''
    returnType: void
    signature: void redisAeDelWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAeDelRead
      Src: /src/h2o/deps/hiredis/adapters/ae.h:97,1
    - Dst: redisAeDelWrite
      Src: /src/h2o/deps/hiredis/adapters/ae.h:98,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/ae.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: redisAeCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - redisAeDelWrite
    - hi_free
    - redisAeDelRead
    linkageType: ''
    returnType: void
    signature: void redisAeCleanup(void *privdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/ae.h:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - loop
    - ac
    argTypes:
    - aeEventLoop*
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 129
    functionName: redisAeAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/ae.h
    functionUses: 0
    functionsReached:
    - hi_malloc
    linkageType: ''
    returnType: int
    signature: int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hevent_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:14,1
    - Dst: hio_events
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:15,1
    - Dst: hio_revents
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:16,1
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:18,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:21,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - io
    argTypes:
    - hio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 7
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: redisLibhvHandleEvents
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    - hio_revents
    - hio_events
    - hevent_userdata
    linkageType: ''
    returnType: void
    signature: void redisLibhvHandleEvents(hio_t* io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hio_add
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: redisLibhvAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - hio_add
    linkageType: ''
    returnType: void
    signature: void redisLibhvAddRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hio_del
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: redisLibhvDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - hio_del
    linkageType: ''
    returnType: void
    signature: void redisLibhvDelRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hio_add
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: redisLibhvAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - hio_add
    linkageType: ''
    returnType: void
    signature: void redisLibhvAddWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hio_del
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: redisLibhvDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - hio_del
    linkageType: ''
    returnType: void
    signature: void redisLibhvDelWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htimer_del
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:49,1
    - Dst: hio_close
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:51,1
    - Dst: hevent_set_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:52,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: redisLibhvCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - htimer_del
    - hevent_set_userdata
    - hi_free
    - hio_close
    linkageType: ''
    returnType: void
    signature: void redisLibhvCleanup(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hevent_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:58,1
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:59,1
    - Dst: hevent_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - htimer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: redisLibhvTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleTimeout
    - hevent_userdata
    linkageType: ''
    returnType: void
    signature: void redisLibhvTimeout(htimer_t* timer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htimer_del
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:73,1
    - Dst: hevent_loop
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:78,1
    - Dst: htimer_add
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:79,1
    - Dst: hevent_set_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:80,1
    - Dst: htimer_reset
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - privdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: redisLibhvSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - htimer_del
    - hevent_loop
    - hevent_set_userdata
    - htimer_add
    - htimer_reset
    linkageType: ''
    returnType: void
    signature: void redisLibhvSetTimeout(void *privdata, struct timeval tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:97,1
    - Dst: hio_get
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:102,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:104,1
    - Dst: hevent_set_userdata
      Src: /src/h2o/deps/hiredis/adapters/libhv.h:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - ac
    - loop
    argTypes:
    - redisAsyncContext*
    - hloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 122
    functionName: redisLibhvAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libhv.h
    functionUses: 0
    functionsReached:
    - hi_malloc
    - hevent_set_userdata
    - hio_get
    - hi_free
    linkageType: ''
    returnType: int
    signature: int redisLibhvAttach(redisAsyncContext* ac, hloop_t* loop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:22,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - handle
    - status
    - events
    argTypes:
    - uv_poll_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 7
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: redisLibuvPoll
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void redisLibuvPoll(uv_poll_t* handle, int status, int events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_poll_start
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: redisLibuvAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_poll_start
    linkageType: ''
    returnType: void
    signature: void redisLibuvAddRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_poll_start
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:49,1
    - Dst: uv_poll_stop
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: redisLibuvDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_poll_start
    - uv_poll_stop
    linkageType: ''
    returnType: void
    signature: void redisLibuvDelRead(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_poll_start
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: redisLibuvAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_poll_start
    linkageType: ''
    returnType: void
    signature: void redisLibuvAddWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_poll_start
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:75,1
    - Dst: uv_poll_stop
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: redisLibuvDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_poll_start
    - uv_poll_stop
    linkageType: ''
    returnType: void
    signature: void redisLibuvDelWrite(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: on_timer_close
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void on_timer_close(uv_handle_t *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: on_handle_close
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void on_handle_close(uv_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - uv_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: redisLibuvTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleTimeout
    linkageType: ''
    returnType: void
    signature: void redisLibuvTimeout(uv_timer_t *timer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uv_timer_init
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:120,1
    - Dst: uv_timer_start
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - privdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: redisLibuvSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_timer_start
    - uv_timer_init
    linkageType: ''
    returnType: void
    signature: void redisLibuvSetTimeout(void *privdata, struct timeval tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_close
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:135,1
    - Dst: uv_close
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: redisLibuvCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - uv_close
    linkageType: ''
    returnType: void
    signature: void redisLibuvCleanup(void *privdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:155,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:159,1
    - Dst: uv_poll_init_socket
      Src: /src/h2o/deps/hiredis/adapters/libuv.h:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ac
    - loop
    argTypes:
    - redisAsyncContext*
    - uv_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: redisLibuvAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libuv.h
    functionUses: 0
    functionsReached:
    - hi_malloc
    - uv_poll_init_socket
    - memset
    linkageType: ''
    returnType: int
    signature: int redisLibuvAttach(redisAsyncContext* ac, uv_loop_t* loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - redisLibeventEvents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: redisLibeventDestroy
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void redisLibeventDestroy(redisLibeventEvents *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:64,1
    - Dst: CHECK_DELETED
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:65,1
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:69,1
    - Dst: CHECK_DELETED
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:70,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:74,1
    - Dst: CHECK_DELETED
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 53
    functionDepth: 7
    functionLinenumber: 53
    functionLinenumberEnd: 80
    functionName: redisLibeventHandler
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    - redisAsyncHandleTimeout
    - CHECK_DELETED
    linkageType: ''
    returnType: void
    signature: void redisLibeventHandler(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: CHECK_DELETED
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DELETED()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:100,1
    - Dst: event_assign
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:101,1
    - Dst: event_add
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - privdata
    - flag
    - isRemove
    argTypes:
    - void*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: redisLibeventUpdate
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - event_assign
    - event_add
    - event_del
    linkageType: ''
    returnType: void
    signature: void redisLibeventUpdate(void *privdata, short flag, int isRemove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibeventUpdate
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: redisLibeventAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisLibeventUpdate
    linkageType: ''
    returnType: void
    signature: void redisLibeventAddRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibeventUpdate
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: redisLibeventDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisLibeventUpdate
    linkageType: ''
    returnType: void
    signature: void redisLibeventDelRead(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibeventUpdate
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: redisLibeventAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisLibeventUpdate
    linkageType: ''
    returnType: void
    signature: void redisLibeventAddWrite(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibeventUpdate
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: redisLibeventDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisLibeventUpdate
    linkageType: ''
    returnType: void
    signature: void redisLibeventDelWrite(void *privdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:127,1
    - Dst: event_free
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:128,1
    - Dst: redisLibeventDestroy
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: redisLibeventCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - event_free
    - redisLibeventDestroy
    - event_del
    linkageType: ''
    returnType: void
    signature: void redisLibeventCleanup(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisLibeventUpdate
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - privdata
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: redisLibeventSetTimeout
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 0
    functionsReached:
    - redisLibeventUpdate
    linkageType: ''
    returnType: void
    signature: void redisLibeventSetTimeout(void *privdata, struct timeval tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_calloc
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:155,1
    - Dst: event_new
      Src: /src/h2o/deps/hiredis/adapters/libevent.h:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ac
    - base
    argTypes:
    - redisAsyncContext*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: redisLibeventAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/libevent.h
    functionUses: 5
    functionsReached:
    - hi_calloc
    - event_new
    linkageType: ''
    returnType: int
    signature: int redisLibeventAttach(redisAsyncContext *ac, struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RedisQtAdapter *>
      Src: /src/h2o/deps/hiredis/adapters/qt.h:43,1
    - Dst: RedisQtAdapter*::addRead
      Src: /src/h2o/deps/hiredis/adapters/qt.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: RedisQtAdapter::RedisQtAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - static_cast<RedisQtAdapter *>
    - RedisQtAdapter*::addRead
    linkageType: ''
    returnType: void
    signature: void RedisQtAddRead(void * adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RedisQtAdapter *>
      Src: /src/h2o/deps/hiredis/adapters/qt.h:49,1
    - Dst: RedisQtAdapter*::delRead
      Src: /src/h2o/deps/hiredis/adapters/qt.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: RedisQtAdapter::RedisQtDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - static_cast<RedisQtAdapter *>
    - RedisQtAdapter*::delRead
    linkageType: ''
    returnType: void
    signature: void RedisQtDelRead(void * adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RedisQtAdapter *>
      Src: /src/h2o/deps/hiredis/adapters/qt.h:55,1
    - Dst: RedisQtAdapter*::addWrite
      Src: /src/h2o/deps/hiredis/adapters/qt.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: RedisQtAdapter::RedisQtAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - static_cast<RedisQtAdapter *>
    - RedisQtAdapter*::addWrite
    linkageType: ''
    returnType: void
    signature: void RedisQtAddWrite(void * adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RedisQtAdapter *>
      Src: /src/h2o/deps/hiredis/adapters/qt.h:61,1
    - Dst: RedisQtAdapter*::delWrite
      Src: /src/h2o/deps/hiredis/adapters/qt.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: RedisQtAdapter::RedisQtDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - static_cast<RedisQtAdapter *>
    - RedisQtAdapter*::delWrite
    linkageType: ''
    returnType: void
    signature: void RedisQtDelWrite(void * adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RedisQtAdapter *>
      Src: /src/h2o/deps/hiredis/adapters/qt.h:67,1
    - Dst: RedisQtAdapter*::cleanup
      Src: /src/h2o/deps/hiredis/adapters/qt.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: RedisQtAdapter::RedisQtCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - static_cast<RedisQtAdapter *>
    - RedisQtAdapter*::cleanup
    linkageType: ''
    returnType: void
    signature: void RedisQtCleanup(void * adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: RedisQtAdapter::RedisQtAdapter
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedisQtAdapter(QObject * parent = 0)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: ~RedisQtAdapter()
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RedisQtAdapter()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: RedisQtAdapter::setContext
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setContext(redisAsyncContext * ac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSocketNotifier::QSocketNotifier
      Src: /src/h2o/deps/hiredis/adapters/qt.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: RedisQtAdapter::addRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - QSocketNotifier::QSocketNotifier
    linkageType: ''
    returnType: void
    signature: void addRead()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: RedisQtAdapter::delRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void delRead()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSocketNotifier::QSocketNotifier
      Src: /src/h2o/deps/hiredis/adapters/qt.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: RedisQtAdapter::addWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - QSocketNotifier::QSocketNotifier
    linkageType: ''
    returnType: void
    signature: void addWrite()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: RedisQtAdapter::delWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void delWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RedisQtAdapter::delRead
      Src: /src/h2o/deps/hiredis/adapters/qt.h:121,1
    - Dst: RedisQtAdapter::delWrite
      Src: /src/h2o/deps/hiredis/adapters/qt.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: RedisQtAdapter::cleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - RedisQtAdapter::delWrite
    - RedisQtAdapter::delRead
    linkageType: ''
    returnType: void
    signature: void cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/qt.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: RedisQtAdapter::read
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/qt.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 7
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: RedisQtAdapter::write
    functionSourceFile: /src/h2o/deps/hiredis/adapters/qt.h
    functionUses: 0
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void write()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: redisPollTimevalToDouble
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double redisPollTimevalToDouble(struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:37,1
    - Dst: redisPollTimevalToDouble
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:38,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: redisPollGetNow
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - gettimeofday
    - redisPollTimevalToDouble
    linkageType: ''
    returnType: double
    signature: double redisPollGetNow(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:82,1
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:94,1
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:103,1
    - Dst: redisPollGetNow
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:111,1
    - Dst: redisAsyncHandleTimeout
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:115,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:122,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - ac
    - timeout
    argTypes:
    - redisAsyncContext*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 52
    functionDepth: 7
    functionLinenumber: 52
    functionLinenumberEnd: 127
    functionName: redisPollTick
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 1
    functionsReached:
    - redisAsyncHandleWrite
    - redisAsyncHandleRead
    - redisPollGetNow
    - poll
    - hi_free
    - redisAsyncHandleTimeout
    linkageType: ''
    returnType: int
    signature: int redisPollTick(redisAsyncContext *ac, double timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: redisPollAddRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redisPollAddRead(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: redisPollDelRead
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redisPollDelRead(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: redisPollAddWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redisPollAddWrite(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: redisPollDelWrite
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redisPollDelWrite(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: redisPollCleanup
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached:
    - hi_free
    linkageType: ''
    returnType: void
    signature: void redisPollCleanup(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisPollGetNow
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:162,1
    - Dst: redisPollTimevalToDouble
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: redisPollScheduleTimer
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 0
    functionsReached:
    - redisPollGetNow
    - redisPollTimevalToDouble
    linkageType: ''
    returnType: void
    signature: void redisPollScheduleTimer(void *data, struct timeval tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hi_malloc
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:175,1
    - Dst: memset
      Src: /src/h2o/deps/hiredis/adapters/poll_.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ac
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 196
    functionName: redisPollAttach
    functionSourceFile: /src/h2o/deps/hiredis/adapters/poll_.h
    functionUses: 1
    functionsReached:
    - hi_malloc
    - memset
    linkageType: ''
    returnType: int
    signature: int redisPollAttach(redisAsyncContext *ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: panicAbort
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: panicAbort(fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: panicAbort
      Src: /src/h2o/deps/hiredis/examples/example-push.c:45,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:49,1
    - Dst: panicAbort
      Src: /src/h2o/deps/hiredis/examples/example-push.c:51,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-push.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - context
    - reply
    - type
    argTypes:
    - redisContext*
    - redisReply*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: assertReplyAndFree
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - panicAbort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void assertReplyAndFree(redisContext *context, redisReply *reply, int
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-push.c:59,1
    - Dst: panicAbort
      Src: /src/h2o/deps/hiredis/examples/example-push.c:61,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:65,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:66,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-push.c:68,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-push.c:71,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-push.c:74,1
    - Dst: assertReplyAndFree
      Src: /src/h2o/deps/hiredis/examples/example-push.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - redisContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 14
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: enableClientTracking
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 0
    functionsReached:
    - redisCommand
    - panicAbort
    - exit
    - fprintf
    - assertReplyAndFree
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void enableClientTracking(redisContext *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panicAbort
      Src: /src/h2o/deps/hiredis/examples/example-push.c:87,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:93,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-push.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - privdata
    - r
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: pushReplyHandler
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    - printf
    - panicAbort
    linkageType: ''
    returnType: void
    signature: void pushReplyHandler(void *privdata, void *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: privdata_dtor
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void privdata_dtor(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/examples/example-push.c:112,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/examples/example-push.c:115,1
    - Dst: REDIS_OPTIONS_SET_PRIVDATA
      Src: /src/h2o/deps/hiredis/examples/example-push.c:125,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/examples/example-push.c:130,1
    - Dst: panicAbort
      Src: /src/h2o/deps/hiredis/examples/example-push.c:132,1
    - Dst: enableClientTracking
      Src: /src/h2o/deps/hiredis/examples/example-push.c:135,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-push.c:140,1
    - Dst: assertReplyAndFree
      Src: /src/h2o/deps/hiredis/examples/example-push.c:141,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-push.c:143,1
    - Dst: assertReplyAndFree
      Src: /src/h2o/deps/hiredis/examples/example-push.c:144,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:149,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-push.c:150,1
    - Dst: assertReplyAndFree
      Src: /src/h2o/deps/hiredis/examples/example-push.c:151,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:152,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-push.c:155,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example-push.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 106
    functionDepth: 15
    functionLinenumber: 106
    functionLinenumberEnd: 159
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-push.c
    functionUses: 8
    functionsReached:
    - redisConnectWithOptions
    - redisCommand
    - panicAbort
    - atoi
    - enableClientTracking
    - redisFree
    - printf
    - REDIS_OPTIONS_SET_PRIVDATA
    - assertReplyAndFree
    - REDIS_OPTIONS_SET_TCP
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:15,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: debugCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libsdevent.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void debugCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:25,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:28,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libsdevent.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncCommand
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:36,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libsdevent.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:44,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libsdevent.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:51,1
    - Dst: sd_event_default
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:54,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:58,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:59,1
    - Dst: redisLibsdeventAttach
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:63,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:64,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:65,1
    - Dst: redisAsyncSetTimeout
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:66,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:75,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:75,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:76,1
    - Dst: sd_event_add_time_relative
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:80,1
    - Dst: sd_event_loop
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:82,1
    - Dst: sd_event_source_disable_unref
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:83,1
    - Dst: sd_event_unref
      Src: /src/h2o/deps/hiredis/examples/example-libsdevent.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libsdevent.c
    functionUses: 8
    functionsReached:
    - redisAsyncCommand
    - redisAsyncFree
    - sd_event_source_disable_unref
    - sd_event_default
    - redisAsyncSetTimeout
    - sd_event_add_time_relative
    - redisAsyncConnect
    - signal
    - printf
    - sd_event_unref
    - redisLibsdeventAttach
    - redisAsyncSetConnectCallback
    - redisAsyncSetDisconnectCallback
    - strlen
    - sd_event_loop
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:15,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: debugCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void debugCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:26,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:30,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncCommand
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:38,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:46,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RedisModule_Init
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:64,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:66,1
    - Dst: redisModuleCompatibilityCheck
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:70,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:71,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:75,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:78,1
    - Dst: RedisModule_StringPtrLen
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:83,1
    - Dst: RedisModule_GetDetachedThreadSafeContext
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:85,1
    - Dst: redisModuleAttach
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:86,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:87,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:88,1
    - Dst: redisAsyncSetTimeout
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:89,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:98,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - argv
    - argc
    argTypes:
    - RedisModuleCtx*
    - RedisModuleString**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 101
    functionName: RedisModule_OnLoad
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - RedisModule_Init
    - redisAsyncSetTimeout
    - RedisModule_StringPtrLen
    - redisAsyncConnect
    - printf
    - redisModuleCompatibilityCheck
    - redisAsyncSetDisconnectCallback
    - redisAsyncSetConnectCallback
    - redisModuleAttach
    - RedisModule_GetDetachedThreadSafeContext
    linkageType: ''
    returnType: int
    signature: int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv,
      int argc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:16,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-poll.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:24,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-poll.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:35,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-poll.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:43,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:45,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:48,1
    - Dst: redisPollAttach
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:52,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:53,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:54,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:55,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:55,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:56,1
    - Dst: redisPollTick
      Src: /src/h2o/deps/hiredis/examples/example-poll.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 42
    functionDepth: 8
    functionLinenumber: 42
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-poll.c
    functionUses: 8
    functionsReached:
    - redisPollTick
    - redisAsyncCommand
    - redisPollAttach
    - redisAsyncConnect
    - signal
    - printf
    - redisAsyncSetConnectCallback
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:14,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:18,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 22
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:26,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:34,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:42,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:45,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:47,1
    - Dst: redisAsyncConnectWithOptions
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:53,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:56,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:60,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:61,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:62,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:63,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:63,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:64,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/examples/example-libevent.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent.c
    functionUses: 8
    functionsReached:
    - redisAsyncConnectWithOptions
    - redisAsyncCommand
    - event_base_new
    - signal
    - printf
    - event_base_dispatch
    - REDIS_OPTIONS_SET_TCP
    - redisAsyncSetConnectCallback
    - redisLibeventAttach
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:14,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:22,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c
    functionUses: 6
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:30,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:38,1
    - Dst: event_base_new
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:41,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:43,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:45,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:49,1
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:52,1
    - Dst: redisInitOpenSSL
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:61,1
    - Dst: redisCreateSSLContext
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:63,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:66,1
    - Dst: redisSSLContextGetError
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:66,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:70,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:73,1
    - Dst: redisInitiateSSLWithContext
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:76,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:77,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:78,1
    - Dst: redisLibeventAttach
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:81,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:82,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:83,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:84,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:85,1
    - Dst: event_base_dispatch
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:86,1
    - Dst: redisFreeSSLContext
      Src: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c
    functionUses: 8
    functionsReached:
    - redisCreateSSLContext
    - redisInitOpenSSL
    - redisAsyncCommand
    - exit
    - atoi
    - redisFreeSSLContext
    - event_base_new
    - redisAsyncConnect
    - signal
    - printf
    - redisSSLContextGetError
    - fprintf
    - redisInitiateSSLWithContext
    - event_base_dispatch
    - redisAsyncSetConnectCallback
    - redisLibeventAttach
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_printerr
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:14,1
    - Dst: g_main_loop_quit
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:15,1
    - Dst: g_printerr
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - G_GNUC_UNUSED
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: connect_cb
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-glib.c
    functionUses: 0
    functionsReached:
    - g_printerr
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: "void connect_cb (const redisAsyncContext *ac G_GNUC_UNUSED,\n            int
      status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_error
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:26,1
    - Dst: g_printerr
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:28,1
    - Dst: g_main_loop_quit
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - G_GNUC_UNUSED
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: disconnect_cb
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-glib.c
    functionUses: 0
    functionsReached:
    - g_printerr
    - g_error
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: "void disconnect_cb (const redisAsyncContext *ac G_GNUC_UNUSED,\n               int
      status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_print
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:41,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ac
    - r
    - G_GNUC_UNUSED
    argTypes:
    - redisAsyncContext*
    - gpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: command_cb
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-glib.c
    functionUses: 0
    functionsReached:
    - g_print
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: "void command_cb(redisAsyncContext *ac,\n           gpointer r,\n           gpointer
      user_data G_GNUC_UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:55,1
    - Dst: g_printerr
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:57,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:58,1
    - Dst: redis_source_new
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:61,1
    - Dst: g_main_loop_new
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:62,1
    - Dst: g_source_attach
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:63,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:65,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:66,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:67,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:68,1
    - Dst: g_main_loop_run
      Src: /src/h2o/deps/hiredis/examples/example-glib.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - G_GNUC_UNUSED
    - G_GNUC_UNUSED
    argTypes:
    - gint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-glib.c
    functionUses: 8
    functionsReached:
    - g_printerr
    - redisAsyncCommand
    - redis_source_new
    - exit
    - g_main_loop_new
    - g_source_attach
    - g_main_loop_run
    - redisAsyncConnect
    - redisAsyncSetConnectCallback
    - redisAsyncSetDisconnectCallback
    linkageType: ''
    returnType: gint
    signature: "gint main (gint argc     G_GNUC_UNUSED,\n      gchar *argv[] G_GNUC_UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:15,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 5
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-macosx.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:23,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-macosx.c
    functionUses: 8
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:31,1
    - Dst: CFRunLoopStop
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:34,1
    - Dst: CFRunLoopGetCurrent
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:34,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-macosx.c
    functionUses: 0
    functionsReached:
    - printf
    - CFRunLoopGetCurrent
    - CFRunLoopStop
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:39,1
    - Dst: CFRunLoopGetCurrent
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:41,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:43,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:47,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:50,1
    - Dst: redisMacOSAttach
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:54,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:56,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:57,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:59,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:59,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:60,1
    - Dst: CFRunLoopRun
      Src: /src/h2o/deps/hiredis/examples/example-macosx.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 65
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-macosx.c
    functionUses: 8
    functionsReached:
    - redisAsyncCommand
    - redisMacOSAttach
    - redisAsyncConnect
    - printf
    - signal
    - redisAsyncSetDisconnectCallback
    - redisAsyncSetConnectCallback
    - CFRunLoopGetCurrent
    - strlen
    - CFRunLoopRun
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:13,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ivykis.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:21,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ivykis.c
    functionUses: 9
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:29,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ivykis.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:37,1
    - Dst: iv_init
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:40,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:42,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:45,1
    - Dst: redisIvykisAttach
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:49,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:50,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:51,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:52,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:52,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:53,1
    - Dst: iv_main
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:55,1
    - Dst: iv_deinit
      Src: /src/h2o/deps/hiredis/examples/example-ivykis.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ivykis.c
    functionUses: 9
    functionsReached:
    - redisAsyncCommand
    - iv_main
    - redisIvykisAttach
    - iv_deinit
    - redisAsyncConnect
    - printf
    - signal
    - redisAsyncSetDisconnectCallback
    - redisAsyncSetConnectCallback
    - iv_init
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:13,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libhv.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:24,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: debugCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libhv.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void debugCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:33,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libhv.c
    functionUses: 10
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:41,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libhv.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:49,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:52,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:55,1
    - Dst: hloop_new
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:59,1
    - Dst: redisLibhvAttach
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:60,1
    - Dst: redisAsyncSetTimeout
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:61,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:62,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:63,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:64,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:64,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:65,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:66,1
    - Dst: hloop_run
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:67,1
    - Dst: hloop_free
      Src: /src/h2o/deps/hiredis/examples/example-libhv.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libhv.c
    functionUses: 9
    functionsReached:
    - redisLibhvAttach
    - redisAsyncCommand
    - redisAsyncSetTimeout
    - hloop_free
    - redisAsyncConnect
    - signal
    - hloop_new
    - printf
    - redisAsyncSetConnectCallback
    - hloop_run
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:13,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libev.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:21,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libev.c
    functionUses: 11
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:29,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libev.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:37,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:40,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:43,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:48,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:49,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:50,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:50,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:51,1
    - Dst: ev_loop
      Src: /src/h2o/deps/hiredis/examples/example-libev.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libev.c
    functionUses: 9
    functionsReached:
    - redisAsyncCommand
    - ev_loop
    - redisAsyncConnect
    - signal
    - printf
    - redisAsyncSetConnectCallback
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:19,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:20,1
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:23,1
    - Dst: redisInitOpenSSL
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:28,1
    - Dst: redisCreateSSLContext
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:29,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:31,1
    - Dst: redisSSLContextGetError
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:31,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:32,1
    - Dst: REDIS_OPTIONS_SET_TCP
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:37,1
    - Dst: redisConnectWithOptions
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:39,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:43,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:44,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:46,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:48,1
    - Dst: redisInitiateSSLWithContext
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:51,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:52,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:53,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:54,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:55,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:59,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:60,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:61,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:64,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:65,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:66,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:69,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:70,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:71,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:74,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:75,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:76,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:78,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:79,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:80,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:82,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:83,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:84,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:87,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:88,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:92,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:93,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:94,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:98,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:101,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:104,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:107,1
    - Dst: redisFreeSSLContext
      Src: /src/h2o/deps/hiredis/examples/example-ssl.c:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 12
    functionDepth: 14
    functionLinenumber: 12
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ssl.c
    functionUses: 9
    functionsReached:
    - redisCreateSSLContext
    - redisConnectWithOptions
    - redisInitOpenSSL
    - redisCommand
    - exit
    - atoi
    - snprintf
    - redisFree
    - printf
    - redisSSLContextGetError
    - redisInitiateSSLWithContext
    - REDIS_OPTIONS_SET_TCP
    - freeReplyObject
    - redisFreeSSLContext
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:15,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 10
    functionDepth: 5
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: debugCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libuv.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void debugCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:25,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:28,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libuv.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncCommand
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:36,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libuv.c
    functionUses: 12
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:44,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libuv.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:52,1
    - Dst: uv_default_loop
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:55,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:57,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:60,1
    - Dst: redisLibuvAttach
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:64,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:65,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:66,1
    - Dst: redisAsyncSetTimeout
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:67,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:76,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:76,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:77,1
    - Dst: uv_run
      Src: /src/h2o/deps/hiredis/examples/example-libuv.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-libuv.c
    functionUses: 9
    functionsReached:
    - redisAsyncCommand
    - uv_run
    - redisAsyncSetTimeout
    - redisAsyncConnect
    - signal
    - printf
    - uv_default_loop
    - redisAsyncSetDisconnectCallback
    - redisAsyncSetConnectCallback
    - redisLibuvAttach
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:16,1
    - Dst: redisAsyncDisconnect
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - r
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ae.c
    functionUses: 0
    functionsReached:
    - printf
    - redisAsyncDisconnect
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *c, void *r, void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:24,1
    - Dst: aeStop
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:25,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: connectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ae.c
    functionUses: 13
    functionsReached:
    - printf
    - aeStop
    linkageType: ''
    returnType: void
    signature: void connectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:34,1
    - Dst: aeStop
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:35,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:39,1
    - Dst: aeStop
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: disconnectCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ae.c
    functionUses: 0
    functionsReached:
    - printf
    - aeStop
    linkageType: ''
    returnType: void
    signature: void disconnectCallback(const redisAsyncContext *c, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:44,1
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:46,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:49,1
    - Dst: aeCreateEventLoop
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:53,1
    - Dst: redisAeAttach
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:54,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:55,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:56,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:57,1
    - Dst: strlen
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:57,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:58,1
    - Dst: aeMain
      Src: /src/h2o/deps/hiredis/examples/example-ae.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-ae.c
    functionUses: 9
    functionsReached:
    - redisAsyncCommand
    - aeMain
    - redisAsyncConnect
    - signal
    - printf
    - aeCreateEventLoop
    - redisAsyncSetConnectCallback
    - redisAeAttach
    - redisAsyncSetDisconnectCallback
    - strlen
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: ExampleQt::finish
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-qt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void finish()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/hiredis/examples/example.c:16,1
    - Dst: malloc
      Src: /src/h2o/deps/hiredis/examples/example.c:17,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/examples/example.c:29,1
    - Dst: strdup
      Src: /src/h2o/deps/hiredis/examples/example.c:30,1
    - Dst: redisCommandArgv
      Src: /src/h2o/deps/hiredis/examples/example.c:36,1
    - Dst: fprintf
      Src: /src/h2o/deps/hiredis/examples/example.c:39,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example.c:40,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:44,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:47,1
    - Dst: free
      Src: /src/h2o/deps/hiredis/examples/example.c:51,1
    - Dst: free
      Src: /src/h2o/deps/hiredis/examples/example.c:54,1
    - Dst: free
      Src: /src/h2o/deps/hiredis/examples/example.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - redisContext*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 10
    functionDepth: 13
    functionLinenumber: 10
    functionLinenumberEnd: 56
    functionName: example_argv_command
    functionSourceFile: /src/h2o/deps/hiredis/examples/example.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - free
    - exit
    - snprintf
    - printf
    - fprintf
    - redisCommandArgv
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void example_argv_command(redisContext *c, size_t n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:68,1
    - Dst: atoi
      Src: /src/h2o/deps/hiredis/examples/example.c:72,1
    - Dst: redisConnectUnixWithTimeout
      Src: /src/h2o/deps/hiredis/examples/example.c:76,1
    - Dst: redisConnectWithTimeout
      Src: /src/h2o/deps/hiredis/examples/example.c:78,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:82,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example.c:83,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:85,1
    - Dst: exit
      Src: /src/h2o/deps/hiredis/examples/example.c:87,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:91,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:92,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:93,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:96,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:97,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:98,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:101,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:102,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:103,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:106,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:107,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:108,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:110,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:111,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:112,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:114,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:115,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:116,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:119,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:120,1
    - Dst: snprintf
      Src: /src/h2o/deps/hiredis/examples/example.c:124,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:125,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:126,1
    - Dst: redisCommand
      Src: /src/h2o/deps/hiredis/examples/example.c:130,1
    - Dst: printf
      Src: /src/h2o/deps/hiredis/examples/example.c:133,1
    - Dst: freeReplyObject
      Src: /src/h2o/deps/hiredis/examples/example.c:136,1
    - Dst: example_argv_command
      Src: /src/h2o/deps/hiredis/examples/example.c:139,1
    - Dst: redisFree
      Src: /src/h2o/deps/hiredis/examples/example.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 58
    functionDepth: 14
    functionLinenumber: 58
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example.c
    functionUses: 9
    functionsReached:
    - redisCommand
    - redisConnectWithTimeout
    - exit
    - atoi
    - snprintf
    - redisConnectUnixWithTimeout
    - redisFree
    - printf
    - freeReplyObject
    - example_argv_command
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<redisReply *>
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:11,1
    - Dst: static_cast<ExampleQt *>
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:12,1
    - Dst: ExampleQt*::finish
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - r
    - privdata
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: getCallback
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-qt.cpp
    functionUses: 0
    functionsReached:
    - ExampleQt*::finish
    - static_cast<ExampleQt *>
    - static_cast<redisReply *>
    linkageType: ''
    returnType: void
    signature: void getCallback(redisAsyncContext *, void * r, void * privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncConnect
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:22,1
    - Dst: redisAsyncFree
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:26,1
    - Dst: setContext
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:30,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:32,1
    - Dst: redisAsyncCommand
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: ExampleQt::run
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-qt.cpp
    functionUses: 0
    functionsReached:
    - redisAsyncCommand
    - redisAsyncConnect
    - setContext
    - redisAsyncFree
    linkageType: ''
    returnType: void
    signature: void ExampleQt::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_get_next_server_address_for_connect
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:42,1
    - Dst: SIGNAL
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:42,1
    - Dst: finished
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:42,1
    - Dst: SLOT
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:42,1
    - Dst: quit
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:42,1
    - Dst: QTimer::singleShot
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:43,1
    - Dst: SLOT
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:43,1
    - Dst: run
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:43,1
    - Dst: QCoreApplication::exec
      Src: /src/h2o/deps/hiredis/examples/example-qt.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/h2o/deps/hiredis/examples/example-qt.cpp
    functionUses: 9
    functionsReached:
    - SIGNAL
    - SLOT
    - quit
    - finished
    - QCoreApplication::exec
    - QTimer::singleShot
    - test_get_next_server_address_for_connect
    - run
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c:44,1
    - Dst: memcpy
      Src: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c:48,1
    - Dst: redisFormatCommand
      Src: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c:51,1
    - Dst: hi_free
      Src: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c:52,1
    - Dst: free
      Src: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 7
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - memcpy
    - hi_free
    - redisFormatCommand
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - seed
    - kr
    argTypes:
    - krint64_t
    - krand_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: kr_srand0
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kr_srand0(krint64_t seed, krand_t *kr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/kmath.c:39,1
    - Dst: kr_srand0
      Src: /src/h2o/deps/klib/kmath.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - krint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: kr_srand
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - malloc
    - kr_srand0
    linkageType: ''
    returnType: krand_t
    signature: krand_t *kr_srand(krint64_t seed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kr_srand0
      Src: /src/h2o/deps/klib/kmath.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - kr
    argTypes:
    - krand_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: kr_rand
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - kr_srand0
    linkageType: ''
    returnType: krint64_t
    signature: krint64_t kr_rand(krand_t *kr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/h2o/deps/klib/kmath.c:76,1
    - Dst: kr_srand
      Src: /src/h2o/deps/klib/kmath.c:77,1
    - Dst: kr_rand
      Src: /src/h2o/deps/klib/kmath.c:78,1
    - Dst: free
      Src: /src/h2o/deps/klib/kmath.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 9
    functionsReached:
    - free
    - kr_rand
    - kr_srand
    - atol
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:111,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - func
    - n
    - x1
    - data
    - fx1
    - dx
    - n_calls
    argTypes:
    - kmin_f
    - int
    - double*
    - void*
    - double
    - double*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: __kmin_hj_aux
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: double
    signature: double __kmin_hj_aux(kmin_f func, int n, double *x1, void *data, double
      fx1, double *dx, int *n_calls)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/kmath.c:129,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kmath.c:130,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:132,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:136,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kmath.c:138,1
    - Dst: __kmin_hj_aux
      Src: /src/h2o/deps/klib/kmath.c:139,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:143,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:143,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:149,1
    - Dst: __kmin_hj_aux
      Src: /src/h2o/deps/klib/kmath.c:150,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:153,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:153,1
    - Dst: free
      Src: /src/h2o/deps/klib/kmath.c:162,1
    - Dst: free
      Src: /src/h2o/deps/klib/kmath.c:162,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 7
    argNames:
    - func
    - n
    - x
    - data
    - r
    - eps
    - max_calls
    argTypes:
    - kmin_f
    - int
    - double*
    - void*
    - double
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 164
    functionName: kmin_hj
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - __kmin_hj_aux
    - func
    - memcpy
    - fabs
    linkageType: ''
    returnType: double
    signature: double kmin_hj(kmin_f func, int n, double *x, void *data, double r,
      double eps, int max_calls)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:178,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:178,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:183,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:188,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:193,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:201,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:203,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:206,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:213,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:215,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:227,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:228,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:231,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:240,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:240,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:248,1
    - Dst: func
      Src: /src/h2o/deps/klib/kmath.c:249,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 133
    argCount: 6
    argNames:
    - func
    - a
    - b
    - data
    - tol
    - xmin
    argTypes:
    - kmin1_f
    - double
    - double
    - void*
    - double
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 267
    functionName: kmin_brent
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - func
    - fabs
    linkageType: ''
    returnType: double
    signature: double kmin_brent(kmin1_f func, double a, double b, void *data, double
      tol, double *xmin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:289,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - z
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 290
    functionName: kf_lgamma
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double kf_lgamma(double z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:314,1
    - Dst: exp
      Src: /src/h2o/deps/klib/kmath.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 322
    functionName: kf_erfc
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - exp
    - fabs
    linkageType: ''
    returnType: double
    signature: double kf_erfc(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/h2o/deps/klib/kmath.c:349,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:349,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:349,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - z
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: _kf_gammap
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - exp
    - log
    - kf_lgamma
    linkageType: ''
    returnType: double
    signature: double _kf_gammap(double s, double z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:368,1
    - Dst: exp
      Src: /src/h2o/deps/klib/kmath.c:370,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:370,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:370,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - s
    - z
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 371
    functionName: _kf_gammaq
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - exp
    - fabs
    - log
    - kf_lgamma
    linkageType: ''
    returnType: double
    signature: double _kf_gammaq(double s, double z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _kf_gammap
      Src: /src/h2o/deps/klib/kmath.c:375,1
    - Dst: _kf_gammaq
      Src: /src/h2o/deps/klib/kmath.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - z
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: kf_gammap
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 1
    functionsReached:
    - _kf_gammap
    - _kf_gammaq
    linkageType: ''
    returnType: double
    signature: double kf_gammap(double s, double z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _kf_gammap
      Src: /src/h2o/deps/klib/kmath.c:380,1
    - Dst: _kf_gammaq
      Src: /src/h2o/deps/klib/kmath.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - z
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: kf_gammaq
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 2
    functionsReached:
    - _kf_gammap
    - _kf_gammaq
    linkageType: ''
    returnType: double
    signature: double kf_gammaq(double s, double z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:410,1
    - Dst: exp
      Src: /src/h2o/deps/klib/kmath.c:412,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:412,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:412,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:412,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:412,1
    - Dst: log
      Src: /src/h2o/deps/klib/kmath.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - a
    - b
    - x
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 413
    functionName: kf_betai_aux
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - exp
    - fabs
    - log
    - kf_lgamma
    linkageType: ''
    returnType: double
    signature: double kf_betai_aux(double a, double b, double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kf_betai_aux
      Src: /src/h2o/deps/klib/kmath.c:416,1
    - Dst: kf_betai_aux
      Src: /src/h2o/deps/klib/kmath.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - x
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: kf_betai
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - kf_betai_aux
    linkageType: ''
    returnType: double
    signature: double kf_betai(double a, double b, double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:433,1
    - Dst: fabs
      Src: /src/h2o/deps/klib/kmath.c:433,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - na
    - a
    - nb
    - b
    argTypes:
    - int
    - double[]
    - int
    - double[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: km_ks_dist
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: double
    signature: double km_ks_dist(int na, const double a[], int nb, const double b[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/klib/kmath.c:449,1
    - Dst: km_ks_dist
      Src: /src/h2o/deps/klib/kmath.c:449,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kmath.c:450,1
    - Dst: erfc
      Src: /src/h2o/deps/klib/kmath.c:450,1
    - Dst: kf_erfc
      Src: /src/h2o/deps/klib/kmath.c:450,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kmath.c:451,1
    - Dst: kf_gammaq
      Src: /src/h2o/deps/klib/kmath.c:451,1
    - Dst: tgamma
      Src: /src/h2o/deps/klib/kmath.c:451,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kmath.c:453,1
    - Dst: kf_betai
      Src: /src/h2o/deps/klib/kmath.c:453,1
    - Dst: exp
      Src: /src/h2o/deps/klib/kmath.c:453,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:453,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:453,1
    - Dst: kf_lgamma
      Src: /src/h2o/deps/klib/kmath.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 455
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kmath.c
    functionUses: 9
    functionsReached:
    - kf_betai
    - exp
    - kf_lgamma
    - km_ks_dist
    - kf_gammaq
    - printf
    - erfc
    - tgamma
    - kf_erfc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: LIKELY
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: UNLIKELY
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: LIKELY
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: UNLIKELY
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksw.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - size
    - qlen
    - query
    - m
    - mat
    argTypes:
    - int
    - int
    - uint8_t*
    - int
    - int8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 104
    functionName: ksw_qinit
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: kswq_t
    signature: kswq_t *ksw_qinit(int size, int qlen, const uint8_t *query, int m,
      const int8_t *mat)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/h2o/deps/klib/ksw.c:126,1
    - Dst: _mm_set1_epi8
      Src: /src/h2o/deps/klib/ksw.c:127,1
    - Dst: _mm_set1_epi8
      Src: /src/h2o/deps/klib/ksw.c:128,1
    - Dst: _mm_set1_epi8
      Src: /src/h2o/deps/klib/ksw.c:129,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:133,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:134,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:135,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:141,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/klib/ksw.c:142,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:143,1
    - Dst: _mm_adds_epu8
      Src: /src/h2o/deps/klib/ksw.c:150,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:150,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:151,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:152,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:153,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:154,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:155,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:156,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:158,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:159,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:160,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:161,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:163,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:164,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:166,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:169,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/klib/ksw.c:170,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:171,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:172,1
    - Dst: _mm_max_epu8
      Src: /src/h2o/deps/klib/ksw.c:173,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:174,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:175,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:176,1
    - Dst: _mm_movemask_epi8
      Src: /src/h2o/deps/klib/ksw.c:177,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/h2o/deps/klib/ksw.c:177,1
    - Dst: _mm_subs_epu8
      Src: /src/h2o/deps/klib/ksw.c:177,1
    - Dst: UNLIKELY
      Src: /src/h2o/deps/klib/ksw.c:178,1
    - Dst: __max_16
      Src: /src/h2o/deps/klib/ksw.c:183,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/ksw.c:188,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:195,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:196,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:196,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:219,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 6
    argNames:
    - q
    - tlen
    - target
    - _gapo
    - _gape
    - xtra
    argTypes:
    - kswq_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 221
    functionName: ksw_u8
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - realloc
    - _mm_subs_epu8
    - _mm_slli_si128
    - __max_16
    - _mm_max_epu8
    - free
    - _mm_cmpeq_epi8
    - UNLIKELY
    - _mm_store_si128
    - _mm_set1_epi32
    - _mm_set1_epi8
    - LIKELY
    - _mm_adds_epu8
    - _mm_load_si128
    - _mm_movemask_epi8
    linkageType: ''
    returnType: kswr_t
    signature: kswr_t ksw_u8(kswq_t *q, int tlen, const uint8_t *target, int _gapo,
      int _gape, int xtra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ret
    - ','
    - xx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: __max_16
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __max_16(ret, xx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/h2o/deps/klib/ksw.c:242,1
    - Dst: _mm_set1_epi16
      Src: /src/h2o/deps/klib/ksw.c:243,1
    - Dst: _mm_set1_epi16
      Src: /src/h2o/deps/klib/ksw.c:244,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:248,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:249,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:250,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:256,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/klib/ksw.c:257,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:258,1
    - Dst: _mm_adds_epi16
      Src: /src/h2o/deps/klib/ksw.c:259,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:260,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:261,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:262,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:263,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:264,1
    - Dst: _mm_subs_epu16
      Src: /src/h2o/deps/klib/ksw.c:265,1
    - Dst: _mm_subs_epu16
      Src: /src/h2o/deps/klib/ksw.c:266,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:267,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:268,1
    - Dst: _mm_subs_epu16
      Src: /src/h2o/deps/klib/ksw.c:269,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:270,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:271,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:273,1
    - Dst: _mm_slli_si128
      Src: /src/h2o/deps/klib/ksw.c:274,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:275,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:276,1
    - Dst: _mm_max_epi16
      Src: /src/h2o/deps/klib/ksw.c:277,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:278,1
    - Dst: _mm_subs_epu16
      Src: /src/h2o/deps/klib/ksw.c:279,1
    - Dst: _mm_subs_epu16
      Src: /src/h2o/deps/klib/ksw.c:280,1
    - Dst: UNLIKELY
      Src: /src/h2o/deps/klib/ksw.c:281,1
    - Dst: _mm_movemask_epi8
      Src: /src/h2o/deps/klib/ksw.c:281,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/h2o/deps/klib/ksw.c:281,1
    - Dst: __max_8
      Src: /src/h2o/deps/klib/ksw.c:285,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/ksw.c:290,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:297,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/ksw.c:298,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/ksw.c:298,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:319,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 93
    argCount: 6
    argNames:
    - q
    - tlen
    - target
    - _gapo
    - _gape
    - xtra
    argTypes:
    - kswq_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 321
    functionName: ksw_i16
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - realloc
    - _mm_subs_epu16
    - _mm_set1_epi16
    - _mm_slli_si128
    - free
    - UNLIKELY
    - _mm_store_si128
    - _mm_set1_epi32
    - __max_8
    - LIKELY
    - _mm_adds_epi16
    - _mm_load_si128
    - _mm_movemask_epi8
    - _mm_max_epi16
    - _mm_cmpgt_epi16
    linkageType: ''
    returnType: kswr_t
    signature: kswr_t ksw_i16(kswq_t *q, int tlen, const uint8_t *target, int _gapo,
      int _gape, int xtra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ret
    - ','
    - xx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: __max_8
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __max_8(ret, xx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - l
    - s
    argTypes:
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: revseq
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void revseq(int l, uint8_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ksw_qinit
      Src: /src/h2o/deps/klib/ksw.c:337,1
    - Dst: func
      Src: /src/h2o/deps/klib/ksw.c:341,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:342,1
    - Dst: revseq
      Src: /src/h2o/deps/klib/ksw.c:344,1
    - Dst: revseq
      Src: /src/h2o/deps/klib/ksw.c:344,1
    - Dst: ksw_qinit
      Src: /src/h2o/deps/klib/ksw.c:345,1
    - Dst: func
      Src: /src/h2o/deps/klib/ksw.c:346,1
    - Dst: revseq
      Src: /src/h2o/deps/klib/ksw.c:347,1
    - Dst: revseq
      Src: /src/h2o/deps/klib/ksw.c:347,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 10
    argNames:
    - qlen
    - query
    - tlen
    - target
    - m
    - mat
    - gapo
    - gape
    - xtra
    - qry
    argTypes:
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int8_t*
    - int
    - int
    - int
    - kswq_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 352
    functionName: ksw_align
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - func
    - free
    - ksw_qinit
    - revseq
    linkageType: ''
    returnType: kswr_t
    signature: kswr_t ksw_align(int qlen, uint8_t *query, int tlen, uint8_t *target,
      int m, const int8_t *mat, int gapo, int gape, int xtra, kswq_t **qry)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksw.c:369,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/ksw.c:370,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:390,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:400,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:433,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:433,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 12
    argNames:
    - qlen
    - query
    - tlen
    - target
    - m
    - mat
    - gapo
    - gape
    - w
    - h0
    - _qle
    - _tle
    argTypes:
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int8_t*
    - int
    - int
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 437
    functionName: ksw_extend
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - calloc
    - LIKELY
    linkageType: ''
    returnType: int
    signature: int ksw_extend(int qlen, const uint8_t *query, int tlen, const uint8_t
      *target, int m, const int8_t *mat, int gapo, int gape, int w, int h0, int *_qle,
      int *_tle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/klib/ksw.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - n_cigar
    - m_cigar
    - cigar
    - op
    - len
    argTypes:
    - int*
    - int*
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: push_cigar
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *push_cigar(int *n_cigar, int *m_cigar, uint32_t *cigar, int
      op, int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksw.c:466,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksw.c:467,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/ksw.c:468,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:480,1
    - Dst: LIKELY
      Src: /src/h2o/deps/klib/ksw.c:487,1
    - Dst: push_cigar
      Src: /src/h2o/deps/klib/ksw.c:519,1
    - Dst: push_cigar
      Src: /src/h2o/deps/klib/ksw.c:520,1
    - Dst: push_cigar
      Src: /src/h2o/deps/klib/ksw.c:521,1
    - Dst: push_cigar
      Src: /src/h2o/deps/klib/ksw.c:523,1
    - Dst: push_cigar
      Src: /src/h2o/deps/klib/ksw.c:524,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:529,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:529,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:529,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 11
    argNames:
    - qlen
    - query
    - tlen
    - target
    - m
    - mat
    - gapo
    - gape
    - w
    - n_cigar_
    - cigar_
    argTypes:
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int8_t*
    - int
    - int
    - int
    - int*
    - uint32_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 531
    functionName: ksw_global
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    - free
    - LIKELY
    - push_cigar
    linkageType: ''
    returnType: int
    signature: int ksw_global(int qlen, const uint8_t *query, int tlen, const uint8_t
      *target, int m, const int8_t *mat, int gapo, int gape, int w, int *n_cigar_,
      uint32_t **cigar_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/h2o/deps/klib/ksw.c:574,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/ksw.c:576,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/ksw.c:577,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/ksw.c:578,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/ksw.c:579,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/ksw.c:580,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/ksw.c:586,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/ksw.c:599,1
    - Dst: kseq_init
      Src: /src/h2o/deps/klib/ksw.c:599,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/ksw.c:600,1
    - Dst: kseq_init
      Src: /src/h2o/deps/klib/ksw.c:600,1
    - Dst: kseq_read
      Src: /src/h2o/deps/klib/ksw.c:602,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/ksw.c:609,1
    - Dst: gzrewind
      Src: /src/h2o/deps/klib/ksw.c:614,1
    - Dst: kseq_rewind
      Src: /src/h2o/deps/klib/ksw.c:614,1
    - Dst: kseq_read
      Src: /src/h2o/deps/klib/ksw.c:615,1
    - Dst: ksw_align
      Src: /src/h2o/deps/klib/ksw.c:617,1
    - Dst: printf
      Src: /src/h2o/deps/klib/ksw.c:619,1
    - Dst: ksw_align
      Src: /src/h2o/deps/klib/ksw.c:621,1
    - Dst: printf
      Src: /src/h2o/deps/klib/ksw.c:623,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:626,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:626,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksw.c:628,1
    - Dst: kseq_destroy
      Src: /src/h2o/deps/klib/ksw.c:629,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/ksw.c:629,1
    - Dst: kseq_destroy
      Src: /src/h2o/deps/klib/ksw.c:630,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/ksw.c:630,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 632
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/ksw.c
    functionUses: 9
    functionsReached:
    - getopt
    - realloc
    - kseq_init
    - free
    - gzopen
    - atoi
    - gzrewind
    - kseq_destroy
    - gzclose
    - kseq_rewind
    - printf
    - fprintf
    - kseq_read
    - ksw_align
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: __ac_isempty
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isempty(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: __ac_isdel
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isdel(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: __ac_iseither
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_iseither(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: __ac_set_isdel_false
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isdel_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: __ac_set_isempty_false
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isempty_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: __ac_set_isboth_false
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isboth_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: __ac_set_isdel_true
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isdel_true(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: __ac_fsize
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_fsize(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: kcalloc
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kcalloc(N,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: kmalloc
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmalloc(Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: krealloc
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: krealloc(P,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: kfree
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kfree(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: __KHASH_TYPE
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_TYPE(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: __KHASH_PROTOTYPES
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_PROTOTYPES(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 237
    functionName: __KHASH_IMPL
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func,
      __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: KHASH_DECLARE
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_DECLARE(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: KHASH_INIT2
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func,
      __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: KHASH_INIT
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: kh_int_hash_func
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int_hash_func(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: kh_int_hash_equal
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int_hash_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: kh_int64_hash_func
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int64_hash_func(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: kh_int64_hash_equal
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int64_hash_equal(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: __ac_X31_hash_string
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kh_inline
    signature: kh_inline __ac_X31_hash_string(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: kh_str_hash_func
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_func(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: kh_str_hash_equal
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - khint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: __ac_Wang_hash
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kh_inline
    signature: kh_inline __ac_Wang_hash(khint_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: kh_int_hash_func2
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_int_hash_func2(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: khash_t
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: khash_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: kh_init
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_init(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: kh_destroy
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_destroy(name, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: kh_clear
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_clear(name, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - h
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: kh_resize
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_resize(name, h, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - h
    - ','
    - k
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: kh_put
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_put(name, h, k, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - h
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: kh_get
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_get(name, h, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - h
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: kh_del
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_del(name, h, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: kh_exist
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_exist(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: kh_key
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_key(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: kh_val
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_val(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: kh_value
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_value(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: kh_begin
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_begin(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 528
    functionName: kh_end
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_end(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: kh_size
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_size(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: kh_n_buckets
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_n_buckets(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - h
    - ','
    - kvar
    - ','
    - vvar
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: kh_foreach
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_foreach(h, kvar, vvar, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - vvar
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: kh_foreach_value
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_foreach_value(h, vvar, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: KHASH_SET_INIT_INT
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_SET_INIT_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: KHASH_MAP_INIT_INT
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_MAP_INIT_INT(name, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: KHASH_SET_INIT_INT64
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_SET_INIT_INT64(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: KHASH_MAP_INIT_INT64
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_MAP_INIT_INT64(name, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: KHASH_SET_INIT_STR
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_SET_INIT_STR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: KHASH_MAP_INIT_STR
    functionSourceFile: /src/h2o/deps/klib/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_MAP_INIT_STR(name, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: kson_is_internal
    functionSourceFile: /src/h2o/deps/klib/kson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kson_is_internal(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kson_is_internal
      Src: /src/h2o/deps/klib/kson.h:49,1
    - Dst: strcmp
      Src: /src/h2o/deps/klib/kson.h:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - key
    argTypes:
    - kson_node_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: kson_by_key
    functionSourceFile: /src/h2o/deps/klib/kson.h
    functionUses: 0
    functionsReached:
    - strcmp
    - kson_is_internal
    linkageType: ''
    returnType: kson_node_t
    signature: kson_node_t *kson_by_key(const kson_node_t *p, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kson_is_internal
      Src: /src/h2o/deps/klib/kson.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - kson_node_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: kson_by_index
    functionSourceFile: /src/h2o/deps/klib/kson.h
    functionUses: 0
    functionsReached:
    - kson_is_internal
    linkageType: ''
    returnType: kson_node_t
    signature: kson_node_t *kson_by_index(const kson_node_t *p, long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: kurl_isfile
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kurl_isfile(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/h2o/deps/klib/kurl.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: kurl_init
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - curl_global_init
    linkageType: ''
    returnType: int
    signature: int kurl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_cleanup
      Src: /src/h2o/deps/klib/kurl.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: kurl_destroy
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    linkageType: ''
    returnType: void
    signature: void kurl_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:55,1
    - Dst: lseek
      Src: /src/h2o/deps/klib/kurl.c:56,1
    - Dst: curl_multi_remove_handle
      Src: /src/h2o/deps/klib/kurl.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:61,1
    - Dst: curl_multi_add_handle
      Src: /src/h2o/deps/klib/kurl.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ku
    - do_seek
    argTypes:
    - kurl_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: prepare
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 12
    functionsReached:
    - curl_multi_add_handle
    - curl_easy_setopt
    - kurl_isfile
    - lseek
    - curl_multi_remove_handle
    linkageType: ''
    returnType: int
    signature: int prepare(kurl_t *ku, int do_seek)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: write_cb
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/kurl.c:81,1
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:85,1
    - Dst: read
      Src: /src/h2o/deps/klib/kurl.c:91,1
    - Dst: curl_multi_timeout
      Src: /src/h2o/deps/klib/kurl.c:105,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/klib/kurl.c:111,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/klib/kurl.c:111,1
    - Dst: FD_ZERO
      Src: /src/h2o/deps/klib/kurl.c:111,1
    - Dst: curl_multi_fdset
      Src: /src/h2o/deps/klib/kurl.c:112,1
    - Dst: select
      Src: /src/h2o/deps/klib/kurl.c:113,1
    - Dst: nanosleep
      Src: /src/h2o/deps/klib/kurl.c:117,1
    - Dst: curl_easy_pause
      Src: /src/h2o/deps/klib/kurl.c:119,1
    - Dst: curl_multi_perform
      Src: /src/h2o/deps/klib/kurl.c:120,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts:
    - condition: (ku->p_buf == ku->l_buf)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/h2o/deps/klib/kurl.c
    constantsTouched: []
    func_position:
      end: 125
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 125
    functionName: fill_buffer
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - curl_multi_perform
    - curl_multi_timeout
    - curl_multi_fdset
    - select
    - read
    - FD_ZERO
    - kurl_isfile
    - curl_easy_pause
    - nanosleep
    - assert
    linkageType: ''
    returnType: int
    signature: int fill_buffer(kurl_t *ku)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_remove_handle
      Src: /src/h2o/deps/klib/kurl.c:131,1
    - Dst: curl_easy_cleanup
      Src: /src/h2o/deps/klib/kurl.c:132,1
    - Dst: curl_multi_cleanup
      Src: /src/h2o/deps/klib/kurl.c:133,1
    - Dst: curl_slist_free_all
      Src: /src/h2o/deps/klib/kurl.c:134,1
    - Dst: close
      Src: /src/h2o/deps/klib/kurl.c:135,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:136,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: kurl_close
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - close
    - curl_easy_cleanup
    - free
    - curl_multi_remove_handle
    - curl_slist_free_all
    - curl_multi_cleanup
    linkageType: ''
    returnType: int
    signature: int kurl_close(kurl_t *ku)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/kurl.c:148,1
    - Dst: isalnum
      Src: /src/h2o/deps/klib/kurl.c:151,1
    - Dst: open
      Src: /src/h2o/deps/klib/kurl.c:154,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kurl.c:156,1
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:158,1
    - Dst: curl_multi_init
      Src: /src/h2o/deps/klib/kurl.c:159,1
    - Dst: curl_easy_init
      Src: /src/h2o/deps/klib/kurl.c:160,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/kurl.c:161,1
    - Dst: s3_parse
      Src: /src/h2o/deps/klib/kurl.c:163,1
    - Dst: kurl_close
      Src: /src/h2o/deps/klib/kurl.c:165,1
    - Dst: curl_slist_append
      Src: /src/h2o/deps/klib/kurl.c:168,1
    - Dst: curl_slist_append
      Src: /src/h2o/deps/klib/kurl.c:169,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:170,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:171,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:172,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:172,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:172,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:173,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:174,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:175,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:176,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:177,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:178,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:179,1
    - Dst: curl_easy_setopt
      Src: /src/h2o/deps/klib/kurl.c:180,1
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:183,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kurl.c:185,1
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:186,1
    - Dst: fill_buffer
      Src: /src/h2o/deps/klib/kurl.c:186,1
    - Dst: prepare
      Src: /src/h2o/deps/klib/kurl.c:187,1
    - Dst: fill_buffer
      Src: /src/h2o/deps/klib/kurl.c:187,1
    - Dst: kurl_close
      Src: /src/h2o/deps/klib/kurl.c:189,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - url
    - opt
    argTypes:
    - char*
    - kurl_opt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 193
    functionName: kurl_open
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - s3_parse
    - curl_slist_append
    - calloc
    - fill_buffer
    - isalnum
    - strstr
    - kurl_isfile
    - curl_easy_setopt
    - curl_multi_init
    - free
    - kurl_close
    - prepare
    - curl_easy_init
    - open
    linkageType: ''
    returnType: kurl_t
    signature: kurl_t *kurl_open(const char *url, kurl_opt_t *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/kurl.c:198,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kurl.c:201,1
    - Dst: prepare
      Src: /src/h2o/deps/klib/kurl.c:202,1
    - Dst: fill_buffer
      Src: /src/h2o/deps/klib/kurl.c:202,1
    - Dst: kurl_close
      Src: /src/h2o/deps/klib/kurl.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: kurl_dopen
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - prepare
    - calloc
    - kurl_close
    - fill_buffer
    linkageType: ''
    returnType: kurl_t
    signature: kurl_t *kurl_dopen(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:212,1
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kurl.c:214,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kurl.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ku
    - len
    argTypes:
    - kurl_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: kurl_buflen
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - kroundup32
    - kurl_isfile
    - realloc
    linkageType: ''
    returnType: int
    signature: int kurl_buflen(kurl_t *ku, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:225,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:231,1
    - Dst: fill_buffer
      Src: /src/h2o/deps/klib/kurl.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - ku
    - buf
    - nbytes
    argTypes:
    - kurl_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: kurl_read
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - fill_buffer
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t kurl_read(kurl_t *ku, void *buf, size_t nbytes)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: kurl_isfile
      Src: /src/h2o/deps/klib/kurl.c:249,1
    - Dst: lseek
      Src: /src/h2o/deps/klib/kurl.c:249,1
    - Dst: prepare
      Src: /src/h2o/deps/klib/kurl.c:265,1
    - Dst: fill_buffer
      Src: /src/h2o/deps/klib/kurl.c:265,1
    - Dst: kurl_read
      Src: /src/h2o/deps/klib/kurl.c:268,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - ku
    - offset
    - whence
    argTypes:
    - kurl_t*
    - off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 273
    functionName: kurl_seek
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - fill_buffer
    - kurl_isfile
    - lseek
    - prepare
    - kurl_read
    linkageType: ''
    returnType: off_t
    signature: off_t kurl_seek(kurl_t *ku, off_t offset, int whence)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: kurl_tell
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: off_t
    signature: off_t kurl_tell(const kurl_t *ku)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: kurl_eof
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kurl_eof(const kurl_t *ku)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: kurl_fileno
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kurl_fileno(const kurl_t *ku)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ku
    argTypes:
    - kurl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: kurl_error
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kurl_error(const kurl_t *ku)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - sha1nfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: sha1_init
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha1_init(sha1nfo *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: rol32
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol32(value, bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rol32
      Src: /src/h2o/deps/klib/kurl.c:333,1
    - Dst: rol32
      Src: /src/h2o/deps/klib/kurl.c:339,1
    - Dst: rol32
      Src: /src/h2o/deps/klib/kurl.c:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - sha1nfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: sha1_hashBlock
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - rol32
    linkageType: ''
    returnType: void
    signature: void sha1_hashBlock(sha1nfo *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hashBlock
      Src: /src/h2o/deps/klib/kurl.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - sha1nfo*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: sha1_add
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_hashBlock
    linkageType: ''
    returnType: void
    signature: void sha1_add(sha1nfo *s, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - sha1nfo*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: sha1_write1
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_add
    linkageType: ''
    returnType: void
    signature: void sha1_write1(sha1nfo *s, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_write1
      Src: /src/h2o/deps/klib/kurl.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - s
    - data
    - len
    argTypes:
    - sha1nfo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: sha1_write
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_write1
    linkageType: ''
    returnType: void
    signature: void sha1_write(sha1nfo *s, const char *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:368,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:369,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:370,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:371,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:372,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:373,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:374,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:375,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:376,1
    - Dst: sha1_add
      Src: /src/h2o/deps/klib/kurl.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - sha1nfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: sha1_final
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_add
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *sha1_final(sha1nfo *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/klib/kurl.c:391,1
    - Dst: sha1_init
      Src: /src/h2o/deps/klib/kurl.c:393,1
    - Dst: sha1_write1
      Src: /src/h2o/deps/klib/kurl.c:394,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:395,1
    - Dst: sha1_final
      Src: /src/h2o/deps/klib/kurl.c:395,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:396,1
    - Dst: sha1_init
      Src: /src/h2o/deps/klib/kurl.c:397,1
    - Dst: sha1_write1
      Src: /src/h2o/deps/klib/kurl.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - s
    - key
    - l_key
    argTypes:
    - sha1nfo*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: sha1_init_hmac
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_init
    - sha1_write1
    - memcpy
    - sha1_final
    - memset
    linkageType: ''
    returnType: void
    signature: void sha1_init_hmac(sha1nfo *s, const uint8_t* key, int l_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:405,1
    - Dst: sha1_final
      Src: /src/h2o/deps/klib/kurl.c:405,1
    - Dst: sha1_init
      Src: /src/h2o/deps/klib/kurl.c:406,1
    - Dst: sha1_write1
      Src: /src/h2o/deps/klib/kurl.c:407,1
    - Dst: sha1_write1
      Src: /src/h2o/deps/klib/kurl.c:408,1
    - Dst: sha1_final
      Src: /src/h2o/deps/klib/kurl.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - sha1nfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: sha1_final_hmac
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sha1_final
    - sha1_init
    - sha1_write1
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *sha1_final_hmac(sha1nfo *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sha1_init_hmac
      Src: /src/h2o/deps/klib/kurl.c:425,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:425,1
    - Dst: sha1_write
      Src: /src/h2o/deps/klib/kurl.c:426,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:426,1
    - Dst: sha1_final_hmac
      Src: /src/h2o/deps/klib/kurl.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - key
    - data
    - out
    argTypes:
    - char*
    - char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 435
    functionName: s3_sign
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - sha1_write
    - sha1_final_hmac
    - strlen
    - sha1_init_hmac
    linkageType: ''
    returnType: void
    signature: void s3_sign(const char *key, const char *data, char out[29])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/deps/klib/kurl.c:444,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:446,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/kurl.c:447,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:447,1
    - Dst: strcat
      Src: /src/h2o/deps/klib/kurl.c:448,1
    - Dst: strcpy
      Src: /src/h2o/deps/klib/kurl.c:448,1
    - Dst: fopen
      Src: /src/h2o/deps/klib/kurl.c:450,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:451,1
    - Dst: fread
      Src: /src/h2o/deps/klib/kurl.c:453,1
    - Dst: fclose
      Src: /src/h2o/deps/klib/kurl.c:454,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/kurl.c:462,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 465
    functionName: s3_read_awssecret
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - strcat
    - malloc
    - fread
    - free
    - memcpy
    - fopen
    - getenv
    - fclose
    - strlen
    - strcpy
    linkageType: ''
    returnType: char
    signature: char *s3_read_awssecret(const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kurl.c:473,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kurl.c:474,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kurl.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - l
    - s
    argTypes:
    - char*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 480
    functionName: kputsn
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int kputsn(const char *p, int l, kstring_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/kurl.c:491,1
    - Dst: s3_read_awssecret
      Src: /src/h2o/deps/klib/kurl.c:497,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:500,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:503,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:504,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:505,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:506,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:506,1
    - Dst: time
      Src: /src/h2o/deps/klib/kurl.c:510,1
    - Dst: strftime
      Src: /src/h2o/deps/klib/kurl.c:511,1
    - Dst: gmtime_r
      Src: /src/h2o/deps/klib/kurl.c:511,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:512,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:513,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:513,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:517,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:518,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:518,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:519,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:520,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:520,1
    - Dst: s3_sign
      Src: /src/h2o/deps/klib/kurl.c:521,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:524,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:525,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:525,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:526,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kurl.c:527,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kurl.c:527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 4
    argNames:
    - url
    - _id
    - _secret
    - fn_secret
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 482
    functionDepth: 6
    functionLinenumber: 482
    functionLinenumberEnd: 531
    functionName: s3_parse
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 1
    functionsReached:
    - time
    - s3_read_awssecret
    - strstr
    - kputsn
    - gmtime_r
    - strftime
    - s3_sign
    - strlen
    linkageType: ''
    returnType: s3aux_t
    signature: s3aux_t s3_parse(const char *url, const char *_id, const char *_secret,
      const char *fn_secret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/klib/kurl.c:547,1
    - Dst: getopt
      Src: /src/h2o/deps/klib/kurl.c:548,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/kurl.c:549,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/kurl.c:550,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/kurl.c:554,1
    - Dst: kurl_init
      Src: /src/h2o/deps/klib/kurl.c:557,1
    - Dst: kurl_open
      Src: /src/h2o/deps/klib/kurl.c:558,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/kurl.c:560,1
    - Dst: kurl_seek
      Src: /src/h2o/deps/klib/kurl.c:564,1
    - Dst: kurl_close
      Src: /src/h2o/deps/klib/kurl.c:565,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/kurl.c:566,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kurl.c:570,1
    - Dst: kurl_read
      Src: /src/h2o/deps/klib/kurl.c:573,1
    - Dst: fwrite
      Src: /src/h2o/deps/klib/kurl.c:575,1
    - Dst: free
      Src: /src/h2o/deps/klib/kurl.c:578,1
    - Dst: kurl_close
      Src: /src/h2o/deps/klib/kurl.c:579,1
    - Dst: kurl_destroy
      Src: /src/h2o/deps/klib/kurl.c:580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 582
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kurl.c
    functionUses: 9
    functionsReached:
    - getopt
    - calloc
    - fwrite
    - free
    - kurl_seek
    - kurl_destroy
    - kurl_open
    - fprintf
    - kurl_close
    - memset
    - kurl_read
    - strtol
    - kurl_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: kv_roundup32
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_roundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: kvec_t
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kvec_t(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: kv_init
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_init(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: kv_destroy
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_destroy(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: kv_A
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_A(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: kv_pop
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_pop(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: kv_size
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_size(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: kv_max
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_max(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - v
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: kv_resize
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_resize(type, v, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - v1
    - ','
    - v0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: kv_copy
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_copy(type, v1, v0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - v
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: kv_push
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_push(type, v, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: kv_pushp
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_pushp(type, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: kv_a
    functionSourceFile: /src/h2o/deps/klib/kvec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kv_a(type, v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:14,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:15,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:17,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:18,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:19,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (m > 0 && n > 0)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 23
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 23
    functionName: hmm_new_par
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - calloc2
    - calloc
    - assert
    linkageType: ''
    returnType: hmm_par_t
    signature: hmm_par_t *hmm_new_par(int m, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:28,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:29,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:30,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:31,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:31,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:31,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:31,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - hp
    argTypes:
    - hmm_par_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: hmm_delete_par
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void hmm_delete_par(hmm_par_t *hp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:40,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/khmm.c:42,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/khmm.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - L
    - seq
    - hp
    argTypes:
    - int
    - char*
    - hmm_par_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: hmm_new_data
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    - calloc
    linkageType: ''
    returnType: hmm_data_t
    signature: hmm_data_t *hmm_new_data(int L, const char *seq, const hmm_par_t *hp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:51,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:52,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:54,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - hd
    argTypes:
    - hmm_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: hmm_delete_data
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void hmm_delete_data(hmm_data_t *hd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:63,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:64,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:66,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:67,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hp
    argTypes:
    - hmm_par_t*
    assertStmts:
    - condition: (hp)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: hmm_new_exp
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - calloc2
    - calloc
    - assert
    linkageType: ''
    returnType: hmm_exp_t
    signature: hmm_exp_t *hmm_new_exp(const hmm_par_t *hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:75,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:76,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:77,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:77,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:77,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - he
    argTypes:
    - hmm_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: hmm_delete_exp
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void hmm_delete_exp(hmm_exp_t *he)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:89,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:90,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:91,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:92,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:93,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/khmm.c:94,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/khmm.c:95,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:98,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:101,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:105,1
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:119,1
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:131,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:135,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:136,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:137,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:138,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:138,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:138,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:138,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:138,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - hp
    - hd
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    assertStmts:
    - condition: (max_l >= 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/h2o/deps/klib/khmm.c
    - condition: (max_l >= 0)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 141
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 141
    functionName: hmm_Viterbi
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    - log
    - free
    - calloc2
    - assert
    linkageType: ''
    returnType: FLOAT
    signature: FLOAT hmm_Viterbi(const hmm_par_t *hp, hmm_data_t *hd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:150,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:153,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:155,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:156,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:158,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:159,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:162,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:187,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:188,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - hp
    - hd
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    assertStmts:
    - condition: (hp && hd)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 190
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: hmm_forward
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - calloc2
    - free
    - calloc
    - assert
    linkageType: ''
    returnType: void
    signature: void hmm_forward(const hmm_par_t *hp, hmm_data_t *hd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - hp
    argTypes:
    - hmm_par_t*
    assertStmts:
    - condition: (hp)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: hmm_pre_backward
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void hmm_pre_backward(hmm_par_t *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:215,1
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:216,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:220,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:221,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:224,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/khmm.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - hp
    - hd
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    assertStmts:
    - condition: (hp && hd)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/h2o/deps/klib/khmm.c
    - condition: (hd->status & HMM_FORWARD)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: hmm_backward
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - calloc2
    - free
    - assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hmm_backward(const hmm_par_t *hp, hmm_data_t *hd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:250,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:254,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - hd
    argTypes:
    - hmm_data_t*
    assertStmts:
    - condition: (hd->status & HMM_FORWARD)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: hmm_lk
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - log
    - assert
    linkageType: ''
    returnType: FLOAT
    signature: FLOAT hmm_lk(const hmm_data_t *hd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:267,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:268,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:269,1
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - hp
    - hd
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    assertStmts:
    - condition: (hd->status && HMM_BACKWARD)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/h2o/deps/klib/khmm.c
    - condition: (max_k >= 0)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: hmm_post_decode
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - assert
    linkageType: ''
    returnType: void
    signature: void hmm_post_decode(const hmm_par_t *hp, hmm_data_t *hd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - hp
    - hd
    - u
    - prob
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    - int
    - FLOAT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: hmm_post_state
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLOAT
    signature: FLOAT hmm_post_state(const hmm_par_t *hp, const hmm_data_t *hd, int
      u, FLOAT *prob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:301,1
    - Dst: hmm_new_exp
      Src: /src/h2o/deps/klib/khmm.c:302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - hp
    - hd
    argTypes:
    - hmm_par_t*
    - hmm_data_t*
    assertStmts:
    - condition: (hd->status & HMM_BACKWARD)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: hmm_expect
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - assert
    - hmm_new_exp
    linkageType: ''
    returnType: hmm_exp_t
    signature: hmm_exp_t *hmm_expect(const hmm_par_t *hp, const hmm_data_t *hd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:334,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - hp
    - he
    argTypes:
    - hmm_par_t*
    - hmm_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: hmm_Q0
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: FLOAT
    signature: FLOAT hmm_Q0(const hmm_par_t *hp, hmm_exp_t *he)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/khmm.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - he0
    - he1
    argTypes:
    - hmm_exp_t*
    - hmm_exp_t*
    assertStmts:
    - condition: (he0->m == he1->m && he0->n == he1->n)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/h2o/deps/klib/khmm.c
    constantsTouched: []
    func_position:
      end: 359
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 359
    functionName: hmm_add_expect
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void hmm_add_expect(const hmm_exp_t *he0, hmm_exp_t *he1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:371,1
    - Dst: log
      Src: /src/h2o/deps/klib/khmm.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - hp
    - he
    argTypes:
    - hmm_par_t*
    - hmm_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 382
    functionName: hmm_Q
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: FLOAT
    signature: FLOAT hmm_Q(const hmm_par_t *hp, const hmm_exp_t *he)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.c:391,1
    - Dst: calloc2
      Src: /src/h2o/deps/klib/khmm.c:393,1
    - Dst: drand48
      Src: /src/h2o/deps/klib/khmm.c:398,1
    - Dst: drand48
      Src: /src/h2o/deps/klib/khmm.c:406,1
    - Dst: drand48
      Src: /src/h2o/deps/klib/khmm.c:412,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:420,1
    - Dst: free
      Src: /src/h2o/deps/klib/khmm.c:421,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - hp
    - L
    argTypes:
    - hmm_par_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 423
    functionName: hmm_simulate
    functionSourceFile: /src/h2o/deps/klib/khmm.c
    functionUses: 0
    functionsReached:
    - calloc2
    - free
    - calloc
    - drand48
    linkageType: ''
    returnType: char
    signature: char *hmm_simulate(const hmm_par_t *hp, int L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - kmptype_t
    - ','
    - kmpfree_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: KMEMPOOL_INIT
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KMEMPOOL_INIT(name, kmptype_t, kmpfree_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: kmempool_t
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmempool_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: kmp_init
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmp_init(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: kmp_destroy
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmp_destroy(name, mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: kmp_alloc
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmp_alloc(name, mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - mp
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: kmp_free
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmp_free(name, mp, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - kltype_t
    - ','
    - kmpfree_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: KLIST_INIT
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KLIST_INIT(name, kltype_t, kmpfree_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: kliter_t
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kliter_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: klist_t
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: klist_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: kl_val
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_val(iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: kl_next
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_next(iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - kl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: kl_begin
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_begin(kl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - kl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: kl_end
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_end(kl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: kl_init
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_init(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - kl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: kl_destroy
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_destroy(name, kl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - kl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: kl_pushp
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_pushp(name, kl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - kl
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: kl_shift
    functionSourceFile: /src/h2o/deps/klib/klist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kl_shift(name, kl, d)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/kson.c:38,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kson.c:41,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/kson.c:47,1
    - Dst: __new_node
      Src: /src/h2o/deps/klib/kson.c:48,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/kson.c:49,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/kson.c:62,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/kson.c:73,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/kson.c:82,1
    - Dst: __new_node
      Src: /src/h2o/deps/klib/kson.c:83,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/kson.c:93,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/kson.c:93,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kson.c:98,1
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:106,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 80
    argCount: 4
    argNames:
    - json
    - _n
    - error
    - parsed_len
    argTypes:
    - char*
    - long*
    - int*
    - long*
    assertStmts:
    - condition: (sizeof(size_t) == sizeof(kson_node_t*))
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/klib/kson.c
    constantsTouched: []
    func_position:
      end: 109
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 109
    functionName: kson_parse_core
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - isspace
    - __push_back
    - assert
    - __new_node
    - strncpy
    linkageType: ''
    returnType: kson_node_t
    signature: kson_node_t *kson_parse_core(const char *json, long *_n, int *error,
      long *parsed_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: __push_back
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __push_back(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: __new_node
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __new_node(z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:116,1
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:116,1
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:118,1
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - kson
    argTypes:
    - kson_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: kson_destroy
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void kson_destroy(kson_t *kson)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/kson.c:125,1
    - Dst: kson_parse_core
      Src: /src/h2o/deps/klib/kson.c:126,1
    - Dst: kson_destroy
      Src: /src/h2o/deps/klib/kson.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - json
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: kson_parse
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 0
    functionsReached:
    - kson_parse_core
    - calloc
    - kson_destroy
    linkageType: ''
    returnType: kson_t
    signature: kson_t *kson_parse(const char *json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/klib/kson.c:141,1
    - Dst: kson_by_key
      Src: /src/h2o/deps/klib/kson.c:144,1
    - Dst: va_arg
      Src: /src/h2o/deps/klib/kson.c:144,1
    - Dst: kson_by_index
      Src: /src/h2o/deps/klib/kson.c:146,1
    - Dst: va_arg
      Src: /src/h2o/deps/klib/kson.c:146,1
    - Dst: va_end
      Src: /src/h2o/deps/klib/kson.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - p
    - depth
    argTypes:
    - kson_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: kson_by_path
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 0
    functionsReached:
    - va_start
    - kson_by_index
    - kson_by_key
    - va_end
    - va_arg
    linkageType: ''
    returnType: kson_node_t
    signature: kson_node_t *kson_by_path(const kson_node_t *p, int depth, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:161,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:163,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:165,1
    - Dst: fputs
      Src: /src/h2o/deps/klib/kson.c:165,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:169,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:170,1
    - Dst: fputs
      Src: /src/h2o/deps/klib/kson.c:170,1
    - Dst: kson_format_recur
      Src: /src/h2o/deps/klib/kson.c:172,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:174,1
    - Dst: fputs
      Src: /src/h2o/deps/klib/kson.c:174,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:176,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:179,1
    - Dst: fputs
      Src: /src/h2o/deps/klib/kson.c:180,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:182,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - p
    - depth
    argTypes:
    - kson_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 184
    functionName: kson_format_recur
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 1
    functionsReached:
    - putchar
    - fputs
    - printf
    - kson_format_recur
    linkageType: ''
    returnType: void
    signature: void kson_format_recur(const kson_node_t *p, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kson_format_recur
      Src: /src/h2o/deps/klib/kson.c:188,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/kson.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - kson_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: kson_format
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 0
    functionsReached:
    - putchar
    - kson_format_recur
    linkageType: ''
    returnType: void
    signature: void kson_format(const kson_node_t *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/klib/kson.c:205,1
    - Dst: fread
      Src: /src/h2o/deps/klib/kson.c:207,1
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kson.c:210,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kson.c:211,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kson.c:213,1
    - Dst: fclose
      Src: /src/h2o/deps/klib/kson.c:216,1
    - Dst: kson_parse
      Src: /src/h2o/deps/klib/kson.c:218,1
    - Dst: free
      Src: /src/h2o/deps/klib/kson.c:219,1
    - Dst: kson_format
      Src: /src/h2o/deps/klib/kson.c:221,1
    - Dst: kson_by_index
      Src: /src/h2o/deps/klib/kson.c:227,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/kson.c:227,1
    - Dst: kson_by_key
      Src: /src/h2o/deps/klib/kson.c:229,1
    - Dst: kson_is_internal
      Src: /src/h2o/deps/klib/kson.c:233,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:233,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:234,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:235,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:237,1
    - Dst: kson_parse
      Src: /src/h2o/deps/klib/kson.c:240,1
    - Dst: kson_by_path
      Src: /src/h2o/deps/klib/kson.c:242,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:243,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:244,1
    - Dst: kson_format
      Src: /src/h2o/deps/klib/kson.c:245,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kson.c:247,1
    - Dst: kson_destroy
      Src: /src/h2o/deps/klib/kson.c:250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 252
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kson.c
    functionUses: 9
    functionsReached:
    - realloc
    - fclose
    - kson_by_path
    - fread
    - free
    - kson_format
    - kson_by_index
    - kson_parse
    - atoi
    - memcpy
    - fopen
    - printf
    - kson_by_key
    - kson_destroy
    - kroundup32
    - kson_is_internal
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: _bgzf_open
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_open(fn, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _bgzf_dopen
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_dopen(fp, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: _bgzf_close
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_close(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: _bgzf_fileno
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_fileno(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: _bgzf_tell
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_tell(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: _bgzf_seek
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_seek(fp, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: _bgzf_read
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_read(fp, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: _bgzf_write
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_write(fp, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ftello
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ftello(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: fseeko
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fseeko(fp, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: _bgzf_open
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_open(fn, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: _bgzf_dopen
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_dopen(fp, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: _bgzf_close
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_close(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: _bgzf_fileno
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_fileno(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: _bgzf_tell
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_tell(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: _bgzf_seek
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_seek(fp, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: _bgzf_read
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_read(fp, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: _bgzf_write
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bgzf_write(fp, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - value
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: packInt16
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packInt16(uint8_t *buffer, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: unpackInt16
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unpackInt16(const uint8_t *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: packInt32
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packInt32(uint8_t *buffer, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/bgzf.c:105,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/bgzf.c:107,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/bgzf.c:108,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/bgzf.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: bgzf_read_init
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    - kh_init
    linkageType: ''
    returnType: BGZF
    signature: BGZF *bgzf_read_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/bgzf.c:118,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/bgzf.c:120,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/bgzf.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - compress_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: bgzf_write_init
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    linkageType: ''
    returnType: BGZF
    signature: BGZF *bgzf_write_init(int compress_level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: mode2level
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int mode2level(const char *__restrict mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:140,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:140,1
    - Dst: _bgzf_open
      Src: /src/h2o/deps/klib/bgzf.c:142,1
    - Dst: bgzf_read_init
      Src: /src/h2o/deps/klib/bgzf.c:143,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:145,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:145,1
    - Dst: fopen
      Src: /src/h2o/deps/klib/bgzf.c:147,1
    - Dst: bgzf_write_init
      Src: /src/h2o/deps/klib/bgzf.c:148,1
    - Dst: mode2level
      Src: /src/h2o/deps/klib/bgzf.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: bgzf_open
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 1
    functionsReached:
    - bgzf_read_init
    - mode2level
    - fopen
    - _bgzf_open
    - strchr
    - bgzf_write_init
    linkageType: ''
    returnType: BGZF
    signature: BGZF *bgzf_open(const char *path, const char *mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:157,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:157,1
    - Dst: _bgzf_dopen
      Src: /src/h2o/deps/klib/bgzf.c:159,1
    - Dst: bgzf_read_init
      Src: /src/h2o/deps/klib/bgzf.c:160,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:162,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/bgzf.c:162,1
    - Dst: fdopen
      Src: /src/h2o/deps/klib/bgzf.c:164,1
    - Dst: bgzf_write_init
      Src: /src/h2o/deps/klib/bgzf.c:165,1
    - Dst: mode2level
      Src: /src/h2o/deps/klib/bgzf.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: bgzf_dopen
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 1
    functionsReached:
    - bgzf_read_init
    - _bgzf_dopen
    - mode2level
    - fdopen
    - strchr
    - bgzf_write_init
    linkageType: ''
    returnType: BGZF
    signature: BGZF *bgzf_dopen(int fd, const char *mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:181,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:182,1
    - Dst: deflateInit2
      Src: /src/h2o/deps/klib/bgzf.c:192,1
    - Dst: deflate
      Src: /src/h2o/deps/klib/bgzf.c:197,1
    - Dst: deflateEnd
      Src: /src/h2o/deps/klib/bgzf.c:199,1
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:202,1
    - Dst: deflateEnd
      Src: /src/h2o/deps/klib/bgzf.c:208,1
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:214,1
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:218,1
    - Dst: packInt16
      Src: /src/h2o/deps/klib/bgzf.c:219,1
    - Dst: crc32
      Src: /src/h2o/deps/klib/bgzf.c:220,1
    - Dst: crc32
      Src: /src/h2o/deps/klib/bgzf.c:221,1
    - Dst: packInt32
      Src: /src/h2o/deps/klib/bgzf.c:222,1
    - Dst: packInt32
      Src: /src/h2o/deps/klib/bgzf.c:223,1
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:227,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 2
    argNames:
    - fp
    - block_length
    argTypes:
    - BGZF*
    - int
    assertStmts:
    - condition: (block_length <= BGZF_BLOCK_SIZE)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/h2o/deps/klib/bgzf.c
    - condition: (input_length > 0)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/h2o/deps/klib/bgzf.c
    - condition: (compressed_length <= BGZF_BLOCK_SIZE)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/h2o/deps/klib/bgzf.c
    - condition: (compressed_length > 0)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/h2o/deps/klib/bgzf.c
    - condition: (remaining <= input_length)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/h2o/deps/klib/bgzf.c
    constantsTouched: []
    func_position:
      end: 232
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 232
    functionName: deflate_block
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - crc32
    - packInt32
    - memcpy
    - deflate
    - deflateInit2
    - packInt16
    - assert
    - deflateEnd
    linkageType: ''
    returnType: int
    signature: int deflate_block(BGZF *fp, int block_length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2
      Src: /src/h2o/deps/klib/bgzf.c:245,1
    - Dst: inflate
      Src: /src/h2o/deps/klib/bgzf.c:249,1
    - Dst: inflateEnd
      Src: /src/h2o/deps/klib/bgzf.c:250,1
    - Dst: inflateEnd
      Src: /src/h2o/deps/klib/bgzf.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - fp
    - block_length
    argTypes:
    - BGZF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: inflate_block
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - inflate
    - inflateEnd
    - inflateInit2
    linkageType: ''
    returnType: int
    signature: int inflate_block(BGZF* fp, int block_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpackInt16
      Src: /src/h2o/deps/klib/bgzf.c:264,1
    - Dst: unpackInt16
      Src: /src/h2o/deps/klib/bgzf.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - header
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: check_header
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 4
    functionsReached:
    - unpackInt16
    linkageType: ''
    returnType: int
    signature: int check_header(const uint8_t *header)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:273,1
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:273,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/bgzf.c:275,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/bgzf.c:275,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/bgzf.c:276,1
    - Dst: free
      Src: /src/h2o/deps/klib/bgzf.c:276,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/bgzf.c:276,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/bgzf.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: free_cache
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_end
    - free
    - kh_begin
    - kh_exist
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void free_cache(BGZF *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:284,1
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:284,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/bgzf.c:285,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/bgzf.c:286,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/bgzf.c:287,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:291,1
    - Dst: _bgzf_seek
      Src: /src/h2o/deps/klib/bgzf.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - fp
    - block_address
    argTypes:
    - BGZF*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: load_block_from_cache
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - kh_val
    - _bgzf_seek
    - kh_end
    - memcpy
    - kh_get
    - khash_t
    linkageType: ''
    returnType: int
    signature: int load_block_from_cache(BGZF *fp, int64_t block_address)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:301,1
    - Dst: khash_t
      Src: /src/h2o/deps/klib/bgzf.c:301,1
    - Dst: kh_size
      Src: /src/h2o/deps/klib/bgzf.c:303,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/bgzf.c:307,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/bgzf.c:307,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/bgzf.c:308,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/bgzf.c:309,1
    - Dst: free
      Src: /src/h2o/deps/klib/bgzf.c:310,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/bgzf.c:310,1
    - Dst: kh_del
      Src: /src/h2o/deps/klib/bgzf.c:311,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/bgzf.c:314,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/bgzf.c:316,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/bgzf.c:319,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:320,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/bgzf.c:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - fp
    - size
    argTypes:
    - BGZF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: cache_block
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - kh_val
    - malloc
    - kh_end
    - free
    - kh_size
    - kh_put
    - memcpy
    - kh_begin
    - kh_exist
    - kh_del
    - khash_t
    linkageType: ''
    returnType: void
    signature: void cache_block(BGZF *fp, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    functionName: free_cache
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_cache(BGZF *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - block_address
    argTypes:
    - BGZF*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: load_block_from_cache
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int load_block_from_cache(BGZF *fp, int64_t block_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - fp
    - size
    argTypes:
    - BGZF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    functionName: cache_block
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cache_block(BGZF *fp, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _bgzf_tell
      Src: /src/h2o/deps/klib/bgzf.c:333,1
    - Dst: load_block_from_cache
      Src: /src/h2o/deps/klib/bgzf.c:334,1
    - Dst: _bgzf_read
      Src: /src/h2o/deps/klib/bgzf.c:335,1
    - Dst: check_header
      Src: /src/h2o/deps/klib/bgzf.c:340,1
    - Dst: unpackInt16
      Src: /src/h2o/deps/klib/bgzf.c:345,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:347,1
    - Dst: _bgzf_read
      Src: /src/h2o/deps/klib/bgzf.c:349,1
    - Dst: inflate_block
      Src: /src/h2o/deps/klib/bgzf.c:355,1
    - Dst: cache_block
      Src: /src/h2o/deps/klib/bgzf.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 361
    functionName: bgzf_read_block
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - cache_block
    - _bgzf_read
    - check_header
    - load_block_from_cache
    - inflate_block
    - memcpy
    - unpackInt16
    - _bgzf_tell
    linkageType: ''
    returnType: int
    signature: int bgzf_read_block(BGZF *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:368,1
    - Dst: bgzf_read_block
      Src: /src/h2o/deps/klib/bgzf.c:373,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:379,1
    - Dst: _bgzf_tell
      Src: /src/h2o/deps/klib/bgzf.c:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - fp
    - data
    - length
    argTypes:
    - BGZF*
    - void*
    - ssize_t
    assertStmts:
    - condition: (fp->open_mode == 'r')
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/h2o/deps/klib/bgzf.c
    constantsTouched: []
    func_position:
      end: 389
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 389
    functionName: bgzf_read
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 1
    functionsReached:
    - memcpy
    - bgzf_read_block
    - assert
    - _bgzf_tell
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t bgzf_read(BGZF *fp, void *data, ssize_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:393,1
    - Dst: deflate_block
      Src: /src/h2o/deps/klib/bgzf.c:396,1
    - Dst: fwrite
      Src: /src/h2o/deps/klib/bgzf.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts:
    - condition: (fp->open_mode == 'w')
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/h2o/deps/klib/bgzf.c
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: bgzf_flush
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - fwrite
    - deflate_block
    - assert
    linkageType: ''
    returnType: int
    signature: int bgzf_flush(BGZF *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bgzf_flush
      Src: /src/h2o/deps/klib/bgzf.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fp
    - size
    argTypes:
    - BGZF*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: bgzf_flush_try
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - bgzf_flush
    linkageType: ''
    returnType: int
    signature: int bgzf_flush_try(BGZF *fp, ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/bgzf.c:418,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:424,1
    - Dst: bgzf_flush
      Src: /src/h2o/deps/klib/bgzf.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - fp
    - data
    - length
    argTypes:
    - BGZF*
    - void*
    - ssize_t
    assertStmts:
    - condition: (fp->open_mode == 'w')
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/h2o/deps/klib/bgzf.c
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: bgzf_write
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - bgzf_flush
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t bgzf_write(BGZF *fp, const void *data, ssize_t length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bgzf_flush
      Src: /src/h2o/deps/klib/bgzf.c:438,1
    - Dst: deflate_block
      Src: /src/h2o/deps/klib/bgzf.c:439,1
    - Dst: fwrite
      Src: /src/h2o/deps/klib/bgzf.c:440,1
    - Dst: fflush
      Src: /src/h2o/deps/klib/bgzf.c:441,1
    - Dst: fclose
      Src: /src/h2o/deps/klib/bgzf.c:446,1
    - Dst: _bgzf_close
      Src: /src/h2o/deps/klib/bgzf.c:446,1
    - Dst: free
      Src: /src/h2o/deps/klib/bgzf.c:448,1
    - Dst: free
      Src: /src/h2o/deps/klib/bgzf.c:449,1
    - Dst: free_cache
      Src: /src/h2o/deps/klib/bgzf.c:450,1
    - Dst: free
      Src: /src/h2o/deps/klib/bgzf.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 453
    functionName: bgzf_close
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 1
    functionsReached:
    - deflate_block
    - fwrite
    - fflush
    - free
    - bgzf_flush
    - _bgzf_close
    - free_cache
    - fclose
    linkageType: ''
    returnType: int
    signature: int bgzf_close(BGZF* fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - cache_size
    argTypes:
    - BGZF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: bgzf_set_cache_size
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bgzf_set_cache_size(BGZF *fp, int cache_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _bgzf_tell
      Src: /src/h2o/deps/klib/bgzf.c:465,1
    - Dst: _bgzf_seek
      Src: /src/h2o/deps/klib/bgzf.c:466,1
    - Dst: _bgzf_read
      Src: /src/h2o/deps/klib/bgzf.c:467,1
    - Dst: _bgzf_seek
      Src: /src/h2o/deps/klib/bgzf.c:468,1
    - Dst: memcmp
      Src: /src/h2o/deps/klib/bgzf.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: bgzf_check_EOF
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - _bgzf_seek
    - _bgzf_read
    - memcmp
    - _bgzf_tell
    linkageType: ''
    returnType: int
    signature: int bgzf_check_EOF(BGZF *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _bgzf_seek
      Src: /src/h2o/deps/klib/bgzf.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - fp
    - pos
    - where
    argTypes:
    - BGZF*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 491
    functionName: bgzf_seek
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 3
    functionsReached:
    - _bgzf_seek
    linkageType: ''
    returnType: int64_t
    signature: int64_t bgzf_seek(BGZF* fp, int64_t pos, int where)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _bgzf_open
      Src: /src/h2o/deps/klib/bgzf.c:498,1
    - Dst: _bgzf_read
      Src: /src/h2o/deps/klib/bgzf.c:499,1
    - Dst: _bgzf_close
      Src: /src/h2o/deps/klib/bgzf.c:500,1
    - Dst: memcmp
      Src: /src/h2o/deps/klib/bgzf.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: bgzf_is_bgzf
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - _bgzf_close
    - _bgzf_read
    - _bgzf_open
    - memcmp
    linkageType: ''
    returnType: int
    signature: int bgzf_is_bgzf(const char *fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bgzf_read_block
      Src: /src/h2o/deps/klib/bgzf.c:509,1
    - Dst: _bgzf_tell
      Src: /src/h2o/deps/klib/bgzf.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BGZF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 519
    functionName: bgzf_getc
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - bgzf_read_block
    - _bgzf_tell
    linkageType: ''
    returnType: int
    signature: int bgzf_getc(BGZF *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bgzf_read_block
      Src: /src/h2o/deps/klib/bgzf.c:532,1
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/bgzf.c:540,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/bgzf.c:541,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/bgzf.c:543,1
    - Dst: _bgzf_tell
      Src: /src/h2o/deps/klib/bgzf.c:547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - fp
    - delim
    - str
    argTypes:
    - BGZF*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 555
    functionName: bgzf_getline
    functionSourceFile: /src/h2o/deps/klib/bgzf.c
    functionUses: 0
    functionsReached:
    - realloc
    - bgzf_read_block
    - memcpy
    - kroundup32
    - _bgzf_tell
    linkageType: ''
    returnType: int
    signature: int bgzf_getline(BGZF *fp, int delim, kstring_t *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/h2o/deps/klib/kopen.c:27,1
    - Dst: FD_SET
      Src: /src/h2o/deps/klib/kopen.c:28,1
    - Dst: select
      Src: /src/h2o/deps/klib/kopen.c:31,1
    - Dst: perror
      Src: /src/h2o/deps/klib/kopen.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - is_read
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: socket_wait
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - perror
    - select
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int socket_wait(int fd, int is_read)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/klib/kopen.c:43,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/klib/kopen.c:46,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/kopen.c:46,1
    - Dst: socket
      Src: /src/h2o/deps/klib/kopen.c:47,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/kopen.c:47,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/kopen.c:48,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/kopen.c:48,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/kopen.c:49,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/kopen.c:49,1
    - Dst: connect
      Src: /src/h2o/deps/klib/kopen.c:50,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/kopen.c:50,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/klib/kopen.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: socket_connect
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - __err_connect
    - setsockopt
    - freeaddrinfo
    - getaddrinfo
    - connect
    - memset
    - socket
    linkageType: ''
    returnType: int
    signature: int socket_connect(const char *host, const char *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: __err_connect
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __err_connect(func)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/kopen.c:62,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:66,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/kopen.c:67,1
    - Dst: getenv
      Src: /src/h2o/deps/klib/kopen.c:72,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:75,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:76,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:77,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/kopen.c:79,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:79,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:79,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:82,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:83,1
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/kopen.c:88,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:89,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/kopen.c:90,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/kopen.c:91,1
    - Dst: write
      Src: /src/h2o/deps/klib/kopen.c:92,1
    - Dst: read
      Src: /src/h2o/deps/klib/kopen.c:94,1
    - Dst: strncmp
      Src: /src/h2o/deps/klib/kopen.c:96,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:101,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/kopen.c:104,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:106,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:109,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:109,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:109,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:109,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:109,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 111
    functionName: http_open
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - close
    - strdup
    - calloc
    - read
    - strncmp
    - strstr
    - free
    - sprintf
    - getenv
    - socket_connect
    - write
    - strtol
    - strncpy
    linkageType: ''
    returnType: int
    signature: int http_open(const char *fn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket_wait
      Src: /src/h2o/deps/klib/kopen.c:123,1
    - Dst: read
      Src: /src/h2o/deps/klib/kopen.c:124,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kopen.c:127,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/kopen.c:131,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/kopen.c:131,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/kopen.c:131,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/kopen.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 1
    argNames:
    - aux
    argTypes:
    - ftpaux_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: kftp_get_response
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - realloc
    - read
    - socket_wait
    - strtol
    - isdigit
    linkageType: ''
    returnType: int
    signature: int kftp_get_response(ftpaux_t *aux)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_wait
      Src: /src/h2o/deps/klib/kopen.c:144,1
    - Dst: write
      Src: /src/h2o/deps/klib/kopen.c:145,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kopen.c:145,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/kopen.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aux
    - cmd
    - is_get
    argTypes:
    - ftpaux_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: kftp_send_cmd
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - kftp_get_response
    - strlen
    - socket_wait
    - write
    linkageType: ''
    returnType: int
    signature: int kftp_send_cmd(ftpaux_t *aux, const char *cmd, int is_get)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/kopen.c:157,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/kopen.c:161,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:162,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/kopen.c:163,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:164,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kopen.c:164,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/kopen.c:165,1
    - Dst: memset
      Src: /src/h2o/deps/klib/kopen.c:168,1
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/kopen.c:169,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/kopen.c:173,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/kopen.c:174,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/kopen.c:175,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/kopen.c:176,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/kopen.c:177,1
    - Dst: sscanf
      Src: /src/h2o/deps/klib/kopen.c:181,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kopen.c:182,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/kopen.c:184,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/kopen.c:185,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/kopen.c:186,1
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/kopen.c:187,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/kopen.c:189,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:191,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:194,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:197,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:197,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:197,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 199
    functionName: ftp_open
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - close
    - calloc
    - strdup
    - strstr
    - free
    - sprintf
    - kftp_get_response
    - sscanf
    - socket_connect
    - memcpy
    - memset
    - kftp_send_cmd
    - strlen
    - strncpy
    linkageType: ''
    returnType: int
    signature: int ftp_open(const char *fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/klib/kopen.c:206,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:208,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:211,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:214,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:214,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:216,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:217,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/kopen.c:218,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:220,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 223
    functionName: cmd2argv
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - isspace
    - calloc
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: char **cmd2argv(const char *cmd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/kopen.c:240,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:241,1
    - Dst: http_open
      Src: /src/h2o/deps/klib/kopen.c:243,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/kopen.c:244,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:245,1
    - Dst: ftp_open
      Src: /src/h2o/deps/klib/kopen.c:247,1
    - Dst: strcmp
      Src: /src/h2o/deps/klib/kopen.c:248,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:249,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kopen.c:255,1
    - Dst: ispunct
      Src: /src/h2o/deps/klib/kopen.c:261,1
    - Dst: pipe
      Src: /src/h2o/deps/klib/kopen.c:264,1
    - Dst: vfork
      Src: /src/h2o/deps/klib/kopen.c:265,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:267,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:267,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:272,1
    - Dst: dup2
      Src: /src/h2o/deps/klib/kopen.c:273,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:274,1
    - Dst: cmd2argv
      Src: /src/h2o/deps/klib/kopen.c:276,1
    - Dst: execvp
      Src: /src/h2o/deps/klib/kopen.c:277,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:278,1
    - Dst: free
      Src: /src/h2o/deps/klib/kopen.c:278,1
    - Dst: execl
      Src: /src/h2o/deps/klib/kopen.c:279,1
    - Dst: exit
      Src: /src/h2o/deps/klib/kopen.c:280,1
    - Dst: close
      Src: /src/h2o/deps/klib/kopen.c:282,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:283,1
    - Dst: open
      Src: /src/h2o/deps/klib/kopen.c:290,1
    - Dst: open
      Src: /src/h2o/deps/klib/kopen.c:292,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kopen.c:295,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 2
    argNames:
    - fn
    - _fd
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 303
    functionName: kopen
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - close
    - calloc
    - ispunct
    - vfork
    - strstr
    - pipe
    - free
    - exit
    - strcmp
    - cmd2argv
    - isspace
    - execl
    - execvp
    - dup2
    - http_open
    - open
    - ftp_open
    linkageType: ''
    returnType: void
    signature: void *kopen(const char *fn, int *_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/h2o/deps/klib/kopen.c:311,1
    - Dst: kill
      Src: /src/h2o/deps/klib/kopen.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: kclose
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 0
    functionsReached:
    - waitpid
    - kill
    linkageType: ''
    returnType: int
    signature: int kclose(void *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/kopen.c:326,1
    - Dst: kopen
      Src: /src/h2o/deps/klib/kopen.c:329,1
    - Dst: fdopen
      Src: /src/h2o/deps/klib/kopen.c:330,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/kopen.c:332,1
    - Dst: fread
      Src: /src/h2o/deps/klib/kopen.c:336,1
    - Dst: fwrite
      Src: /src/h2o/deps/klib/kopen.c:337,1
    - Dst: fclose
      Src: /src/h2o/deps/klib/kopen.c:339,1
    - Dst: kclose
      Src: /src/h2o/deps/klib/kopen.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 342
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kopen.c
    functionUses: 9
    functionsReached:
    - kopen
    - kclose
    - fwrite
    - fread
    - fprintf
    - fdopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: __KS_TYPE
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KS_TYPE(type_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ks
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: ks_eof
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_eof(ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ks
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ks_rewind
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_rewind(ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type_t
    - ','
    - __bufsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: __KS_BASIC
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KS_BASIC(type_t, __bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __read
    - ','
    - __bufsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: __KS_GETC
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KS_GETC(__read, __bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __read
    - ','
    - __bufsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 117
    functionName: __KS_GETUNTIL
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KS_GETUNTIL(__read, __bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ks_getuntil2
      Src: /src/h2o/deps/klib/kseq.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ks
    - delimiter
    - str
    - dret
    argTypes:
    - kstream_t*
    - int
    - kstring_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: ks_getuntil
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached:
    - ks_getuntil2
    linkageType: ''
    returnType: int
    signature: int ks_getuntil(kstream_t *ks, int delimiter, kstring_t *str, int *dret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type_t
    - ','
    - __read
    - ','
    - __bufsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: KSTREAM_INIT
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSTREAM_INIT(type_t, __read, __bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ks
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: kseq_rewind
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kseq_rewind(ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SCOPE
    - ','
    - type_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: __KSEQ_BASIC
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KSEQ_BASIC(SCOPE, type_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SCOPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: __KSEQ_READ
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KSEQ_READ(SCOPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: __KSEQ_TYPE
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KSEQ_TYPE(type_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SCOPE
    - ','
    - type_t
    - ','
    - __read
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: KSEQ_INIT2
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSEQ_INIT2(SCOPE, type_t, __read)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type_t
    - ','
    - __read
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: KSEQ_INIT
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSEQ_INIT(type_t, __read)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: KSEQ_DECLARE
    functionSourceFile: /src/h2o/deps/klib/kseq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSEQ_DECLARE(type_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _kr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: kr_drand
    functionSourceFile: /src/h2o/deps/klib/kmath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kr_drand(_kr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _kr
    - ','
    - _k
    - ','
    - _cnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: kr_sample
    functionSourceFile: /src/h2o/deps/klib/kmath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kr_sample(_kr, _k, _cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: chr
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chr(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - T
    - C
    - n
    - k
    - cs
    argTypes:
    - unsigned char*
    - saint_t*
    - saint_t
    - saint_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: getCounts
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 0
    functionsReached:
    - chr
    linkageType: ''
    returnType: void
    signature: void getCounts(const unsigned char *T, saint_t *C, saint_t n, saint_t
      k, int cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - C
    - B
    - k
    - end
    argTypes:
    - saint_t*
    - saint_t*
    - saint_t
    - saint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: getBuckets
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getBuckets(const saint_t *C, saint_t *B, saint_t k, saint_t end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getCounts
      Src: /src/h2o/deps/klib/ksa.c:88,1
    - Dst: getBuckets
      Src: /src/h2o/deps/klib/ksa.c:89,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:94,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:99,1
    - Dst: getCounts
      Src: /src/h2o/deps/klib/ksa.c:103,1
    - Dst: getBuckets
      Src: /src/h2o/deps/klib/ksa.c:104,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:108,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:113,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 7
    argNames:
    - T
    - SA
    - C
    - B
    - n
    - k
    - cs
    argTypes:
    - unsigned char*
    - saint_t*
    - saint_t*
    - saint_t*
    - saint_t
    - saint_t
    - saint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 116
    functionName: induceSA
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 0
    functionsReached:
    - getBuckets
    - chr
    - getCounts
    linkageType: ''
    returnType: void
    signature: void induceSA(const unsigned char *T, saint_t *SA, saint_t *C, saint_t
      *B, saint_t n, saint_t k, saint_t cs)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksa.c:140,1
    - Dst: getCounts
      Src: /src/h2o/deps/klib/ksa.c:143,1
    - Dst: getBuckets
      Src: /src/h2o/deps/klib/ksa.c:144,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:147,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:148,1
    - Dst: induceSA
      Src: /src/h2o/deps/klib/ksa.c:151,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksa.c:152,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:158,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:158,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:159,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:165,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:166,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:173,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:173,1
    - Dst: SAIS_CORE
      Src: /src/h2o/deps/klib/ksa.c:186,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:187,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:188,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksa.c:197,1
    - Dst: getCounts
      Src: /src/h2o/deps/klib/ksa.c:201,1
    - Dst: getBuckets
      Src: /src/h2o/deps/klib/ksa.c:202,1
    - Dst: chr
      Src: /src/h2o/deps/klib/ksa.c:206,1
    - Dst: induceSA
      Src: /src/h2o/deps/klib/ksa.c:209,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksa.c:210,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 6
    argNames:
    - T
    - SA
    - fs
    - n
    - k
    - cs
    argTypes:
    - unsigned char*
    - saint_t*
    - saint_t
    - saint_t
    - saint_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 212
    functionName: SAIS_CORE
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 1
    functionsReached:
    - getBuckets
    - malloc
    - free
    - getCounts
    - induceSA
    - SAIS_CORE
    - chr
    linkageType: ''
    returnType: int
    signature: int SAIS_CORE(const unsigned char *T, saint_t *SA, saint_t fs, saint_t
      n, saint_t k, int cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SAIS_CORE
      Src: /src/h2o/deps/klib/ksa.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - T
    - SA
    - n
    - k
    argTypes:
    - unsigned char*
    - saint_t*
    - saint_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: SAIS_MAIN
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 0
    functionsReached:
    - SAIS_CORE
    linkageType: ''
    returnType: int
    signature: int SAIS_MAIN(const unsigned char *T, saint_t *SA, saint_t n, int k)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/ksa.c:235,1
    - Dst: SAIS_MAIN
      Src: /src/h2o/deps/klib/ksa.c:236,1
    - Dst: free
      Src: /src/h2o/deps/klib/ksa.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - T
    - n
    - k
    argTypes:
    - unsigned char*
    - saint_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: SAIS_BWT
    functionSourceFile: /src/h2o/deps/klib/ksa.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - SAIS_MAIN
    linkageType: ''
    returnType: int
    signature: int SAIS_BWT(unsigned char *T, saint_t n, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: kbi_popcount64
    functionSourceFile: /src/h2o/deps/klib/kbit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t kbi_popcount64(uint64_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - y
    - c
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: kbi_DNAcount64
    functionSourceFile: /src/h2o/deps/klib/kbit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t kbi_DNAcount64(uint64_t y, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/kbit.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: kbi_swap
    functionSourceFile: /src/h2o/deps/klib/kbit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kbi_swap(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: KS_ATTR_PRINTF
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KS_ATTR_PRINTF(fmt, arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:95,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - kstring_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: ks_resize
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int ks_resize(kstring_t *s, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: ks_str
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ks_str(kstring_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ks_len
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ks_len(kstring_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:119,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:120,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kstring.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - p
    - l
    - s
    argTypes:
    - char*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: kputsn
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 1
    functionsReached:
    - kroundup32
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int kputsn(const char *p, int l, kstring_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kstring.h:133,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kstring.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - char*
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: kputs
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kputsn
    - strlen
    linkageType: ''
    returnType: int
    signature: int kputs(const char *p, kstring_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:141,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: kputc
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int kputc(int c, kstring_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:157,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: kputc_
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int kputc_(int c, kstring_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:172,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:173,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/kstring.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - l
    - s
    argTypes:
    - void*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: kputsn_
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int kputsn_(const void *p, int l, kstring_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:194,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: kputw
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int kputw(int c, kstring_t *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kputc
      Src: /src/h2o/deps/klib/kstring.h:210,1
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:215,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - unsigned
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 224
    functionName: kputuw
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    - kputc
    linkageType: ''
    returnType: int
    signature: int kputuw(unsigned c, kstring_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.h:237,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.h:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - long
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: kputl
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int kputl(long c, kstring_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ksplit_core
      Src: /src/h2o/deps/klib/kstring.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - delimiter
    - n
    argTypes:
    - kstring_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: ksplit
    functionSourceFile: /src/h2o/deps/klib/kstring.h
    functionUses: 0
    functionsReached:
    - ksplit_core
    linkageType: ''
    returnType: int
    signature: int *ksplit(kstring_t *s, int delimiter, int *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: netread
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netread(fd, ptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: netwrite
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netwrite(fd, ptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: netclose
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netclose(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: netread
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netread(fd, ptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: netwrite
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netwrite(fd, ptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: netclose
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: netclose(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: knet_tell
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_tell(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: knet_fileno
    functionSourceFile: /src/h2o/deps/klib/knetfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_fileno(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: knet_open
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_open(fn, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: knet_dopen
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_dopen(fd, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: knet_close
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_close(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: knet_read
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_read(fp, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - 'off'
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: knet_seek
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_seek(fp, off, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: knet_tell
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_tell(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: knet_fileno
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_fileno(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: knet_win32_init
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_win32_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: knet_win32_destroy
    functionSourceFile: /src/h2o/deps/klib/kurl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: knet_win32_destroy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/h2o/deps/klib/kstring.c:12,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/klib/kstring.c:13,1
    - Dst: va_end
      Src: /src/h2o/deps/klib/kstring.c:14,1
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/kstring.c:17,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/kstring.c:18,1
    - Dst: va_copy
      Src: /src/h2o/deps/klib/kstring.c:19,1
    - Dst: vsnprintf
      Src: /src/h2o/deps/klib/kstring.c:20,1
    - Dst: va_end
      Src: /src/h2o/deps/klib/kstring.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - s
    - fmt
    - ap
    argTypes:
    - kstring_t*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: kvsprintf
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - realloc
    - va_copy
    - vsnprintf
    - kroundup32
    - va_end
    linkageType: ''
    returnType: int
    signature: int kvsprintf(kstring_t *s, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/deps/klib/kstring.c:31,1
    - Dst: kvsprintf
      Src: /src/h2o/deps/klib/kstring.c:32,1
    - Dst: va_end
      Src: /src/h2o/deps/klib/kstring.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - kstring_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: ksprintf
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - kvsprintf
    linkageType: ''
    returnType: int
    signature: int ksprintf(kstring_t *s, const char *fmt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - str
    - sep
    - aux
    argTypes:
    - char*
    - char*
    - ks_tokaux_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 61
    functionName: kstrtok
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *kstrtok(const char *str, const char *sep, ks_tokaux_t *aux)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/klib/kstring.c:68,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kstring.c:90,1
    - Dst: isgraph
      Src: /src/h2o/deps/klib/kstring.c:91,1
    - Dst: isspace
      Src: /src/h2o/deps/klib/kstring.c:93,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 4
    argNames:
    - s
    - delimiter
    - _max
    - _offsets
    argTypes:
    - char*
    - int
    - int*
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 106
    functionName: ksplit_core
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 1
    functionsReached:
    - isgraph
    - isspace
    - strlen
    linkageType: ''
    returnType: int
    signature: int ksplit_core(char *s, int delimiter, int *_max, int **_offsets)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/kstring.c:118,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/kstring.c:124,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - pat
    - m
    argTypes:
    - ubyte_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 153
    functionName: ksBM_prep
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int *ksBM_prep(const ubyte_t *pat, int m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ksBM_prep
      Src: /src/h2o/deps/klib/kstring.c:160,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - _str
    - n
    - _pat
    - m
    - _prep
    argTypes:
    - void*
    - int
    - void*
    - int
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: kmemmem
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - ksBM_prep
    - free
    linkageType: ''
    returnType: void
    signature: void *kmemmem(const void *_str, int n, const void *_pat, int m, int
      **_prep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kmemmem
      Src: /src/h2o/deps/klib/kstring.c:178,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kstring.c:178,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kstring.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - pat
    - _prep
    argTypes:
    - char*
    - char*
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: kstrstr
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - kmemmem
    - strlen
    linkageType: ''
    returnType: char
    signature: char *kstrstr(const char *str, const char *pat, int **_prep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kmemmem
      Src: /src/h2o/deps/klib/kstring.c:183,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/kstring.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - pat
    - n
    - _prep
    argTypes:
    - char*
    - char*
    - int
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: kstrnstr
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 0
    functionsReached:
    - kmemmem
    - strlen
    linkageType: ''
    returnType: char
    signature: char *kstrnstr(const char *str, const char *pat, int n, int **_prep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/kstring.c:198,1
    - Dst: ksprintf
      Src: /src/h2o/deps/klib/kstring.c:200,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kstring.c:201,1
    - Dst: ksplit
      Src: /src/h2o/deps/klib/kstring.c:203,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kstring.c:205,1
    - Dst: kstrtok
      Src: /src/h2o/deps/klib/kstring.c:208,1
    - Dst: kstrtok
      Src: /src/h2o/deps/klib/kstring.c:208,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/kstring.c:209,1
    - Dst: kputc
      Src: /src/h2o/deps/klib/kstring.c:210,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kstring.c:212,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:214,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:214,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:214,1
    - Dst: kstrstr
      Src: /src/h2o/deps/klib/kstring.c:221,1
    - Dst: printf
      Src: /src/h2o/deps/klib/kstring.c:222,1
    - Dst: free
      Src: /src/h2o/deps/klib/kstring.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/kstring.c
    functionUses: 9
    functionsReached:
    - calloc
    - kputsn
    - ksprintf
    - kputc
    - free
    - kstrstr
    - ksplit
    - printf
    - kstrtok
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/klib/khmm.h:101,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/khmm.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: calloc2
    functionSourceFile: /src/h2o/deps/klib/khmm.h
    functionUses: 6
    functionsReached:
    - malloc
    - calloc
    linkageType: ''
    returnType: void
    signature: void **calloc2(int n_row, int n_col, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: __KB_KEY
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_KEY(type, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - btr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: __KB_PTR
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_PTR(btr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: __KB_TREE_T
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_TREE_T(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - key_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: __KB_INIT
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_INIT(name, key_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: __kb_destroy
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __kb_destroy(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key_t
    - ','
    - b
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: __kb_get_first
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __kb_get_first(key_t, b, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - key_t
    - ','
    - __cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: __KB_GET_AUX0
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_GET_AUX0(name, key_t, __cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - key_t
    - ','
    - __cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: __KB_GET_AUX1
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_GET_AUX1(name, key_t, __cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - key_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: __KB_GET
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_GET(name, key_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - key_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 169
    functionName: __KB_INTERVAL
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_INTERVAL(name, key_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - key_t
    - ','
    - __cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 225
    functionName: __KB_PUT
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_PUT(name, key_t, __cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - key_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: __KB_DEL
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KB_DEL(name, key_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key_t
    - ','
    - b
    - ','
    - __func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: __kb_traverse
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __kb_traverse(key_t, b, __func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - key_t
    - ','
    - __cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: KBTREE_INIT
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KBTREE_INIT(name, key_t, __cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: kbtree_t
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kbtree_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: kb_init
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_init(name, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: kb_destroy
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_destroy(name, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: kb_get
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_get(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: kb_put
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_put(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: kb_del
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_del(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - ','
    - l
    - ','
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: kb_interval
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_interval(name, b, k, l, u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: kb_getp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_getp(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: kb_putp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_putp(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: kb_delp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_delp(name, b, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - b
    - ','
    - k
    - ','
    - l
    - ','
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: kb_intervalp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_intervalp(name, b, k, l, u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: kb_size
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: kb_generic_cmp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_generic_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: kb_str_cmp
    functionSourceFile: /src/h2o/deps/klib/kbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kb_str_cmp(a, b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/klib/knhx.c:18,1
    - Dst: strtod
      Src: /src/h2o/deps/klib/knhx.c:32,1
    - Dst: isgraph
      Src: /src/h2o/deps/klib/knhx.c:34,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knhx.c:38,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/knhx.c:39,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knhx.c:40,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - s
    - aux
    - x
    argTypes:
    - char*
    - knaux_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 42
    functionName: add_node
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 0
    functionsReached:
    - realloc
    - strtod
    - calloc
    - strdup
    - isgraph
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *add_node(const char *s, knaux_t *aux, int x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/knhx.c:61,1
    - Dst: isgraph
      Src: /src/h2o/deps/klib/knhx.c:63,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/knhx.c:67,1
    - Dst: add_node
      Src: /src/h2o/deps/klib/knhx.c:74,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knhx.c:75,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/knhx.c:81,1
    - Dst: __push_back
      Src: /src/h2o/deps/klib/knhx.c:83,1
    - Dst: add_node
      Src: /src/h2o/deps/klib/knhx.c:84,1
    - Dst: free
      Src: /src/h2o/deps/klib/knhx.c:90,1
    - Dst: free
      Src: /src/h2o/deps/klib/knhx.c:90,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - nhx
    - _n
    - _error
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 92
    functionName: kn_parse
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - isgraph
    - add_node
    - __push_back
    linkageType: ''
    returnType: knhx1_t
    signature: knhx1_t *kn_parse(const char *nhx, int *_n, int *_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: __push_back
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __push_back(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: kroundup32
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/knhx.c:102,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/knhx.c:103,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/knhx.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - l
    - s
    argTypes:
    - char*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: kputsn
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 3
    functionsReached:
    - kroundup32
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int kputsn(const char *p, int l, kstring_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kroundup32
      Src: /src/h2o/deps/klib/knhx.c:114,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/knhx.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: kputc
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 2
    functionsReached:
    - kroundup32
    - realloc
    linkageType: ''
    returnType: int
    signature: int kputc(int c, kstring_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kputc
      Src: /src/h2o/deps/klib/knhx.c:125,1
    - Dst: kputc
      Src: /src/h2o/deps/klib/knhx.c:127,1
    - Dst: format_node_recur
      Src: /src/h2o/deps/klib/knhx.c:128,1
    - Dst: kputc
      Src: /src/h2o/deps/klib/knhx.c:130,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/knhx.c:131,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knhx.c:131,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knhx.c:133,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/knhx.c:134,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knhx.c:134,1
    - Dst: kputsn
      Src: /src/h2o/deps/klib/knhx.c:136,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knhx.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - node
    - p
    - s
    - numbuf
    argTypes:
    - knhx1_t*
    - knhx1_t*
    - kstring_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: format_node_recur
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 1
    functionsReached:
    - kputsn
    - kputc
    - format_node_recur
    - sprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void format_node_recur(const knhx1_t *node, const knhx1_t *p, kstring_t
      *s, char *numbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_node_recur
      Src: /src/h2o/deps/klib/knhx.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - node
    - root
    - s
    argTypes:
    - knhx1_t*
    - int
    - kstring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: kn_format
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 0
    functionsReached:
    - format_node_recur
    linkageType: ''
    returnType: void
    signature: void kn_format(const knhx1_t *node, int root, kstring_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kn_parse
      Src: /src/h2o/deps/klib/knhx.c:152,1
    - Dst: printf
      Src: /src/h2o/deps/klib/knhx.c:155,1
    - Dst: printf
      Src: /src/h2o/deps/klib/knhx.c:157,1
    - Dst: putchar
      Src: /src/h2o/deps/klib/knhx.c:158,1
    - Dst: kn_format
      Src: /src/h2o/deps/klib/knhx.c:161,1
    - Dst: puts
      Src: /src/h2o/deps/klib/knhx.c:162,1
    - Dst: free
      Src: /src/h2o/deps/klib/knhx.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/knhx.c
    functionUses: 9
    functionsReached:
    - kn_parse
    - putchar
    - puts
    - kn_format
    - free
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: kgraph_t
    functionSourceFile: /src/h2o/deps/klib/kgraph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kgraph_t(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - vertex_t
    - ','
    - arc_t
    - ','
    - ehn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 47
    functionName: __KG_BASIC
    functionSourceFile: /src/h2o/deps/klib/kgraph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KG_BASIC(name, SCOPE, vertex_t, arc_t, ehn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: KGRAPH_PRINT
    functionSourceFile: /src/h2o/deps/klib/kgraph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KGRAPH_PRINT(name, SCOPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - vertex_t
    - ','
    - arc_t
    - ','
    - ehn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: KGRAPH_INIT
    functionSourceFile: /src/h2o/deps/klib/kgraph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KGRAPH_INIT(name, SCOPE, vertex_t, arc_t, ehn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/h2o/deps/klib/knetfile.c:66,1
    - Dst: FD_SET
      Src: /src/h2o/deps/klib/knetfile.c:67,1
    - Dst: select
      Src: /src/h2o/deps/klib/knetfile.c:70,1
    - Dst: perror
      Src: /src/h2o/deps/klib/knetfile.c:72,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:75,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:77,1
    - Dst: WSAGetLastError
      Src: /src/h2o/deps/klib/knetfile.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - is_read
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: socket_wait
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 2
    functionsReached:
    - perror
    - select
    - FD_ZERO
    - WSAGetLastError
    - fprintf
    - FD_SET
    linkageType: ''
    returnType: int
    signature: int socket_wait(int fd, int is_read)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/klib/knetfile.c:93,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/klib/knetfile.c:98,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:98,1
    - Dst: socket
      Src: /src/h2o/deps/klib/knetfile.c:99,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:99,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/knetfile.c:103,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:103,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/knetfile.c:104,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:104,1
    - Dst: connect
      Src: /src/h2o/deps/klib/knetfile.c:105,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:105,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/klib/knetfile.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: socket_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 2
    functionsReached:
    - __err_connect
    - setsockopt
    - freeaddrinfo
    - getaddrinfo
    - connect
    - memset
    - socket
    linkageType: ''
    returnType: int
    signature: int socket_connect(const char *host, const char *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: __err_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __err_connect(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - x
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: int64tostr
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *int64tostr(char *buf, int64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: strtoint64
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t strtoint64(const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/h2o/deps/klib/knetfile.c:137,1
    - Dst: MAKEWORD
      Src: /src/h2o/deps/klib/knetfile.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: knet_win32_init
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - WSAStartup
    - MAKEWORD
    linkageType: ''
    returnType: int
    signature: int knet_win32_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/h2o/deps/klib/knetfile.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: knet_win32_destroy
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void knet_win32_destroy()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/deps/klib/knetfile.c:161,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:161,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/knetfile.c:162,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:162,1
    - Dst: setsockopt
      Src: /src/h2o/deps/klib/knetfile.c:163,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:163,1
    - Dst: isalpha
      Src: /src/h2o/deps/klib/knetfile.c:165,1
    - Dst: gethostbyname
      Src: /src/h2o/deps/klib/knetfile.c:165,1
    - Dst: inet_addr
      Src: /src/h2o/deps/klib/knetfile.c:168,1
    - Dst: gethostbyaddr
      Src: /src/h2o/deps/klib/knetfile.c:169,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:171,1
    - Dst: htons
      Src: /src/h2o/deps/klib/knetfile.c:175,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/knetfile.c:175,1
    - Dst: connect
      Src: /src/h2o/deps/klib/knetfile.c:176,1
    - Dst: __err_connect
      Src: /src/h2o/deps/klib/knetfile.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: socket_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 2
    functionsReached:
    - inet_addr
    - __err_connect
    - isalpha
    - gethostbyaddr
    - setsockopt
    - htons
    - atoi
    - gethostbyname
    - connect
    - socket
    linkageType: ''
    returnType: SOCKET
    signature: SOCKET socket_connect(const char *host, const char *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: __err_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __err_connect(func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket_wait
      Src: /src/h2o/deps/klib/knetfile.c:188,1
    - Dst: netread
      Src: /src/h2o/deps/klib/knetfile.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: my_netread
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - netread
    - socket_wait
    linkageType: ''
    returnType: off_t
    signature: off_t my_netread(int fd, void *buf, off_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket_wait
      Src: /src/h2o/deps/klib/knetfile.c:213,1
    - Dst: netread
      Src: /src/h2o/deps/klib/knetfile.c:214,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/knetfile.c:218,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/knetfile.c:222,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/knetfile.c:222,1
    - Dst: isdigit
      Src: /src/h2o/deps/klib/knetfile.c:222,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/knetfile.c:230,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 1
    argNames:
    - ftp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: kftp_get_response
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 2
    functionsReached:
    - realloc
    - netread
    - socket_wait
    - strtol
    - isdigit
    linkageType: ''
    returnType: int
    signature: int kftp_get_response(knetFile *ftp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_wait
      Src: /src/h2o/deps/klib/knetfile.c:235,1
    - Dst: netwrite
      Src: /src/h2o/deps/klib/knetfile.c:236,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knetfile.c:236,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/knetfile.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ftp
    - cmd
    - is_get
    argTypes:
    - knetFile*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: kftp_send_cmd
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 1
    functionsReached:
    - netwrite
    - kftp_get_response
    - strlen
    - socket_wait
    linkageType: ''
    returnType: int
    signature: int kftp_send_cmd(knetFile *ftp, const char *cmd, int is_get)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:244,1
    - Dst: sscanf
      Src: /src/h2o/deps/klib/knetfile.c:248,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/knetfile.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ftp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: kftp_pasv_prep
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sscanf
    - kftp_send_cmd
    linkageType: ''
    returnType: int
    signature: int kftp_pasv_prep(knetFile *ftp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:259,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:262,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:263,1
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/knetfile.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ftp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 267
    functionName: kftp_pasv_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - sprintf
    - socket_connect
    - fprintf
    linkageType: ''
    returnType: int
    signature: int kftp_pasv_connect(knetFile *ftp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/knetfile.c:271,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/knetfile.c:273,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:274,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:275,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ftp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: kftp_connect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - kftp_get_response
    - socket_connect
    - kftp_send_cmd
    linkageType: ''
    returnType: int
    signature: int kftp_connect(knetFile *ftp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:283,1
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:286,1
    - Dst: kftp_connect
      Src: /src/h2o/deps/klib/knetfile.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ftp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: kftp_reconnect
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - kftp_connect
    - netclose
    linkageType: ''
    returnType: int
    signature: int kftp_reconnect(knetFile *ftp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/knetfile.c:297,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:301,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:306,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:307,1
    - Dst: strchr
      Src: /src/h2o/deps/klib/knetfile.c:308,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/knetfile.c:309,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:310,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knetfile.c:310,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:311,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:312,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/knetfile.c:312,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - fn
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 316
    functionName: kftp_parse_url
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - strdup
    - calloc
    - strstr
    - sprintf
    - strchr
    - strlen
    - strncpy
    linkageType: ''
    returnType: knetFile
    signature: knetFile *kftp_parse_url(const char *fn, const char *mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:323,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/knetfile.c:324,1
    - Dst: kftp_pasv_prep
      Src: /src/h2o/deps/klib/knetfile.c:326,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:327,1
    - Dst: sscanf
      Src: /src/h2o/deps/klib/knetfile.c:329,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:331,1
    - Dst: strtoint64
      Src: /src/h2o/deps/klib/knetfile.c:338,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:344,1
    - Dst: strcpy
      Src: /src/h2o/deps/klib/knetfile.c:346,1
    - Dst: int64tostr
      Src: /src/h2o/deps/klib/knetfile.c:347,1
    - Dst: strcat
      Src: /src/h2o/deps/klib/knetfile.c:348,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:350,1
    - Dst: kftp_send_cmd
      Src: /src/h2o/deps/klib/knetfile.c:352,1
    - Dst: kftp_pasv_connect
      Src: /src/h2o/deps/klib/knetfile.c:353,1
    - Dst: kftp_get_response
      Src: /src/h2o/deps/klib/knetfile.c:354,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:356,1
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - fp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 363
    functionName: kftp_connect_file
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - strcat
    - kftp_pasv_prep
    - kftp_pasv_connect
    - kftp_get_response
    - sprintf
    - sscanf
    - fprintf
    - int64tostr
    - strtoint64
    - netclose
    - kftp_send_cmd
    - strcpy
    linkageType: ''
    returnType: int
    signature: int kftp_connect_file(knetFile *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/h2o/deps/klib/knetfile.c:375,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:379,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:380,1
    - Dst: strncpy
      Src: /src/h2o/deps/klib/knetfile.c:381,1
    - Dst: getenv
      Src: /src/h2o/deps/klib/knetfile.c:386,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:389,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:390,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:391,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/knetfile.c:393,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:393,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:393,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:396,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/knetfile.c:397,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - fn
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 403
    functionName: khttp_parse_url
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - strdup
    - calloc
    - strstr
    - getenv
    - strncpy
    linkageType: ''
    returnType: knetFile
    signature: knetFile *khttp_parse_url(const char *fn, const char *mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:409,1
    - Dst: socket_connect
      Src: /src/h2o/deps/klib/knetfile.c:410,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:411,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:412,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:413,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/knetfile.c:414,1
    - Dst: netwrite
      Src: /src/h2o/deps/klib/knetfile.c:415,1
    - Dst: netread
      Src: /src/h2o/deps/klib/knetfile.c:417,1
    - Dst: strncmp
      Src: /src/h2o/deps/klib/knetfile.c:419,1
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:424,1
    - Dst: strtol
      Src: /src/h2o/deps/klib/knetfile.c:428,1
    - Dst: my_netread
      Src: /src/h2o/deps/klib/knetfile.c:433,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:436,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:437,1
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:438,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:442,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - fp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 445
    functionName: khttp_connect_file
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - calloc
    - strncmp
    - netwrite
    - netread
    - free
    - strtol
    - sprintf
    - socket_connect
    - fprintf
    - netclose
    - my_netread
    linkageType: ''
    returnType: int
    signature: int khttp_connect_file(knetFile *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:455,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/knetfile.c:458,1
    - Dst: kftp_parse_url
      Src: /src/h2o/deps/klib/knetfile.c:459,1
    - Dst: kftp_connect
      Src: /src/h2o/deps/klib/knetfile.c:461,1
    - Dst: knet_close
      Src: /src/h2o/deps/klib/knetfile.c:462,1
    - Dst: kftp_connect_file
      Src: /src/h2o/deps/klib/knetfile.c:465,1
    - Dst: strstr
      Src: /src/h2o/deps/klib/knetfile.c:466,1
    - Dst: khttp_parse_url
      Src: /src/h2o/deps/klib/knetfile.c:467,1
    - Dst: khttp_connect_file
      Src: /src/h2o/deps/klib/knetfile.c:469,1
    - Dst: open
      Src: /src/h2o/deps/klib/knetfile.c:475,1
    - Dst: open
      Src: /src/h2o/deps/klib/knetfile.c:477,1
    - Dst: perror
      Src: /src/h2o/deps/klib/knetfile.c:480,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:483,1
    - Dst: knet_close
      Src: /src/h2o/deps/klib/knetfile.c:489,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - fn
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 493
    functionName: knet_open
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - perror
    - knet_close
    - calloc
    - kftp_parse_url
    - strstr
    - kftp_connect
    - khttp_parse_url
    - khttp_connect_file
    - fprintf
    - kftp_connect_file
    - open
    linkageType: ''
    returnType: knetFile
    signature: knetFile *knet_open(const char *fn, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 501
    functionName: knet_dopen
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: knetFile
    signature: knetFile *knet_dopen(int fd, const char *mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: kftp_reconnect
      Src: /src/h2o/deps/klib/knetfile.c:509,1
    - Dst: kftp_connect_file
      Src: /src/h2o/deps/klib/knetfile.c:510,1
    - Dst: khttp_connect_file
      Src: /src/h2o/deps/klib/knetfile.c:514,1
    - Dst: read
      Src: /src/h2o/deps/klib/knetfile.c:520,1
    - Dst: my_netread
      Src: /src/h2o/deps/klib/knetfile.c:526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - fp
    - buf
    - len
    argTypes:
    - knetFile*
    - void*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: knet_read
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - read
    - kftp_connect_file
    - khttp_connect_file
    - kftp_reconnect
    - my_netread
    linkageType: ''
    returnType: off_t
    signature: off_t knet_read(knetFile *fp, void *buf, off_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/h2o/deps/klib/knetfile.c:537,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:556,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/knetfile.c:568,1
    - Dst: strerror
      Src: /src/h2o/deps/klib/knetfile.c:568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - fp
    - 'off'
    - whence
    argTypes:
    - knetFile*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 570
    functionName: knet_seek
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 0
    functionsReached:
    - strerror
    - lseek
    - fprintf
    linkageType: ''
    returnType: off_t
    signature: off_t knet_seek(knetFile *fp, int64_t off, int whence)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:575,1
    - Dst: close
      Src: /src/h2o/deps/klib/knetfile.c:579,1
    - Dst: netclose
      Src: /src/h2o/deps/klib/knetfile.c:580,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:582,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:582,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:583,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:583,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:584,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:584,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - fp
    argTypes:
    - knetFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 587
    functionName: knet_close
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 1
    functionsReached:
    - close
    - free
    - netclose
    linkageType: ''
    returnType: int
    signature: int knet_close(knetFile *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: knet_win32_init
      Src: /src/h2o/deps/klib/knetfile.c:596,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/knetfile.c:598,1
    - Dst: knet_open
      Src: /src/h2o/deps/klib/knetfile.c:600,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:601,1
    - Dst: knet_open
      Src: /src/h2o/deps/klib/knetfile.c:603,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:604,1
    - Dst: knet_read
      Src: /src/h2o/deps/klib/knetfile.c:605,1
    - Dst: knet_open
      Src: /src/h2o/deps/klib/knetfile.c:607,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:608,1
    - Dst: knet_open
      Src: /src/h2o/deps/klib/knetfile.c:610,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:611,1
    - Dst: knet_open
      Src: /src/h2o/deps/klib/knetfile.c:613,1
    - Dst: knet_read
      Src: /src/h2o/deps/klib/knetfile.c:614,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:615,1
    - Dst: knet_seek
      Src: /src/h2o/deps/klib/knetfile.c:616,1
    - Dst: knet_read
      Src: /src/h2o/deps/klib/knetfile.c:617,1
    - Dst: knet_read
      Src: /src/h2o/deps/klib/knetfile.c:620,1
    - Dst: printf
      Src: /src/h2o/deps/klib/knetfile.c:622,1
    - Dst: write
      Src: /src/h2o/deps/klib/knetfile.c:623,1
    - Dst: fileno
      Src: /src/h2o/deps/klib/knetfile.c:623,1
    - Dst: knet_close
      Src: /src/h2o/deps/klib/knetfile.c:624,1
    - Dst: free
      Src: /src/h2o/deps/klib/knetfile.c:625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 627
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/knetfile.c
    functionUses: 9
    functionsReached:
    - knet_read
    - calloc
    - knet_close
    - fileno
    - free
    - knet_seek
    - knet_open
    - printf
    - knet_win32_init
    - write
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: bgzf_fdopen
    functionSourceFile: /src/h2o/deps/klib/bgzf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bgzf_fdopen(fd, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: bgzf_tell
    functionSourceFile: /src/h2o/deps/klib/bgzf.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bgzf_tell(fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/deps/klib/kthread.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - kt_for_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: steal_work
    functionSourceFile: /src/h2o/deps/klib/kthread.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: long
    signature: long steal_work(kt_for_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/deps/klib/kthread.c:39,1
    - Dst: ktf_worker_t*::t::func
      Src: /src/h2o/deps/klib/kthread.c:41,1
    - Dst: steal_work
      Src: /src/h2o/deps/klib/kthread.c:43,1
    - Dst: ktf_worker_t*::t::func
      Src: /src/h2o/deps/klib/kthread.c:44,1
    - Dst: pthread_exit
      Src: /src/h2o/deps/klib/kthread.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: ktf_worker
    functionSourceFile: /src/h2o/deps/klib/kthread.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    - ktf_worker_t*::t::func
    - pthread_exit
    - steal_work
    linkageType: ''
    returnType: void
    signature: void *ktf_worker(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/deps/klib/kthread.c:54,1
    - Dst: alloca
      Src: /src/h2o/deps/klib/kthread.c:55,1
    - Dst: pthread_create
      Src: /src/h2o/deps/klib/kthread.c:58,1
    - Dst: pthread_join
      Src: /src/h2o/deps/klib/kthread.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - n_threads
    - data
    - n
    argTypes:
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: kt_for
    functionSourceFile: /src/h2o/deps/klib/kthread.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - alloca
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void kt_for(int n_threads, void (*func)(void*,long,int), void *data,
      long n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/klib/kthread.c:89,1
    - Dst: pthread_cond_wait
      Src: /src/h2o/deps/klib/kthread.c:99,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/klib/kthread.c:102,1
    - Dst: ktp_t*::func
      Src: /src/h2o/deps/klib/kthread.c:105,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/klib/kthread.c:108,1
    - Dst: pthread_cond_broadcast
      Src: /src/h2o/deps/klib/kthread.c:111,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/klib/kthread.c:112,1
    - Dst: pthread_exit
      Src: /src/h2o/deps/klib/kthread.c:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: ktp_worker
    functionSourceFile: /src/h2o/deps/klib/kthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_broadcast
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_exit
    - ktp_t*::func
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void *ktp_worker(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/deps/klib/kthread.c:128,1
    - Dst: pthread_cond_init
      Src: /src/h2o/deps/klib/kthread.c:129,1
    - Dst: alloca
      Src: /src/h2o/deps/klib/kthread.c:131,1
    - Dst: alloca
      Src: /src/h2o/deps/klib/kthread.c:137,1
    - Dst: pthread_create
      Src: /src/h2o/deps/klib/kthread.c:138,1
    - Dst: pthread_join
      Src: /src/h2o/deps/klib/kthread.c:139,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/deps/klib/kthread.c:141,1
    - Dst: pthread_cond_destroy
      Src: /src/h2o/deps/klib/kthread.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - n_threads
    - (*func)(void*, int, void*)
    - shared_data
    - n_steps
    argTypes:
    - int
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: kt_pipeline
    functionSourceFile: /src/h2o/deps/klib/kthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_init
    - pthread_create
    - pthread_join
    - pthread_mutex_init
    - pthread_cond_destroy
    - alloca
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void kt_pipeline(int n_threads, void *(*func)(void*, int, void*), void
      *shared_data, int n_steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type_t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: KSORT_SWAP
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSORT_SWAP(type_t, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - type_t
    - ','
    - __sort_lt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 232
    functionName: KSORT_INIT
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSORT_INIT(name, type_t, __sort_lt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: ks_mergesort
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_mergesort(name, n, a, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: ks_introsort
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_introsort(name, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: ks_combsort
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_combsort(name, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: ks_heapsort
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_heapsort(name, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: ks_heapmake
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_heapmake(name, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - i
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: ks_heapadjust
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_heapadjust(name, i, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: ks_ksmall
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_ksmall(name, n, a, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: ks_shuffle
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_shuffle(name, n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: ks_lt_generic
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_lt_generic(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: ks_lt_str
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ks_lt_str(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: KSORT_INIT_GENERIC
    functionSourceFile: /src/h2o/deps/klib/ksort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSORT_INIT_GENERIC(type_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/klib/test/kthread_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - _g
    - i
    - tid
    argTypes:
    - void*
    - int
    - int
    assertStmts:
    - condition: (g->k[i] < 0)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/h2o/deps/klib/test/kthread_test.c
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: compute
    functionSourceFile: /src/h2o/deps/klib/test/kthread_test.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void compute(void *_g, int i, int tid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/kthread_test.c:46,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kthread_test.c:48,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kthread_test.c:51,1
    - Dst: kt_for
      Src: /src/h2o/deps/klib/test/kthread_test.c:54,1
    - Dst: compute
      Src: /src/h2o/deps/klib/test/kthread_test.c:58,1
    - Dst: cilk_for
      Src: /src/h2o/deps/klib/test/kthread_test.c:61,1
    - Dst: compute
      Src: /src/h2o/deps/klib/test/kthread_test.c:62,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kthread_test.c:66,1
    - Dst: assert
      Src: /src/h2o/deps/klib/test/kthread_test.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (tmp == 0)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/klib/test/kthread_test.c
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kthread_test.c
    functionUses: 9
    functionsReached:
    - kt_for
    - calloc
    - compute
    - free
    - atoi
    - fprintf
    - cilk_for
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:16,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/kseq_bench.c:20,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_bench.c:21,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:22,1
    - Dst: gzread
      Src: /src/h2o/deps/klib/test/kseq_bench.c:23,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:24,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:24,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_bench.c:25,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kseq_bench.c:26,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_bench.c:30,1
    - Dst: ks_init
      Src: /src/h2o/deps/klib/test/kseq_bench.c:31,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:32,1
    - Dst: ks_getc
      Src: /src/h2o/deps/klib/test/kseq_bench.c:33,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:34,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:34,1
    - Dst: ks_destroy
      Src: /src/h2o/deps/klib/test/kseq_bench.c:35,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_bench.c:36,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kseq_bench.c:42,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_bench.c:43,1
    - Dst: ks_init
      Src: /src/h2o/deps/klib/test/kseq_bench.c:44,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:45,1
    - Dst: ks_getuntil
      Src: /src/h2o/deps/klib/test/kseq_bench.c:46,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:47,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:47,1
    - Dst: ks_destroy
      Src: /src/h2o/deps/klib/test/kseq_bench.c:48,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_bench.c:49,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kseq_bench.c:50,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kseq_bench.c:50,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_bench.c:53,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:54,1
    - Dst: gzgetc
      Src: /src/h2o/deps/klib/test/kseq_bench.c:55,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:56,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:56,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_bench.c:57,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/kseq_bench.c:60,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_bench.c:61,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:62,1
    - Dst: gzgets
      Src: /src/h2o/deps/klib/test/kseq_bench.c:63,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench.c:64,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench.c:64,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_bench.c:65,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kseq_bench.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 69
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kseq_bench.c
    functionUses: 9
    functionsReached:
    - malloc
    - ks_destroy
    - calloc
    - ks_getuntil
    - ks_init
    - free
    - gzopen
    - gzgetc
    - gzread
    - gzclose
    - clock
    - fprintf
    - gzgets
    - ks_getc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:25,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:26,1
    - Dst: drand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - len
    - a
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: gen_data
    functionSourceFile: /src/h2o/deps/klib/test/kstring_bench2.c
    functionUses: 0
    functionsReached:
    - malloc
    - srand48
    - drand48
    linkageType: ''
    returnType: char
    signature: char *gen_data(int len, int a)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - data
    - dataLength
    - string
    - strLength
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 74
    functionName: BoyerMoore
    functionSourceFile: /src/h2o/deps/klib/test/kstring_bench2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BoyerMoore( unsigned char *data, unsigned int dataLength, unsigned
      char *string, unsigned int strLength )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:81,1
    - Dst: gen_data
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:82,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:83,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:83,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:85,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:85,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:87,1
    - Dst: kmemmem
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:89,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:92,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:92,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:95,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:95,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:97,1
    - Dst: BoyerMoore
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:99,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:102,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:102,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:107,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:107,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:108,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:110,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:112,1
    - Dst: strnstr
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:113,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:115,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:115,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:120,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:120,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:122,1
    - Dst: memmem
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:124,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:127,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench2.c:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kstring_bench2.c
    functionUses: 9
    functionsReached:
    - calloc
    - gen_data
    - lrand48
    - BoyerMoore
    - memmem
    - kmemmem
    - memcpy
    - clock
    - strnstr
    - fprintf
    - srand48
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - c
    - base
    - ret
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: int2str
    functionSourceFile: /src/h2o/deps/klib/test/khash_keith2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void int2str(int c, int base, char *ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_keith2.c:33,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_keith2.c:35,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_keith2.c:36,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/khash_keith2.c:37,1
    - Dst: strcpy
      Src: /src/h2o/deps/klib/test/khash_keith2.c:40,1
    - Dst: int2str
      Src: /src/h2o/deps/klib/test/khash_keith2.c:41,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_keith2.c:42,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/test/khash_keith2.c:42,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:43,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/test/khash_keith2.c:46,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith2.c:46,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/test/khash_keith2.c:47,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_keith2.c:48,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith2.c:48,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith2.c:50,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/test/khash_keith2.c:50,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith2.c:50,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:51,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:51,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:52,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:52,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith2.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith2.c:56,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:56,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith2.c:57,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith2.c:57,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:57,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith2.c:58,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith2.c:58,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:58,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith2.c:59,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith2.c:59,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith2.c:59,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/test/khash_keith2.c:60,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith2.c:60,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/test/khash_keith2.c:61,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_keith2.c:61,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith2.c:61,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/test/khash_keith2.c:62,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith2.c:62,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/test/khash_keith2.c:63,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_keith2.c:63,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith2.c:63,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_keith2.c:64,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_keith2.c:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/khash_keith2.c
    functionUses: 9
    functionsReached:
    - kh_val
    - khash_t
    - strdup
    - kh_init
    - kh_end
    - free
    - kh_key
    - atoi
    - kh_begin
    - printf
    - kh_destroy
    - kh_exist
    - kh_get
    - kh_put
    - int2str
    - strcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - n
    - x
    - data
    argTypes:
    - int
    - double*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 33
    functionName: f_Chebyquad
    functionSourceFile: /src/h2o/deps/klib/test/kmin_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double f_Chebyquad(int n, double *x, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kmin_test.c:39,1
    - Dst: kmin_hj
      Src: /src/h2o/deps/klib/test/kmin_test.c:43,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kmin_test.c:44,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kmin_test.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kmin_test.c
    functionUses: 9
    functionsReached:
    - printf
    - kmin_hj
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:15,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:21,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:22,1
    - Dst: fopen
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:23,1
    - Dst: fgets
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:24,1
    - Dst: fclose
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:25,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:26,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:26,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:32,1
    - Dst: open
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:34,1
    - Dst: ks_init
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:35,1
    - Dst: ks_getuntil
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:36,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:37,1
    - Dst: ks_destroy
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:38,1
    - Dst: close
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:39,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:40,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kseq_bench2.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - main
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 43
    functionName: KSTREAM_INIT
    functionSourceFile: /src/h2o/deps/klib/test/kseq_bench2.c
    functionUses: 0
    functionsReached:
    - close
    - malloc
    - ks_destroy
    - ks_init
    - free
    - fgets
    - fopen
    - clock
    - fprintf
    - fclose
    - ks_getuntil
    - open
    linkageType: ''
    returnType: void
    signature: 'void KSTREAM_INIT(int, read, 4096)


      #define BUF_SIZE 65536


      int main(int argc, char *argv[])'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - numbers
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: sort2
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sort2 (int * numbers)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - numbers
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 106
    functionName: sort3
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sort3 (int * numbers)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 136
    argCount: 1
    argNames:
    - num
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 245
    functionName: sort4
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sort4 (int * num)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - numbers
    - altNumbers
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: sortAlt2
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortAlt2 (int * numbers, int * altNumbers)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - numbers
    - altNumbers
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 287
    functionName: sortAlt3
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortAlt3 (int * numbers, int * altNumbers)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sort4
      Src: /src/h2o/deps/klib/test/ksort_test.cc:298,1
    - Dst: sort3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:299,1
    - Dst: sort2
      Src: /src/h2o/deps/klib/test/ksort_test.cc:300,1
    - Dst: sort4
      Src: /src/h2o/deps/klib/test/ksort_test.cc:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - numbers
    - qty
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 319
    functionName: insertSort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - sort4
    - sort2
    - sort3
    linkageType: ''
    returnType: void
    signature: void insertSort (int numbers[], int qty)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - numbers
    - top
    - last
    argTypes:
    - int[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: siftDown
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void siftDown (int numbers[], int top, int last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: siftDown
      Src: /src/h2o/deps/klib/test/ksort_test.cc:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - numbers
    - last
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: siftDown0
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - siftDown
    linkageType: ''
    returnType: void
    signature: void siftDown0 (int numbers[], int last)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sort4
      Src: /src/h2o/deps/klib/test/ksort_test.cc:364,1
    - Dst: sort3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:365,1
    - Dst: sort2
      Src: /src/h2o/deps/klib/test/ksort_test.cc:366,1
    - Dst: siftDown
      Src: /src/h2o/deps/klib/test/ksort_test.cc:372,1
    - Dst: siftDown0
      Src: /src/h2o/deps/klib/test/ksort_test.cc:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - numbers
    - qty
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: heapSort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - siftDown0
    - sort2
    - sort3
    - sort4
    - siftDown
    linkageType: ''
    returnType: void
    signature: void heapSort (int numbers[], int qty)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - numbers
    - i
    - j
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 396
    functionName: medianOf3
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int medianOf3 (int * numbers, int i, int j)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: insertSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:405,1
    - Dst: sort2
      Src: /src/h2o/deps/klib/test/ksort_test.cc:411,1
    - Dst: sort3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:413,1
    - Dst: sort4
      Src: /src/h2o/deps/klib/test/ksort_test.cc:415,1
    - Dst: medianOf3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:424,1
    - Dst: quickSortRecurse
      Src: /src/h2o/deps/klib/test/ksort_test.cc:449,1
    - Dst: quickSortRecurse
      Src: /src/h2o/deps/klib/test/ksort_test.cc:455,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 3
    argNames:
    - numbers
    - left
    - right
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 464
    functionName: quickSortRecurse
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 1
    functionsReached:
    - insertSort
    - sort2
    - sort3
    - sort4
    - quickSortRecurse
    - medianOf3
    linkageType: ''
    returnType: void
    signature: void quickSortRecurse (int * numbers, int left, int right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quickSortRecurse
      Src: /src/h2o/deps/klib/test/ksort_test.cc:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - numbers
    - qty
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: quickSort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - quickSortRecurse
    linkageType: ''
    returnType: void
    signature: void quickSort (int numbers[], int qty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sortAlt2
      Src: /src/h2o/deps/klib/test/ksort_test.cc:483,1
    - Dst: sortAlt3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:487,1
    - Dst: mergesortInPlace
      Src: /src/h2o/deps/klib/test/ksort_test.cc:493,1
    - Dst: mergesortInPlace
      Src: /src/h2o/deps/klib/test/ksort_test.cc:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - numbers
    - altNumbers
    - qty
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 507
    functionName: mergesortExchange
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - sortAlt2
    - sortAlt3
    - mergesortInPlace
    linkageType: ''
    returnType: void
    signature: void mergesortExchange (int * numbers, int * altNumbers, int qty)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sort2
      Src: /src/h2o/deps/klib/test/ksort_test.cc:516,1
    - Dst: sort3
      Src: /src/h2o/deps/klib/test/ksort_test.cc:520,1
    - Dst: sort4
      Src: /src/h2o/deps/klib/test/ksort_test.cc:524,1
    - Dst: insertSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:529,1
    - Dst: mergesortExchange
      Src: /src/h2o/deps/klib/test/ksort_test.cc:536,1
    - Dst: mergesortExchange
      Src: /src/h2o/deps/klib/test/ksort_test.cc:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - numbers
    - altNumbers
    - qty
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 550
    functionName: mergesortInPlace
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 1
    functionsReached:
    - insertSort
    - sort2
    - sort3
    - sort4
    - mergesortExchange
    linkageType: ''
    returnType: void
    signature: void mergesortInPlace (int * numbers, int * altNumbers, int qty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insertSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:558,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/ksort_test.cc:562,1
    - Dst: mergesortInPlace
      Src: /src/h2o/deps/klib/test/ksort_test.cc:563,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/ksort_test.cc:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - numbers
    - qty
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: mergeSort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - free
    - insertSort
    - malloc
    - mergesortInPlace
    linkageType: ''
    returnType: void
    signature: void mergeSort (int numbers[], int qty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: rskey
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rskey(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:591,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:597,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:601,1
    - Dst: rs_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:611,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:614,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:614,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:616,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:616,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - beg
    - end
    - n_bits
    - s
    argTypes:
    - rstype_t*
    - rstype_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 621
    functionName: rs_sort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 1
    functionsReached:
    - rs_sort
    - rskey
    linkageType: ''
    returnType: void
    signature: void rs_sort(rstype_t *beg, rstype_t *end, int n_bits, int s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:631,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:631,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:633,1
    - Dst: rskey
      Src: /src/h2o/deps/klib/test/ksort_test.cc:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - rstype_t*
    - rstype_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 638
    functionName: rs_insertsort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - rskey
    linkageType: ''
    returnType: void
    signature: void rs_insertsort(rstype_t *s, rstype_t *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: radix_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:707,1
    - Dst: rs_insertsort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:708,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - array
    - offset
    - end
    - shift
    argTypes:
    - unsigned*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 711
    functionName: radix_sort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 1
    functionsReached:
    - rs_insertsort
    - radix_sort
    linkageType: ''
    returnType: void
    signature: void radix_sort(unsigned *array, int offset, int end, int shift)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _RadixSort_Unsigned_PowerOf2Radix_1
      Src: /src/h2o/deps/klib/test/ksort_test.cc:764,1
    - Dst: rs_insertsort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:766,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - a
    - last
    - bitMask
    - shiftRightAmount
    argTypes:
    - _Type*
    - long
    - _Type
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 769
    functionName: _RadixSort_Unsigned_PowerOf2Radix_1
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 1
    functionsReached:
    - _RadixSort_Unsigned_PowerOf2Radix_1
    - rs_insertsort
    linkageType: ''
    returnType: void
    signature: void _RadixSort_Unsigned_PowerOf2Radix_1( _Type* a, long last, _Type
      bitMask, unsigned long shiftRightAmount )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _RadixSort_Unsigned_PowerOf2Radix_1
      Src: /src/h2o/deps/klib/test/ksort_test.cc:776,1
    - Dst: rs_insertsort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - a_size
    argTypes:
    - unsigned*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 779
    functionName: RadixSortInPlace_HybridUnsigned_Radix256
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - _RadixSort_Unsigned_PowerOf2Radix_1
    - rs_insertsort
    linkageType: ''
    returnType: void
    signature: void RadixSortInPlace_HybridUnsigned_Radix256( unsigned* a, unsigned
      long a_size )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: operator() (int a, int b) const
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int operator() (int a, int b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: compare_int
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_int(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: compare
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare(const void *a, const void *b)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:801,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/ksort_test.cc:802,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/ksort_test.cc:803,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/ksort_test.cc:804,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:806,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:807,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:808,1
    - Dst: rs_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:809,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:810,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:811,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:814,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:815,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:818,1
    - Dst: rs_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:819,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:820,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:821,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:823,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:824,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:825,1
    - Dst: RadixSortInPlace_HybridUnsigned_Radix256
      Src: /src/h2o/deps/klib/test/ksort_test.cc:826,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:828,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:829,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:832,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:833,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:836,1
    - Dst: RadixSortInPlace_HybridUnsigned_Radix256
      Src: /src/h2o/deps/klib/test/ksort_test.cc:837,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:839,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:840,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:842,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:843,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:844,1
    - Dst: sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:845,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:846,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:847,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:848,1
    - Dst: sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:849,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:850,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:851,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:853,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:854,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:855,1
    - Dst: stable_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:856,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:857,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:858,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:859,1
    - Dst: stable_sort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:860,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:861,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:862,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:864,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:865,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:866,1
    - Dst: make_heap
      Src: /src/h2o/deps/klib/test/ksort_test.cc:867,1
    - Dst: sort_heap
      Src: /src/h2o/deps/klib/test/ksort_test.cc:868,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:869,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:870,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:873,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:874,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:877,1
    - Dst: make_heap
      Src: /src/h2o/deps/klib/test/ksort_test.cc:878,1
    - Dst: sort_heap
      Src: /src/h2o/deps/klib/test/ksort_test.cc:879,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:880,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:881,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:883,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:884,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:885,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:887,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:888,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:891,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:892,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:896,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:897,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:898,1
    - Dst: qsort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:899,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:900,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:901,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:903,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:904,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:905,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:907,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:908,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:911,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:912,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:915,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:917,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:918,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:920,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:921,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:922,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:924,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:925,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:928,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:929,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:932,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:934,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:935,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:937,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:938,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:939,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:942,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:943,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:946,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:947,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:950,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:953,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:954,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:956,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:957,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:958,1
    - Dst: heapSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:959,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:960,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:961,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:964,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:965,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:969,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:970,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:971,1
    - Dst: quickSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:972,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:973,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:974,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:977,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:978,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:982,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.cc:983,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:984,1
    - Dst: mergeSort
      Src: /src/h2o/deps/klib/test/ksort_test.cc:985,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:986,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:987,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:990,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:991,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/ksort_test.cc:995,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/ksort_test.cc:995,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 188
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 997
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 9
    functionsReached:
    - make_heap
    - heapSort
    - malloc
    - qsort
    - stable_sort
    - free
    - exit
    - atoi
    - lrand48
    - RadixSortInPlace_HybridUnsigned_Radix256
    - clock
    - sort
    - sort_heap
    - fprintf
    - quickSort
    - rs_sort
    - srand48
    - mergeSort
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.cc:924,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:925,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.cc:928,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.cc:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: ks_mergesort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.cc
    functionUses: 0
    functionsReached:
    - exit
    - clock
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void ks_mergesort(int, N, array, 0);\n\tt2 = clock();\n\tfprintf(stderr,
      \"iterative mergesort: %.3lf\\n\", (double)(t2-t1)/CLOCKS_PER_SEC);\n\tfor (i
      = 0; i < N-1; ++i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: hash_eq
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hash_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: hash_func
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hash_func(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:36,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/khash_test.c:37,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/khash_test.c:38,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/test/khash_test.c:41,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/test/khash_test.c:42,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: ht_init_data
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - sprintf
    - strdup
    - printf
    - calloc
    linkageType: ''
    returnType: void
    signature: void ht_init_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_test.c:51,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_test.c:52,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_test.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: ht_destroy_data
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ht_destroy_data()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_test.c:62,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_test.c:64,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_test.c:65,1
    - Dst: kh_del
      Src: /src/h2o/deps/klib/test/khash_test.c:66,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:68,1
    - Dst: kh_size
      Src: /src/h2o/deps/klib/test/khash_test.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: ht_khash_int
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_init
    - kh_size
    - kh_put
    - printf
    - kh_del
    linkageType: ''
    returnType: void
    signature: void ht_khash_int()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_test.c:76,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_test.c:79,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_test.c:81,1
    - Dst: kh_del
      Src: /src/h2o/deps/klib/test/khash_test.c:82,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:84,1
    - Dst: kh_size
      Src: /src/h2o/deps/klib/test/khash_test.c:84,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_test.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: ht_khash_str
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - kh_init
    - kh_size
    - kh_put
    - printf
    - kh_del
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void ht_khash_str()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_test.c:92,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_test.c:95,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_test.c:99,1
    - Dst: kh_del
      Src: /src/h2o/deps/klib/test/khash_test.c:100,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:102,1
    - Dst: kh_size
      Src: /src/h2o/deps/klib/test/khash_test.c:102,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_test.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: ht_khash_unpack
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - kh_init
    - kh_size
    - kh_put
    - printf
    - kh_del
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void ht_khash_unpack()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_test.c:110,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_test.c:113,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_test.c:117,1
    - Dst: kh_del
      Src: /src/h2o/deps/klib/test/khash_test.c:118,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:120,1
    - Dst: kh_size
      Src: /src/h2o/deps/klib/test/khash_test.c:120,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_test.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: ht_khash_packed
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - kh_init
    - kh_size
    - kh_put
    - printf
    - kh_del
    - khash_t
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void ht_khash_packed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/khash_test.c:126,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_test.c:128,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/khash_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: ht_timing
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 0
    functionsReached:
    - clock
    - printf
    linkageType: ''
    returnType: void
    signature: void ht_timing(void (*f)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/khash_test.c:133,1
    - Dst: ht_init_data
      Src: /src/h2o/deps/klib/test/khash_test.c:134,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/khash_test.c:135,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/khash_test.c:136,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/khash_test.c:137,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/khash_test.c:138,1
    - Dst: ht_destroy_data
      Src: /src/h2o/deps/klib/test/khash_test.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/khash_test.c
    functionUses: 9
    functionsReached:
    - ht_timing
    - ht_init_data
    - ht_destroy_data
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: klist_t
      Src: /src/h2o/deps/klib/test/klist_test.c:9,1
    - Dst: kliter_t
      Src: /src/h2o/deps/klib/test/klist_test.c:10,1
    - Dst: kl_init
      Src: /src/h2o/deps/klib/test/klist_test.c:11,1
    - Dst: kl_pushp
      Src: /src/h2o/deps/klib/test/klist_test.c:12,1
    - Dst: kl_pushp
      Src: /src/h2o/deps/klib/test/klist_test.c:13,1
    - Dst: kl_shift
      Src: /src/h2o/deps/klib/test/klist_test.c:14,1
    - Dst: kl_begin
      Src: /src/h2o/deps/klib/test/klist_test.c:15,1
    - Dst: kl_end
      Src: /src/h2o/deps/klib/test/klist_test.c:15,1
    - Dst: kl_next
      Src: /src/h2o/deps/klib/test/klist_test.c:15,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/klist_test.c:16,1
    - Dst: kl_val
      Src: /src/h2o/deps/klib/test/klist_test.c:16,1
    - Dst: kl_destroy
      Src: /src/h2o/deps/klib/test/klist_test.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 19
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/klist_test.c
    functionUses: 9
    functionsReached:
    - kl_pushp
    - kliter_t
    - kl_val
    - kl_shift
    - kl_end
    - printf
    - kl_begin
    - kl_next
    - kl_destroy
    - klist_t
    - kl_init
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:11,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/kvec_test.cc:13,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kvec_test.cc:15,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:17,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:18,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:19,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/test/kvec_test.cc:25,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kvec_test.cc:29,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:31,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:32,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:33,1
    - Dst: kv_init
      Src: /src/h2o/deps/klib/test/kvec_test.cc:36,1
    - Dst: kv_a
      Src: /src/h2o/deps/klib/test/kvec_test.cc:38,1
    - Dst: kv_destroy
      Src: /src/h2o/deps/klib/test/kvec_test.cc:39,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:41,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:42,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:43,1
    - Dst: kv_init
      Src: /src/h2o/deps/klib/test/kvec_test.cc:46,1
    - Dst: kv_push
      Src: /src/h2o/deps/klib/test/kvec_test.cc:48,1
    - Dst: kv_destroy
      Src: /src/h2o/deps/klib/test/kvec_test.cc:49,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:51,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:52,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:53,1
    - Dst: std::vector::reserve
      Src: /src/h2o/deps/klib/test/kvec_test.cc:56,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:59,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:60,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:61,1
    - Dst: std::vector::push_back
      Src: /src/h2o/deps/klib/test/kvec_test.cc:64,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kvec_test.cc:66,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kvec_test.cc:67,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 69
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kvec_test.cc
    functionUses: 9
    functionsReached:
    - realloc
    - malloc
    - kv_destroy
    - free
    - kv_push
    - clock
    - printf
    - kv_a
    - std::vector::reserve
    - std::vector::push_back
    - kv_init
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: bt1_pop64
    functionSourceFile: /src/h2o/deps/klib/test/kbit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bt1_pop64(uint64_t x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bt1_pop64
      Src: /src/h2o/deps/klib/test/kbit_test.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - dw
    - c
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: bt1_countInU64
    functionSourceFile: /src/h2o/deps/klib/test/kbit_test.c
    functionUses: 0
    functionsReached:
    - bt1_pop64
    linkageType: ''
    returnType: int
    signature: int bt1_countInU64(uint64_t dw, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:46,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:47,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:48,1
    - Dst: _mm_set_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:49,1
    - Dst: _mm_xor_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:51,1
    - Dst: _mm_load_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:56,1
    - Dst: _mm_srli_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:60,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:61,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:62,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:63,1
    - Dst: _mm_srli_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:66,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:67,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:68,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:69,1
    - Dst: _mm_srli_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:72,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:73,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:74,1
    - Dst: _mm_srli_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:77,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:78,1
    - Dst: _mm_srli_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:81,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:82,1
    - Dst: _mm_and_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:83,1
    - Dst: _mm_add_epi32
      Src: /src/h2o/deps/klib/test/kbit_test.c:85,1
    - Dst: _mm_store_si128
      Src: /src/h2o/deps/klib/test/kbit_test.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - block
    - block_end
    argTypes:
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 92
    functionName: sse2_bit_count32
    functionSourceFile: /src/h2o/deps/klib/test/kbit_test.c
    functionUses: 0
    functionsReached:
    - _mm_set_epi32
    - _mm_srli_epi32
    - _mm_and_si128
    - _mm_store_si128
    - _mm_add_epi32
    - _mm_xor_si128
    - _mm_load_si128
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sse2_bit_count32(const __m128i* block, const __m128i* block_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kbit_test.c:101,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kbit_test.c:102,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kbit_test.c:104,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kbit_test.c:104,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:106,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:108,1
    - Dst: kbi_popcount64
      Src: /src/h2o/deps/klib/test/kbit_test.c:109,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:110,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:110,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:112,1
    - Dst: bt1_pop64
      Src: /src/h2o/deps/klib/test/kbit_test.c:113,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:114,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:114,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:116,1
    - Dst: __builtin_popcountl
      Src: /src/h2o/deps/klib/test/kbit_test.c:117,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:118,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:118,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:120,1
    - Dst: sse2_bit_count32
      Src: /src/h2o/deps/klib/test/kbit_test.c:121,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:122,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:122,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:124,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:126,1
    - Dst: kbi_DNAcount64
      Src: /src/h2o/deps/klib/test/kbit_test.c:127,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:128,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:128,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:130,1
    - Dst: bt1_countInU64
      Src: /src/h2o/deps/klib/test/kbit_test.c:131,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:132,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbit_test.c:132,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kbit_test.c:134,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kbit_test.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kbit_test.c
    functionUses: 9
    functionsReached:
    - calloc
    - bt1_countInU64
    - kbi_DNAcount64
    - kbi_popcount64
    - free
    - lrand48
    - bt1_pop64
    - sse2_bit_count32
    - clock
    - fprintf
    - __builtin_popcountl
    - srand48
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/ksort_test.c:14,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/ksort_test.c:15,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:17,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:18,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:19,1
    - Dst: ks_ksmall
      Src: /src/h2o/deps/klib/test/ksort_test.c:20,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:21,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:22,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:24,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:25,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:26,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:28,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:29,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:32,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.c:33,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:39,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/ksort_test.c:42,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:44,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:45,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:47,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:48,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:52,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:54,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:55,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:57,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:58,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:59,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:61,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:62,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:65,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.c:66,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:70,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:71,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:72,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:74,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:75,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:78,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.c:79,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:83,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:85,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:86,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:88,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/ksort_test.c:89,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:90,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:93,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:94,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:97,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.c:98,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/ksort_test.c:102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.c
    functionUses: 9
    functionsReached:
    - malloc
    - free
    - exit
    - atoi
    - lrand48
    - ks_ksmall
    - clock
    - fprintf
    - srand48
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/ksort_test.c:74,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:75,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/ksort_test.c:78,1
    - Dst: exit
      Src: /src/h2o/deps/klib/test/ksort_test.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: ks_mergesort
    functionSourceFile: /src/h2o/deps/klib/test/ksort_test.c
    functionUses: 0
    functionsReached:
    - exit
    - clock
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void ks_mergesort(int, N, array, 0);\n\tt2 = clock();\n\tfprintf(stderr,
      \"mergesort: %.3lf\\n\", (double)(t2-t1)/CLOCKS_PER_SEC);\n\tfor (i = 0; i <
      N-1; ++i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kgraph_t
      Src: /src/h2o/deps/klib/test/kgraph_test.c:17,1
    - Dst: kg_init_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:18,1
    - Dst: kg_put_a_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:19,1
    - Dst: kg_put_a_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:20,1
    - Dst: kg_put_a_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:21,1
    - Dst: kg_del_v_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:22,1
    - Dst: kg_print_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:23,1
    - Dst: kg_destroy_g
      Src: /src/h2o/deps/klib/test/kgraph_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kgraph_test.c
    functionUses: 9
    functionsReached:
    - kgraph_t
    - kg_del_v_g
    - kg_print_g
    - kg_put_a_g
    - kg_destroy_g
    - kg_init_g
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:22,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kbtree_test.c:23,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kbtree_test.c:24,1
    - Dst: calloc
      Src: /src/h2o/deps/klib/test/kbtree_test.c:25,1
    - Dst: drand48
      Src: /src/h2o/deps/klib/test/kbtree_test.c:27,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:28,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/test/kbtree_test.c:29,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: ht_init_data
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 1
    functionsReached:
    - calloc
    - strdup
    - drand48
    - sprintf
    - printf
    - srand48
    linkageType: ''
    returnType: void
    signature: void ht_init_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/klib/test/kbtree_test.c:36,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kbtree_test.c:37,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kbtree_test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ht_destroy_data
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ht_destroy_data()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kb_init
      Src: /src/h2o/deps/klib/test/kbtree_test.c:47,1
    - Dst: kb_get
      Src: /src/h2o/deps/klib/test/kbtree_test.c:49,1
    - Dst: kb_put
      Src: /src/h2o/deps/klib/test/kbtree_test.c:49,1
    - Dst: kb_del
      Src: /src/h2o/deps/klib/test/kbtree_test.c:50,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:52,1
    - Dst: kb_size
      Src: /src/h2o/deps/klib/test/kbtree_test.c:52,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:57,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:61,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:62,1
    - Dst: __kb_destroy
      Src: /src/h2o/deps/klib/test/kbtree_test.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 65
    functionName: ht_khash_int
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 0
    functionsReached:
    - kb_put
    - kb_get
    - kb_init
    - kb_size
    - __kb_destroy
    - printf
    - kb_del
    linkageType: ''
    returnType: void
    signature: void ht_khash_int()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: traverse_f
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: traverse_f(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kbtree_t
      Src: /src/h2o/deps/klib/test/kbtree_test.c:70,1
    - Dst: kb_init
      Src: /src/h2o/deps/klib/test/kbtree_test.c:72,1
    - Dst: kb_get
      Src: /src/h2o/deps/klib/test/kbtree_test.c:74,1
    - Dst: kb_put
      Src: /src/h2o/deps/klib/test/kbtree_test.c:74,1
    - Dst: kb_del
      Src: /src/h2o/deps/klib/test/kbtree_test.c:75,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:77,1
    - Dst: kb_size
      Src: /src/h2o/deps/klib/test/kbtree_test.c:77,1
    - Dst: __kb_destroy
      Src: /src/h2o/deps/klib/test/kbtree_test.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: ht_khash_str
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 0
    functionsReached:
    - kb_put
    - kb_init
    - kb_get
    - kb_size
    - __kb_destroy
    - printf
    - kb_del
    - kbtree_t
    linkageType: ''
    returnType: void
    signature: void ht_khash_str()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbtree_test.c:82,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kbtree_test.c:84,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kbtree_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: ht_timing
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 1
    functionsReached:
    - clock
    - printf
    linkageType: ''
    returnType: void
    signature: void ht_timing(void (*f)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/kbtree_test.c:88,1
    - Dst: ht_init_data
      Src: /src/h2o/deps/klib/test/kbtree_test.c:89,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/kbtree_test.c:90,1
    - Dst: ht_timing
      Src: /src/h2o/deps/klib/test/kbtree_test.c:91,1
    - Dst: ht_destroy_data
      Src: /src/h2o/deps/klib/test/kbtree_test.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kbtree_test.c
    functionUses: 9
    functionsReached:
    - ht_timing
    - ht_init_data
    - ht_destroy_data
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:13,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:15,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:17,1
    - Dst: kputw
      Src: /src/h2o/deps/klib/test/kstring_bench.c:19,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:21,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:21,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:22,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:23,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:25,1
    - Dst: ksprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:27,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:29,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:29,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:31,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:33,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:35,1
    - Dst: kputw
      Src: /src/h2o/deps/klib/test/kstring_bench.c:37,1
    - Dst: kputs
      Src: /src/h2o/deps/klib/test/kstring_bench.c:38,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:40,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:40,1
    - Dst: srand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:41,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:42,1
    - Dst: lrand48
      Src: /src/h2o/deps/klib/test/kstring_bench.c:44,1
    - Dst: kputw
      Src: /src/h2o/deps/klib/test/kstring_bench.c:46,1
    - Dst: ksprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:47,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_bench.c:49,1
    - Dst: clock
      Src: /src/h2o/deps/klib/test/kstring_bench.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 51
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kstring_bench.c
    functionUses: 9
    functionsReached:
    - kputw
    - ksprintf
    - lrand48
    - kputs
    - clock
    - fprintf
    - srand48
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kseq_test.c:12,1
    - Dst: gzopen
      Src: /src/h2o/deps/klib/test/kseq_test.c:15,1
    - Dst: kseq_init
      Src: /src/h2o/deps/klib/test/kseq_test.c:16,1
    - Dst: kseq_read
      Src: /src/h2o/deps/klib/test/kseq_test.c:17,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kseq_test.c:18,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kseq_test.c:19,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kseq_test.c:20,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kseq_test.c:21,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/kseq_test.c:23,1
    - Dst: kseq_destroy
      Src: /src/h2o/deps/klib/test/kseq_test.c:24,1
    - Dst: gzclose
      Src: /src/h2o/deps/klib/test/kseq_test.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kseq_test.c
    functionUses: 9
    functionsReached:
    - kseq_init
    - gzopen
    - kseq_destroy
    - gzclose
    - printf
    - kseq_read
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - c
    - base
    - ret
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: int2str
    functionSourceFile: /src/h2o/deps/klib/test/khash_keith.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void int2str(int c, int base, char *ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_keith.c:36,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_keith.c:37,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/khash_keith.c:38,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/khash_keith.c:39,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/khash_keith.c:40,1
    - Dst: int2str
      Src: /src/h2o/deps/klib/test/khash_keith.c:44,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_keith.c:45,1
    - Dst: strlen
      Src: /src/h2o/deps/klib/test/khash_keith.c:46,1
    - Dst: realloc
      Src: /src/h2o/deps/klib/test/khash_keith.c:49,1
    - Dst: malloc
      Src: /src/h2o/deps/klib/test/khash_keith.c:50,1
    - Dst: memcpy
      Src: /src/h2o/deps/klib/test/khash_keith.c:52,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith.c:53,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith.c:55,1
    - Dst: int2str
      Src: /src/h2o/deps/klib/test/khash_keith.c:59,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith.c:60,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith.c:61,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith.c:63,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_keith.c:64,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_keith.c:65,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_keith.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/khash_keith.c
    functionUses: 9
    functionsReached:
    - kh_val
    - realloc
    - malloc
    - khash_t
    - kh_init
    - kh_end
    - free
    - kh_key
    - atoi
    - memcpy
    - printf
    - kh_get
    - strlen
    - kh_put
    - int2str
    - kh_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: khash_t
      Src: /src/h2o/deps/klib/test/khash_keith.c:73,1
    - Dst: kh_init
      Src: /src/h2o/deps/klib/test/khash_keith.c:75,1
    - Dst: atoi
      Src: /src/h2o/deps/klib/test/khash_keith.c:76,1
    - Dst: int2str
      Src: /src/h2o/deps/klib/test/khash_keith.c:79,1
    - Dst: kh_put
      Src: /src/h2o/deps/klib/test/khash_keith.c:80,1
    - Dst: strdup
      Src: /src/h2o/deps/klib/test/khash_keith.c:80,1
    - Dst: kh_val
      Src: /src/h2o/deps/klib/test/khash_keith.c:81,1
    - Dst: int2str
      Src: /src/h2o/deps/klib/test/khash_keith.c:85,1
    - Dst: kh_get
      Src: /src/h2o/deps/klib/test/khash_keith.c:86,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith.c:87,1
    - Dst: kh_begin
      Src: /src/h2o/deps/klib/test/khash_keith.c:89,1
    - Dst: kh_end
      Src: /src/h2o/deps/klib/test/khash_keith.c:89,1
    - Dst: kh_exist
      Src: /src/h2o/deps/klib/test/khash_keith.c:90,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/khash_keith.c:90,1
    - Dst: kh_key
      Src: /src/h2o/deps/klib/test/khash_keith.c:90,1
    - Dst: printf
      Src: /src/h2o/deps/klib/test/khash_keith.c:91,1
    - Dst: kh_destroy
      Src: /src/h2o/deps/klib/test/khash_keith.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/khash_keith.c
    functionUses: 9
    functionsReached:
    - kh_val
    - khash_t
    - strdup
    - kh_init
    - kh_end
    - free
    - kh_key
    - atoi
    - kh_begin
    - printf
    - kh_get
    - kh_exist
    - kh_put
    - int2str
    - kh_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/klib/test/kstring_test.c:12,1
    - Dst: strcmp
      Src: /src/h2o/deps/klib/test/kstring_test.c:12,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_test.c:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - what
    - ks
    - correct
    argTypes:
    - char*
    - kstring_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: check
    functionSourceFile: /src/h2o/deps/klib/test/kstring_test.c
    functionUses: 30
    functionsReached:
    - strcmp
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check(const char *what, const kstring_t *ks, const char *correct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:23,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/test/kstring_test.c:25,1
    - Dst: check
      Src: /src/h2o/deps/klib/test/kstring_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ks
    - n
    argTypes:
    - kstring_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: test_kputw
    functionSourceFile: /src/h2o/deps/klib/test/kstring_test.c
    functionUses: 0
    functionsReached:
    - kputw
    - check
    - sprintf
    linkageType: ''
    returnType: void
    signature: void test_kputw(kstring_t *ks, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:34,1
    - Dst: sprintf
      Src: /src/h2o/deps/klib/test/kstring_test.c:36,1
    - Dst: check
      Src: /src/h2o/deps/klib/test/kstring_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ks
    - n
    argTypes:
    - kstring_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: test_kputl
    functionSourceFile: /src/h2o/deps/klib/test/kstring_test.c
    functionUses: 0
    functionsReached:
    - kputl
    - sprintf
    - check
    linkageType: ''
    returnType: void
    signature: void test_kputl(kstring_t *ks, long n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:47,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:48,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:49,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:50,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:51,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:52,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:53,1
    - Dst: test_kputw
      Src: /src/h2o/deps/klib/test/kstring_test.c:54,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:56,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:57,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:58,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:59,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:60,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:61,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:62,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:63,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:64,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:65,1
    - Dst: test_kputl
      Src: /src/h2o/deps/klib/test/kstring_test.c:66,1
    - Dst: free
      Src: /src/h2o/deps/klib/test/kstring_test.c:68,1
    - Dst: fprintf
      Src: /src/h2o/deps/klib/test/kstring_test.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/h2o/deps/klib/test/kstring_test.c
    functionUses: 9
    functionsReached:
    - test_kputl
    - test_kputw
    - free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:36,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:37,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:38,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:38,1
    - Dst: mrb_array_p
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:40,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:42,1
    - Dst: mrb_symbol
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:43,1
    - Dst: RARRAY_PTR
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:43,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - mrb
    - value
    - name
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: mrb_method_defined
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - RARRAY_PTR
    - mrb_intern_cstr
    - mrb_array_p
    - mrb_funcall
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - mrb_false_value
    - RARRAY_LEN
    - mrb_symbol
    linkageType: ''
    returnType: mrb_bool
    signature: mrb_bool mrb_method_defined(mrb_state* mrb, mrb_value value, const
      char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:56,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mrb
    - str
    - pretty
    argTypes:
    - mrb_state*
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 12
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: pretty_cat
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_str_cat_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value pretty_cat(mrb_state* mrb, mrb_value str, int pretty)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:65,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:66,1
    - Dst: mrb_type
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:69,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:77,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:80,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:84,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:85,1
    - Dst: RSTRING_END
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:86,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:87,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:91,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:94,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:97,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:100,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:103,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:106,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:109,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:113,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:117,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:118,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:126,1
    - Dst: mrb_hash_keys
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:127,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:128,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:130,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:131,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:133,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:136,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:137,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:138,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:139,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:140,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:141,1
    - Dst: mrb_hash_get
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:142,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:143,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:143,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:145,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:146,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:148,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:150,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:151,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:158,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:159,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:161,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:162,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:164,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:166,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:167,1
    - Dst: mrb_str_concat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:168,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:168,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:170,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:171,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:173,1
    - Dst: pretty_cat
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:175,1
    - Dst: mrb_str_cat_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:176,1
    - Dst: mrb_method_defined
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:181,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:182,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:184,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:184,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 3
    argNames:
    - mrb
    - value
    - pretty
    argTypes:
    - mrb_state*
    - mrb_value
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 61
    functionDepth: 13
    functionLinenumber: 61
    functionLinenumberEnd: 188
    functionName: mrb_value_to_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 1
    functionsReached:
    - mrb_funcall
    - mrb_str_cat
    - mrb_ary_entry
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - mrb_str_cat_cstr
    - mrb_str_concat
    - mrb_hash_get
    - mrb_str_new_cstr
    - mrb_value_to_string
    - mrb_type
    - mrb_method_defined
    - RARRAY_LEN
    - mrb_nil_p
    - pretty_cat
    - RSTRING_END
    - mrb_hash_keys
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_value_to_string(mrb_state* mrb, mrb_value value, int
      pretty)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:193,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:196,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:199,1
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:199,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:203,1
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:203,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:207,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:207,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:209,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:215,1
    - Dst: floor
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:216,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:217,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:220,1
    - Dst: mrb_hash_new
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:227,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:228,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:229,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:232,1
    - Dst: json_object_get_name
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:233,1
    - Dst: mrb_hash_set
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:234,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:234,1
    - Dst: json_value_to_mrb_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:235,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:235,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:236,1
    - Dst: mrb_ary_new
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:246,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:247,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:248,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:250,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:251,1
    - Dst: mrb_ary_push
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:252,1
    - Dst: json_value_to_mrb_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:252,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:253,1
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:259,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:260,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:262,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:265,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - mrb
    - value
    argTypes:
    - mrb_state*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 190
    functionDepth: 10
    functionLinenumber: 190
    functionLinenumberEnd: 268
    functionName: json_value_to_mrb_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 1
    functionsReached:
    - mrb_true_value
    - json_value_get_type
    - json_value_get_object
    - mrb_gc_arena_save
    - mrb_float_value
    - mrb_hash_new
    - mrb_false_value
    - mrb_fixnum_value
    - mrb_ary_new
    - json_value_get_boolean
    - mrb_raise
    - json_value_get_fixed
    - mrb_gc_arena_restore
    - json_object_get_name
    - json_value_get_string
    - json_array_get_count
    - mrb_str_new_cstr
    - json_object_get_value
    - json_object_get_count
    - json_value_get_number
    - json_array_get_value
    - mrb_nil_value
    - json_value_to_mrb_value
    - mrb_hash_set
    - mrb_ary_push
    - json_value_get_array
    - floor
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value json_value_to_mrb_value(mrb_state* mrb, JSON_Value* value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:275,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:276,1
    - Dst: json_parse_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:278,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:278,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:280,1
    - Dst: json_value_to_mrb_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:283,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:284,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:285,1
    - Dst: mrb_yield_argv
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 11
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: mrb_json_load
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_yield_argv
    - mrb_nil_p
    - mrb_raise
    - mrb_str_to_cstr
    - json_parse_string
    - mrb_get_args
    - mrb_nil_value
    - json_value_free
    - json_value_to_mrb_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_load(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:298,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:299,1
    - Dst: json_parse_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:301,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:301,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:303,1
    - Dst: json_value_to_mrb_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:306,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 293
    functionDepth: 11
    functionLinenumber: 293
    functionLinenumberEnd: 309
    functionName: mrb_json_parse
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_str_to_cstr
    - json_parse_string
    - mrb_get_args
    - mrb_nil_value
    - json_value_free
    - json_value_to_mrb_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_parse(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:313,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:314,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:315,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:316,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 14
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: mrb_json_dump
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_funcall
    - mrb_get_args
    - mrb_value_to_string
    - mrb_nil_value
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_dump(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:326,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 14
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: mrb_json_generate
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_value_to_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_generate(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:333,1
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 14
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: mrb_json_pretty_generate
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_value_to_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_pretty_generate(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_value_to_string
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 14
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: mrb_json_to_json
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - mrb_value_to_string
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_json_to_json(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:347,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:349,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:349,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:350,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:350,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:351,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:351,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:352,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:352,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:352,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:353,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:353,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:354,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:354,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:355,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-json/src/mrb_json.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: mrb_mruby_json_gem_init
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_json_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: mrb_mruby_json_gem_final
    functionSourceFile: /src/h2o/deps/mruby-json/src/mrb_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_json_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SIZEOF_TOKEN
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_TOKEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: SKIP_CHAR
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_CHAR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SKIP_WHITESPACES
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_WHITESPACES(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MAX
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: IS_CONT
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CONT(b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:149,1
    - Dst: strncpy
      Src: /src/h2o/deps/mruby-json/src/parson.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - string
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: parson_strndup
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_malloc
    - strncpy
    linkageType: ''
    returnType: char
    signature: char * parson_strndup(const char *string, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parson_strndup
      Src: /src/h2o/deps/mruby-json/src/parson.c:159,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: parson_strdup
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_strndup
    - strlen
    linkageType: ''
    returnType: char
    signature: char * parson_strdup(const char *string)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: hex_char_to_int
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_char_to_int(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hex_char_to_int
      Src: /src/h2o/deps/mruby-json/src/parson.c:178,1
    - Dst: hex_char_to_int
      Src: /src/h2o/deps/mruby-json/src/parson.c:179,1
    - Dst: hex_char_to_int
      Src: /src/h2o/deps/mruby-json/src/parson.c:180,1
    - Dst: hex_char_to_int
      Src: /src/h2o/deps/mruby-json/src/parson.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - s
    - result
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: parse_utf16_hex
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - hex_char_to_int
    linkageType: ''
    returnType: int
    signature: int parse_utf16_hex(const char *s, unsigned int *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: num_bytes_in_utf8_sequence
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - IS_CONT
    linkageType: ''
    returnType: int
    signature: int num_bytes_in_utf8_sequence(unsigned char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_bytes_in_utf8_sequence
      Src: /src/h2o/deps/mruby-json/src/parson.c:206,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:210,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:213,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:213,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:217,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:217,1
    - Dst: IS_CONT
      Src: /src/h2o/deps/mruby-json/src/parson.c:217,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 2
    argNames:
    - string
    - len
    argTypes:
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 244
    functionName: verify_utf8_sequence
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - num_bytes_in_utf8_sequence
    - IS_CONT
    linkageType: ''
    returnType: int
    signature: int verify_utf8_sequence(const unsigned char *string, int *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_utf8_sequence
      Src: /src/h2o/deps/mruby-json/src/parson.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - string
    - string_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: is_valid_utf8
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - verify_utf8_sequence
    linkageType: ''
    returnType: int
    signature: int is_valid_utf8(const char *string, size_t string_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:262,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-json/src/parson.c:266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - string
    - length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: is_decimal
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int is_decimal(const char *string, size_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/deps/mruby-json/src/parson.c:275,1
    - Dst: fseek
      Src: /src/h2o/deps/mruby-json/src/parson.c:283,1
    - Dst: ftell
      Src: /src/h2o/deps/mruby-json/src/parson.c:284,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:286,1
    - Dst: rewind
      Src: /src/h2o/deps/mruby-json/src/parson.c:290,1
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:291,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:293,1
    - Dst: fread
      Src: /src/h2o/deps/mruby-json/src/parson.c:296,1
    - Dst: ferror
      Src: /src/h2o/deps/mruby-json/src/parson.c:297,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:298,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:299,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: read_file
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_free
    - ferror
    - fread
    - rewind
    - fopen
    - parson_malloc
    - fclose
    - ftell
    - fseek
    linkageType: ''
    returnType: char
    signature: char * read_file(const char * filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:312,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:313,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:324,1
    - Dst: strstr
      Src: /src/h2o/deps/mruby-json/src/parson.c:329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - string
    - start_token
    - end_token
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: remove_comments
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void remove_comments(char *string, const char *start_token, const char
      *end_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wrapping_value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: json_object_init
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_object_init(JSON_Value *wrapping_value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:362,1
    - Dst: MAX
      Src: /src/h2o/deps/mruby-json/src/parson.c:366,1
    - Dst: json_object_resize
      Src: /src/h2o/deps/mruby-json/src/parson.c:367,1
    - Dst: parson_strdup
      Src: /src/h2o/deps/mruby-json/src/parson.c:372,1
    - Dst: json_object_get_wrapping_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - object
    - name
    - value
    argTypes:
    - JSON_Object*
    - char*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 380
    functionName: json_object_add
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_resize
    - MAX
    - json_object_get_wrapping_value
    - json_object_get_value
    - parson_strdup
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_add(JSON_Object *object, const char *name,
      JSON_Value *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:391,1
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:395,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:397,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-json/src/parson.c:401,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-json/src/parson.c:402,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:404,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:405,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - object
    - new_capacity
    argTypes:
    - JSON_Object*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 410
    functionName: json_object_resize
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - memcpy
    - parson_free
    - parson_malloc
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_resize(JSON_Object *object, size_t new_capacity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:414,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:415,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - object
    - name
    - n
    argTypes:
    - JSON_Object*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: json_object_nget_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_count
    - strncmp
    - strlen
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_object_nget_value(const JSON_Object *object, const
      char *name, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:429,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:430,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:432,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:433,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - JSON_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: json_object_free
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_free
    - json_value_free
    linkageType: ''
    returnType: void
    signature: void json_object_free(JSON_Object *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrapping_value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 448
    functionName: json_array_init
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_array_init(JSON_Value *wrapping_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/h2o/deps/mruby-json/src/parson.c:452,1
    - Dst: json_array_resize
      Src: /src/h2o/deps/mruby-json/src/parson.c:453,1
    - Dst: json_array_get_wrapping_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JSON_Array*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 461
    functionName: json_array_add
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_wrapping_value
    - MAX
    - json_array_resize
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_add(JSON_Array *array, JSON_Value *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:468,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-json/src/parson.c:473,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - array
    - new_capacity
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 479
    functionName: json_array_resize
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - memcpy
    - parson_free
    - parson_malloc
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_resize(JSON_Array *array, size_t new_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:484,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:486,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - JSON_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: json_array_free
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_free
    - json_value_free
    linkageType: ''
    returnType: void
    signature: void json_array_free(JSON_Array *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: json_value_init_string_no_copy
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_string_no_copy(char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:507,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:512,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:517,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: skip_quotes
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - SKIP_CHAR
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status skip_quotes(const char **string)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_utf16_hex
      Src: /src/h2o/deps/mruby-json/src/parson.c:529,1
    - Dst: parse_utf16_hex
      Src: /src/h2o/deps/mruby-json/src/parson.c:550,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - unprocessed
    - processed
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 567
    functionName: parse_utf16
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parse_utf16_hex
    linkageType: ''
    returnType: int
    signature: int parse_utf16(const char **unprocessed, char **processed)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:577,1
    - Dst: parse_utf16
      Src: /src/h2o/deps/mruby-json/src/parson.c:595,1
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:614,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-json/src/parson.c:618,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:619,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:622,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 624
    functionName: process_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - memcpy
    - parson_free
    - parson_malloc
    - parse_utf16
    linkageType: ''
    returnType: char
    signature: char * process_string(const char *input, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_quotes
      Src: /src/h2o/deps/mruby-json/src/parson.c:631,1
    - Dst: process_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 637
    functionName: get_quoted_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - skip_quotes
    - process_string
    linkageType: ''
    returnType: char
    signature: char * get_quoted_string(const char **string)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:643,1
    - Dst: parse_object_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:646,1
    - Dst: parse_array_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:648,1
    - Dst: parse_string_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:650,1
    - Dst: parse_boolean_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:652,1
    - Dst: parse_number_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:656,1
    - Dst: parse_null_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - string
    - nesting
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 662
    functionName: parse_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parse_object_value
    - parse_array_value
    - parse_string_value
    - parse_null_value
    - parse_number_value
    - parse_boolean_value
    - SKIP_WHITESPACES
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_value(const char **string, size_t nesting)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:665,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:666,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:671,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:672,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:674,1
    - Dst: get_quoted_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:678,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:680,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:683,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:685,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:686,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:689,1
    - Dst: parse_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:690,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:692,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:693,1
    - Dst: json_object_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:696,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:697,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:698,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:699,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:702,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:703,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:707,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:708,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:710,1
    - Dst: json_object_resize
      Src: /src/h2o/deps/mruby-json/src/parson.c:712,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:712,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:713,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - string
    - nesting
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 718
    functionName: parse_object_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_object_get_count
    - json_value_init_object
    - parson_free
    - json_object_resize
    - SKIP_CHAR
    - json_value_get_object
    - json_object_add
    - json_value_free
    - parse_value
    - SKIP_WHITESPACES
    - get_quoted_string
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_object_value(const char **string, size_t nesting)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:721,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:722,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:726,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:727,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:729,1
    - Dst: parse_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:733,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:735,1
    - Dst: json_array_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:738,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:739,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:740,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:743,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:747,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:748,1
    - Dst: SKIP_WHITESPACES
      Src: /src/h2o/deps/mruby-json/src/parson.c:750,1
    - Dst: json_array_resize
      Src: /src/h2o/deps/mruby-json/src/parson.c:752,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:752,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:753,1
    - Dst: SKIP_CHAR
      Src: /src/h2o/deps/mruby-json/src/parson.c:756,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - string
    - nesting
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 758
    functionName: parse_array_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_array_add
    - json_array_resize
    - json_value_init_array
    - json_value_free
    - json_array_get_count
    - json_value_get_array
    - parse_value
    - SKIP_WHITESPACES
    - SKIP_CHAR
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_array_value(const char **string, size_t nesting)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_quoted_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:762,1
    - Dst: json_value_init_string_no_copy
      Src: /src/h2o/deps/mruby-json/src/parson.c:766,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: parse_string_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_free
    - json_value_init_string_no_copy
    - get_quoted_string
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_string_value(const char **string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SIZEOF_TOKEN
      Src: /src/h2o/deps/mruby-json/src/parson.c:775,1
    - Dst: SIZEOF_TOKEN
      Src: /src/h2o/deps/mruby-json/src/parson.c:776,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:777,1
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:779,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:780,1
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 785
    functionName: parse_boolean_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - SIZEOF_TOKEN
    - json_value_init_boolean
    - strncmp
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_boolean_value(const char **string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoimax
      Src: /src/h2o/deps/mruby-json/src/parson.c:793,1
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:797,1
    - Dst: strtod
      Src: /src/h2o/deps/mruby-json/src/parson.c:801,1
    - Dst: is_decimal
      Src: /src/h2o/deps/mruby-json/src/parson.c:802,1
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:806,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 807
    functionName: parse_number_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - is_decimal
    - strtod
    - strtoimax
    - json_value_init_fixed
    - json_value_init_number
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_number_value(const char **string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SIZEOF_TOKEN
      Src: /src/h2o/deps/mruby-json/src/parson.c:810,1
    - Dst: strncmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:811,1
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 816
    functionName: parse_null_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_value_init_null
    - SIZEOF_TOKEN
    - strncmp
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * parse_null_value(const char **string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: APPEND_STRING
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STRING(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: APPEND_INDENT
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_INDENT(level)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:842,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:844,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:845,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:846,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:848,1
    - Dst: APPEND_INDENT
      Src: /src/h2o/deps/mruby-json/src/parson.c:852,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:854,1
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:855,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:864,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:867,1
    - Dst: APPEND_INDENT
      Src: /src/h2o/deps/mruby-json/src/parson.c:871,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:873,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:876,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:877,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:878,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:880,1
    - Dst: json_object_get_name
      Src: /src/h2o/deps/mruby-json/src/parson.c:883,1
    - Dst: APPEND_INDENT
      Src: /src/h2o/deps/mruby-json/src/parson.c:888,1
    - Dst: json_serialize_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:890,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:898,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:900,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:902,1
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:903,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:912,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:915,1
    - Dst: APPEND_INDENT
      Src: /src/h2o/deps/mruby-json/src/parson.c:919,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:921,1
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:924,1
    - Dst: json_serialize_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:928,1
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:938,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:939,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:941,1
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:946,1
    - Dst: sprintf
      Src: /src/h2o/deps/mruby-json/src/parson.c:950,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:961,1
    - Dst: sprintf
      Src: /src/h2o/deps/mruby-json/src/parson.c:965,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:975,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 139
    argCount: 5
    argNames:
    - value
    - buf
    - level
    - is_pretty
    - num_buf
    argTypes:
    - JSON_Value*
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 982
    functionName: json_serialize_to_buffer_r
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - APPEND_INDENT
    - json_object_get_count
    - json_serialize_string
    - json_value_get_type
    - json_value_get_boolean
    - APPEND_STRING
    - json_value_get_object
    - json_object_get_value
    - json_value_get_fixed
    - json_array_get_value
    - json_value_get_number
    - json_object_get_name
    - json_serialize_to_buffer_r
    - json_value_get_string
    - sprintf
    - json_value_get_array
    - json_array_get_count
    linkageType: ''
    returnType: int
    signature: int json_serialize_to_buffer_r(const JSON_Value *value, char *buf,
      int level, int is_pretty, char *num_buf)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:985,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:988,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:992,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:993,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:994,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:995,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:996,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:997,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:998,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:999,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1000,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1001,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1002,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1003,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1004,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1005,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1006,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1007,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1011,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1014,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1015,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1016,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1017,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1018,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1019,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1020,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1021,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1022,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1023,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1024,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1025,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1026,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1027,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1028,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1029,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1030,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1031,1
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1041,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 121
    argCount: 2
    argNames:
    - string
    - buf
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1043
    functionName: json_serialize_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - APPEND_STRING
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_serialize_string(const char *string, char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STRING
      Src: /src/h2o/deps/mruby-json/src/parson.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - level
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1052
    functionName: append_indent
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - APPEND_STRING
    linkageType: ''
    returnType: int
    signature: int append_indent(char *buf, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:1056,1
    - Dst: sprintf
      Src: /src/h2o/deps/mruby-json/src/parson.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - string
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1059
    functionName: append_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - sprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int append_string(char *buf, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_file
      Src: /src/h2o/deps/mruby-json/src/parson.c:1067,1
    - Dst: json_parse_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1072,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1075
    functionName: json_parse_file
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_parse_string
    - parson_free
    - read_file
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_parse_file(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_file
      Src: /src/h2o/deps/mruby-json/src/parson.c:1078,1
    - Dst: json_parse_string_with_comments
      Src: /src/h2o/deps/mruby-json/src/parson.c:1083,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1086
    functionName: json_parse_file_with_comments
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_parse_string_with_comments
    - parson_free
    - read_file
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_parse_file_with_comments(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1097
    functionName: json_parse_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 3
    functionsReached:
    - parse_value
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_parse_string(const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_strdup
      Src: /src/h2o/deps/mruby-json/src/parson.c:1102,1
    - Dst: remove_comments
      Src: /src/h2o/deps/mruby-json/src/parson.c:1106,1
    - Dst: remove_comments
      Src: /src/h2o/deps/mruby-json/src/parson.c:1107,1
    - Dst: parse_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1109,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1112
    functionName: json_parse_string_with_comments
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - remove_comments
    - parse_value
    - parson_strdup
    - parson_free
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_parse_string_with_comments(const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_nget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1120,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:1120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1121
    functionName: json_object_get_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 3
    functionsReached:
    - json_object_nget_value
    - strlen
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_object_get_value(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1124,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1123
    functionDepth: 3
    functionLinenumber: 1123
    functionLinenumberEnd: 1125
    functionName: json_object_get_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_string
    - json_object_get_value
    linkageType: ''
    returnType: char
    signature: char * json_object_get_string(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1128,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1127
    functionDepth: 3
    functionLinenumber: 1127
    functionLinenumberEnd: 1129
    functionName: json_object_get_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_value
    - json_value_get_number
    linkageType: ''
    returnType: double
    signature: double json_object_get_number(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1133,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1134
    functionName: json_object_get_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_fixed
    - json_object_get_value
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t json_object_get_fixed(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1138,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1139
    functionName: json_object_get_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_value
    - json_value_get_object
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_object_get_object(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1142,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1143
    functionName: json_object_get_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_array
    - json_object_get_value
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_object_get_array(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1146,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1145
    functionDepth: 3
    functionLinenumber: 1145
    functionLinenumberEnd: 1147
    functionName: json_object_get_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_boolean
    - json_object_get_value
    linkageType: ''
    returnType: int
    signature: int json_object_get_boolean(const JSON_Object *object, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby-json/src/parson.c:1150,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1152,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1154,1
    - Dst: json_object_nget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1154,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: json_object_dotget_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_value_get_object
    - json_object_dotget_value
    - strchr
    - json_object_nget_value
    - json_object_get_value
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_object_dotget_value(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1159,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1160
    functionName: json_object_dotget_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_string
    - json_object_dotget_value
    linkageType: ''
    returnType: char
    signature: char * json_object_dotget_string(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1163,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1162
    functionDepth: 4
    functionLinenumber: 1162
    functionLinenumberEnd: 1164
    functionName: json_object_dotget_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotget_value
    - json_value_get_number
    linkageType: ''
    returnType: double
    signature: double json_object_dotget_number(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1168,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1169
    functionName: json_object_dotget_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_fixed
    - json_object_dotget_value
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t json_object_dotget_fixed(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1173,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1172
    functionDepth: 4
    functionLinenumber: 1172
    functionLinenumberEnd: 1174
    functionName: json_object_dotget_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotget_value
    - json_value_get_object
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_object_dotget_object(const JSON_Object *object,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1177,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1176
    functionDepth: 4
    functionLinenumber: 1176
    functionLinenumberEnd: 1178
    functionName: json_object_dotget_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_array
    - json_object_dotget_value
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_object_dotget_array(const JSON_Object *object, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1181,1
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1182
    functionName: json_object_dotget_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotget_value
    - json_value_get_boolean
    linkageType: ''
    returnType: int
    signature: int json_object_dotget_boolean(const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - JSON_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1186
    functionName: json_object_get_count
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t json_object_get_count(const JSON_Object *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - object
    - index
    argTypes:
    - JSON_Object*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1193
    functionName: json_object_get_name
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 2
    functionsReached:
    - json_object_get_count
    linkageType: ''
    returnType: char
    signature: char * json_object_get_name(const JSON_Object *object, size_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - object
    - index
    argTypes:
    - JSON_Object*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1200
    functionName: json_object_get_value_at
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_count
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_object_get_value_at(const JSON_Object *object, size_t
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - JSON_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1204
    functionName: json_object_get_wrapping_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value *json_object_get_wrapping_value(const JSON_Object *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1208
    functionName: json_object_has_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_value
    linkageType: ''
    returnType: int
    signature: int json_object_has_value (const JSON_Object *object, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1211,1
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - type
    argTypes:
    - JSON_Object*
    - char*
    - JSON_Value_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: json_object_has_value_of_type
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_type
    - json_object_get_value
    linkageType: ''
    returnType: int
    signature: int json_object_has_value_of_type(const JSON_Object *object, const
      char *name, JSON_Value_Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1215
    functionDepth: 4
    functionLinenumber: 1215
    functionLinenumberEnd: 1217
    functionName: json_object_dothas_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotget_value
    linkageType: ''
    returnType: int
    signature: int json_object_dothas_value (const JSON_Object *object, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_dotget_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1220,1
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - type
    argTypes:
    - JSON_Object*
    - char*
    - JSON_Value_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 4
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: json_object_dothas_value_of_type
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotget_value
    - json_value_get_type
    linkageType: ''
    returnType: int
    signature: int json_object_dothas_value_of_type(const JSON_Object *object, const
      char *name, JSON_Value_Type type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1230
    functionName: json_array_get_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 2
    functionsReached:
    - json_array_get_count
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_array_get_value(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1233,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1234
    functionName: json_array_get_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_string
    - json_array_get_value
    linkageType: ''
    returnType: char
    signature: char * json_array_get_string(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1237,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1238
    functionName: json_array_get_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - json_value_get_number
    linkageType: ''
    returnType: double
    signature: double json_array_get_number(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1242,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1241
    functionDepth: 2
    functionLinenumber: 1241
    functionLinenumberEnd: 1243
    functionName: json_array_get_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_fixed
    - json_array_get_value
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t json_array_get_fixed(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1247,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1248
    functionName: json_array_get_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - json_value_get_object
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_array_get_object(const JSON_Array *array, size_t
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1251,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1252
    functionName: json_array_get_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_array
    - json_array_get_value
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_array_get_array(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1255,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1256
    functionName: json_array_get_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - json_value_get_boolean
    linkageType: ''
    returnType: int
    signature: int json_array_get_boolean(const JSON_Array *array, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - JSON_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1260
    functionName: json_array_get_count
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t json_array_get_count(const JSON_Array *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - JSON_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1264
    functionName: json_array_get_wrapping_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_array_get_wrapping_value(const JSON_Array *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1269
    functionName: json_value_get_type
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: JSON_Value_Type
    signature: JSON_Value_Type json_value_get_type(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1273
    functionName: json_value_get_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 7
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_value_get_object(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1277
    functionName: json_value_get_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 6
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_value_get_array(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1281
    functionName: json_value_get_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 5
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: char
    signature: char * json_value_get_string(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1285
    functionName: json_value_get_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 5
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: double
    signature: double json_value_get_number(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1290
    functionName: json_value_get_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 5
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t json_value_get_fixed(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1295
    functionName: json_value_get_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 5
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: int
    signature: int json_value_get_boolean(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1299
    functionName: json_value_get_parent
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_get_parent (const JSON_Value *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1302,1
    - Dst: json_object_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1304,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1307,1
    - Dst: json_array_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1310,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1316
    functionName: json_value_free
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 6
    functionsReached:
    - json_object_free
    - json_value_get_type
    - parson_free
    - json_array_free
    linkageType: ''
    returnType: void
    signature: void json_value_free(JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1319,1
    - Dst: json_object_init
      Src: /src/h2o/deps/mruby-json/src/parson.c:1325,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1331
    functionName: json_value_init_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_free
    - json_object_init
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_object(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1334,1
    - Dst: json_array_init
      Src: /src/h2o/deps/mruby-json/src/parson.c:1340,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1346
    functionName: json_value_init_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_array_init
    - parson_free
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_array(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby-json/src/parson.c:1355,1
    - Dst: is_valid_utf8
      Src: /src/h2o/deps/mruby-json/src/parson.c:1356,1
    - Dst: parson_strndup
      Src: /src/h2o/deps/mruby-json/src/parson.c:1359,1
    - Dst: json_value_init_string_no_copy
      Src: /src/h2o/deps/mruby-json/src/parson.c:1363,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1368
    functionName: json_value_init_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - parson_strndup
    - parson_free
    - is_valid_utf8
    - json_value_init_string_no_copy
    - strlen
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_string(const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - number
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1383
    functionName: json_value_init_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_number(double number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fixed
    argTypes:
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1396
    functionName: json_value_init_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_fixed(intmax_t fixed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1408
    functionName: json_value_init_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_boolean(int boolean)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1418
    functionName: json_value_init_null
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_malloc
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_init_null(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1428,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1430,1
    - Dst: json_value_init_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1431,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:1435,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1436,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1437,1
    - Dst: json_value_deep_copy
      Src: /src/h2o/deps/mruby-json/src/parson.c:1438,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1440,1
    - Dst: json_array_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:1443,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1444,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1445,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1451,1
    - Dst: json_value_init_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1452,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1456,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1457,1
    - Dst: json_object_get_name
      Src: /src/h2o/deps/mruby-json/src/parson.c:1458,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1459,1
    - Dst: json_value_deep_copy
      Src: /src/h2o/deps/mruby-json/src/parson.c:1460,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1462,1
    - Dst: json_object_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:1465,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1466,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1467,1
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1473,1
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1473,1
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1475,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1475,1
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1478,1
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1478,1
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1481,1
    - Dst: parson_strdup
      Src: /src/h2o/deps/mruby-json/src/parson.c:1485,1
    - Dst: json_value_init_string_no_copy
      Src: /src/h2o/deps/mruby-json/src/parson.c:1489,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1491,1
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:1495,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1501
    functionName: json_value_deep_copy
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_value_get_type
    - json_value_get_object
    - parson_strdup
    - json_value_get_boolean
    - parson_free
    - json_value_init_boolean
    - json_value_get_fixed
    - json_value_init_array
    - json_object_get_name
    - json_value_get_string
    - json_value_init_fixed
    - json_object_get_value
    - json_value_init_number
    - json_object_get_count
    - json_array_add
    - json_value_get_number
    - json_array_get_value
    - json_value_deep_copy
    - json_value_init_string_no_copy
    - json_value_init_object
    - json_object_add
    - json_value_init_null
    - json_value_get_array
    - json_array_get_count
    - json_value_free
    linkageType: ''
    returnType: JSON_Value
    signature: JSON_Value * json_value_deep_copy(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1503
    functionDepth: 2
    functionLinenumber: 1503
    functionLinenumberEnd: 1507
    functionName: json_serialization_size
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_serialize_to_buffer_r
    linkageType: ''
    returnType: size_t
    signature: size_t json_serialization_size(const JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_serialization_size
      Src: /src/h2o/deps/mruby-json/src/parson.c:1511,1
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - value
    - buf
    - buf_size_in_bytes
    argTypes:
    - JSON_Value*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1520
    functionName: json_serialize_to_buffer
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_serialize_to_buffer_r
    - json_serialization_size
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_serialize_to_buffer(const JSON_Value *value, char
      *buf, size_t buf_size_in_bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_serialize_to_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1526,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby-json/src/parson.c:1530,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1532,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby-json/src/parson.c:1535,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:1538,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - value
    - filename
    argTypes:
    - JSON_Value*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1543
    functionName: json_serialize_to_file
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - fputs
    - json_serialize_to_string
    - fopen
    - fclose
    - json_free_serialized_string
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_serialize_to_file(const JSON_Value *value, const char
      *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_serialization_size
      Src: /src/h2o/deps/mruby-json/src/parson.c:1548,1
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1553,1
    - Dst: json_serialize_to_buffer
      Src: /src/h2o/deps/mruby-json/src/parson.c:1557,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1546
    functionDepth: 4
    functionLinenumber: 1546
    functionLinenumberEnd: 1563
    functionName: json_serialize_to_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_serialize_to_buffer
    - json_free_serialized_string
    - parson_malloc
    - json_serialization_size
    linkageType: ''
    returnType: char
    signature: char * json_serialize_to_string(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 2
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: json_serialization_size_pretty
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_serialize_to_buffer_r
    linkageType: ''
    returnType: size_t
    signature: size_t json_serialization_size_pretty(const JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_serialization_size_pretty
      Src: /src/h2o/deps/mruby-json/src/parson.c:1573,1
    - Dst: json_serialize_to_buffer_r
      Src: /src/h2o/deps/mruby-json/src/parson.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - value
    - buf
    - buf_size_in_bytes
    argTypes:
    - JSON_Value*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1582
    functionName: json_serialize_to_buffer_pretty
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_serialize_to_buffer_r
    - json_serialization_size_pretty
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_serialize_to_buffer_pretty(const JSON_Value *value,
      char *buf, size_t buf_size_in_bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_serialize_to_string_pretty
      Src: /src/h2o/deps/mruby-json/src/parson.c:1588,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby-json/src/parson.c:1592,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1594,1
    - Dst: fputs
      Src: /src/h2o/deps/mruby-json/src/parson.c:1597,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-json/src/parson.c:1600,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - value
    - filename
    argTypes:
    - JSON_Value*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1605
    functionName: json_serialize_to_file_pretty
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - fputs
    - fopen
    - fclose
    - json_free_serialized_string
    - json_serialize_to_string_pretty
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_serialize_to_file_pretty(const JSON_Value *value,
      const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_serialization_size_pretty
      Src: /src/h2o/deps/mruby-json/src/parson.c:1610,1
    - Dst: parson_malloc
      Src: /src/h2o/deps/mruby-json/src/parson.c:1615,1
    - Dst: json_serialize_to_buffer_pretty
      Src: /src/h2o/deps/mruby-json/src/parson.c:1619,1
    - Dst: json_free_serialized_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1608
    functionDepth: 4
    functionLinenumber: 1608
    functionLinenumberEnd: 1625
    functionName: json_serialize_to_string_pretty
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_serialize_to_buffer_pretty
    - json_free_serialized_string
    - parson_malloc
    - json_serialization_size_pretty
    linkageType: ''
    returnType: char
    signature: char * json_serialize_to_string_pretty(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1629
    functionName: json_free_serialized_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 4
    functionsReached:
    - parson_free
    linkageType: ''
    returnType: void
    signature: void json_free_serialized_string(char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1633,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1636,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1636,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1637,1
    - Dst: memmove
      Src: /src/h2o/deps/mruby-json/src/parson.c:1638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - ix
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1641
    functionName: json_array_remove
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - memmove
    - json_array_get_count
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_remove(JSON_Array *array, size_t ix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1644,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1647,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1647,1
    - Dst: json_array_get_wrapping_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - array
    - ix
    - value
    argTypes:
    - JSON_Array*
    - size_t
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1651
    functionName: json_array_replace_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - json_array_get_count
    - json_value_free
    - json_array_get_wrapping_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_value(JSON_Array *array, size_t ix,
      JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1654,1
    - Dst: json_array_replace_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1658,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - array
    - i
    - string
    argTypes:
    - JSON_Array*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1653
    functionDepth: 5
    functionLinenumber: 1653
    functionLinenumberEnd: 1663
    functionName: json_array_replace_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_init_string
    - json_value_free
    - json_array_replace_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_string(JSON_Array *array, size_t i,
      const char* string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1666,1
    - Dst: json_array_replace_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1670,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - array
    - i
    - number
    argTypes:
    - JSON_Array*
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1665
    functionDepth: 4
    functionLinenumber: 1665
    functionLinenumberEnd: 1675
    functionName: json_array_replace_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_free
    - json_value_init_number
    - json_array_replace_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_number(JSON_Array *array, size_t i,
      double number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1679,1
    - Dst: json_array_replace_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1683,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - array
    - i
    - fixed
    argTypes:
    - JSON_Array*
    - size_t
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1688
    functionName: json_array_replace_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_free
    - json_value_init_fixed
    - json_array_replace_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_fixed(JSON_Array *array, size_t i, intmax_t
      fixed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1692,1
    - Dst: json_array_replace_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1696,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - array
    - i
    - boolean
    argTypes:
    - JSON_Array*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1701
    functionName: json_array_replace_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_free
    - json_value_init_boolean
    - json_array_replace_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_boolean(JSON_Array *array, size_t i,
      int boolean)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:1704,1
    - Dst: json_array_replace_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1708,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - i
    argTypes:
    - JSON_Array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1703
    functionDepth: 4
    functionLinenumber: 1703
    functionLinenumberEnd: 1713
    functionName: json_array_replace_null
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_init_null
    - json_value_free
    - json_array_replace_value
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_replace_null(JSON_Array *array, size_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1720,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1721,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - array
    argTypes:
    - JSON_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1715
    functionDepth: 3
    functionLinenumber: 1715
    functionLinenumberEnd: 1725
    functionName: json_array_clear
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_get_value
    - json_array_get_count
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_clear(JSON_Array *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:1731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JSON_Array*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1732
    functionName: json_array_append_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_add
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_value(JSON_Array *array, JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1735,1
    - Dst: json_array_append_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1739,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - string
    argTypes:
    - JSON_Array*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1734
    functionDepth: 5
    functionLinenumber: 1734
    functionLinenumberEnd: 1744
    functionName: json_array_append_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_append_value
    - json_value_init_string
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_string(JSON_Array *array, const char
      *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1747,1
    - Dst: json_array_append_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1751,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - number
    argTypes:
    - JSON_Array*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1746
    functionDepth: 3
    functionLinenumber: 1746
    functionLinenumberEnd: 1756
    functionName: json_array_append_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_append_value
    - json_value_init_number
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_number(JSON_Array *array, double number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1760,1
    - Dst: json_array_append_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1764,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - fixed
    argTypes:
    - JSON_Array*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1759
    functionDepth: 3
    functionLinenumber: 1759
    functionLinenumberEnd: 1769
    functionName: json_array_append_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_append_value
    - json_value_init_fixed
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_fixed(JSON_Array *array, intmax_t fixed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1773,1
    - Dst: json_array_append_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1777,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array
    - boolean
    argTypes:
    - JSON_Array*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1772
    functionDepth: 3
    functionLinenumber: 1772
    functionLinenumberEnd: 1782
    functionName: json_array_append_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_append_value
    - json_value_init_boolean
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_boolean(JSON_Array *array, int boolean)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:1785,1
    - Dst: json_array_append_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1789,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - array
    argTypes:
    - JSON_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1784
    functionDepth: 3
    functionLinenumber: 1784
    functionLinenumberEnd: 1794
    functionName: json_array_append_null
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_array_append_value
    - json_value_init_null
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_array_append_null(JSON_Array *array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1802,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1804,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1805,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:1806,1
    - Dst: json_object_get_wrapping_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1807,1
    - Dst: json_object_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:1814,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - object
    - name
    - value
    argTypes:
    - JSON_Object*
    - char*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1796
    functionDepth: 3
    functionLinenumber: 1796
    functionLinenumberEnd: 1815
    functionName: json_object_set_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_count
    - json_object_get_wrapping_value
    - json_object_add
    - strcmp
    - json_object_get_value
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_value(JSON_Object *object, const char *name,
      JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1818,1
    - Dst: json_value_init_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - string
    argTypes:
    - JSON_Object*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1817
    functionDepth: 5
    functionLinenumber: 1817
    functionLinenumberEnd: 1819
    functionName: json_object_set_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_set_value
    - json_value_init_string
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_string(JSON_Object *object, const char
      *name, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1822,1
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - number
    argTypes:
    - JSON_Object*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1821
    functionDepth: 4
    functionLinenumber: 1821
    functionLinenumberEnd: 1823
    functionName: json_object_set_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_set_value
    - json_value_init_number
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_number(JSON_Object *object, const char
      *name, double number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1827,1
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - fixed
    argTypes:
    - JSON_Object*
    - char*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1826
    functionDepth: 4
    functionLinenumber: 1826
    functionLinenumberEnd: 1828
    functionName: json_object_set_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_set_value
    - json_value_init_fixed
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_fixed(JSON_Object *object, const char *name,
      intmax_t fixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1832,1
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - name
    - boolean
    argTypes:
    - JSON_Object*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1831
    functionDepth: 4
    functionLinenumber: 1831
    functionLinenumberEnd: 1833
    functionName: json_object_set_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_set_value
    - json_value_init_boolean
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_boolean(JSON_Object *object, const char
      *name, int boolean)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1836,1
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1835
    functionDepth: 4
    functionLinenumber: 1835
    functionLinenumberEnd: 1837
    functionName: json_object_set_null
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_set_value
    - json_value_init_null
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_set_null(JSON_Object *object, const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby-json/src/parson.c:1847,1
    - Dst: json_object_set_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1849,1
    - Dst: parson_strndup
      Src: /src/h2o/deps/mruby-json/src/parson.c:1851,1
    - Dst: json_object_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1852,1
    - Dst: json_value_init_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1854,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1856,1
    - Dst: json_object_add
      Src: /src/h2o/deps/mruby-json/src/parson.c:1859,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1860,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1861,1
    - Dst: json_object_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1864,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1866,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1867,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - object
    - name
    - value
    argTypes:
    - JSON_Object*
    - char*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1839
    functionDepth: 4
    functionLinenumber: 1839
    functionLinenumberEnd: 1869
    functionName: json_object_dotset_value
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_strndup
    - json_object_set_value
    - json_value_init_object
    - parson_free
    - json_object_add
    - json_object_get_object
    - strchr
    - json_object_dotset_value
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_value(JSON_Object *object, const char
      *name, JSON_Value *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:1872,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1876,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - object
    - name
    - string
    argTypes:
    - JSON_Object*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1871
    functionDepth: 5
    functionLinenumber: 1871
    functionLinenumberEnd: 1881
    functionName: json_object_dotset_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_init_string
    - json_object_dotset_value
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_string(JSON_Object *object, const char
      *name, const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:1884,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1888,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - object
    - name
    - number
    argTypes:
    - JSON_Object*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1883
    functionDepth: 5
    functionLinenumber: 1883
    functionLinenumberEnd: 1893
    functionName: json_object_dotset_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotset_value
    - json_value_init_number
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_number(JSON_Object *object, const char
      *name, double number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:1897,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1901,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - object
    - name
    - fixed
    argTypes:
    - JSON_Object*
    - char*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1896
    functionDepth: 5
    functionLinenumber: 1896
    functionLinenumberEnd: 1906
    functionName: json_object_dotset_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotset_value
    - json_value_init_fixed
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_fixed(JSON_Object *object, const char
      *name, intmax_t fixed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:1910,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1914,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - object
    - name
    - boolean
    argTypes:
    - JSON_Object*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1909
    functionDepth: 5
    functionLinenumber: 1909
    functionLinenumberEnd: 1919
    functionName: json_object_dotset_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_dotset_value
    - json_value_init_boolean
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_boolean(JSON_Object *object, const char
      *name, int boolean)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_value_init_null
      Src: /src/h2o/deps/mruby-json/src/parson.c:1922,1
    - Dst: json_object_dotset_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1926,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1921
    functionDepth: 5
    functionLinenumber: 1921
    functionLinenumberEnd: 1931
    functionName: json_object_dotset_null
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_init_null
    - json_object_dotset_value
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotset_null(JSON_Object *object, const char
      *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:1935,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1938,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1939,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:1940,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1941,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1952
    functionName: json_object_remove
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_count
    - parson_free
    - strcmp
    - json_object_get_value
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_remove(JSON_Object *object, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/mruby-json/src/parson.c:1955,1
    - Dst: json_object_remove
      Src: /src/h2o/deps/mruby-json/src/parson.c:1959,1
    - Dst: parson_strndup
      Src: /src/h2o/deps/mruby-json/src/parson.c:1961,1
    - Dst: json_object_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:1962,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1963,1
    - Dst: json_object_dotremove
      Src: /src/h2o/deps/mruby-json/src/parson.c:1967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - object
    - name
    argTypes:
    - JSON_Object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1954
    functionDepth: 4
    functionLinenumber: 1954
    functionLinenumberEnd: 1969
    functionName: json_object_dotremove
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - parson_strndup
    - parson_free
    - json_object_remove
    - json_object_dotremove
    - json_object_get_object
    - strchr
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_dotremove(JSON_Object *object, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:1976,1
    - Dst: parson_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1977,1
    - Dst: json_value_free
      Src: /src/h2o/deps/mruby-json/src/parson.c:1978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - JSON_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1971
    functionDepth: 3
    functionLinenumber: 1971
    functionLinenumberEnd: 1982
    functionName: json_object_clear
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_object_get_count
    - parson_free
    - json_value_free
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_object_clear(JSON_Object *object)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1994,1
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:1995,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:2001,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:2002,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2003,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2008,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2009,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2010,1
    - Dst: json_validate
      Src: /src/h2o/deps/mruby-json/src/parson.c:2011,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:2017,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:2018,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2019,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2022,1
    - Dst: json_object_get_name
      Src: /src/h2o/deps/mruby-json/src/parson.c:2026,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2027,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2028,1
    - Dst: json_validate
      Src: /src/h2o/deps/mruby-json/src/parson.c:2032,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - schema
    - value
    argTypes:
    - JSON_Value*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 1984
    functionDepth: 3
    functionLinenumber: 1984
    functionLinenumberEnd: 2046
    functionName: json_validate
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_object_get_count
    - json_value_get_type
    - json_object_get_value
    - json_validate
    - json_value_get_object
    - json_array_get_value
    - json_object_get_name
    - json_value_get_array
    - json_array_get_count
    linkageType: ''
    returnType: JSON_Status
    signature: JSON_Status json_validate(const JSON_Value *schema, const JSON_Value
      *value)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:2055,1
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:2056,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:2062,1
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:2063,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2064,1
    - Dst: json_array_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2065,1
    - Dst: json_value_equals
      Src: /src/h2o/deps/mruby-json/src/parson.c:2070,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2070,1
    - Dst: json_array_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2071,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:2077,1
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:2078,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2079,1
    - Dst: json_object_get_count
      Src: /src/h2o/deps/mruby-json/src/parson.c:2080,1
    - Dst: json_object_get_name
      Src: /src/h2o/deps/mruby-json/src/parson.c:2085,1
    - Dst: json_value_equals
      Src: /src/h2o/deps/mruby-json/src/parson.c:2086,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2086,1
    - Dst: json_object_get_value
      Src: /src/h2o/deps/mruby-json/src/parson.c:2087,1
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:2093,1
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:2094,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby-json/src/parson.c:2098,1
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:2100,1
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:2100,1
    - Dst: fabs
      Src: /src/h2o/deps/mruby-json/src/parson.c:2102,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:2102,1
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:2102,1
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:2105,1
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:2105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JSON_Value*
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2048
    functionDepth: 3
    functionLinenumber: 2048
    functionLinenumberEnd: 2114
    functionName: json_value_equals
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 1
    functionsReached:
    - json_object_get_count
    - json_value_get_type
    - json_value_get_boolean
    - json_object_get_value
    - json_value_get_object
    - json_value_get_number
    - json_value_get_fixed
    - json_array_get_value
    - strcmp
    - json_object_get_name
    - json_value_get_string
    - json_value_equals
    - fabs
    - json_value_get_array
    - json_array_get_count
    linkageType: ''
    returnType: int
    signature: int json_value_equals(const JSON_Value *a, const JSON_Value *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_type
      Src: /src/h2o/deps/mruby-json/src/parson.c:2117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2118
    functionName: json_type
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_type
    linkageType: ''
    returnType: JSON_Value_Type
    signature: JSON_Value_Type json_type(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_object
      Src: /src/h2o/deps/mruby-json/src/parson.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2122
    functionName: json_object
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_object
    linkageType: ''
    returnType: JSON_Object
    signature: JSON_Object * json_object (const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_array
      Src: /src/h2o/deps/mruby-json/src/parson.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2124
    functionDepth: 2
    functionLinenumber: 2124
    functionLinenumberEnd: 2126
    functionName: json_array
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_array
    linkageType: ''
    returnType: JSON_Array
    signature: JSON_Array * json_array  (const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_string
      Src: /src/h2o/deps/mruby-json/src/parson.c:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2128
    functionDepth: 2
    functionLinenumber: 2128
    functionLinenumberEnd: 2130
    functionName: json_string
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_string
    linkageType: ''
    returnType: char
    signature: char * json_string (const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_number
      Src: /src/h2o/deps/mruby-json/src/parson.c:2133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2132
    functionDepth: 2
    functionLinenumber: 2132
    functionLinenumberEnd: 2134
    functionName: json_number
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_number
    linkageType: ''
    returnType: double
    signature: double json_number (const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_fixed
      Src: /src/h2o/deps/mruby-json/src/parson.c:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2137
    functionDepth: 2
    functionLinenumber: 2137
    functionLinenumberEnd: 2139
    functionName: json_fixed
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_fixed
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t json_fixed (const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_value_get_boolean
      Src: /src/h2o/deps/mruby-json/src/parson.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - JSON_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2142
    functionDepth: 2
    functionLinenumber: 2142
    functionLinenumberEnd: 2144
    functionName: json_boolean
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached:
    - json_value_get_boolean
    linkageType: ''
    returnType: int
    signature: int json_boolean(const JSON_Value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - malloc_fun
    - free_fun
    argTypes:
    - JSON_Malloc_Function
    - JSON_Free_Function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2149
    functionName: json_set_allocation_functions
    functionSourceFile: /src/h2o/deps/mruby-json/src/parson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_set_allocation_functions(JSON_Malloc_Function malloc_fun,
      JSON_Free_Function free_fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - tc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: MRB_PROC_SET_TARGET_CLASS
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRB_PROC_SET_TARGET_CLASS(p,tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetTempPath
      Src: /src/h2o/deps/mruby-require/src/require.c:46,1
    - Dst: GetTempFileName
      Src: /src/h2o/deps/mruby-require/src/require.c:49,1
    - Dst: open
      Src: /src/h2o/deps/mruby-require/src/require.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: mkstemp
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 3
    functionsReached:
    - GetTempFileName
    - GetTempPath
    - open
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *template)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MKOP_A
      Src: /src/h2o/deps/mruby-require/src/require.c:60,1
    - Dst: mrb_realloc
      Src: /src/h2o/deps/mruby-require/src/require.c:61,1
    - Dst: MKOP_A
      Src: /src/h2o/deps/mruby-require/src/require.c:62,1
    - Dst: MKOP_AB
      Src: /src/h2o/deps/mruby-require/src/require.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: replace_stop_with_return
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - MKOP_A
    - mrb_realloc
    - MKOP_AB
    linkageType: ''
    returnType: void
    signature: void replace_stop_with_return(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/deps/mruby-require/src/require.c:72,1
    - Dst: mrbc_context_new
      Src: /src/h2o/deps/mruby-require/src/require.c:79,1
    - Dst: mrbc_filename
      Src: /src/h2o/deps/mruby-require/src/require.c:82,1
    - Dst: mrb_load_nstring_cxt
      Src: /src/h2o/deps/mruby-require/src/require.c:85,1
    - Dst: mrb_undef_p
      Src: /src/h2o/deps/mruby-require/src/require.c:86,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby-require/src/require.c:87,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby-require/src/require.c:88,1
    - Dst: mrb_proc_ptr
      Src: /src/h2o/deps/mruby-require/src/require.c:92,1
    - Dst: mrb_dump_irep_binary
      Src: /src/h2o/deps/mruby-require/src/require.c:93,1
    - Dst: mrbc_context_free
      Src: /src/h2o/deps/mruby-require/src/require.c:95,1
    - Dst: mrb_close
      Src: /src/h2o/deps/mruby-require/src/require.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - mrb0
    - code
    - code_len
    - path
    - tmpfp
    argTypes:
    - mrb_state*
    - char*
    - int
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 18
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: compile_rb2mrb
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - mrb_proc_ptr
    - mrb_close
    - mrbc_filename
    - mrb_load_nstring_cxt
    - mrbc_context_free
    - mrb_open
    - mrb_undef_p
    - mrbc_context_new
    - mrb_dump_irep_binary
    linkageType: ''
    returnType: int
    signature: int compile_rb2mrb(mrb_state *mrb0, const char *code, int code_len,
      const char *path, FILE* tmpfp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_stop_with_return
      Src: /src/h2o/deps/mruby-require/src/require.c:108,1
    - Dst: mrb_proc_new
      Src: /src/h2o/deps/mruby-require/src/require.c:110,1
    - Dst: mrb_irep_decref
      Src: /src/h2o/deps/mruby-require/src/require.c:111,1
    - Dst: MRB_PROC_SET_TARGET_CLASS
      Src: /src/h2o/deps/mruby-require/src/require.c:112,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/deps/mruby-require/src/require.c:114,1
    - Dst: mrb_yield_with_class
      Src: /src/h2o/deps/mruby-require/src/require.c:115,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-require/src/require.c:115,1
    - Dst: mrb_top_self
      Src: /src/h2o/deps/mruby-require/src/require.c:115,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/deps/mruby-require/src/require.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - irep
    argTypes:
    - mrb_state*
    - mrb_irep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 14
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: eval_load_irep
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - mrb_proc_new
    - mrb_irep_decref
    - mrb_yield_with_class
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - replace_stop_with_return
    - MRB_PROC_SET_TARGET_CLASS
    - mrb_obj_value
    - mrb_top_self
    linkageType: ''
    returnType: void
    signature: void eval_load_irep(mrb_state *mrb, mrb_irep *irep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-require/src/require.c:132,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-require/src/require.c:134,1
    - Dst: mrb_string_p
      Src: /src/h2o/deps/mruby-require/src/require.c:135,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-require/src/require.c:136,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-require/src/require.c:138,1
    - Dst: umask
      Src: /src/h2o/deps/mruby-require/src/require.c:140,1
    - Dst: mkstemp
      Src: /src/h2o/deps/mruby-require/src/require.c:141,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-require/src/require.c:143,1
    - Dst: umask
      Src: /src/h2o/deps/mruby-require/src/require.c:145,1
    - Dst: fdopen
      Src: /src/h2o/deps/mruby-require/src/require.c:147,1
    - Dst: close
      Src: /src/h2o/deps/mruby-require/src/require.c:149,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-require/src/require.c:150,1
    - Dst: compile_rb2mrb
      Src: /src/h2o/deps/mruby-require/src/require.c:153,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-require/src/require.c:153,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-require/src/require.c:153,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-require/src/require.c:155,1
    - Dst: remove
      Src: /src/h2o/deps/mruby-require/src/require.c:156,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-require/src/require.c:157,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-require/src/require.c:158,1
    - Dst: rewind
      Src: /src/h2o/deps/mruby-require/src/require.c:161,1
    - Dst: mrb_read_irep_file
      Src: /src/h2o/deps/mruby-require/src/require.c:162,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-require/src/require.c:163,1
    - Dst: remove
      Src: /src/h2o/deps/mruby-require/src/require.c:164,1
    - Dst: eval_load_irep
      Src: /src/h2o/deps/mruby-require/src/require.c:167,1
    - Dst: longjmp
      Src: /src/h2o/deps/mruby-require/src/require.c:170,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-require/src/require.c:172,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-require/src/require.c:173,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-require/src/require.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 119
    functionDepth: 19
    functionLinenumber: 119
    functionLinenumberEnd: 177
    functionName: mrb_require_load_rb_str
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - umask
    - mrb_true_value
    - compile_rb2mrb
    - remove
    - rewind
    - mrb_sys_fail
    - mrb_read_irep_file
    - RSTRING_PTR
    - mrb_get_args
    - mrb_str_new_cstr
    - fdopen
    - fclose
    - mrb_string_p
    - close
    - mrb_nil_value
    - longjmp
    - mkstemp
    - eval_load_irep
    - mrb_str_to_cstr
    - RSTRING_LEN
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_require_load_rb_str(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-require/src/require.c:187,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-require/src/require.c:188,1
    - Dst: fopen
      Src: /src/h2o/deps/mruby-require/src/require.c:190,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-require/src/require.c:192,1
    - Dst: mrb_read_irep_file
      Src: /src/h2o/deps/mruby-require/src/require.c:195,1
    - Dst: fclose
      Src: /src/h2o/deps/mruby-require/src/require.c:196,1
    - Dst: eval_load_irep
      Src: /src/h2o/deps/mruby-require/src/require.c:199,1
    - Dst: longjmp
      Src: /src/h2o/deps/mruby-require/src/require.c:202,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-require/src/require.c:204,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-require/src/require.c:205,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-require/src/require.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 15
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: mrb_require_load_mrb_file
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - fclose
    - mrb_true_value
    - eval_load_irep
    - mrb_str_to_cstr
    - mrb_get_args
    - fopen
    - mrb_raisef
    - longjmp
    - mrb_read_irep_file
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_require_load_mrb_file(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-require/src/require.c:217,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby-require/src/require.c:217,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-require/src/require.c:218,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-require/src/require.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: mrb_mruby_require_gem_init
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ANY
    - MRB_ARGS_REQ
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_require_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mrb_mruby_require_gem_final
    functionSourceFile: /src/h2o/deps/mruby-require/src/require.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_require_gem_final(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: _PICOHASH_MD5_F
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_F(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: _PICOHASH_MD5_G
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_G(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: _PICOHASH_MD5_H
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_H(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: _PICOHASH_MD5_I
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_I(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - f
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - t
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: _PICOHASH_MD5_STEP
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_STEP(f, a, b, c, d, x, t, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: _PICOHASH_MD5_SET
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: _PICOHASH_MD5_GET
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: _PICOHASH_MD5_SET
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: _PICOHASH_MD5_GET
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PICOHASH_MD5_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:176,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:176,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:177,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:177,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:178,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:178,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:179,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:179,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:180,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:180,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:181,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:181,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:182,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:182,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:183,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:183,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:184,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:184,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:185,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:185,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:186,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:186,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:187,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:187,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:188,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:188,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:189,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:189,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:190,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:190,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:191,1
    - Dst: _PICOHASH_MD5_SET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:191,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:194,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:194,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:195,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:195,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:196,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:196,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:197,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:197,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:198,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:198,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:199,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:199,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:200,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:200,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:201,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:201,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:202,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:202,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:203,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:203,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:204,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:204,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:205,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:205,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:206,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:206,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:207,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:207,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:208,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:208,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:209,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:209,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:212,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:212,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:213,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:213,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:214,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:214,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:215,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:215,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:216,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:216,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:217,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:217,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:218,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:218,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:219,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:219,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:220,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:220,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:221,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:221,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:222,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:222,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:223,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:223,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:224,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:224,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:225,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:225,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:226,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:226,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:227,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:227,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:230,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:230,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:231,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:231,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:232,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:232,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:233,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:233,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:234,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:234,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:235,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:235,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:236,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:236,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:237,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:237,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:238,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:238,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:239,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:239,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:240,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:240,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:241,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:241,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:242,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:242,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:243,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:243,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:244,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:244,1
    - Dst: _PICOHASH_MD5_STEP
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:245,1
    - Dst: _PICOHASH_MD5_GET
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 3
    argNames:
    - ctx
    - data
    - size
    argTypes:
    - _picohash_md5_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 261
    functionName: _picohash_md5_body
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _PICOHASH_MD5_GET
    - _PICOHASH_MD5_STEP
    - _PICOHASH_MD5_SET
    linkageType: ''
    returnType: void
    signature: void *_picohash_md5_body(_picohash_md5_ctx_t *ctx, const void *data,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _picohash_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: _picohash_md5_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _picohash_md5_init(_picohash_md5_ctx_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:292,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:296,1
    - Dst: _picohash_md5_ctx_t*::_body
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:299,1
    - Dst: _picohash_md5_ctx_t*::_body
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:303,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - data
    - size
    argTypes:
    - _picohash_md5_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 308
    functionName: _picohash_md5_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_md5_ctx_t*::_body
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _picohash_md5_update(_picohash_md5_ctx_t *ctx, const void *data,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:322,1
    - Dst: _picohash_md5_ctx_t*::_body
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:323,1
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:328,1
    - Dst: _picohash_md5_ctx_t*::_body
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:340,1
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - ctx
    - _digest
    argTypes:
    - _picohash_md5_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 360
    functionName: _picohash_md5_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_md5_ctx_t*::_body
    - memset
    linkageType: ''
    returnType: void
    signature: void _picohash_md5_final(_picohash_md5_ctx_t *ctx, void *_digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - number
    - bits
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: _picohash_sha1_rol32
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _picohash_sha1_rol32(uint32_t number, uint8_t bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha1_rol32
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:385,1
    - Dst: _picohash_sha1_rol32
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:396,1
    - Dst: _picohash_sha1_rol32
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - _picohash_sha1_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 408
    functionName: _picohash_sha1_hash_block
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha1_rol32
    linkageType: ''
    returnType: void
    signature: void _picohash_sha1_hash_block(_picohash_sha1_ctx_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha1_hash_block
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - _picohash_sha1_ctx_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 423
    functionName: _picohash_sha1_add_uncounted
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha1_hash_block
    linkageType: ''
    returnType: void
    signature: void _picohash_sha1_add_uncounted(_picohash_sha1_ctx_t *s, uint8_t
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - _picohash_sha1_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: _picohash_sha1_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _picohash_sha1_init(_picohash_sha1_ctx_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - _data
    - len
    argTypes:
    - _picohash_sha1_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: _picohash_sha1_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha1_add_uncounted
    linkageType: ''
    returnType: void
    signature: void _picohash_sha1_update(_picohash_sha1_ctx_t *s, const void *_data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:448,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:450,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:453,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:454,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:455,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:456,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:457,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:458,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:459,1
    - Dst: _picohash_sha1_add_uncounted
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:460,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - s
    - digest
    argTypes:
    - _picohash_sha1_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 473
    functionName: _picohash_sha1_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - memcpy
    - _picohash_sha1_add_uncounted
    linkageType: ''
    returnType: void
    signature: void _picohash_sha1_final(_picohash_sha1_ctx_t *s, void *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: _picohash_sha256_ch
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: _picohash_sha256_maj
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: _picohash_sha256_s
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_s(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: _picohash_sha256_r
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_r(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: _picohash_sha256_sigma0
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: _picohash_sha256_sigma1
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: _picohash_sha256_gamma0
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: _picohash_sha256_gamma1
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: _picohash_sha256_rnd
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _picohash_sha256_rnd(a, b, c, d, e, f, g, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_gamma1
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:515,1
    - Dst: _picohash_sha256_gamma0
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:515,1
    - Dst: _picohash_sha256_rnd
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - _picohash_sha256_ctx_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 534
    functionName: _picohash_sha256_compress
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha256_gamma1
    - _picohash_sha256_rnd
    - _picohash_sha256_gamma0
    linkageType: ''
    returnType: void
    signature: void _picohash_sha256_compress(_picohash_sha256_ctx_t *ctx, unsigned
      char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_compress
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:555,1
    - Dst: _picohash_sha256_compress
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - digest
    - len
    argTypes:
    - _picohash_sha256_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 576
    functionName: _picohash_sha256_do_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha256_compress
    linkageType: ''
    returnType: void
    signature: void _picohash_sha256_do_final(_picohash_sha256_ctx_t *ctx, void *digest,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _picohash_sha256_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 590
    functionName: _picohash_sha256_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _picohash_sha256_init(_picohash_sha256_ctx_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_compress
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:599,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:607,1
    - Dst: _picohash_sha256_compress
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - _picohash_sha256_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 618
    functionName: _picohash_sha256_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - memcpy
    - _picohash_sha256_compress
    linkageType: ''
    returnType: void
    signature: void _picohash_sha256_update(_picohash_sha256_ctx_t *ctx, const void
      *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_do_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - _picohash_sha256_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: _picohash_sha256_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha256_do_final
    linkageType: ''
    returnType: void
    signature: void _picohash_sha256_final(_picohash_sha256_ctx_t *ctx, void *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _picohash_sha256_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 637
    functionName: _picohash_sha224_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _picohash_sha224_init(_picohash_sha256_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_do_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - _picohash_sha256_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 642
    functionName: _picohash_sha224_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha256_do_final
    linkageType: ''
    returnType: void
    signature: void _picohash_sha224_final(_picohash_sha256_ctx_t *ctx, void *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_md5_init
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: picohash_init_md5
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_md5_init
    linkageType: ''
    returnType: void
    signature: void picohash_init_md5(picohash_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha1_init
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: picohash_init_sha1
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha1_init
    linkageType: ''
    returnType: void
    signature: void picohash_init_sha1(picohash_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha224_init
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: picohash_init_sha224
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha224_init
    linkageType: ''
    returnType: void
    signature: void picohash_init_sha224(picohash_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _picohash_sha256_init
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 683
    functionName: picohash_init_sha256
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_sha256_init
    linkageType: ''
    returnType: void
    signature: void picohash_init_sha256(picohash_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_ctx_t*::_update
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - picohash_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: picohash_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - picohash_ctx_t*::_update
    linkageType: ''
    returnType: void
    signature: void picohash_update(picohash_ctx_t *ctx, const void *input, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_ctx_t*::_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - picohash_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: picohash_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - picohash_ctx_t*::_final
    linkageType: ''
    returnType: void
    signature: void picohash_final(picohash_ctx_t *ctx, void *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_ctx_t*::_reset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: picohash_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - picohash_ctx_t*::_reset
    linkageType: ''
    returnType: void
    signature: void picohash_reset(picohash_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_update
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - delta
    argTypes:
    - picohash_ctx_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: _picohash_hmac_apply_key
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - picohash_update
    linkageType: ''
    returnType: void
    signature: void _picohash_hmac_apply_key(picohash_ctx_t *ctx, unsigned char delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_ctx_t*::_hmac::hash_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:714,1
    - Dst: picohash_ctx_t*::_hmac::hash_reset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:716,1
    - Dst: _picohash_hmac_apply_key
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:717,1
    - Dst: picohash_update
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:718,1
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:719,1
    - Dst: picohash_ctx_t*::_hmac::hash_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - picohash_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 722
    functionName: _picohash_hmac_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - picohash_update
    - picohash_ctx_t*::_hmac::hash_reset
    - picohash_ctx_t*::_hmac::hash_final
    - _picohash_hmac_apply_key
    - memset
    linkageType: ''
    returnType: void
    signature: void _picohash_hmac_final(picohash_ctx_t *ctx, void *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_ctx_t*::_hmac::hash_reset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:726,1
    - Dst: _picohash_hmac_apply_key
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - picohash_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: _picohash_hmac_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - _picohash_hmac_apply_key
    - picohash_ctx_t*::_hmac::hash_reset
    linkageType: ''
    returnType: void
    signature: void _picohash_hmac_reset(picohash_ctx_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initf
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:732,1
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:734,1
    - Dst: picohash_update
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:737,1
    - Dst: picohash_final
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:738,1
    - Dst: picohash_ctx_t*::_hmac::hash_reset
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:739,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:741,1
    - Dst: _picohash_hmac_apply_key
      Src: /src/h2o/deps/mruby-digest/src/picohash.h:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - key
    - key_len
    argTypes:
    - picohash_ctx_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 752
    functionName: picohash_init_hmac
    functionSourceFile: /src/h2o/deps/mruby-digest/src/picohash.h
    functionUses: 0
    functionsReached:
    - initf
    - picohash_final
    - picohash_update
    - picohash_ctx_t*::_hmac::hash_reset
    - memcpy
    - _picohash_hmac_apply_key
    - memset
    linkageType: ''
    returnType: void
    signature: void picohash_init_hmac(picohash_ctx_t *ctx, void (*initf)(picohash_ctx_t
      *), const void *key, size_t key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: lib_md_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void lib_md_free(mrb_state *mrb, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: lib_hmac_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void lib_hmac_free(mrb_state *mrb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: lib_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lib_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: lib_md_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lib_md_block_length(const struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:127,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 8
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: lib_md_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - picohash_final
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest(mrb_state *mrb, const struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:136,1
    - Dst: picohash_reset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:137,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: lib_md_digest_bang
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - picohash_reset
    - picohash_final
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest_bang(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: lib_md_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lib_md_digest_length(const struct mrb_md *md)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: (*md_type_md(int type))(picohash_ctx_t *)
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void (*md_type_md(int type))(picohash_ctx_t *)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md_type_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:160,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:162,1
    - Dst: ctor
      Src: /src/h2o/deps/mruby-digest/src/digest.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mrb
    - md
    - type
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: lib_md_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - ctor
    - md_type_md
    linkageType: ''
    returnType: void
    signature: void lib_md_init(mrb_state *mrb, struct mrb_md *md, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_reset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - mdnew
    - mdold
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: lib_md_init_copy
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - picohash_reset
    linkageType: ''
    returnType: void
    signature: void lib_md_init_copy(mrb_state *mrb, struct mrb_md *mdnew, struct
      mrb_md *mdold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_reset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: lib_md_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - picohash_reset
    linkageType: ''
    returnType: void
    signature: void lib_md_reset(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:184,1
    - Dst: picohash_update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - mrb
    - md
    - str
    - len
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: lib_md_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - picohash_update
    linkageType: ''
    returnType: void
    signature: void lib_md_update(mrb_state *mrb, struct mrb_md *md, unsigned char
      *str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: picohash_final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:196,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - hmac
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 8
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: lib_hmac_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - picohash_final
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_hmac_digest(mrb_state *mrb, const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: lib_hmac_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lib_hmac_block_length(const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: lib_hmac_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lib_hmac_digest_length(const struct mrb_hmac *hmac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: md_type_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:215,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:219,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:222,1
    - Dst: picohash_init_hmac
      Src: /src/h2o/deps/mruby-digest/src/digest.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - mrb
    - hmac
    - type
    - key
    - keylen
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - int
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: lib_hmac_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - picohash_init_hmac
    - md_type_md
    linkageType: ''
    returnType: void
    signature: void lib_hmac_init(mrb_state *mrb, struct mrb_hmac *hmac, int type,
      const unsigned char *key, mrb_int keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:231,1
    - Dst: picohash_update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - hmac
    - data
    - len
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: lib_hmac_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - picohash_update
    linkageType: ''
    returnType: void
    signature: void lib_hmac_update(mrb_state *mrb, struct mrb_hmac *hmac, unsigned
      char *data, mrb_int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_destroy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:273,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: lib_md_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void lib_md_free(mrb_state *mrb, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_cleanup
      Src: /src/h2o/deps/mruby-digest/src/digest.c:285,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: lib_hmac_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_free
    - HMAC_CTX_cleanup
    linkageType: ''
    returnType: void
    signature: void lib_hmac_free(mrb_state *mrb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_digests
      Src: /src/h2o/deps/mruby-digest/src/digest.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: lib_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_digests
    linkageType: ''
    returnType: void
    signature: void lib_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_block_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: lib_md_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_block_size
    linkageType: ''
    returnType: int
    signature: int lib_md_block_length(const struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_copy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:312,1
    - Dst: EVP_DigestFinal
      Src: /src/h2o/deps/mruby-digest/src/digest.c:313,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 8
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: lib_md_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_copy
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest(mrb_state *mrb, const struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:323,1
    - Dst: EVP_DigestInit_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:324,1
    - Dst: EVP_MD_CTX_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:324,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 8
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: lib_md_digest_bang
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_str_new
    - EVP_MD_CTX_md
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest_bang(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: lib_md_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_size
    linkageType: ''
    returnType: int
    signature: int lib_md_digest_length(const struct mrb_md *md)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_md5
      Src: /src/h2o/deps/mruby-digest/src/digest.c:338,1
    - Dst: EVP_ripemd160
      Src: /src/h2o/deps/mruby-digest/src/digest.c:340,1
    - Dst: EVP_sha1
      Src: /src/h2o/deps/mruby-digest/src/digest.c:342,1
    - Dst: EVP_sha256
      Src: /src/h2o/deps/mruby-digest/src/digest.c:344,1
    - Dst: EVP_sha384
      Src: /src/h2o/deps/mruby-digest/src/digest.c:347,1
    - Dst: EVP_sha512
      Src: /src/h2o/deps/mruby-digest/src/digest.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 352
    functionName: md_type_md
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 2
    functionsReached:
    - EVP_sha1
    - EVP_sha512
    - EVP_sha384
    - EVP_ripemd160
    - EVP_md5
    - EVP_sha256
    linkageType: ''
    returnType: EVP_MD
    signature: 'EVP_MD *

      md_type_md(int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md_type_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:360,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:362,1
    - Dst: EVP_MD_CTX_create
      Src: /src/h2o/deps/mruby-digest/src/digest.c:364,1
    - Dst: EVP_DigestInit_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mrb
    - md
    - type
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: lib_md_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - EVP_MD_CTX_create
    - EVP_DigestInit_ex
    - md_type_md
    linkageType: ''
    returnType: void
    signature: void lib_md_init(mrb_state *mrb, struct mrb_md *md, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_create
      Src: /src/h2o/deps/mruby-digest/src/digest.c:371,1
    - Dst: EVP_DigestInit_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:372,1
    - Dst: EVP_MD_CTX_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mrb
    - mdnew
    - mdold
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: lib_md_init_copy
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_create
    - EVP_MD_CTX_md
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: void
    signature: void lib_md_init_copy(mrb_state *mrb, struct mrb_md *mdnew, struct
      mrb_md *mdold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:379,1
    - Dst: EVP_MD_CTX_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: lib_md_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: void
    signature: void lib_md_reset(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:387,1
    - Dst: EVP_DigestUpdate
      Src: /src/h2o/deps/mruby-digest/src/digest.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - md
    - str
    - len
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: lib_md_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void lib_md_update(mrb_state *mrb, struct mrb_md *md, unsigned char
      *str, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:400,1
    - Dst: HMAC_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:401,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - hmac
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 393
    functionDepth: 8
    functionLinenumber: 393
    functionLinenumberEnd: 403
    functionName: lib_hmac_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - HMAC_Final
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_hmac_digest(mrb_state *mrb, const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_block_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: lib_hmac_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_block_size
    linkageType: ''
    returnType: int
    signature: int lib_hmac_block_length(const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: lib_hmac_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int lib_hmac_digest_length(const struct mrb_hmac *hmac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:422,1
    - Dst: md_type_md
      Src: /src/h2o/deps/mruby-digest/src/digest.c:425,1
    - Dst: HMAC_CTX_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:426,1
    - Dst: HMAC_Init_ex
      Src: /src/h2o/deps/mruby-digest/src/digest.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - mrb
    - hmac
    - type
    - key
    - keylen
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - int
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 428
    functionName: lib_hmac_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - HMAC_Init_ex
    - HMAC_CTX_init
    - md_type_md
    linkageType: ''
    returnType: void
    signature: void lib_hmac_init(mrb_state *mrb, struct mrb_hmac *hmac, int type,
      const unsigned char *key, mrb_int keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:435,1
    - Dst: HMAC_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - hmac
    - data
    - len
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: lib_hmac_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - HMAC_Update
    linkageType: ''
    returnType: void
    signature: void lib_hmac_update(mrb_state *mrb, struct mrb_hmac *hmac, unsigned
      char *data, mrb_int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: md_ctx_size
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int md_ctx_size(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:482,1
    - Dst: md_ctx_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:482,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:483,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: lib_md_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - memset
    - mrb_free
    - md_ctx_size
    linkageType: ''
    returnType: void
    signature: void lib_md_free(mrb_state *mrb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:492,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: lib_hmac_free
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - memset
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void lib_hmac_free(mrb_state *mrb, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: lib_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lib_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 525
    functionName: md_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int md_block_length(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_block_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: lib_md_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_block_length
    linkageType: ''
    returnType: int
    signature: int lib_md_block_length(const struct mrb_md *md)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD5_Init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:537,1
    - Dst: CC_SHA1_Init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:538,1
    - Dst: CC_SHA256_Init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:539,1
    - Dst: CC_SHA384_Init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:540,1
    - Dst: CC_SHA512_Init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:541,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - type
    - ctxp
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: md_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - CC_SHA256_Init
    - CC_SHA384_Init
    - CC_MD5_Init
    - CC_SHA1_Init
    - CC_SHA512_Init
    linkageType: ''
    returnType: void
    signature: void md_init(int type, void *ctxp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD5_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:550,1
    - Dst: CC_SHA1_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:551,1
    - Dst: CC_SHA256_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:552,1
    - Dst: CC_SHA384_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:553,1
    - Dst: CC_SHA512_Final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - type
    - str
    - ctx
    argTypes:
    - int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 557
    functionName: md_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - CC_SHA384_Final
    - CC_SHA1_Final
    - CC_MD5_Final
    - CC_SHA512_Final
    - CC_SHA256_Final
    linkageType: ''
    returnType: void
    signature: void md_final(int type, unsigned char *str, void *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: md_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int md_digest_length(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:578,1
    - Dst: md_ctx_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:578,1
    - Dst: md_final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:579,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:580,1
    - Dst: md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 572
    functionDepth: 8
    functionLinenumber: 572
    functionLinenumberEnd: 581
    functionName: lib_md_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_digest_length
    - md_ctx_size
    - memcpy
    - mrb_str_new
    - md_final
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest(mrb_state *mrb, const struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_final
      Src: /src/h2o/deps/mruby-digest/src/digest.c:588,1
    - Dst: md_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:589,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:590,1
    - Dst: md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: lib_md_digest_bang
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_final
    - md_digest_length
    - md_init
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_md_digest_bang(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 597
    functionName: lib_md_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_digest_length
    linkageType: ''
    returnType: int
    signature: int lib_md_digest_length(const struct mrb_md *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md_ctx_size
      Src: /src/h2o/deps/mruby-digest/src/digest.c:604,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:606,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-digest/src/digest.c:610,1
    - Dst: md_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mrb
    - md
    - type
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 612
    functionName: lib_md_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - md_init
    - md_ctx_size
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void lib_md_init(mrb_state *mrb, struct mrb_md *md, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_md_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - mdnew
    - mdold
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: lib_md_init_copy
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - lib_md_init
    linkageType: ''
    returnType: void
    signature: void lib_md_init_copy(mrb_state *mrb, struct mrb_md *mdnew, struct
      mrb_md *mdold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - md
    argTypes:
    - mrb_state*
    - struct mrb_md*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: lib_md_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_init
    linkageType: ''
    returnType: void
    signature: void lib_md_reset(mrb_state *mrb, struct mrb_md *md)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:631,1
    - Dst: CC_MD5_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:635,1
    - Dst: CC_SHA1_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:636,1
    - Dst: CC_SHA256_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:637,1
    - Dst: CC_SHA384_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:638,1
    - Dst: CC_SHA512_Update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - mrb
    - md
    - data
    - len
    argTypes:
    - mrb_state*
    - struct mrb_md*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 642
    functionName: lib_md_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - CC_SHA384_Update
    - CC_MD5_Update
    - mrb_raise
    - CC_SHA256_Update
    - CC_SHA512_Update
    - CC_SHA1_Update
    linkageType: ''
    returnType: void
    signature: void lib_md_update(mrb_state *mrb, struct mrb_md *md, unsigned char
      *data, mrb_int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_block_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: lib_hmac_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_block_length
    linkageType: ''
    returnType: int
    signature: int lib_hmac_block_length(const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:656,1
    - Dst: CCHmacFinal
      Src: /src/h2o/deps/mruby-digest/src/digest.c:657,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:658,1
    - Dst: md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - hmac
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 8
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: lib_hmac_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - md_digest_length
    - mrb_str_new
    - CCHmacFinal
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value lib_hmac_digest(mrb_state *mrb, const struct mrb_hmac *hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - struct mrb_hmac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: lib_hmac_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - md_digest_length
    linkageType: ''
    returnType: int
    signature: int lib_hmac_digest_length(const struct mrb_hmac *hmac)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:674,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-digest/src/digest.c:684,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:684,1
    - Dst: CCHmacInit
      Src: /src/h2o/deps/mruby-digest/src/digest.c:689,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - mrb
    - hmac
    - type
    - key
    - keylen
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - int
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 690
    functionName: lib_hmac_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - CCHmacInit
    - mrb_raisef
    - mrb_fixnum_value
    linkageType: ''
    returnType: void
    signature: void lib_hmac_init(mrb_state *mrb, struct mrb_hmac *hmac, int type,
      const unsigned char *key, mrb_int keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:697,1
    - Dst: CCHmacUpdate
      Src: /src/h2o/deps/mruby-digest/src/digest.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mrb
    - hmac
    - data
    - len
    argTypes:
    - mrb_state*
    - struct mrb_hmac*
    - unsigned char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 701
    functionName: lib_hmac_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - CCHmacUpdate
    linkageType: ''
    returnType: void
    signature: void lib_hmac_update(mrb_state *mrb, struct mrb_hmac *hmac, unsigned
      char *data, mrb_int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby-digest/src/digest.c:712,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby-digest/src/digest.c:713,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:713,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-digest/src/digest.c:713,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-digest/src/digest.c:714,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:715,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:717,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - mrb
    - self
    - mdp
    argTypes:
    - mrb_state*
    - mrb_value
    - struct mrb_md**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 705
    functionDepth: 4
    functionLinenumber: 705
    functionLinenumberEnd: 722
    functionName: basecheck
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - DATA_PTR
    - mrb_raise
    - mrb_intern_lit
    - mrb_const_get
    - mrb_obj_value
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void basecheck(mrb_state *mrb, mrb_value self, struct mrb_md **mdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basecheck
      Src: /src/h2o/deps/mruby-digest/src/digest.c:729,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:730,1
    - Dst: lib_md_block_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 724
    functionDepth: 5
    functionLinenumber: 724
    functionLinenumberEnd: 731
    functionName: mrb_digest_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - lib_md_block_length
    - basecheck
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_block_length(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:738,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:739,1
    - Dst: lib_md_digest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 9
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: mrb_digest_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - DATA_PTR
    - lib_md_digest
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_digest(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:748,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:749,1
    - Dst: lib_md_digest_bang
      Src: /src/h2o/deps/mruby-digest/src/digest.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 743
    functionDepth: 9
    functionLinenumber: 743
    functionLinenumberEnd: 751
    functionName: mrb_digest_digest_bang
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - lib_md_digest_bang
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_digest_bang(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basecheck
      Src: /src/h2o/deps/mruby-digest/src/digest.c:758,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:759,1
    - Dst: lib_md_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 753
    functionDepth: 5
    functionLinenumber: 753
    functionLinenumberEnd: 760
    functionName: mrb_digest_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - lib_md_digest_length
    - basecheck
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_digest_length(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:769,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-digest/src/digest.c:770,1
    - Dst: mrb_str_buf_new
      Src: /src/h2o/deps/mruby-digest/src/digest.c:771,1
    - Dst: snprintf
      Src: /src/h2o/deps/mruby-digest/src/digest.c:773,1
    - Dst: mrb_str_buf_cat
      Src: /src/h2o/deps/mruby-digest/src/digest.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - b
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 777
    functionName: digest2hexdigest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_str_buf_new
    - RSTRING_PTR
    - RSTRING_LEN
    - snprintf
    - mrb_str_buf_cat
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value digest2hexdigest(mrb_state *mrb, mrb_value b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digest2hexdigest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:782,1
    - Dst: mrb_digest_digest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 10
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: mrb_digest_hexdigest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - digest2hexdigest
    - mrb_digest_digest
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_hexdigest(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:792,1
    - Dst: lib_md_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:794,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:796,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:797,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby-digest/src/digest.c:799,1
    - Dst: mrb_const_defined
      Src: /src/h2o/deps/mruby-digest/src/digest.c:800,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:800,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-digest/src/digest.c:800,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:801,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby-digest/src/digest.c:803,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:803,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-digest/src/digest.c:803,1
    - Dst: lib_md_supported
      Src: /src/h2o/deps/mruby-digest/src/digest.c:805,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:806,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-digest/src/digest.c:810,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:811,1
    - Dst: lib_md_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:812,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-digest/src/digest.c:812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 785
    functionDepth: 5
    functionLinenumber: 785
    functionLinenumberEnd: 814
    functionName: mrb_digest_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - mrb_const_defined
    - DATA_PTR
    - lib_md_supported
    - mrb_raise
    - lib_md_init
    - mrb_intern_lit
    - mrb_const_get
    - lib_md_free
    - mrb_fixnum
    - mrb_obj_value
    - DATA_TYPE
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_init(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-digest/src/digest.c:822,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby-digest/src/digest.c:823,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby-digest/src/digest.c:824,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby-digest/src/digest.c:824,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:825,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:827,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:828,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-digest/src/digest.c:828,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:829,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:831,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:832,1
    - Dst: lib_md_init_copy
      Src: /src/h2o/deps/mruby-digest/src/digest.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 816
    functionDepth: 9
    functionLinenumber: 816
    functionLinenumberEnd: 835
    functionName: mrb_digest_init_copy
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - DATA_TYPE
    - DATA_PTR
    - mrb_raise
    - mrb_get_args
    - mrb_obj_equal
    - lib_md_init_copy
    - mrb_obj_is_instance_of
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_init_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:842,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:843,1
    - Dst: lib_md_reset
      Src: /src/h2o/deps/mruby-digest/src/digest.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 846
    functionName: mrb_digest_reset
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - lib_md_reset
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_reset(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:855,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:856,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-digest/src/digest.c:857,1
    - Dst: lib_md_update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 9
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: mrb_digest_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - lib_md_update
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_digest_update(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:867,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:868,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:869,1
    - Dst: lib_hmac_block_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 870
    functionName: mrb_hmac_block_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - lib_hmac_block_length
    - mrb_fixnum_value
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_block_length(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:877,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:878,1
    - Dst: lib_hmac_digest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 872
    functionDepth: 9
    functionLinenumber: 872
    functionLinenumberEnd: 880
    functionName: mrb_hmac_digest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - lib_hmac_digest
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_digest(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:887,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:888,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:889,1
    - Dst: lib_hmac_digest_length
      Src: /src/h2o/deps/mruby-digest/src/digest.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: mrb_hmac_digest_length
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_fixnum_value
    - lib_hmac_digest_length
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_digest_length(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digest2hexdigest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:895,1
    - Dst: mrb_hmac_digest
      Src: /src/h2o/deps/mruby-digest/src/digest.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 10
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: mrb_hmac_hexdigest
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_hmac_digest
    - digest2hexdigest
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_hexdigest(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:906,1
    - Dst: lib_hmac_free
      Src: /src/h2o/deps/mruby-digest/src/digest.c:908,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:910,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:911,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-digest/src/digest.c:913,1
    - Dst: mrb_const_get
      Src: /src/h2o/deps/mruby-digest/src/digest.c:914,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-digest/src/digest.c:914,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-digest/src/digest.c:915,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:916,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-digest/src/digest.c:919,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:920,1
    - Dst: lib_hmac_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:921,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-digest/src/digest.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 898
    functionDepth: 9
    functionLinenumber: 898
    functionLinenumberEnd: 923
    functionName: mrb_hmac_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_raise
    - lib_hmac_free
    - mrb_get_args
    - mrb_const_get
    - mrb_intern_lit
    - mrb_fixnum
    - lib_hmac_init
    - mrb_nil_p
    - DATA_TYPE
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_init(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-digest/src/digest.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 930
    functionName: mrb_hmac_init_copy
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_init_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-digest/src/digest.c:939,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-digest/src/digest.c:940,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-digest/src/digest.c:941,1
    - Dst: lib_hmac_update
      Src: /src/h2o/deps/mruby-digest/src/digest.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 932
    functionDepth: 9
    functionLinenumber: 932
    functionLinenumberEnd: 944
    functionName: mrb_hmac_update
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_args
    - lib_hmac_update
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_hmac_update(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_init
      Src: /src/h2o/deps/mruby-digest/src/digest.c:952,1
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby-digest/src/digest.c:954,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby-digest/src/digest.c:956,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:957,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:957,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:958,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:958,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:959,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:959,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:960,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:960,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:962,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:962,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:964,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:964,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:965,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-digest/src/digest.c:965,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:966,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:966,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:967,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-digest/src/digest.c:967,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:977,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:980,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:983,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:986,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:989,1
    - Dst: DEFCLASS
      Src: /src/h2o/deps/mruby-digest/src/digest.c:992,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby-digest/src/digest.c:995,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby-digest/src/digest.c:996,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:997,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:997,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:998,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:998,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:999,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:999,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1000,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1000,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1001,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1001,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1002,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1002,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1003,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-digest/src/digest.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1004
    functionName: mrb_mruby_digest_gem_init
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_module
    - lib_init
    - mrb_define_class_under
    - DEFCLASS
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_digest_gem_init(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 975
    functionName: DEFCLASS
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFCLASS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: mrb_mruby_digest_gem_final
    functionSourceFile: /src/h2o/deps/mruby-digest/src/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_digest_gem_final(mrb_state *mrb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:34,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - stream
    argTypes:
    - mrb_state*
    - mrb_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: assert_is_open
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_class_get
    linkageType: ''
    returnType: void
    signature: void assert_is_open(mrb_state *mrb, mrb_input_stream_t *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:48,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:50,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:50,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:54,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:55,1
    - Dst: mrb_input_stream_create
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:56,1
    - Dst: mrb_input_stream_create
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:58,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:61,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 41
    functionDepth: 9
    functionLinenumber: 41
    functionLinenumberEnd: 64
    functionName: mrb_input_stream_init
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - mrb_input_stream_create
    - mrb_fixnum_value
    - mrb_raisef
    - DATA_TYPE
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_init(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - mrb
    - base
    - len
    - cb_data
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: default_free_cb
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void default_free_cb(mrb_state *mrb, const char *base, mrb_int len,
      void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_input_stream_t*::free_cb
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:78,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: mrb_mruby_input_stream_free
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_input_stream_t*::free_cb
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_input_stream_free(mrb_state *mrb, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:86,1
    - Dst: memcpy
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 7
    argNames:
    - mrb
    - stream
    - base
    - len
    - pos
    - free_cb
    - free_cb_data
    argTypes:
    - mrb_state*
    - mrb_input_stream_t*
    - char*
    - mrb_int
    - mrb_int
    - mrb_input_stream_free_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: setup_stream
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mrb_malloc
    linkageType: ''
    returnType: void
    signature: void setup_stream(mrb_state *mrb, mrb_input_stream_t *stream, const
      char *base, mrb_int len, mrb_int pos, mrb_input_stream_free_callback free_cb,
      void *free_cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:109,1
    - Dst: setup_stream
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mrb
    - base
    - len
    - free_cb
    - free_cb_data
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - mrb_input_stream_free_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: mrb_input_stream_create
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 1
    functionsReached:
    - setup_stream
    - mrb_malloc
    linkageType: ''
    returnType: mrb_input_stream_t
    signature: 'mrb_input_stream_t *

      mrb_input_stream_create(mrb_state *mrb, const char *base, mrb_int len, mrb_input_stream_free_callback
      free_cb, void *free_cb_data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_input_stream_create
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:118,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:119,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:120,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - base
    - len
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: mrb_input_stream_value
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_class_get
    - mrb_data_object_alloc
    - mrb_input_stream_create
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_value(mrb_state *mrb, const char *base,
      mrb_int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - mrb
    - self
    - base
    - len
    - pos
    - free_cb
    - free_cb_data
    argTypes:
    - mrb_state*
    - mrb_value
    - char**
    - mrb_int*
    - mrb_int*
    - mrb_input_stream_free_callback*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: mrb_input_stream_get_data
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    linkageType: ''
    returnType: void
    signature: void mrb_input_stream_get_data(mrb_state *mrb, mrb_value self, const
      char **base, mrb_int *len, mrb_int *pos, mrb_input_stream_free_callback *free_cb,
      void **free_cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:145,1
    - Dst: mrb_input_stream_t*::free_cb
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:148,1
    - Dst: setup_stream
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - mrb
    - self
    - base
    - len
    - pos
    - free_cb
    - free_cb_data
    argTypes:
    - mrb_state*
    - mrb_value
    - char*
    - mrb_int
    - mrb_int
    - mrb_input_stream_free_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: mrb_input_stream_set_data
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_input_stream_t*::free_cb
    - setup_stream
    - DATA_PTR
    linkageType: ''
    returnType: void
    signature: void mrb_input_stream_set_data(mrb_state *mrb, mrb_value self, const
      char *base, mrb_int len, mrb_int pos, mrb_input_stream_free_callback free_cb,
      void *free_cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:155,1
    - Dst: assert_is_open
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:158,1
    - Dst: seek_char
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:161,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:163,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 8
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: mrb_input_stream_gets
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - assert_is_open
    - DATA_PTR
    - seek_char
    - mrb_str_new
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_gets(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - stream
    - chr
    argTypes:
    - mrb_input_stream_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: seek_char
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mrb_int
    signature: mrb_int seek_char(mrb_input_stream_t *stream, char chr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:199,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:200,1
    - Dst: assert_is_open
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:203,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:209,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:209,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:213,1
    - Dst: mrb_str_new
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:221,1
    - Dst: mrb_str_cat
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 194
    functionDepth: 11
    functionLinenumber: 194
    functionLinenumberEnd: 226
    functionName: mrb_input_stream_read
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - assert_is_open
    - mrb_str_cat
    - DATA_PTR
    - mrb_str_new_lit
    - mrb_get_args
    - mrb_str_new
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_read(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:231,1
    - Dst: assert_is_open
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: mrb_input_stream_rewind
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - assert_is_open
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_rewind(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:241,1
    - Dst: assert_is_open
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:244,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:246,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:248,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:248,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:251,1
    - Dst: seek_char
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:254,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:256,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 238
    functionDepth: 9
    functionLinenumber: 238
    functionLinenumberEnd: 260
    functionName: mrb_input_stream_byteindex
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - assert_is_open
    - DATA_PTR
    - mrb_raise
    - mrb_get_args
    - seek_char
    - mrb_fixnum_value
    - mrb_raisef
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_input_stream_byteindex(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:266,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:268,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:268,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:269,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:269,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:270,1
    - Dst: MRB_ARGS_BLOCK
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:270,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:271,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:271,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:272,1
    - Dst: MRB_ARGS_ANY
      Src: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: mrb_mruby_input_stream_gem_init
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_BLOCK
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_ARGS_ANY
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_input_stream_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: mrb_mruby_input_stream_gem_final
    functionSourceFile: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_input_stream_gem_final(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: htobe16
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: htole16
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: be16toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: le16toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: htobe32
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: htole32
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: be32toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: le32toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: htobe64
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: htole64
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: be64toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: le64toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: htobe16
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: htole16
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: be16toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: le16toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: htobe32
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: htole32
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: be32toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: le32toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: htobe64
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: htole64
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: be64toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: le64toh
    functionSourceFile: /src/h2o/deps/libyrmcds/yrmcds_portability.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: version
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 94
    functionName: usage
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 13
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:97,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:108,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - yrmcds_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: print_response
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_response(const yrmcds_response* r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/h2o/deps/libyrmcds/yc.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - yrmcds_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: write_data
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: void write_data(const yrmcds_response* r)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc.c:131,1
    - Dst: open
      Src: /src/h2o/deps/libyrmcds/yc.c:134,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/yc.c:140,1
    - Dst: realloc
      Src: /src/h2o/deps/libyrmcds/yc.c:144,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:146,1
    - Dst: read
      Src: /src/h2o/deps/libyrmcds/yc.c:153,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:155,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/yc.c:164,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - filename
    - pdata
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 166
    functionName: read_data
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 9
    functionsReached:
    - close
    - realloc
    - malloc
    - read
    - free
    - strcmp
    - open
    linkageType: ''
    returnType: size_t
    signature: size_t read_data(const char* filename, char** pdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: CHECK_ERROR
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERROR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: CHECK_RESPONSE
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RESPONSE(r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:189,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:190,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:192,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:193,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:194,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:196,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:197,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: cmd_noop
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - printf
    - fprintf
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_noop(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:204,1
    - Dst: yrmcds_get
      Src: /src/h2o/deps/libyrmcds/yc.c:209,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:209,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:210,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:212,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:213,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:216,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:218,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:219,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:221,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:222,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 228
    functionName: cmd_get
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - yrmcds_get
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - fprintf
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_get(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:232,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/yc.c:237,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:237,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:238,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:240,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:241,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:244,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:246,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:247,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:249,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:250,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: cmd_getk
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - fprintf
    - yrmcds_getk
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_getk(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:260,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:264,1
    - Dst: yrmcds_get_touch
      Src: /src/h2o/deps/libyrmcds/yc.c:268,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:268,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:269,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:271,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:272,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:275,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:277,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:278,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:280,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:281,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: cmd_gat
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - strtoull
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - yrmcds_get_touch
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_gat(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:291,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:295,1
    - Dst: yrmcds_getk_touch
      Src: /src/h2o/deps/libyrmcds/yc.c:299,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:299,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:300,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:302,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:303,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:306,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:308,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:309,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:311,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:312,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 318
    functionName: cmd_gatk
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - strtoull
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - fprintf
    - strlen
    - yrmcds_getk_touch
    linkageType: ''
    returnType: int
    signature: int cmd_gatk(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:322,1
    - Dst: yrmcds_lock_get
      Src: /src/h2o/deps/libyrmcds/yc.c:327,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:327,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:328,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:330,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:331,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:334,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:336,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:337,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:339,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:340,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:344,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:345,1
    - Dst: getchar
      Src: /src/h2o/deps/libyrmcds/yc.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 348
    functionName: cmd_lag
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_lock_get
    - getchar
    - fprintf
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_lag(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:352,1
    - Dst: yrmcds_lock_getk
      Src: /src/h2o/deps/libyrmcds/yc.c:357,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:357,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:358,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:360,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:361,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:364,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:366,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:367,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:369,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:370,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:374,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:375,1
    - Dst: getchar
      Src: /src/h2o/deps/libyrmcds/yc.c:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: cmd_lagk
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - getchar
    - fprintf
    - yrmcds_lock_getk
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_lagk(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:382,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:386,1
    - Dst: yrmcds_touch
      Src: /src/h2o/deps/libyrmcds/yc.c:390,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:390,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:391,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:393,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:394,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:397,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:399,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:400,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:402,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 408
    functionName: cmd_touch
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - strtoull
    - yrmcds_touch
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_touch(int argc, char** argv, yrmcds* s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:412,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:417,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:419,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:427,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:429,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:431,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/yc.c:435,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:435,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:437,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:438,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:440,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:441,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:444,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:446,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:447,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:449,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 455
    functionName: cmd_set
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - read_data
    - CHECK_ERROR
    - strtoull
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - fprintf
    - yrmcds_set
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_set(int argc, char** argv, yrmcds* s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:459,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:464,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:466,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:474,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:476,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:478,1
    - Dst: yrmcds_replace
      Src: /src/h2o/deps/libyrmcds/yc.c:482,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:482,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:484,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:485,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:487,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:488,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:491,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:493,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:494,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:496,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:497,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 502
    functionName: cmd_replace
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - read_data
    - CHECK_ERROR
    - strtoull
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - yrmcds_replace
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_replace(int argc, char** argv, yrmcds* s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:506,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:511,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:513,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:521,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:523,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:525,1
    - Dst: yrmcds_add
      Src: /src/h2o/deps/libyrmcds/yc.c:529,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:529,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:531,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:532,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:534,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:535,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:538,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:540,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:541,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:543,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:544,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 549
    functionName: cmd_add
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - read_data
    - CHECK_ERROR
    - strtoull
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - yrmcds_add
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_add(int argc, char** argv, yrmcds* s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:553,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:558,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:560,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:567,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:569,1
    - Dst: yrmcds_replace_unlock
      Src: /src/h2o/deps/libyrmcds/yc.c:573,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:573,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:575,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:576,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:578,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:579,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:582,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:584,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:585,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:587,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 593
    functionName: cmd_rau
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - read_data
    - CHECK_ERROR
    - strtoull
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - fprintf
    - yrmcds_replace_unlock
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_rau(int argc, char** argv, yrmcds* s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:597,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:601,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:606,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:610,1
    - Dst: yrmcds_incr
      Src: /src/h2o/deps/libyrmcds/yc.c:616,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:616,1
    - Dst: yrmcds_incr2
      Src: /src/h2o/deps/libyrmcds/yc.c:618,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:618,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:621,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:623,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:624,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:627,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:629,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:630,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:632,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:633,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 639
    functionName: cmd_incr
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - yrmcds_incr2
    - CHECK_ERROR
    - strtoull
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - printf
    - fprintf
    - yrmcds_incr
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_incr(int argc, char** argv, yrmcds* s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:643,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:647,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:652,1
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:656,1
    - Dst: yrmcds_decr
      Src: /src/h2o/deps/libyrmcds/yc.c:662,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:662,1
    - Dst: yrmcds_decr2
      Src: /src/h2o/deps/libyrmcds/yc.c:664,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:664,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:667,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:669,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:670,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:673,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:675,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:676,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:678,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:679,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:683,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 685
    functionName: cmd_decr
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - strtoull
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - yrmcds_decr2
    - printf
    - fprintf
    - yrmcds_decr
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_decr(int argc, char** argv, yrmcds* s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:689,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:694,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:696,1
    - Dst: yrmcds_append
      Src: /src/h2o/deps/libyrmcds/yc.c:702,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:702,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:704,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:705,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:707,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:708,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:711,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:713,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:714,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:716,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 722
    functionName: cmd_append
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - read_data
    - CHECK_ERROR
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_append
    - yrmcds_noop
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_append(int argc, char** argv, yrmcds* s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:726,1
    - Dst: read_data
      Src: /src/h2o/deps/libyrmcds/yc.c:731,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:733,1
    - Dst: yrmcds_prepend
      Src: /src/h2o/deps/libyrmcds/yc.c:739,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:739,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/yc.c:741,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:742,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:744,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:745,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:748,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:750,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:751,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:753,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:754,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 759
    functionName: cmd_prepend
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - yrmcds_prepend
    - print_response
    - read_data
    - CHECK_ERROR
    - free
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_noop
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_prepend(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:763,1
    - Dst: yrmcds_remove
      Src: /src/h2o/deps/libyrmcds/yc.c:768,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:768,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:769,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:771,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:772,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:775,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:777,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:778,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:780,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:781,1
    - Dst: write_data
      Src: /src/h2o/deps/libyrmcds/yc.c:785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 787
    functionName: cmd_delete
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - write_data
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - fprintf
    - strlen
    - yrmcds_noop
    - yrmcds_remove
    linkageType: ''
    returnType: int
    signature: int cmd_delete(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:791,1
    - Dst: yrmcds_lock
      Src: /src/h2o/deps/libyrmcds/yc.c:796,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:796,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:797,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:799,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:800,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:803,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:805,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:806,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:808,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:809,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:813,1
    - Dst: getchar
      Src: /src/h2o/deps/libyrmcds/yc.c:814,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 816
    functionName: cmd_lock
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - getchar
    - yrmcds_lock
    - fprintf
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_lock(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:820,1
    - Dst: yrmcds_unlock
      Src: /src/h2o/deps/libyrmcds/yc.c:825,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:825,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:826,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:828,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:829,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:832,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:834,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:835,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:837,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:838,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 843
    functionName: cmd_unlock
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_unlock
    - fprintf
    - strlen
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_unlock(int argc, char** argv, yrmcds* s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_unlockall
      Src: /src/h2o/deps/libyrmcds/yc.c:848,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:849,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:851,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:852,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:855,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:857,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:858,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:860,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 866
    functionName: cmd_unlockall
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - yrmcds_unlockall
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - fprintf
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_unlockall(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/h2o/deps/libyrmcds/yc.c:871,1
    - Dst: yrmcds_flush
      Src: /src/h2o/deps/libyrmcds/yc.c:875,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:876,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/yc.c:878,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:879,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:882,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:884,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:885,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:887,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 893
    functionName: cmd_flush
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - strtoull
    - yrmcds_recv
    - CHECK_RESPONSE
    - yrmcds_flush
    - fprintf
    - yrmcds_noop
    linkageType: ''
    returnType: int
    signature: int cmd_flush(int argc, char** argv, yrmcds* s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc.c:900,1
    - Dst: yrmcds_stat_settings
      Src: /src/h2o/deps/libyrmcds/yc.c:901,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc.c:902,1
    - Dst: yrmcds_stat_items
      Src: /src/h2o/deps/libyrmcds/yc.c:903,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc.c:904,1
    - Dst: yrmcds_stat_sizes
      Src: /src/h2o/deps/libyrmcds/yc.c:905,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:907,1
    - Dst: yrmcds_stat_general
      Src: /src/h2o/deps/libyrmcds/yc.c:911,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:913,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:915,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:916,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:918,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:919,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:924,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 928
    functionName: cmd_stat
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - yrmcds_stat_items
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - strcmp
    - yrmcds_stat_settings
    - yrmcds_stat_general
    - printf
    - fprintf
    - yrmcds_stat_sizes
    linkageType: ''
    returnType: int
    signature: int cmd_stat(int argc, char** argv, yrmcds* s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc.c:935,1
    - Dst: yrmcds_keys
      Src: /src/h2o/deps/libyrmcds/yc.c:939,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:940,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:942,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:944,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:945,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:947,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:948,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 956
    functionName: cmd_keys
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - yrmcds_keys
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_keys(int argc, char** argv, yrmcds* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_version
      Src: /src/h2o/deps/libyrmcds/yc.c:961,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:962,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:963,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:964,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:966,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:967,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 970
    functionName: cmd_version
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - yrmcds_version
    - print_response
    - CHECK_ERROR
    - yrmcds_recv
    - CHECK_RESPONSE
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd_version(int argc, char** argv, yrmcds* s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_quit
      Src: /src/h2o/deps/libyrmcds/yc.c:975,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:976,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:978,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/yc.c:980,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:981,1
    - Dst: print_response
      Src: /src/h2o/deps/libyrmcds/yc.c:983,1
    - Dst: CHECK_RESPONSE
      Src: /src/h2o/deps/libyrmcds/yc.c:984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - argc
    - argv
    - s
    argTypes:
    - int
    - char**
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 987
    functionName: cmd_quit
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 0
    functionsReached:
    - print_response
    - CHECK_ERROR
    - yrmcds_quit
    - yrmcds_recv
    - CHECK_RESPONSE
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_quit(int argc, char** argv, yrmcds* s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/h2o/deps/libyrmcds/yc.c:997,1
    - Dst: atoi
      Src: /src/h2o/deps/libyrmcds/yc.c:1004,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:1006,1
    - Dst: atoi
      Src: /src/h2o/deps/libyrmcds/yc.c:1012,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:1014,1
    - Dst: version
      Src: /src/h2o/deps/libyrmcds/yc.c:1029,1
    - Dst: usage
      Src: /src/h2o/deps/libyrmcds/yc.c:1032,1
    - Dst: usage
      Src: /src/h2o/deps/libyrmcds/yc.c:1040,1
    - Dst: yrmcds_connect
      Src: /src/h2o/deps/libyrmcds/yc.c:1049,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:1050,1
    - Dst: yrmcds_text_mode
      Src: /src/h2o/deps/libyrmcds/yc.c:1052,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:1053,1
    - Dst: yrmcds_set_compression
      Src: /src/h2o/deps/libyrmcds/yc.c:1055,1
    - Dst: yrmcds_close
      Src: /src/h2o/deps/libyrmcds/yc.c:1057,1
    - Dst: CHECK_ERROR
      Src: /src/h2o/deps/libyrmcds/yc.c:1058,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1068,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1069,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1070,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1071,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1072,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1073,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1074,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1075,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1076,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1077,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1078,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1079,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1080,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1081,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1082,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1083,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1085,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1086,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1087,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1088,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1089,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1090,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1091,1
    - Dst: do_cmd
      Src: /src/h2o/deps/libyrmcds/yc.c:1092,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc.c:1094,1
    - Dst: yrmcds_close
      Src: /src/h2o/deps/libyrmcds/yc.c:1097,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1099
    functionName: main
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 9
    functionsReached:
    - yrmcds_connect
    - getopt
    - do_cmd
    - yrmcds_set_compression
    - CHECK_ERROR
    - yrmcds_text_mode
    - atoi
    - fprintf
    - usage
    - version
    - yrmcds_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1067
    functionName: do_cmd
    functionSourceFile: /src/h2o/deps/libyrmcds/yc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_cmd(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/h2o/deps/libyrmcds/socket.c:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: yrmcds_shutdown
    functionSourceFile: /src/h2o/deps/libyrmcds/socket.c
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_shutdown(yrmcds* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: yrmcds_fileno
    functionSourceFile: /src/h2o/deps/libyrmcds/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yrmcds_fileno(yrmcds* c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/libyrmcds/socket.c:30,1
    - Dst: setsockopt
      Src: /src/h2o/deps/libyrmcds/socket.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - yrmcds*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: yrmcds_set_timeout
    functionSourceFile: /src/h2o/deps/libyrmcds/socket.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_set_timeout(yrmcds* c, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe64
      Src: /src/h2o/deps/libyrmcds/send.c:22,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: hton64
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htobe64
    linkageType: ''
    returnType: void
    signature: void hton64(uint64_t i, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/h2o/deps/libyrmcds/send.c:27,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: hton32
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htobe32
    linkageType: ''
    returnType: void
    signature: void hton32(uint32_t i, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe16
      Src: /src/h2o/deps/libyrmcds/send.c:32,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: hton16
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 0
    functionsReached:
    - htobe16
    - memcpy
    linkageType: ''
    returnType: void
    signature: void hton16(uint16_t i, char* p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/libyrmcds/send.c:49,1
    - Dst: hton16
      Src: /src/h2o/deps/libyrmcds/send.c:52,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:55,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:56,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/libyrmcds/send.c:59,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send.c:68,1
    - Dst: writev
      Src: /src/h2o/deps/libyrmcds/send.c:94,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 10
    argNames:
    - c
    - cmd
    - cas
    - serial
    - key_len
    - key
    - extras_len
    - extras
    - data_len
    - data
    argTypes:
    - yrmcds*
    - yrmcds_command
    - uint64_t
    - uint32_t*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 123
    functionName: send_command
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 0
    functionsReached:
    - hton32
    - pthread_mutex_lock
    - hton16
    - memcpy
    - writev
    - hton64
    - memset
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error send_command(\n    yrmcds* c, yrmcds_command cmd, uint64_t
      cas, uint32_t* serial,\n    size_t key_len, const char* key,\n    size_t extras_len,
      const char* extras,\n    size_t data_len, const char* data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LZ4_compressBound
      Src: /src/h2o/deps/libyrmcds/send.c:139,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/send.c:140,1
    - Dst: LZ4_compress
      Src: /src/h2o/deps/libyrmcds/send.c:144,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/send.c:147,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:150,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:159,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:160,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:161,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/send.c:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 10
    argNames:
    - c
    - cmd
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - serial
    argTypes:
    - yrmcds*
    - yrmcds_command
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 166
    functionName: send_data
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - malloc
    - hton32
    - send_command
    - free
    - LZ4_compress
    - LZ4_compressBound
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error send_data(\n    yrmcds* c, yrmcds_command cmd, const
      char* key, size_t key_len,\n    const char* data, size_t data_len, uint32_t
      flags, uint32_t expire,\n    uint64_t cas, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: yrmcds_noop
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 21
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_noop(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_get
      Src: /src/h2o/deps/libyrmcds/send.c:185,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: yrmcds_get
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 2
    functionsReached:
    - send_command
    - yrmcds_text_get
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_get(yrmcds* c, const char* key, size_t key_len,\n
      \                       int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_get
      Src: /src/h2o/deps/libyrmcds/send.c:197,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: yrmcds_getk
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - yrmcds_text_get
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_getk(yrmcds* c, const char* key, size_t key_len,\n
      \                        int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:212,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: yrmcds_get_touch
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - hton32
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_get_touch(yrmcds* c, const char* key, size_t key_len,\n
      \                             uint32_t expire, int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:227,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: yrmcds_getk_touch
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - hton32
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_getk_touch(yrmcds* c, const char* key, size_t
      key_len,\n                               uint32_t expire, int quiet, uint32_t*
      serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: yrmcds_lock_get
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_lock_get(yrmcds* c, const char* key, size_t key_len,\n
      \                            int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: yrmcds_lock_getk
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_lock_getk(yrmcds* c, const char* key, size_t key_len,\n
      \                             int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_touch
      Src: /src/h2o/deps/libyrmcds/send.c:263,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:266,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: yrmcds_touch
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - hton32
    - yrmcds_text_touch
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_touch(yrmcds* c, const char* key, size_t key_len,\n
      \                         uint32_t expire, int quiet, uint32_t* serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_set
      Src: /src/h2o/deps/libyrmcds/send.c:276,1
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: yrmcds_set
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 2
    functionsReached:
    - yrmcds_text_set
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_set(yrmcds* c, const char* key, size_t key_len,\n
      \                       const char* data, size_t data_len,\n                        uint32_t
      flags, uint32_t expire, uint64_t cas,\n                        int quiet, uint32_t*
      serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_replace
      Src: /src/h2o/deps/libyrmcds/send.c:288,1
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: yrmcds_replace
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_data
    - yrmcds_text_replace
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_replace(yrmcds* c, const char* key, size_t key_len,\n
      \                           const char* data, size_t data_len,\n                            uint32_t
      flags, uint32_t expire, uint64_t cas,\n                            int quiet,
      uint32_t* serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_add
      Src: /src/h2o/deps/libyrmcds/send.c:300,1
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 305
    functionName: yrmcds_add
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 2
    functionsReached:
    - yrmcds_text_add
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_add(yrmcds* c, const char* key, size_t key_len,\n
      \                       const char* data, size_t data_len,\n                        uint32_t
      flags, uint32_t expire, uint64_t cas,\n                        int quiet, uint32_t*
      serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 9
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: yrmcds_replace_unlock
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_replace_unlock(yrmcds* c, const char* key, size_t
      key_len,\n                                   const char* data, size_t data_len,\n
      \                                  uint32_t flags, uint32_t expire,\n                                   int
      quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_incr
      Src: /src/h2o/deps/libyrmcds/send.c:324,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:327,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:328,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:329,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - value
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 333
    functionName: yrmcds_incr
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - hton64
    - send_command
    - hton32
    - yrmcds_text_incr
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_incr(yrmcds* c, const char* key, size_t key_len,\n
      \                        uint64_t value, int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:345,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:346,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:347,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 8
    argNames:
    - c
    - key
    - key_len
    - value
    - initial
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - uint64_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: yrmcds_incr2
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - hton64
    - hton32
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_incr2(yrmcds* c, const char* key, size_t key_len,\n
      \                         uint64_t value, uint64_t initial, uint32_t expire,\n
      \                         int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_decr
      Src: /src/h2o/deps/libyrmcds/send.c:359,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:362,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:363,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:364,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - value
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 368
    functionName: yrmcds_decr
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - hton64
    - yrmcds_text_decr
    - hton32
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_decr(yrmcds* c, const char* key, size_t key_len,\n
      \                        uint64_t value, int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:380,1
    - Dst: hton64
      Src: /src/h2o/deps/libyrmcds/send.c:381,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:382,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 8
    argNames:
    - c
    - key
    - key_len
    - value
    - initial
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - uint64_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: yrmcds_decr2
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - hton64
    - hton32
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_decr2(yrmcds* c, const char* key, size_t key_len,\n
      \                         uint64_t value, uint64_t initial, uint32_t expire,\n
      \                         int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_append
      Src: /src/h2o/deps/libyrmcds/send.c:396,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 7
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: yrmcds_append
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - yrmcds_text_append
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_append(yrmcds* c, const char* key, size_t key_len,\n
      \                          const char* data, size_t data_len,\n                           int
      quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_prepend
      Src: /src/h2o/deps/libyrmcds/send.c:411,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 7
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 416
    functionName: yrmcds_prepend
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - yrmcds_text_prepend
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_prepend(yrmcds* c, const char* key, size_t key_len,\n
      \                           const char* data, size_t data_len,\n                            int
      quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_remove
      Src: /src/h2o/deps/libyrmcds/send.c:424,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: yrmcds_remove
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 2
    functionsReached:
    - yrmcds_text_remove
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_remove(yrmcds* c, const char* key, size_t key_len,\n
      \                          int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: yrmcds_lock
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_lock(yrmcds* c, const char* key, size_t key_len,\n
      \                        int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 452
    functionName: yrmcds_unlock
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_unlock(yrmcds* c, const char* key, size_t key_len,\n
      \                          int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - c
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: yrmcds_unlockall
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_unlockall(yrmcds* c, int quiet, uint32_t* serial)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_flush
      Src: /src/h2o/deps/libyrmcds/send.c:471,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:474,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send.c:478,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - delay
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 481
    functionName: yrmcds_flush
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - yrmcds_text_flush
    - hton32
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_flush(yrmcds* c, uint32_t delay,\n                          int
      quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: yrmcds_stat_general
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_stat_general(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: yrmcds_stat_settings
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_stat_settings(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 516
    functionName: yrmcds_stat_items
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_stat_items(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: yrmcds_stat_sizes
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_stat_sizes(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - c
    - prefix
    - prefix_len
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 542
    functionName: yrmcds_keys
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_keys(yrmcds* c, const char* prefix, size_t prefix_len,\n
      \                        uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_version
      Src: /src/h2o/deps/libyrmcds/send.c:549,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 553
    functionName: yrmcds_version
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - yrmcds_text_version
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_version(yrmcds* c, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_text_quit
      Src: /src/h2o/deps/libyrmcds/send.c:560,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send.c:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - c
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 564
    functionName: yrmcds_quit
    functionSourceFile: /src/h2o/deps/libyrmcds/send.c
    functionUses: 1
    functionsReached:
    - send_command
    - yrmcds_text_quit
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_quit(yrmcds* c, int quiet, uint32_t* serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/close.c:14,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/deps/libyrmcds/close.c:17,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/close.c:19,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/close.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: yrmcds_close
    functionSourceFile: /src/h2o/deps/libyrmcds/close.c
    functionUses: 3
    functionsReached:
    - close
    - free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_close(yrmcds* c)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - e
    argTypes:
    - yrmcds_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 34
    functionName: yrmcds_strerror
    functionSourceFile: /src/h2o/deps/libyrmcds/strerror.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * yrmcds_strerror(yrmcds_error e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/libyrmcds/recv.c:25,1
    - Dst: recv
      Src: /src/h2o/deps/libyrmcds/recv.c:34,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: recv_data
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 0
    functionsReached:
    - realloc
    - recv
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error recv_data(yrmcds* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/recv.c:47,1
    - Dst: be64toh
      Src: /src/h2o/deps/libyrmcds/recv.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: ntoh64
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 1
    functionsReached:
    - memcpy
    - be64toh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ntoh64(const char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/recv.c:53,1
    - Dst: be32toh
      Src: /src/h2o/deps/libyrmcds/recv.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: ntoh32
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 1
    functionsReached:
    - memcpy
    - be32toh
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ntoh32(const char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/recv.c:59,1
    - Dst: be16toh
      Src: /src/h2o/deps/libyrmcds/recv.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: ntoh16
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 2
    functionsReached:
    - memcpy
    - be16toh
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ntoh16(const char* p)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/libyrmcds/recv.c:74,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/recv.c:77,1
    - Dst: text_recv
      Src: /src/h2o/deps/libyrmcds/recv.c:82,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/recv.c:86,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/recv.c:94,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/recv.c:100,1
    - Dst: ntoh16
      Src: /src/h2o/deps/libyrmcds/recv.c:104,1
    - Dst: ntoh16
      Src: /src/h2o/deps/libyrmcds/recv.c:116,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/recv.c:117,1
    - Dst: ntoh64
      Src: /src/h2o/deps/libyrmcds/recv.c:118,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/recv.c:125,1
    - Dst: ntoh64
      Src: /src/h2o/deps/libyrmcds/recv.c:140,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/recv.c:155,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/recv.c:162,1
    - Dst: LZ4_decompress_safe
      Src: /src/h2o/deps/libyrmcds/recv.c:165,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - yrmcds*
    - yrmcds_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 180
    functionName: yrmcds_recv
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 27
    functionsReached:
    - malloc
    - LZ4_decompress_safe
    - recv_data
    - free
    - ntoh16
    - text_recv
    - memcpy
    - memmove
    - ntoh64
    - ntoh32
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_recv(yrmcds* c, yrmcds_response* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: PARSE_UINT
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_UINT(name)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/deps/libyrmcds/recv.c:196,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/recv.c:197,1
    - Dst: memset
      Src: /src/h2o/deps/libyrmcds/recv.c:208,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:214,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:218,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:223,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:228,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:232,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:239,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:242,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:246,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:251,1
    - Dst: PARSE_UINT
      Src: /src/h2o/deps/libyrmcds/recv.c:259,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:263,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:269,1
    - Dst: memchr
      Src: /src/h2o/deps/libyrmcds/recv.c:275,1
    - Dst: PARSE_UINT
      Src: /src/h2o/deps/libyrmcds/recv.c:281,1
    - Dst: PARSE_UINT
      Src: /src/h2o/deps/libyrmcds/recv.c:285,1
    - Dst: PARSE_UINT
      Src: /src/h2o/deps/libyrmcds/recv.c:294,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/recv.c:298,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/recv.c:303,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/recv.c:317,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/recv.c:324,1
    - Dst: LZ4_decompress_safe
      Src: /src/h2o/deps/libyrmcds/recv.c:327,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/recv.c:347,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 144
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - yrmcds*
    - yrmcds_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 353
    functionName: text_recv
    functionSourceFile: /src/h2o/deps/libyrmcds/recv.c
    functionUses: 1
    functionsReached:
    - malloc
    - memcmp
    - LZ4_decompress_safe
    - recv_data
    - memchr
    - PARSE_UINT
    - ntoh32
    - fprintf
    - memset
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error text_recv(yrmcds* c, yrmcds_response* r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_recv
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:27,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:29,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:30,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:31,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - c
    - r
    - serial
    argTypes:
    - yrmcds_cnt*
    - yrmcds_cnt_response*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: recv_or_die
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - yrmcds_cnt_recv
    - exit
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: void recv_or_die(yrmcds_cnt* c, yrmcds_cnt_response* r, uint32_t serial)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_noop
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:43,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:45,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:46,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:47,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:48,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:52,1
    - Dst: puts
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:55,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:57,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:58,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: cmd_noop
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - puts
    - yrmcds_cnt_noop
    - exit
    - recv_or_die
    - printf
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: void cmd_noop(yrmcds_cnt* c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_get
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:68,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:70,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:71,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:72,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:73,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:77,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:80,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:82,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:83,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - c
    - name
    - name_len
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: cmd_get
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - yrmcds_cnt_get
    - exit
    - recv_or_die
    - printf
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: "void cmd_get(yrmcds_cnt* c,\n                    const char* name,
      size_t name_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_acquire
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:94,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:96,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:97,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:98,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:99,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:103,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:106,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:108,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:109,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - c
    - name
    - name_len
    - resouces
    - initial
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 112
    functionName: cmd_acquire
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - yrmcds_cnt_acquire
    - exit
    - recv_or_die
    - printf
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: "void cmd_acquire(yrmcds_cnt* c,\n                        const char*
      name, size_t name_len,\n                        uint32_t resouces, uint32_t
      initial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_release
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:120,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:122,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:123,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:124,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:125,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:129,1
    - Dst: puts
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:132,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:134,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:135,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - c
    - name
    - name_len
    - resouces
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: cmd_release
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - puts
    - exit
    - recv_or_die
    - printf
    - fprintf
    - yrmcds_cnt_release
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: "void cmd_release(yrmcds_cnt* c,\n                        const char*
      name, size_t name_len,\n                        uint32_t resouces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_stats
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:144,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:146,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:147,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:148,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:149,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:153,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:159,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:163,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:164,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 167
    functionName: cmd_stats
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - yrmcds_cnt_stats
    - exit
    - recv_or_die
    - printf
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: void cmd_stats(yrmcds_cnt* c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_cnt_dump
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:173,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:175,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:176,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:177,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:178,1
    - Dst: recv_or_die
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:183,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:186,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:187,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:188,1
    - Dst: printf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 196
    functionName: cmd_dump
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 0
    functionsReached:
    - exit
    - recv_or_die
    - printf
    - yrmcds_cnt_dump
    - fprintf
    - yrmcds_strerror
    - yrmcds_cnt_close
    linkageType: ''
    returnType: void
    signature: void cmd_dump(yrmcds_cnt* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:199,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: usage
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 14
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:209,1
    - Dst: atoi
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:216,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:218,1
    - Dst: usage
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:224,1
    - Dst: usage
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:231,1
    - Dst: yrmcds_cnt_connect
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:237,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:239,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:240,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:241,1
    - Dst: yrmcds_cnt_set_timeout
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:243,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:245,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:247,1
    - Dst: cmd_noop
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:250,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:251,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:253,1
    - Dst: cmd_get
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:256,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:256,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:257,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:259,1
    - Dst: sscanf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:263,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:264,1
    - Dst: sscanf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:267,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:268,1
    - Dst: cmd_acquire
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:271,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:271,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:272,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:274,1
    - Dst: sscanf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:278,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:279,1
    - Dst: cmd_release
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:282,1
    - Dst: strlen
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:282,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:283,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:285,1
    - Dst: cmd_stats
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:288,1
    - Dst: strcmp
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:289,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:291,1
    - Dst: cmd_dump
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:294,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:296,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:300,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:304,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/yc-cnt.c:305,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 306
    functionName: main
    functionSourceFile: /src/h2o/deps/libyrmcds/yc-cnt.c
    functionUses: 9
    functionsReached:
    - getopt
    - yrmcds_cnt_connect
    - cmd_release
    - exit
    - atoi
    - cmd_stats
    - strcmp
    - cmd_noop
    - yrmcds_cnt_set_timeout
    - sscanf
    - cmd_acquire
    - cmd_dump
    - fprintf
    - usage
    - cmd_get
    - yrmcds_strerror
    - yrmcds_cnt_close
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - threshold
    argTypes:
    - yrmcds*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: yrmcds_set_compression
    functionSourceFile: /src/h2o/deps/libyrmcds/set_compression.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_set_compression(yrmcds* c, size_t threshold)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: EXPAND_STR
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_STR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/h2o/deps/libyrmcds/send_text.c:26,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send_text.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: hton32
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 10
    functionsReached:
    - memcpy
    - htobe32
    linkageType: ''
    returnType: void
    signature: void hton32(uint32_t i, char* p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - key
    - key_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: check_key
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error check_key(const char* key, size_t key_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - textbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: textbuf_length
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t textbuf_length(const textbuf_t* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - textbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: textbuf_init
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void textbuf_init(textbuf_t* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - c
    argTypes:
    - textbuf_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: textbuf_append_char
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void textbuf_append_char(textbuf_t* buf, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send_text.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - s
    - len
    argTypes:
    - textbuf_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: textbuf_append_string
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void textbuf_append_string(textbuf_t* buf, const char* s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: textbuf_append_const_string
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: textbuf_append_const_string(b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - textbuf_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: textbuf_append_uint64
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 0
    functionsReached:
    - textbuf_append_string
    linkageType: ''
    returnType: void
    signature: void textbuf_append_uint64(textbuf_t* buf, uint64_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/send_text.c:95,1
    - Dst: textbuf_length
      Src: /src/h2o/deps/libyrmcds/send_text.c:98,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/libyrmcds/send_text.c:101,1
    - Dst: send
      Src: /src/h2o/deps/libyrmcds/send_text.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - c
    - buf
    - serial
    argTypes:
    - yrmcds*
    - textbuf_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: send_command
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 27
    functionsReached:
    - memcpy
    - pthread_mutex_lock
    - send
    - textbuf_length
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error send_command(yrmcds* c, textbuf_t* buf, uint32_t* serial)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:142,1
    - Dst: LZ4_compressBound
      Src: /src/h2o/deps/libyrmcds/send_text.c:156,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/send_text.c:157,1
    - Dst: LZ4_compress
      Src: /src/h2o/deps/libyrmcds/send_text.c:161,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/send_text.c:164,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/send_text.c:167,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:176,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:179,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:180,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:181,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:182,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:183,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:184,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:185,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:186,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:187,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:189,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:190,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:192,1
    - Dst: textbuf_length
      Src: /src/h2o/deps/libyrmcds/send_text.c:197,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/libyrmcds/send_text.c:204,1
    - Dst: writev
      Src: /src/h2o/deps/libyrmcds/send_text.c:216,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/send_text.c:245,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 12
    argNames:
    - c
    - cmd
    - cmd_len
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 247
    functionName: send_data
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 5
    functionsReached:
    - malloc
    - hton32
    - free
    - LZ4_compress
    - check_key
    - textbuf_append_char
    - pthread_mutex_lock
    - textbuf_length
    - LZ4_compressBound
    - writev
    - textbuf_append_uint64
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error send_data(yrmcds* c, const char* cmd, size_t cmd_len,\n
      \         const char* key, size_t key_len,\n          const char* data, size_t
      data_len,\n          uint32_t flags, uint32_t expire, uint64_t cas,\n          int
      quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:257,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:261,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:263,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:264,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: yrmcds_text_get
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 2
    functionsReached:
    - send_command
    - check_key
    - textbuf_append_const_string
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_get(yrmcds* c, const char* key, size_t key_len,\n
      \                            int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:275,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:279,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:281,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:282,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:283,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:284,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - expire
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: yrmcds_text_touch
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - check_key
    - textbuf_append_char
    - textbuf_append_const_string
    - textbuf_append_uint64
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_touch(yrmcds* c, const char* key, size_t
      key_len,\n                               uint32_t expire, int quiet, uint32_t*
      serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send_text.c:293,1
    - Dst: EXPAND_STR
      Src: /src/h2o/deps/libyrmcds/send_text.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: yrmcds_text_set
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - EXPAND_STR
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_set(yrmcds* c, const char* key, size_t key_len,\n
      \                            const char* data, size_t data_len,\n                             uint32_t
      flags, uint32_t expire, uint64_t cas,\n                             int quiet,
      uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send_text.c:301,1
    - Dst: EXPAND_STR
      Src: /src/h2o/deps/libyrmcds/send_text.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: yrmcds_text_replace
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - EXPAND_STR
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_replace(yrmcds* c, const char* key, size_t
      key_len,\n                                 const char* data, size_t data_len,\n
      \                                uint32_t flags, uint32_t expire, uint64_t cas,\n
      \                                int quiet, uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send_text.c:309,1
    - Dst: EXPAND_STR
      Src: /src/h2o/deps/libyrmcds/send_text.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - flags
    - expire
    - cas
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: yrmcds_text_add
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - EXPAND_STR
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_add(yrmcds* c, const char* key, size_t key_len,\n
      \                            const char* data, size_t data_len,\n                             uint32_t
      flags, uint32_t expire, uint64_t cas,\n                             int quiet,
      uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send_text.c:316,1
    - Dst: EXPAND_STR
      Src: /src/h2o/deps/libyrmcds/send_text.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: yrmcds_text_append
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - EXPAND_STR
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_append(yrmcds* c, const char* key, size_t
      key_len,\n                                const char* data, size_t data_len,\n
      \                               int quiet, uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_data
      Src: /src/h2o/deps/libyrmcds/send_text.c:323,1
    - Dst: EXPAND_STR
      Src: /src/h2o/deps/libyrmcds/send_text.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - c
    - key
    - key_len
    - data
    - data_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: yrmcds_text_prepend
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - EXPAND_STR
    - send_data
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_prepend(yrmcds* c, const char* key, size_t
      key_len,\n                                 const char* data, size_t data_len,\n
      \                                int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:333,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:337,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:339,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:340,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:341,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:342,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - value
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 345
    functionName: yrmcds_text_incr
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - check_key
    - textbuf_append_char
    - textbuf_append_const_string
    - textbuf_append_uint64
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_incr(yrmcds* c, const char* key, size_t key_len,\n
      \                             uint64_t value, int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:353,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:357,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:359,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:360,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:361,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:362,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - c
    - key
    - key_len
    - value
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - uint64_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 365
    functionName: yrmcds_text_decr
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - check_key
    - textbuf_append_char
    - textbuf_append_const_string
    - textbuf_append_uint64
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_decr(yrmcds* c, const char* key, size_t key_len,\n
      \                             uint64_t value, int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_key
      Src: /src/h2o/deps/libyrmcds/send_text.c:373,1
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:377,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:379,1
    - Dst: textbuf_append_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:380,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - c
    - key
    - key_len
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - char*
    - size_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 383
    functionName: yrmcds_text_remove
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - check_key
    - textbuf_append_const_string
    - textbuf_init
    - textbuf_append_string
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_remove(yrmcds* c, const char* key, size_t
      key_len,\n                                int quiet, uint32_t* serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:391,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:393,1
    - Dst: textbuf_append_char
      Src: /src/h2o/deps/libyrmcds/send_text.c:395,1
    - Dst: textbuf_append_uint64
      Src: /src/h2o/deps/libyrmcds/send_text.c:396,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - delay
    - quiet
    - serial
    argTypes:
    - yrmcds*
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: yrmcds_text_flush
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - textbuf_append_char
    - textbuf_append_const_string
    - textbuf_append_uint64
    - textbuf_init
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_text_flush(yrmcds* c, uint32_t delay,\n                               int
      quiet, uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:404,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:405,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: yrmcds_text_version
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - textbuf_init
    - textbuf_append_const_string
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_text_version(yrmcds* c, uint32_t* serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: textbuf_init
      Src: /src/h2o/deps/libyrmcds/send_text.c:411,1
    - Dst: textbuf_append_const_string
      Src: /src/h2o/deps/libyrmcds/send_text.c:412,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/send_text.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: yrmcds_text_quit
    functionSourceFile: /src/h2o/deps/libyrmcds/send_text.c
    functionUses: 1
    functionsReached:
    - send_command
    - textbuf_init
    - textbuf_append_const_string
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_text_quit(yrmcds* c, uint32_t* serial)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/deps/libyrmcds/connect.c:29,1
    - Dst: memset
      Src: /src/h2o/deps/libyrmcds/connect.c:32,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/libyrmcds/connect.c:36,1
    - Dst: getaddrinfo
      Src: /src/h2o/deps/libyrmcds/connect.c:49,1
    - Dst: socket
      Src: /src/h2o/deps/libyrmcds/connect.c:57,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/libyrmcds/connect.c:65,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:70,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:71,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:72,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:73,1
    - Dst: connect
      Src: /src/h2o/deps/libyrmcds/connect.c:75,1
    - Dst: freeaddrinfo
      Src: /src/h2o/deps/libyrmcds/connect.c:76,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:79,1
    - Dst: poll
      Src: /src/h2o/deps/libyrmcds/connect.c:88,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:90,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:95,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:101,1
    - Dst: getsockopt
      Src: /src/h2o/deps/libyrmcds/connect.c:105,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:106,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:110,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:115,1
    - Dst: fcntl
      Src: /src/h2o/deps/libyrmcds/connect.c:116,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:118,1
    - Dst: setsockopt
      Src: /src/h2o/deps/libyrmcds/connect.c:123,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:125,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 79
    argCount: 3
    argNames:
    - node
    - port
    - server_fd
    argTypes:
    - char*
    - uint16_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 131
    functionName: connect_to_server
    functionSourceFile: /src/h2o/deps/libyrmcds/connect.c
    functionUses: 0
    functionsReached:
    - close
    - getsockopt
    - setsockopt
    - freeaddrinfo
    - getaddrinfo
    - snprintf
    - fcntl
    - poll
    - connect
    - memset
    - socket
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error connect_to_server(const char* node, uint16_t port, int*
      server_fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/deps/libyrmcds/connect.c:137,1
    - Dst: connect_to_server
      Src: /src/h2o/deps/libyrmcds/connect.c:144,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/connect.c:150,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:152,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/deps/libyrmcds/connect.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - c
    - node
    - port
    argTypes:
    - yrmcds*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 166
    functionName: yrmcds_connect
    functionSourceFile: /src/h2o/deps/libyrmcds/connect.c
    functionUses: 3
    functionsReached:
    - close
    - malloc
    - connect_to_server
    - pthread_mutex_init
    - pthread_mutex_destroy
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_connect(yrmcds* c, const char* node, uint16_t port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/deps/libyrmcds/connect.c:172,1
    - Dst: connect_to_server
      Src: /src/h2o/deps/libyrmcds/connect.c:179,1
    - Dst: malloc
      Src: /src/h2o/deps/libyrmcds/connect.c:184,1
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/connect.c:186,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/deps/libyrmcds/connect.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - c
    - node
    - port
    argTypes:
    - yrmcds_cnt*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 199
    functionName: yrmcds_cnt_connect
    functionSourceFile: /src/h2o/deps/libyrmcds/connect.c
    functionUses: 1
    functionsReached:
    - close
    - malloc
    - connect_to_server
    - pthread_mutex_init
    - pthread_mutex_destroy
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_connect(yrmcds_cnt* c, const char* node, uint16_t
      port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/libyrmcds/text_mode.c:12,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 32
    functionName: yrmcds_text_mode
    functionSourceFile: /src/h2o/deps/libyrmcds/text_mode.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_text_mode(yrmcds* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/h2o/deps/libyrmcds/counter.c:25,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: hton32
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 11
    functionsReached:
    - memcpy
    - htobe32
    linkageType: ''
    returnType: void
    signature: void hton32(uint32_t i, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe16
      Src: /src/h2o/deps/libyrmcds/counter.c:30,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: hton16
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - htobe16
    - memcpy
    linkageType: ''
    returnType: void
    signature: void hton16(uint16_t i, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:36,1
    - Dst: be32toh
      Src: /src/h2o/deps/libyrmcds/counter.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: ntoh32
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 3
    functionsReached:
    - memcpy
    - be32toh
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ntoh32(const char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:42,1
    - Dst: be16toh
      Src: /src/h2o/deps/libyrmcds/counter.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: ntoh16
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 3
    functionsReached:
    - memcpy
    - be16toh
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ntoh16(const char* p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/deps/libyrmcds/counter.c:55,1
    - Dst: setsockopt
      Src: /src/h2o/deps/libyrmcds/counter.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - yrmcds_cnt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: yrmcds_cnt_set_timeout
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_set_timeout(yrmcds_cnt* c, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/deps/libyrmcds/counter.c:69,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/deps/libyrmcds/counter.c:72,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/counter.c:74,1
    - Dst: free
      Src: /src/h2o/deps/libyrmcds/counter.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: yrmcds_cnt_close
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 8
    functionsReached:
    - close
    - free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_close(yrmcds_cnt* c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/h2o/deps/libyrmcds/counter.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: yrmcds_cnt_shutdown
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 0
    functionsReached:
    - shutdown
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_shutdown(yrmcds_cnt* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: yrmcds_cnt_fileno
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yrmcds_cnt_fileno(yrmcds_cnt* c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/libyrmcds/counter.c:99,1
    - Dst: recv
      Src: /src/h2o/deps/libyrmcds/counter.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds_cnt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 117
    functionName: recv_data
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 2
    functionsReached:
    - realloc
    - recv
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error recv_data(yrmcds_cnt* c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/libyrmcds/counter.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - s
    - name_len
    - value_len
    - name
    - value
    argTypes:
    - yrmcds_cnt_statistics*
    - uint16_t
    - uint16_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: append_stat
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error append_stat(yrmcds_cnt_statistics* s,\n            uint16_t
      name_len, uint16_t value_len,\n            const char* name, const char* value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntoh16
      Src: /src/h2o/deps/libyrmcds/counter.c:153,1
    - Dst: ntoh16
      Src: /src/h2o/deps/libyrmcds/counter.c:154,1
    - Dst: append_stat
      Src: /src/h2o/deps/libyrmcds/counter.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - yrmcds_cnt*
    - yrmcds_cnt_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 164
    functionName: parse_statistics
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 0
    functionsReached:
    - ntoh16
    - append_stat
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error parse_statistics(yrmcds_cnt* c, const yrmcds_cnt_response*
      r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/counter.c:176,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/counter.c:177,1
    - Dst: ntoh16
      Src: /src/h2o/deps/libyrmcds/counter.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - yrmcds_cnt*
    - yrmcds_cnt_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: parse_dump_record
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 0
    functionsReached:
    - ntoh16
    - ntoh32
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error parse_dump_record(yrmcds_cnt* c, yrmcds_cnt_response*
      r)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/libyrmcds/counter.c:197,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/counter.c:203,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/counter.c:214,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:215,1
    - Dst: recv_data
      Src: /src/h2o/deps/libyrmcds/counter.c:225,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/counter.c:242,1
    - Dst: ntoh32
      Src: /src/h2o/deps/libyrmcds/counter.c:250,1
    - Dst: parse_statistics
      Src: /src/h2o/deps/libyrmcds/counter.c:254,1
    - Dst: parse_dump_record
      Src: /src/h2o/deps/libyrmcds/counter.c:263,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - yrmcds_cnt*
    - yrmcds_cnt_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 275
    functionName: yrmcds_cnt_recv
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - parse_dump_record
    - recv_data
    - memcpy
    - parse_statistics
    - memmove
    - ntoh32
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_recv(yrmcds_cnt* c, yrmcds_cnt_response* r)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/deps/libyrmcds/counter.c:288,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/counter.c:304,1
    - Dst: memcpy
      Src: /src/h2o/deps/libyrmcds/counter.c:305,1
    - Dst: writev
      Src: /src/h2o/deps/libyrmcds/counter.c:328,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/deps/libyrmcds/counter.c:347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 7
    argNames:
    - c
    - cmd
    - serial
    - body1_len
    - body1
    - body2_len
    - body2
    argTypes:
    - yrmcds_cnt*
    - yrmcds_cnt_command
    - uint32_t*
    - size_t
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 350
    functionName: send_command
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 35
    functionsReached:
    - hton32
    - pthread_mutex_lock
    - memcpy
    - writev
    - pthread_mutex_unlock
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error send_command(yrmcds_cnt* c, yrmcds_cnt_command cmd, uint32_t*
      serial,\n             size_t body1_len, const char* body1,\n             size_t
      body2_len, const char* body2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds_cnt*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: yrmcds_cnt_noop
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_noop(yrmcds_cnt* c, uint32_t* serial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hton16
      Src: /src/h2o/deps/libyrmcds/counter.c:365,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - c
    - name
    - name_len
    - serial
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    functionName: yrmcds_cnt_get
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - hton16
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_cnt_get(yrmcds_cnt* c, const char* name, size_t
      name_len,\n               uint32_t* serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/counter.c:378,1
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/counter.c:379,1
    - Dst: hton16
      Src: /src/h2o/deps/libyrmcds/counter.c:380,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 6
    argNames:
    - c
    - name
    - name_len
    - resources
    - initial
    - serial
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 383
    functionName: yrmcds_cnt_acquire
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - hton16
    - send_command
    - hton32
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_cnt_acquire(yrmcds_cnt* c, const char* name, size_t
      name_len,\n                   uint32_t resources, uint32_t initial, uint32_t*
      serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hton32
      Src: /src/h2o/deps/libyrmcds/counter.c:392,1
    - Dst: hton16
      Src: /src/h2o/deps/libyrmcds/counter.c:393,1
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - c
    - name
    - name_len
    - resources
    - serial
    argTypes:
    - yrmcds_cnt*
    - char*
    - size_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: yrmcds_cnt_release
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - hton16
    - send_command
    - hton32
    linkageType: ''
    returnType: yrmcds_error
    signature: "yrmcds_error yrmcds_cnt_release(yrmcds_cnt* c, const char* name, size_t
      name_len,\n                   uint32_t resources, uint32_t* serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds_cnt*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: yrmcds_cnt_stats
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_stats(yrmcds_cnt* c, uint32_t* serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_command
      Src: /src/h2o/deps/libyrmcds/counter.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - serial
    argTypes:
    - yrmcds_cnt*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: yrmcds_cnt_dump
    functionSourceFile: /src/h2o/deps/libyrmcds/counter.c
    functionUses: 1
    functionsReached:
    - send_command
    linkageType: ''
    returnType: yrmcds_error
    signature: yrmcds_error yrmcds_cnt_dump(yrmcds_cnt* c, uint32_t* serial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/t/t.h:14,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/t/t.h:14,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/t/t.h:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - yrmcds_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: check_error
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 0
    functionsReached:
    - exit
    - yrmcds_strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_error(yrmcds_error e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/deps/libyrmcds/t/t.h:19,1
    - Dst: getenv
      Src: /src/h2o/deps/libyrmcds/t/t.h:24,1
    - Dst: atoi
      Src: /src/h2o/deps/libyrmcds/t/t.h:25,1
    - Dst: getenv
      Src: /src/h2o/deps/libyrmcds/t/t.h:25,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/t.h:28,1
    - Dst: yrmcds_connect
      Src: /src/h2o/deps/libyrmcds/t/t.h:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: get_yrmcds
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_connect
    - getenv
    - atoi
    linkageType: ''
    returnType: yrmcds
    signature: yrmcds * get_yrmcds(yrmcds* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: TEST_MAIN
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MAIN()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_yrmcds
      Src: /src/h2o/deps/libyrmcds/t/t.h:38,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/t/t.h:40,1
    - Dst: test_main
      Src: /src/h2o/deps/libyrmcds/t/t.h:44,1
    - Dst: yrmcds_close
      Src: /src/h2o/deps/libyrmcds/t/t.h:45,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/t/t.h:48,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/t/t.h:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 10
    functionsReached:
    - get_yrmcds
    - test_main
    - fprintf
    - yrmcds_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_TEST(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: CALL_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_TEST(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - to_return
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: ASSERT
    functionSourceFile: /src/h2o/deps/libyrmcds/t/t.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(expr, to_return)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:7,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:7,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:10,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:10,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:13,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:13,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:14,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:15,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:17,1
    - Dst: yrmcds_get
      Src: /src/h2o/deps/libyrmcds/t/text.c:17,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:18,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:18,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:19,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:20,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:21,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:22,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:22,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:23,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:26,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:26,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:28,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:28,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:29,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:30,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:32,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:32,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:33,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:33,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:34,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:35,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:36,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:37,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:37,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:38,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:39,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:39,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:40,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:43,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:43,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:45,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:45,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:46,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:47,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:49,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:49,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:50,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:50,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:51,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:52,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:53,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:54,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:54,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:55,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:56,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:56,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:57,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:60,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:60,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:61,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:61,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:62,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:63,1
    - Dst: sleep
      Src: /src/h2o/deps/libyrmcds/t/text.c:65,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:67,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:67,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:68,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:68,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:69,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 71
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_get
    - memcmp
    - yrmcds_recv
    - sleep
    - yrmcds_set
    - ASSERT
    - yrmcds_getk
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:75,1
    - Dst: yrmcds_add
      Src: /src/h2o/deps/libyrmcds/t/text.c:75,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:78,1
    - Dst: yrmcds_add
      Src: /src/h2o/deps/libyrmcds/t/text.c:78,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:81,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:81,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:82,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:83,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:85,1
    - Dst: yrmcds_add
      Src: /src/h2o/deps/libyrmcds/t/text.c:85,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:86,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:86,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:87,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - ASSERT
    - yrmcds_recv
    - yrmcds_add
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:93,1
    - Dst: yrmcds_replace
      Src: /src/h2o/deps/libyrmcds/t/text.c:93,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:96,1
    - Dst: yrmcds_replace
      Src: /src/h2o/deps/libyrmcds/t/text.c:96,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:99,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:99,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:100,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:101,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:103,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:103,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:104,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:104,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:105,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:106,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:108,1
    - Dst: yrmcds_replace
      Src: /src/h2o/deps/libyrmcds/t/text.c:108,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:109,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:109,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:110,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 112
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_recv
    - yrmcds_replace
    - yrmcds_set
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(replace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:119,1
    - Dst: yrmcds_append
      Src: /src/h2o/deps/libyrmcds/t/text.c:119,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:121,1
    - Dst: yrmcds_append
      Src: /src/h2o/deps/libyrmcds/t/text.c:121,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:122,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:122,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:123,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:124,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:126,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:126,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:127,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:127,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:128,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:129,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:131,1
    - Dst: yrmcds_append
      Src: /src/h2o/deps/libyrmcds/t/text.c:131,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:132,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:132,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:133,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:134,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:136,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:136,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:137,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:137,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:138,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:139,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:140,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:141,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 142
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - memcmp
    - yrmcds_recv
    - yrmcds_append
    - yrmcds_set
    - ASSERT
    - yrmcds_getk
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(append)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:149,1
    - Dst: yrmcds_prepend
      Src: /src/h2o/deps/libyrmcds/t/text.c:149,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:151,1
    - Dst: yrmcds_prepend
      Src: /src/h2o/deps/libyrmcds/t/text.c:151,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:152,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:152,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:153,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:154,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:156,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:156,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:157,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:157,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:158,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:159,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:161,1
    - Dst: yrmcds_prepend
      Src: /src/h2o/deps/libyrmcds/t/text.c:161,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:162,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:162,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:163,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:164,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:166,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:166,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:167,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:167,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:168,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:169,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:170,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:171,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_prepend
    - memcmp
    - yrmcds_recv
    - yrmcds_set
    - ASSERT
    - yrmcds_getk
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(prepend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:179,1
    - Dst: yrmcds_touch
      Src: /src/h2o/deps/libyrmcds/t/text.c:179,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:181,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:181,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:182,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:182,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:183,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:184,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:186,1
    - Dst: yrmcds_touch
      Src: /src/h2o/deps/libyrmcds/t/text.c:186,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:187,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:187,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:188,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:189,1
    - Dst: sleep
      Src: /src/h2o/deps/libyrmcds/t/text.c:191,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:193,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:193,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:194,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:194,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:195,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 197
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_touch
    - yrmcds_recv
    - sleep
    - yrmcds_set
    - ASSERT
    - yrmcds_getk
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(touch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:204,1
    - Dst: yrmcds_incr
      Src: /src/h2o/deps/libyrmcds/t/text.c:204,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:205,1
    - Dst: yrmcds_decr
      Src: /src/h2o/deps/libyrmcds/t/text.c:205,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:207,1
    - Dst: yrmcds_incr
      Src: /src/h2o/deps/libyrmcds/t/text.c:207,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:208,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:208,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:209,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:210,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:212,1
    - Dst: yrmcds_decr
      Src: /src/h2o/deps/libyrmcds/t/text.c:212,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:213,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:213,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:214,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:215,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:217,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:217,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:218,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:218,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:219,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:220,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:222,1
    - Dst: yrmcds_incr
      Src: /src/h2o/deps/libyrmcds/t/text.c:222,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:223,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:223,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:224,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:225,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:226,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:228,1
    - Dst: yrmcds_decr
      Src: /src/h2o/deps/libyrmcds/t/text.c:228,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:229,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:229,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:230,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:231,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:232,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:234,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:234,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:235,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:235,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:236,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:237,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:238,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:239,1
    - Dst: memcmp
      Src: /src/h2o/deps/libyrmcds/t/text.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 240
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_incr
    - memcmp
    - yrmcds_recv
    - yrmcds_set
    - yrmcds_decr
    - ASSERT
    - yrmcds_getk
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(incdec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:247,1
    - Dst: yrmcds_remove
      Src: /src/h2o/deps/libyrmcds/t/text.c:247,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:249,1
    - Dst: yrmcds_remove
      Src: /src/h2o/deps/libyrmcds/t/text.c:249,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:250,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:250,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:251,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:252,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:254,1
    - Dst: yrmcds_set
      Src: /src/h2o/deps/libyrmcds/t/text.c:254,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:255,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:255,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:256,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:257,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:259,1
    - Dst: yrmcds_remove
      Src: /src/h2o/deps/libyrmcds/t/text.c:259,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:260,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:260,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:261,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:262,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:264,1
    - Dst: yrmcds_getk
      Src: /src/h2o/deps/libyrmcds/t/text.c:264,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:265,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:265,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:266,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 268
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_recv
    - yrmcds_set
    - ASSERT
    - yrmcds_getk
    - yrmcds_remove
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(remove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:274,1
    - Dst: yrmcds_version
      Src: /src/h2o/deps/libyrmcds/t/text.c:274,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:275,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/t/text.c:275,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:276,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:277,1
    - Dst: ASSERT
      Src: /src/h2o/deps/libyrmcds/t/text.c:278,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/t/text.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: DEF_TEST
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_version
    - yrmcds_recv
    - fprintf
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void DEF_TEST(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/t/text.c:283,1
    - Dst: yrmcds_text_mode
      Src: /src/h2o/deps/libyrmcds/t/text.c:283,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:285,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:286,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:287,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:288,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:289,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:290,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:291,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:292,1
    - Dst: CALL_TEST
      Src: /src/h2o/deps/libyrmcds/t/text.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: TEST_MAIN
    functionSourceFile: /src/h2o/deps/libyrmcds/t/text.c
    functionUses: 0
    functionsReached:
    - check_error
    - yrmcds_text_mode
    - CALL_TEST
    linkageType: ''
    returnType: void
    signature: void TEST_MAIN()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:11,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:13,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:13,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - yrmcds_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: check_error
    functionSourceFile: /src/h2o/deps/libyrmcds/example/memcache.c
    functionUses: 11
    functionsReached:
    - error
    - exit
    - yrmcds_strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_error(yrmcds_error e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:21,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - yrmcds_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: check_response
    functionSourceFile: /src/h2o/deps/libyrmcds/example/memcache.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_response(const yrmcds_response* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:31,1
    - Dst: yrmcds_connect
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:31,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:32,1
    - Dst: yrmcds_noop
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:32,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:33,1
    - Dst: yrmcds_recv
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:33,1
    - Dst: check_response
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:34,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:35,1
    - Dst: yrmcds_close
      Src: /src/h2o/deps/libyrmcds/example/memcache.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/h2o/deps/libyrmcds/example/memcache.c
    functionUses: 10
    functionsReached:
    - check_error
    - yrmcds_connect
    - yrmcds_recv
    - check_response
    - yrmcds_noop
    - yrmcds_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/h2o/deps/libyrmcds/example/counter.c:11,1
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/example/counter.c:13,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/deps/libyrmcds/example/counter.c:13,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/example/counter.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - yrmcds_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: check_error
    functionSourceFile: /src/h2o/deps/libyrmcds/example/counter.c
    functionUses: 12
    functionsReached:
    - error
    - exit
    - yrmcds_strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_error(yrmcds_error e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libyrmcds/example/counter.c:21,1
    - Dst: exit
      Src: /src/h2o/deps/libyrmcds/example/counter.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - yrmcds_cnt_response*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: check_response
    functionSourceFile: /src/h2o/deps/libyrmcds/example/counter.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_response(const yrmcds_cnt_response* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/counter.c:31,1
    - Dst: yrmcds_cnt_connect
      Src: /src/h2o/deps/libyrmcds/example/counter.c:31,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/counter.c:32,1
    - Dst: yrmcds_cnt_noop
      Src: /src/h2o/deps/libyrmcds/example/counter.c:32,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/counter.c:33,1
    - Dst: yrmcds_cnt_recv
      Src: /src/h2o/deps/libyrmcds/example/counter.c:33,1
    - Dst: check_response
      Src: /src/h2o/deps/libyrmcds/example/counter.c:34,1
    - Dst: check_error
      Src: /src/h2o/deps/libyrmcds/example/counter.c:35,1
    - Dst: yrmcds_cnt_close
      Src: /src/h2o/deps/libyrmcds/example/counter.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/h2o/deps/libyrmcds/example/counter.c
    functionUses: 10
    functionsReached:
    - check_error
    - yrmcds_cnt_connect
    - yrmcds_cnt_noop
    - yrmcds_cnt_recv
    - check_response
    - yrmcds_cnt_close
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:8,1
    - Dst: MRB_INSTANCE_TT
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:10,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:13,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:17,1
    - Dst: mrb_obj_alloc
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:19,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - cv
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 6
    functionDepth: 7
    functionLinenumber: 6
    functionLinenumberEnd: 21
    functionName: class_allocate
    functionSourceFile: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c
    functionUses: 0
    functionsReached:
    - mrb_obj_alloc
    - mrb_raise
    - mrb_obj_value
    - mrb_class_ptr
    - MRB_INSTANCE_TT
    - mrb_raisef
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value class_allocate(mrb_state *mrb, mrb_value cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:26,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: mrb_mruby_class_new_fiber_safe_gem_init
    functionSourceFile: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_NONE
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_class_new_fiber_safe_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: mrb_mruby_class_new_fiber_safe_gem_final
    functionSourceFile: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_class_new_fiber_safe_gem_final(mrb_state* mrb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:84,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:84,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:85,1
    - Dst: opendir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:87,1
    - Dst: readdir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:88,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:89,1
    - Dst: strcmp
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:89,1
    - Dst: rmdir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:91,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:92,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:92,1
    - Dst: closedir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:95,1
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:98,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:98,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:99,1
    - Dst: chdir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:100,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:101,1
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:105,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:105,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:106,1
    - Dst: rmdir
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:107,1
    - Dst: mrb_raisef
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:108,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: mrb_dirtest_teardown
    functionSourceFile: /src/h2o/deps/mruby-dir/test/dirtest.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_true_value
    - mrb_str_to_cstr
    - readdir
    - chdir
    - strcmp
    - opendir
    - mrb_str_new_cstr
    - mrb_cv_get
    - rmdir
    - mrb_raisef
    - closedir
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dirtest_teardown(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_cv_get
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:117,1
    - Dst: mrb_intern_cstr
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: mrb_dirtest_sandbox
    functionSourceFile: /src/h2o/deps/mruby-dir/test/dirtest.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_cv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dirtest_sandbox(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_module
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:123,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:125,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:125,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:126,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:126,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:127,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/test/dirtest.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: mrb_mruby_dir_gem_test
    functionSourceFile: /src/h2o/deps/mruby-dir/test/dirtest.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_NONE
    - mrb_define_module
    - mrb_define_class_method
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_dir_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: S_ISDIR
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:54,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-dir/src/dir.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - ptr
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: mrb_dir_free
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - closedir
    - mrb_free
    linkageType: ''
    returnType: void
    signature: void mrb_dir_free(mrb_state *mrb, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_datatype
      Src: /src/h2o/deps/mruby-dir/src/dir.c:66,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:67,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:69,1
    - Dst: closedir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:71,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:72,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: mrb_dir_close
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_datatype
    - mrb_sys_fail
    - mrb_nil_value
    - closedir
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_close(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:86,1
    - Dst: mrb_dir_free
      Src: /src/h2o/deps/mruby-dir/src/dir.c:88,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:90,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:91,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-dir/src/dir.c:93,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:95,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:97,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:98,1
    - Dst: opendir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:99,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 9
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: mrb_dir_init
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_str_to_cstr
    - mrb_get_args
    - opendir
    - mrb_sys_fail
    - mrb_dir_free
    - DATA_TYPE
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_init(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:112,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:113,1
    - Dst: rmdir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:114,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:115,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 9
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: mrb_dir_delete
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_cstr
    - mrb_get_args
    - mrb_sys_fail
    - mrb_fixnum_value
    - rmdir
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_delete(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:127,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:128,1
    - Dst: stat
      Src: /src/h2o/deps/mruby-dir/src/dir.c:129,1
    - Dst: S_ISDIR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:129,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:130,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 9
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: mrb_dir_existp
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - S_ISDIR
    - mrb_str_to_cstr
    - mrb_get_args
    - stat
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_existp(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_buf_new
      Src: /src/h2o/deps/mruby-dir/src/dir.c:141,1
    - Dst: getcwd
      Src: /src/h2o/deps/mruby-dir/src/dir.c:142,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:142,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:143,1
    - Dst: mrb_str_resize
      Src: /src/h2o/deps/mruby-dir/src/dir.c:145,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-dir/src/dir.c:145,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/deps/mruby-dir/src/dir.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: mrb_dir_getwd
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_str_buf_new
    - RSTRING_PTR
    - mrb_sys_fail
    - mrb_str_resize
    - getcwd
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_getwd(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:175,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:176,1
    - Dst: chdir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:177,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:178,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: mrb_dir_chdir
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_cstr
    - mrb_get_args
    - mrb_sys_fail
    - mrb_fixnum_value
    - chdir
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_chdir(mrb_state *mrb, mrb_value klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:187,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:188,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:194,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:195,1
    - Dst: chroot
      Src: /src/h2o/deps/mruby-dir/src/dir.c:196,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-dir/src/dir.c:198,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: mrb_dir_chroot
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_str_to_cstr
    - mrb_get_args
    - mrb_sys_fail
    - chroot
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_chroot(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_datatype
      Src: /src/h2o/deps/mruby-dir/src/dir.c:211,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:212,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:214,1
    - Dst: readdir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:216,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/deps/mruby-dir/src/dir.c:218,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 8
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: mrb_dir_read
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - readdir
    - mrb_get_datatype
    - mrb_str_new_cstr
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_read(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_datatype
      Src: /src/h2o/deps/mruby-dir/src/dir.c:229,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:230,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:232,1
    - Dst: rewinddir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: mrb_dir_rewind
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_get_datatype
    - rewinddir
    - mrb_raise
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_rewind(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:242,1
    - Dst: mrb_get_datatype
      Src: /src/h2o/deps/mruby-dir/src/dir.c:248,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:249,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:251,1
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-dir/src/dir.c:253,1
    - Dst: seekdir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 9
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: mrb_dir_seek
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - seekdir
    - mrb_raise
    - mrb_get_args
    - mrb_get_datatype
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_seek(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:263,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:264,1
    - Dst: mrb_get_datatype
      Src: /src/h2o/deps/mruby-dir/src/dir.c:269,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:270,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-dir/src/dir.c:272,1
    - Dst: telldir
      Src: /src/h2o/deps/mruby-dir/src/dir.c:274,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-dir/src/dir.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: mrb_dir_tell
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_get_datatype
    - telldir
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_dir_tell(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-dir/src/dir.c:284,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby-dir/src/dir.c:285,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:286,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:286,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:287,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:287,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:288,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:288,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:289,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:289,1
    - Dst: MRB_ARGS_OPT
      Src: /src/h2o/deps/mruby-dir/src/dir.c:289,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:290,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:290,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:291,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:291,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:293,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:293,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:294,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:294,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:295,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:295,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:296,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:296,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:297,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-dir/src/dir.c:297,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-dir/src/dir.c:298,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-dir/src/dir.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: mrb_mruby_dir_gem_init
    functionSourceFile: /src/h2o/deps/mruby-dir/src/dir.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_OPT
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_dir_gem_init(mrb_state *mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:44,1
    - Dst: strchr
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:46,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:48,1
    - Dst: malloc
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:49,1
    - Dst: strlen
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:49,1
    - Dst: strcat
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:51,1
    - Dst: strcpy
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:51,1
    - Dst: _findfirst
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:54,1
    - Dst: free
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:60,1
    - Dst: free
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:61,1
    - Dst: free
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 78
    functionName: opendir
    functionSourceFile: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    functionUses: 3
    functionsReached:
    - strcat
    - malloc
    - free
    - strchr
    - _findfirst
    - strlen
    - strcpy
    linkageType: ''
    returnType: DIR
    signature: DIR *opendir(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _findclose
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:88,1
    - Dst: free
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:91,1
    - Dst: free
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: closedir
    functionSourceFile: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    functionUses: 4
    functionsReached:
    - free
    - _findclose
    linkageType: ''
    returnType: int
    signature: int closedir(DIR *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _findnext
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: readdir
    functionSourceFile: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    functionUses: 2
    functionsReached:
    - _findnext
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *readdir(DIR *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _findclose
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:127,1
    - Dst: _findfirst
      Src: /src/h2o/deps/mruby-dir/src/Win/dirent.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: rewinddir
    functionSourceFile: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    functionUses: 1
    functionsReached:
    - _findfirst
    - _findclose
    linkageType: ''
    returnType: void
    signature: void rewinddir(DIR *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: list_empty
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(struct list *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: list_init
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_init(struct list *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: list_del
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_del(struct list *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - l
    - n
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: list_add
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add(struct list *l, struct list *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add
      Src: /src/h2o/deps/libgkc/gkc.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - l
    - n
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: list_add_tail
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list *l, struct list *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - MEMBER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: offsetof
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(TYPE,MEMBER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - MEMBER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: offsetof
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(TYPE, MEMBER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: container_of
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/h2o/deps/libgkc/gkc.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ullog2
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: int
    signature: int ullog2(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ln
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: list_to_tuple
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_to_tuple(ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_init
      Src: /src/h2o/deps/libgkc/gkc.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - epsilon
    argTypes:
    - struct gkc_summary*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: gkc_summary_init
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_init
    linkageType: ''
    returnType: void
    signature: void gkc_summary_init(struct gkc_summary *s, double epsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/deps/libgkc/gkc.c:132,1
    - Dst: gkc_summary_init
      Src: /src/h2o/deps/libgkc/gkc.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - epsilon
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: gkc_summary_alloc
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - gkc_summary_init
    - calloc
    linkageType: ''
    returnType: struct gkc_summary
    signature: struct gkc_summary *gkc_summary_alloc(double epsilon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:149,1
    - Dst: assert
      Src: /src/h2o/deps/libgkc/gkc.c:155,1
    - Dst: assert
      Src: /src/h2o/deps/libgkc/gkc.c:157,1
    - Dst: assert
      Src: /src/h2o/deps/libgkc/gkc.c:159,1
    - Dst: assert
      Src: /src/h2o/deps/libgkc/gkc.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gkc_summary*
    assertStmts:
    - condition: (tcur->g + tcur->delta <= (s->nr_elems * s->epsilon * 2))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/h2o/deps/libgkc/gkc.c
    - condition: (nr_alloced == s->alloced)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/h2o/deps/libgkc/gkc.c
    - condition: (nr_elems == s->nr_elems)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/h2o/deps/libgkc/gkc.c
    - condition: (nr_alloced <= s->alloced)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/h2o/deps/libgkc/gkc.c
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: gkc_sanity_check
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_to_tuple
    - assert
    linkageType: ''
    returnType: void
    signature: void gkc_sanity_check(struct gkc_summary *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/libgkc/gkc.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gkc_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: gkc_alloc
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct gkc_tuple
    signature: struct gkc_tuple *gkc_alloc(struct gkc_summary *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - struct gkc_summary*
    - struct gkc_tuple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: gkc_free
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gkc_free(struct gkc_summary *s, struct gkc_tuple *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gkc_free
      Src: /src/h2o/deps/libgkc/gkc.c:197,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:197,1
    - Dst: free
      Src: /src/h2o/deps/libgkc/gkc.c:205,1
    - Dst: free
      Src: /src/h2o/deps/libgkc/gkc.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gkc_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 208
    functionName: gkc_summary_free
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - free
    - list_to_tuple
    - gkc_free
    linkageType: ''
    returnType: void
    signature: void gkc_summary_free(struct gkc_summary *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/h2o/deps/libgkc/gkc.c:220,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:229,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - s
    - q
    argTypes:
    - struct gkc_summary*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 245
    functionName: gkc_query
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_to_tuple
    - list_empty
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gkc_query(struct gkc_summary *s, double q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ullog2
      Src: /src/h2o/deps/libgkc/gkc.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - delta
    argTypes:
    - struct gkc_summary*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: band
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - ullog2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t band(struct gkc_summary *s, uint64_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:272,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:273,1
    - Dst: band
      Src: /src/h2o/deps/libgkc/gkc.c:275,1
    - Dst: band
      Src: /src/h2o/deps/libgkc/gkc.c:276,1
    - Dst: list_del
      Src: /src/h2o/deps/libgkc/gkc.c:280,1
    - Dst: gkc_free
      Src: /src/h2o/deps/libgkc/gkc.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gkc_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 288
    functionName: gkc_compress
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_to_tuple
    - list_del
    - band
    - gkc_free
    linkageType: ''
    returnType: void
    signature: void gkc_compress(struct gkc_summary *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gkc_alloc::gkc_alloc
      Src: /src/h2o/deps/libgkc/gkc.c:295,1
    - Dst: list_init
      Src: /src/h2o/deps/libgkc/gkc.c:299,1
    - Dst: node::node
      Src: /src/h2o/deps/libgkc/gkc.c:299,1
    - Dst: list_empty
      Src: /src/h2o/deps/libgkc/gkc.c:306,1
    - Dst: list_add
      Src: /src/h2o/deps/libgkc/gkc.c:307,1
    - Dst: node::node
      Src: /src/h2o/deps/libgkc/gkc.c:307,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:312,1
    - Dst: value::value
      Src: /src/h2o/deps/libgkc/gkc.c:314,1
    - Dst: list_add
      Src: /src/h2o/deps/libgkc/gkc.c:315,1
    - Dst: node::node
      Src: /src/h2o/deps/libgkc/gkc.c:315,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:321,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:322,1
    - Dst: value::value
      Src: /src/h2o/deps/libgkc/gkc.c:325,1
    - Dst: list_add
      Src: /src/h2o/deps/libgkc/gkc.c:328,1
    - Dst: node::node
      Src: /src/h2o/deps/libgkc/gkc.c:328,1
    - Dst: list_add_tail
      Src: /src/h2o/deps/libgkc/gkc.c:334,1
    - Dst: node::node
      Src: /src/h2o/deps/libgkc/gkc.c:334,1
    - Dst: gkc_compress
      Src: /src/h2o/deps/libgkc/gkc.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - struct gkc_summary*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 339
    functionName: gkc_insert_value
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_empty
    - list_add_tail
    - gkc_compress
    - gkc_alloc::gkc_alloc
    - list_to_tuple
    - list_add
    - list_init
    - value::value
    - node::node
    linkageType: ''
    returnType: void
    signature: void gkc_insert_value(struct gkc_summary *s, double value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/gkc.c:346,1
    - Dst: list_empty
      Src: /src/h2o/deps/libgkc/gkc.c:348,1
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/gkc.c:349,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:355,1
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/gkc.c:356,1
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/gkc.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gkc_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 360
    functionName: gkc_print_summary
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - list_to_tuple
    - list_empty
    - fprintf
    linkageType: ''
    returnType: void
    signature: void gkc_print_summary(struct gkc_summary *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gkc_summary_alloc
      Src: /src/h2o/deps/libgkc/gkc.c:371,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:376,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:377,1
    - Dst: gkc_alloc
      Src: /src/h2o/deps/libgkc/gkc.c:379,1
    - Dst: list_add_tail
      Src: /src/h2o/deps/libgkc/gkc.c:391,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:395,1
    - Dst: gkc_alloc
      Src: /src/h2o/deps/libgkc/gkc.c:397,1
    - Dst: list_add_tail
      Src: /src/h2o/deps/libgkc/gkc.c:401,1
    - Dst: list_to_tuple
      Src: /src/h2o/deps/libgkc/gkc.c:406,1
    - Dst: gkc_alloc
      Src: /src/h2o/deps/libgkc/gkc.c:408,1
    - Dst: list_add_tail
      Src: /src/h2o/deps/libgkc/gkc.c:412,1
    - Dst: gkc_compress
      Src: /src/h2o/deps/libgkc/gkc.c:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct gkc_summary*
    - struct gkc_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 420
    functionName: gkc_combine
    functionSourceFile: /src/h2o/deps/libgkc/gkc.c
    functionUses: 0
    functionsReached:
    - gkc_summary_alloc
    - list_add_tail
    - gkc_compress
    - list_to_tuple
    - gkc_alloc
    linkageType: ''
    returnType: struct gkc_summary
    signature: struct gkc_summary *gkc_combine(struct gkc_summary *s1, struct gkc_summary
      *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gkc_query
      Src: /src/h2o/deps/libgkc/test.c:31,1
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - q
    argTypes:
    - struct gkc_summary*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: print_query
    functionSourceFile: /src/h2o/deps/libgkc/test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - gkc_query
    linkageType: ''
    returnType: void
    signature: void print_query(struct gkc_summary *s, double q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gkc_summary_alloc
      Src: /src/h2o/deps/libgkc/test.c:58,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:59,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/deps/libgkc/test.c:61,1
    - Dst: ARRAY_SIZE
      Src: /src/h2o/deps/libgkc/test.c:64,1
    - Dst: gkc_insert_value
      Src: /src/h2o/deps/libgkc/test.c:65,1
    - Dst: gkc_print_summary
      Src: /src/h2o/deps/libgkc/test.c:67,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:68,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:69,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:70,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:71,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:72,1
    - Dst: fopen
      Src: /src/h2o/deps/libgkc/test.c:80,1
    - Dst: srandom
      Src: /src/h2o/deps/libgkc/test.c:82,1
    - Dst: time
      Src: /src/h2o/deps/libgkc/test.c:82,1
    - Dst: random
      Src: /src/h2o/deps/libgkc/test.c:84,1
    - Dst: gkc_insert_value
      Src: /src/h2o/deps/libgkc/test.c:85,1
    - Dst: fprintf
      Src: /src/h2o/deps/libgkc/test.c:87,1
    - Dst: fclose
      Src: /src/h2o/deps/libgkc/test.c:91,1
    - Dst: gkc_print_summary
      Src: /src/h2o/deps/libgkc/test.c:93,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:94,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:95,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:96,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:97,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:98,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:99,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:100,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:101,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:102,1
    - Dst: gkc_sanity_check
      Src: /src/h2o/deps/libgkc/test.c:104,1
    - Dst: gkc_summary_free
      Src: /src/h2o/deps/libgkc/test.c:106,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/deps/libgkc/test.c:109,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/deps/libgkc/test.c:110,1
    - Dst: random
      Src: /src/h2o/deps/libgkc/test.c:113,1
    - Dst: gkc_insert_value
      Src: /src/h2o/deps/libgkc/test.c:114,1
    - Dst: gkc_insert_value
      Src: /src/h2o/deps/libgkc/test.c:118,1
    - Dst: gkc_combine
      Src: /src/h2o/deps/libgkc/test.c:121,1
    - Dst: gkc_summary_free
      Src: /src/h2o/deps/libgkc/test.c:122,1
    - Dst: gkc_summary_free
      Src: /src/h2o/deps/libgkc/test.c:123,1
    - Dst: gkc_print_summary
      Src: /src/h2o/deps/libgkc/test.c:125,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:126,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:127,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:128,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:129,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:130,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:131,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:132,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:133,1
    - Dst: print_query
      Src: /src/h2o/deps/libgkc/test.c:134,1
    - Dst: gkc_sanity_check
      Src: /src/h2o/deps/libgkc/test.c:136,1
    - Dst: gkc_summary_free
      Src: /src/h2o/deps/libgkc/test.c:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 141
    functionName: main
    functionSourceFile: /src/h2o/deps/libgkc/test.c
    functionUses: 10
    functionsReached:
    - gkc_summary_alloc
    - gkc_sanity_check
    - ARRAY_SIZE
    - time
    - gkc_summary_free
    - srandom
    - gkc_insert_value
    - gkc_combine
    - fopen
    - fprintf
    - fclose
    - random
    - gkc_print_summary
    - print_query
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ARRAY_SIZE
    functionSourceFile: /src/h2o/deps/libgkc/test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:41,1
    - Dst: BIO_puts
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:43,1
    - Dst: BIO_read
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:45,1
    - Dst: BIO_write
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:47,1
    - Dst: BIO_free
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: send_http_get_and_print
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_free
    - BIO_new_fp
    - BIO_read
    - BIO_write
    linkageType: ''
    returnType: void
    signature: void send_http_get_and_print(BIO * sbio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:60,1
    - Dst: SSL_load_error_strings
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:61,1
    - Dst: RAND_status
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:64,1
    - Dst: fprintf
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:65,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:69,1
    - Dst: TLSv1_client_method
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:69,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:72,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:74,1
    - Dst: fprintf
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:75,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:80,1
    - Dst: BIO_new_ssl_connect
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:84,1
    - Dst: BIO_get_ssl
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:85,1
    - Dst: fprintf
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:87,1
    - Dst: BIO_set_conn_hostname
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:92,1
    - Dst: SSL_do_handshake
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:93,1
    - Dst: SSL_get_verify_result
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:95,1
    - Dst: fprintf
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:98,1
    - Dst: X509_verify_cert_error_string
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:98,1
    - Dst: ERR_print_errors_fp
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:102,1
    - Dst: SSL_get_peer_certificate
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:108,1
    - Dst: validate_hostname
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:116,1
    - Dst: fprintf
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:117,1
    - Dst: send_http_get_and_print
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:122,1
    - Dst: X509_free
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:126,1
    - Dst: BIO_ssl_shutdown
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:129,1
    - Dst: BIO_free_all
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:132,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:135,1
    - Dst: EVP_cleanup
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:138,1
    - Dst: ERR_free_strings
      Src: /src/h2o/deps/ssl-conservatory/openssl/test_client.c:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
    functionUses: 10
    functionsReached:
    - ERR_print_errors_fp
    - SSL_CTX_load_verify_locations
    - BIO_new_ssl_connect
    - SSL_CTX_set_cipher_list
    - validate_hostname
    - send_http_get_and_print
    - X509_verify_cert_error_string
    - SSL_CTX_set_verify
    - SSL_get_peer_certificate
    - BIO_set_conn_hostname
    - ERR_free_strings
    - RAND_status
    - fprintf
    - EVP_cleanup
    - TLSv1_client_method
    - BIO_get_ssl
    - SSL_CTX_new
    - SSL_get_verify_result
    - BIO_ssl_shutdown
    - BIO_free_all
    - SSL_do_handshake
    - SSL_CTX_free
    - X509_free
    - SSL_load_error_strings
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: lowercase
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lowercase(int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lowercase
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:33,1
    - Dst: lowercase
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - l
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: memeq_ncase
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - lowercase
    linkageType: ''
    returnType: int
    signature: int memeq_ncase(const char *x, const char *y, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: has_nul
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_nul(const char *s, size_t l)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:51,1
    - Dst: ASN1_STRING_data
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:53,1
    - Dst: ASN1_STRING_length
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:55,1
    - Dst: strlen
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:55,1
    - Dst: has_nul
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:58,1
    - Dst: memeq_ncase
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:80,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - hostname
    - certname_asn1
    argTypes:
    - char*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 81
    functionName: validate_name
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_data
    - ASN1_STRING_get0_data
    - has_nul
    - memeq_ncase
    - ASN1_STRING_length
    - strlen
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult validate_name(const char *hostname, ASN1_STRING
      *certname_asn1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:97,1
    - Dst: X509_get_subject_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:97,1
    - Dst: X509_NAME_get_entry
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:103,1
    - Dst: X509_get_subject_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:103,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:107,1
    - Dst: validate_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: matches_common_name
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - validate_name
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_entry
    - X509_get_subject_name
    - X509_NAME_get_index_by_NID
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_common_name(const char *hostname,
      const X509 *server_cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:129,1
    - Dst: X509_get_ext_d2i
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:132,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:136,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:140,1
    - Dst: validate_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:144,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 153
    functionName: matches_subject_alternative_name
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - validate_name
    - STACK_OF
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_pop_free
    - sk_GENERAL_NAME_num
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_subject_alternative_name(const char
      *hostname, const X509 *server_cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: matches_subject_alternative_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:174,1
    - Dst: matches_common_name
      Src: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: validate_hostname
    functionSourceFile: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
    functionUses: 1
    functionsReached:
    - matches_common_name
    - matches_subject_alternative_name
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult validate_hostname(const char *hostname, const
      X509 *server_cert)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:19,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:21,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:23,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:25,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:27,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:30,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:32,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:33,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:34,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:35,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:37,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:41,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:46,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:48,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:49,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:52,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:56,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:58,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:64,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:71,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:73,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:75,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:77,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:79,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:80,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:83,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:85,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:86,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:89,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:91,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:93,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:95,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:97,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:98,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:101,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:103,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:105,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:107,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:109,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:111,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:112,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:115,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:117,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:119,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:121,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:124,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:127,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:130,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:133,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:136,1
    - Dst: abort
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:139,1
    - Dst: print_escaped
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:141,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:142,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:145,1
    - Dst: abort
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:147,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:149,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:155,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:155,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:156,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:157,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 128
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (input)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
    - condition: (!fclose(input))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
    constantsTouched: []
    func_position:
      end: 160
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
    functionUses: 10
    functionsReached:
    - fclose
    - strncmp
    - abort
    - yaml_parser_initialize
    - yaml_parser_parse
    - yaml_event_delete
    - fflush
    - yaml_parser_delete
    - fopen
    - printf
    - fprintf
    - usage
    - print_escaped
    - yaml_parser_set_input_file
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:170,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:172,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:174,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:176,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:178,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:180,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - str
    - length
    argTypes:
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 184
    functionName: print_escaped
    functionSourceFile: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_escaped(yaml_char_t * str, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-parser-test-suite.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: usage
    functionSourceFile: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
    functionUses: 16
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage(int ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser.c:17,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser.c:30,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-parser.c:31,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-parser.c:33,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-parser.c:34,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-parser.c:36,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-parser.c:36,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-parser.c:38,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/run-parser.c:42,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/run-parser.c:49,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-parser.c:54,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-parser.c:56,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-parser.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-parser.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (file)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/yaml/tests/run-parser.c
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/yaml/tests/run-parser.c
    - condition: (!fclose(file))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/yaml/tests/run-parser.c
    constantsTouched: []
    func_position:
      end: 62
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-parser.c
    functionUses: 10
    functionsReached:
    - fflush
    - yaml_parser_initialize
    - yaml_parser_parse
    - yaml_event_delete
    - yaml_parser_delete
    - fopen
    - printf
    - fclose
    - yaml_parser_set_input_file
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: yaml_document_initialize
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:21,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:31,1
    - Dst: yaml_document_add_sequence
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:36,1
    - Dst: yaml_document_add_mapping
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:40,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:44,1
    - Dst: yaml_document_append_sequence_item
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:55,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:63,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:75,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 2
    argNames:
    - document_to
    - document_from
    argTypes:
    - yaml_document_t*
    - yaml_document_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    constantsTouched: []
    func_position:
      end: 77
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 77
    functionName: copy_document
    functionSourceFile: /src/h2o/deps/yaml/tests/run-dumper.c
    functionUses: 0
    functionsReached:
    - yaml_document_initialize
    - yaml_document_append_sequence_item
    - yaml_document_append_mapping_pair
    - yaml_document_delete
    - yaml_document_add_sequence
    - yaml_document_add_scalar
    - yaml_document_add_mapping
    - assert
    linkageType: ''
    returnType: int
    signature: int copy_document(yaml_document_t *document_to, yaml_document_t *document_from)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: yaml_document_get_node
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:86,1
    - Dst: yaml_document_get_node
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:87,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:89,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:90,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:95,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:101,1
    - Dst: compare_nodes
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:109,1
    - Dst: compare_nodes
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:118,1
    - Dst: compare_nodes
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:120,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:125,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 5
    argNames:
    - document1
    - index1
    - document2
    - index2
    - level
    argTypes:
    - yaml_document_t*
    - int
    - yaml_document_t*
    - int
    - int
    assertStmts:
    - condition: (node1)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (node2)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (0)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    constantsTouched: []
    func_position:
      end: 129
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 129
    functionName: compare_nodes
    functionSourceFile: /src/h2o/deps/yaml/tests/run-dumper.c
    functionUses: 1
    functionsReached:
    - strncmp
    - compare_nodes
    - strcmp
    - yaml_document_get_node
    - assert
    linkageType: ''
    returnType: int
    signature: "int compare_nodes(yaml_document_t *document1, int index1,\n        yaml_document_t
      *document2, int index2, int level)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:146,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:148,1
    - Dst: compare_nodes
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:158,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 2
    argNames:
    - document1
    - document2
    argTypes:
    - yaml_document_t*
    - yaml_document_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 163
    functionName: compare_documents
    functionSourceFile: /src/h2o/deps/yaml/tests/run-dumper.c
    functionUses: 0
    functionsReached:
    - compare_nodes
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_documents(yaml_document_t *document1, yaml_document_t *document2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:172,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:174,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:175,1
    - Dst: fread
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:177,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:178,1
    - Dst: ferror
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:178,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:180,1
    - Dst: fwrite
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:180,1
    - Dst: feof
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:182,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:184,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:185,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - name
    - buffer
    - size
    - count
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - int
    assertStmts:
    - condition: (file)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (!ferror(file))
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (fwrite(data, 1, data_size, stdout) == data_size)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: print_output
    functionSourceFile: /src/h2o/deps/yaml/tests/run-dumper.c
    functionUses: 0
    functionsReached:
    - feof
    - fwrite
    - ferror
    - fread
    - fopen
    - printf
    - fclose
    - assert
    linkageType: ''
    returnType: int
    signature: int print_output(char *name, unsigned char *buffer, size_t size, int
      count)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:199,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:202,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:206,1
    - Dst: memmove
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:211,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:221,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:240,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:241,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:243,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:244,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:246,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:247,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:249,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:249,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:250,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:251,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:251,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:253,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:256,1
    - Dst: yaml_emitter_set_output_string
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:258,1
    - Dst: yaml_emitter_open
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:259,1
    - Dst: yaml_parser_load
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:263,1
    - Dst: yaml_document_get_root_node
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:268,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:270,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:271,1
    - Dst: copy_document
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:271,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:272,1
    - Dst: yaml_emitter_dump
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:272,1
    - Dst: yaml_emitter_flush
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:273,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:273,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:277,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:281,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:282,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:282,1
    - Dst: yaml_emitter_close
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:283,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:284,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:289,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:289,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:290,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:294,1
    - Dst: yaml_parser_load
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:294,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:294,1
    - Dst: yaml_document_get_root_node
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:295,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:297,1
    - Dst: compare_documents
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:297,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:297,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:300,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:302,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:306,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:309,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-dumper.c:310,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (yaml_parser_load(&parser, &document) || print_output(argv[number],
        buffer, written, count))
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (compare_documents(documents+count, &document) || print_output(argv[number],
        buffer, written, count))
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (!fclose(file))
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (document_number < MAX_DOCUMENTS)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (copy_document(&(documents[document_number++]), &document))
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (file)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: (yaml_emitter_initialize(&emitter))
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    - condition: "(yaml_emitter_dump(&emitter, &document) || \n                        (yaml_emitter_flush(&emitter)
        && print_output(argv[number], buffer, written, count)))"
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
    constantsTouched: []
    func_position:
      end: 314
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 314
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-dumper.c
    functionUses: 10
    functionsReached:
    - print_output
    - yaml_emitter_set_canonical
    - fopen
    - memmove
    - yaml_emitter_dump
    - assert
    - fflush
    - yaml_emitter_set_unicode
    - yaml_document_delete
    - printf
    - fclose
    - yaml_parser_set_input_file
    - memset
    - yaml_document_get_root_node
    - yaml_emitter_set_output_string
    - yaml_emitter_initialize
    - copy_document
    - yaml_parser_load
    - yaml_emitter_delete
    - yaml_emitter_close
    - yaml_parser_set_input_string
    - yaml_emitter_flush
    - yaml_emitter_open
    - yaml_parser_initialize
    - strcmp
    - compare_documents
    - yaml_parser_delete
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yaml_get_version
      Src: /src/h2o/deps/yaml/tests/test-version.c:19,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/tests/test-version.c:20,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/test-version.c:21,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/test-version.c:21,1
    - Dst: yaml_get_version_string
      Src: /src/h2o/deps/yaml/tests/test-version.c:21,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-version.c:24,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-version.c:25,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-version.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (strcmp(buf, yaml_get_version_string()) == 0)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/h2o/deps/yaml/tests/test-version.c
    constantsTouched: []
    func_position:
      end: 29
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 29
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/test-version.c
    functionUses: 10
    functionsReached:
    - yaml_get_version_string
    - strcmp
    - sprintf
    - printf
    - yaml_get_version
    - assert
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:17,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:30,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:31,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:33,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:34,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:36,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:36,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:38,1
    - Dst: yaml_parser_scan
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:42,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:49,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:54,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:56,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-scanner.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (file)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/yaml/tests/run-scanner.c
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/yaml/tests/run-scanner.c
    - condition: (!fclose(file))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/yaml/tests/run-scanner.c
    constantsTouched: []
    func_position:
      end: 62
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-scanner.c
    functionUses: 10
    functionsReached:
    - fclose
    - yaml_token_delete
    - fflush
    - yaml_parser_initialize
    - yaml_parser_delete
    - fopen
    - printf
    - yaml_parser_scan
    - yaml_parser_set_input_file
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:22,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:23,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:24,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:30,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:31,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:35,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:36,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:40,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:41,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:46,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:57,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:68,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:71,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:76,1
    - Dst: yaml_emitter_set_output_file
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:80,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:82,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:83,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:91,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:102,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:106,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:107,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:118,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:123,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:127,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:134,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:141,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:149,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:156,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:164,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:168,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:169,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:180,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:184,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:188,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:193,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:197,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter.c:198,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 99
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 201
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/example-reformatter.c
    functionUses: 10
    functionsReached:
    - yaml_parser_set_input_file
    - yaml_emitter_set_canonical
    - yaml_emitter_initialize
    - yaml_emitter_emit
    - yaml_parser_initialize
    - yaml_emitter_set_unicode
    - strcmp
    - yaml_parser_delete
    - yaml_emitter_set_output_file
    - printf
    - yaml_emitter_delete
    - fprintf
    - memset
    - yaml_parser_parse
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:22,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:23,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:24,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:30,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:31,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:35,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:36,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:40,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:41,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:46,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:57,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:68,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:71,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:76,1
    - Dst: yaml_emitter_set_output_file
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:80,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:82,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:83,1
    - Dst: yaml_parser_load
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:91,1
    - Dst: yaml_document_get_root_node
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:96,1
    - Dst: yaml_emitter_dump
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:102,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:106,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:107,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:118,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:123,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:127,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:134,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:141,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:149,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:156,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:164,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:171,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:179,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:183,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:184,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:195,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:199,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:203,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:208,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:212,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-reformatter-alt.c:213,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 106
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 216
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/example-reformatter-alt.c
    functionUses: 10
    functionsReached:
    - yaml_parser_set_input_file
    - yaml_emitter_set_canonical
    - yaml_emitter_initialize
    - yaml_parser_initialize
    - yaml_emitter_set_unicode
    - strcmp
    - yaml_parser_load
    - yaml_parser_delete
    - yaml_emitter_set_output_file
    - printf
    - yaml_emitter_delete
    - fprintf
    - yaml_emitter_dump
    - memset
    - yaml_document_get_root_node
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: yaml_stream_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:20,1
    - Dst: yaml_stream_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:24,1
    - Dst: yaml_document_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:27,1
    - Dst: yaml_document_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:34,1
    - Dst: yaml_alias_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:38,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:42,1
    - Dst: yaml_sequence_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:52,1
    - Dst: yaml_sequence_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:59,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:62,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:69,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - event_to
    - event_from
    argTypes:
    - yaml_event_t*
    - yaml_event_t*
    assertStmts:
    - condition: (1)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    constantsTouched: []
    func_position:
      end: 76
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 76
    functionName: copy_event
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter.c
    functionUses: 0
    functionsReached:
    - yaml_document_start_event_initialize
    - assert
    - yaml_mapping_start_event_initialize
    - yaml_alias_event_initialize
    - yaml_stream_end_event_initialize
    - yaml_document_end_event_initialize
    - yaml_scalar_event_initialize
    - yaml_stream_start_event_initialize
    - yaml_mapping_end_event_initialize
    - yaml_sequence_end_event_initialize
    - yaml_sequence_start_event_initialize
    linkageType: ''
    returnType: int
    signature: int copy_event(yaml_event_t *event_to, yaml_event_t *event_from)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:103,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:105,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:119,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:126,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:130,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:132,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:134,1
    - Dst: memcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:138,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:151,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:157,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:169,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:175,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 49
    argCount: 2
    argNames:
    - event1
    - event2
    argTypes:
    - yaml_event_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 186
    functionName: compare_events
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter.c
    functionUses: 0
    functionsReached:
    - strcmp
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_events(yaml_event_t *event1, yaml_event_t *event2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:195,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:197,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:198,1
    - Dst: fread
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:200,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:201,1
    - Dst: ferror
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:201,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:203,1
    - Dst: fwrite
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:203,1
    - Dst: feof
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:205,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:207,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:208,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - name
    - buffer
    - size
    - count
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - int
    assertStmts:
    - condition: (file)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (!ferror(file))
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (fwrite(data, 1, data_size, stdout) == data_size)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: print_output
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter.c
    functionUses: 1
    functionsReached:
    - feof
    - fwrite
    - ferror
    - fread
    - fopen
    - printf
    - fclose
    - assert
    linkageType: ''
    returnType: int
    signature: int print_output(char *name, unsigned char *buffer, size_t size, int
      count)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:222,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:225,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:229,1
    - Dst: memmove
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:234,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:244,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:262,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:263,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:265,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:266,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:268,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:269,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:271,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:271,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:272,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:273,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:273,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:275,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:278,1
    - Dst: yaml_emitter_set_output_string
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:280,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:284,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:290,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:291,1
    - Dst: copy_event
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:291,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:292,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:292,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:293,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:297,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:298,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:298,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:299,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:304,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:304,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:305,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:309,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:309,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:309,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:311,1
    - Dst: compare_events
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:311,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:311,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:312,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:315,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:319,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:322,1
    - Dst: print_output
      Src: /src/h2o/deps/yaml/tests/run-emitter.c:323,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (event_number < MAX_EVENTS)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (yaml_parser_parse(&parser, &event) || print_output(argv[number],
        buffer, written, count))
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (compare_events(events+count, &event) || print_output(argv[number],
        buffer, written, count))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (file)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (copy_event(&(events[event_number++]), &event))
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: "(yaml_emitter_emit(&emitter, &event) || \n                    print_output(argv[number],
        buffer, written, count))"
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (!fclose(file))
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (yaml_emitter_initialize(&emitter))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
    constantsTouched: []
    func_position:
      end: 327
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 327
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter.c
    functionUses: 10
    functionsReached:
    - print_output
    - yaml_emitter_set_canonical
    - fopen
    - memmove
    - yaml_emitter_emit
    - assert
    - fflush
    - yaml_emitter_set_unicode
    - printf
    - fclose
    - yaml_parser_set_input_file
    - memset
    - yaml_emitter_set_output_string
    - yaml_emitter_initialize
    - yaml_event_delete
    - compare_events
    - yaml_emitter_delete
    - yaml_parser_set_input_string
    - yaml_parser_parse
    - yaml_parser_initialize
    - strcmp
    - yaml_parser_delete
    - copy_event
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 210
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:23,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:24,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:25,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:26,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:32,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:33,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:37,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:38,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:42,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:43,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:48,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:59,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:70,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:71,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:75,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:76,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:77,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:83,1
    - Dst: yaml_emitter_set_output_file
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:87,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:89,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:90,1
    - Dst: yaml_stream_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:94,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:96,1
    - Dst: yaml_document_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:101,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:104,1
    - Dst: yaml_sequence_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:109,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:113,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:122,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:133,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:137,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:148,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:152,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:157,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:161,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:173,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:177,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:182,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:190,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:200,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:204,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:209,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:213,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:222,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:226,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:231,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:235,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:248,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:252,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:257,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:261,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:266,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:270,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:275,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:276,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:280,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:285,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:289,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:294,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:295,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:299,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:304,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:306,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:319,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:323,1
    - Dst: yaml_sequence_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:328,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:332,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:341,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:345,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:350,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:354,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:359,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:364,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:369,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:373,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:378,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:383,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:388,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:390,1
    - Dst: yaml_sequence_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:396,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:398,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:404,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:408,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:413,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:419,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:428,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:432,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:437,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:441,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:446,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:450,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:455,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:461,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:470,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:474,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:479,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:483,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:488,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:492,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:497,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:502,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:511,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:515,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:520,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:524,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:533,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:537,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:542,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:547,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:557,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:561,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:566,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:571,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:579,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:583,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:588,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:594,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:601,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:605,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:610,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:614,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:619,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:623,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:628,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:634,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:639,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:643,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:648,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:654,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:659,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:661,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:672,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:676,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:681,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:693,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:703,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:707,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:712,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:716,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:725,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:729,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:734,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:739,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:749,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:753,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:758,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:763,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:769,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:773,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:778,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:784,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:796,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:800,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:805,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:812,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:822,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:826,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:831,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:835,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:844,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:848,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:853,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:857,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:866,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:870,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:875,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:880,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:890,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:894,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:899,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:904,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:910,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:914,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:919,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:925,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:937,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:941,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:946,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:953,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:963,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:967,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:972,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:976,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:988,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:992,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:994,1
    - Dst: yaml_sequence_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1000,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1002,1
    - Dst: yaml_document_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1007,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1009,1
    - Dst: yaml_stream_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1014,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1016,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1019,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1020,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1031,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1036,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1040,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1047,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1054,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1062,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1069,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1077,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1081,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1082,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1083,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1094,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1098,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1102,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1107,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1111,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1112,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1113,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1119,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1121,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1122,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor.c:1123,1
    CyclomaticComplexity: 385
    EdgeCount: 385
    ICount: 660
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 1126
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/example-deconstructor.c
    functionUses: 10
    functionsReached:
    - yaml_emitter_set_canonical
    - yaml_mapping_start_event_initialize
    - yaml_document_end_event_initialize
    - sprintf
    - yaml_emitter_emit
    - yaml_stream_end_event_initialize
    - yaml_emitter_set_unicode
    - printf
    - fprintf
    - yaml_mapping_end_event_initialize
    - yaml_parser_set_input_file
    - memset
    - yaml_document_start_event_initialize
    - yaml_emitter_initialize
    - yaml_event_delete
    - yaml_scalar_event_initialize
    - yaml_stream_start_event_initialize
    - yaml_emitter_set_output_file
    - yaml_emitter_delete
    - yaml_parser_parse
    - yaml_sequence_start_event_initialize
    - yaml_parser_initialize
    - strcmp
    - yaml_parser_delete
    - yaml_sequence_end_event_initialize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:122,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:129,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/test-reader.c:132,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/test-reader.c:133,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:134,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:136,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:140,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:143,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:147,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:151,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/test-reader.c:157,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:159,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:161,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 163
    functionName: check_utf8_sequences
    functionSourceFile: /src/h2o/deps/yaml/tests/test-reader.c
    functionUses: 0
    functionsReached:
    - yaml_parser_initialize
    - yaml_parser_delete
    - printf
    - yaml_parser_update_buffer
    - yaml_parser_set_input_string
    linkageType: ''
    returnType: int
    signature: int check_utf8_sequences(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:170,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:178,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/test-reader.c:179,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/test-reader.c:180,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:181,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:183,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:188,1
    - Dst: memcmp
      Src: /src/h2o/deps/yaml/tests/test-reader.c:191,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:192,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:196,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/test-reader.c:199,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 203
    functionName: check_boms
    functionSourceFile: /src/h2o/deps/yaml/tests/test-reader.c
    functionUses: 0
    functionsReached:
    - memcmp
    - yaml_parser_initialize
    - yaml_parser_delete
    - printf
    - yaml_parser_update_buffer
    - yaml_parser_set_input_string
    linkageType: ''
    returnType: int
    signature: int check_boms(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/yaml/tests/test-reader.c:214,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/test-reader.c:215,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:216,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/test-reader.c:230,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/test-reader.c:231,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:234,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:235,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:241,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:254,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:264,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:265,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:269,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/test-reader.c:273,1
    - Dst: free
      Src: /src/h2o/deps/yaml/tests/test-reader.c:274,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:275,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buffer)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/h2o/deps/yaml/tests/test-reader.c
    constantsTouched: []
    func_position:
      end: 277
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 277
    functionName: check_long_utf8
    functionSourceFile: /src/h2o/deps/yaml/tests/test-reader.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - yaml_parser_initialize
    - yaml_parser_delete
    - printf
    - yaml_parser_update_buffer
    - yaml_parser_set_input_string
    - assert
    linkageType: ''
    returnType: int
    signature: int check_long_utf8(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/yaml/tests/test-reader.c:286,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/test-reader.c:287,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:288,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/test-reader.c:301,1
    - Dst: yaml_parser_set_input_string
      Src: /src/h2o/deps/yaml/tests/test-reader.c:302,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:305,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:306,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:312,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:325,1
    - Dst: yaml_parser_update_buffer
      Src: /src/h2o/deps/yaml/tests/test-reader.c:335,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:336,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:340,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/test-reader.c:344,1
    - Dst: free
      Src: /src/h2o/deps/yaml/tests/test-reader.c:345,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/test-reader.c:346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buffer)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/h2o/deps/yaml/tests/test-reader.c
    constantsTouched: []
    func_position:
      end: 348
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 348
    functionName: check_long_utf16
    functionSourceFile: /src/h2o/deps/yaml/tests/test-reader.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - yaml_parser_initialize
    - yaml_parser_delete
    - printf
    - yaml_parser_update_buffer
    - yaml_parser_set_input_string
    - assert
    linkageType: ''
    returnType: int
    signature: int check_long_utf16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_utf8_sequences
      Src: /src/h2o/deps/yaml/tests/test-reader.c:353,1
    - Dst: check_boms
      Src: /src/h2o/deps/yaml/tests/test-reader.c:353,1
    - Dst: check_long_utf8
      Src: /src/h2o/deps/yaml/tests/test-reader.c:353,1
    - Dst: check_long_utf16
      Src: /src/h2o/deps/yaml/tests/test-reader.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/test-reader.c
    functionUses: 10
    functionsReached:
    - check_utf8_sequences
    - check_long_utf8
    - check_long_utf16
    - check_boms
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:30,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:31,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:32,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:33,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:34,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:36,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:38,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:40,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:42,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:45,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:47,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:49,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:51,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:53,1
    - Dst: usage
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:56,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:59,1
    - Dst: YAML_MALLOC_STATIC
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:65,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:72,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:74,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:75,1
    - Dst: yaml_emitter_set_output_file
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:78,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:79,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:80,1
    - Dst: get_line
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:83,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:90,1
    - Dst: yaml_stream_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:91,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:93,1
    - Dst: yaml_stream_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:94,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:96,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:97,1
    - Dst: yaml_document_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:98,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:100,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:101,1
    - Dst: yaml_document_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:102,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:104,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:108,1
    - Dst: yaml_mapping_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:110,1
    - Dst: get_anchor
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:111,1
    - Dst: get_tag
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:112,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:114,1
    - Dst: yaml_mapping_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:115,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:117,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:121,1
    - Dst: yaml_sequence_start_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:123,1
    - Dst: get_anchor
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:124,1
    - Dst: get_tag
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:125,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:127,1
    - Dst: yaml_sequence_end_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:128,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:130,1
    - Dst: get_value
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:134,1
    - Dst: get_tag
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:135,1
    - Dst: yaml_scalar_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:137,1
    - Dst: get_anchor
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:138,1
    - Dst: get_tag
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:138,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:140,1
    - Dst: yaml_alias_event_initialize
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:141,1
    - Dst: get_anchor
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:142,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:146,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:147,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:153,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:157,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:157,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:158,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:159,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:166,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:169,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:172,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:178,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:181,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:185,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:186,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 131
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (input)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    - condition: (!fclose(input))
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    constantsTouched: []
    func_position:
      end: 188
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 188
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 10
    functionsReached:
    - yaml_emitter_set_canonical
    - yaml_mapping_start_event_initialize
    - yaml_alias_event_initialize
    - yaml_document_end_event_initialize
    - fopen
    - yaml_emitter_emit
    - assert
    - yaml_stream_end_event_initialize
    - fflush
    - yaml_emitter_set_unicode
    - fprintf
    - yaml_mapping_end_event_initialize
    - usage
    - fclose
    - get_value
    - yaml_document_start_event_initialize
    - get_line
    - yaml_emitter_initialize
    - strncmp
    - yaml_scalar_event_initialize
    - yaml_stream_start_event_initialize
    - get_anchor
    - yaml_emitter_set_output_file
    - yaml_emitter_delete
    - yaml_sequence_start_event_initialize
    - YAML_MALLOC_STATIC
    - get_tag
    - yaml_sequence_end_event_initialize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:194,1
    - Dst: strchr
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:197,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:198,1
    - Dst: abort
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - input
    - line
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 204
    functionName: get_line
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 9
    functionsReached:
    - strchr
    - abort
    - fgets
    - fprintf
    linkageType: ''
    returnType: int
    signature: int get_line(FILE * input, char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:210,1
    - Dst: strchr
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:213,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:214,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sigil
    - line
    - anchor
    argTypes:
    - char
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: get_anchor
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 1
    functionsReached:
    - strchr
    - memcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *get_anchor(char sigil, char *line, char *anchor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:224,1
    - Dst: strchr
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:226,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - line
    - tag
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: get_tag
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 3
    functionsReached:
    - strchr
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *get_tag(char *line, char *tag)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:238,1
    - Dst: abort
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:262,1
    - Dst: abort
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:279,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - line
    - value
    - style
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 285
    functionName: get_value
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 37
    functionsReached:
    - abort
    - strlen
    linkageType: ''
    returnType: void
    signature: void get_value(char *line, char *value, int *style)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: usage
    functionSourceFile: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
    functionUses: 17
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage(int ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-loader.c:17,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-loader.c:30,1
    - Dst: fflush
      Src: /src/h2o/deps/yaml/tests/run-loader.c:31,1
    - Dst: fopen
      Src: /src/h2o/deps/yaml/tests/run-loader.c:33,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-loader.c:34,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-loader.c:36,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/run-loader.c:36,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/run-loader.c:38,1
    - Dst: yaml_parser_load
      Src: /src/h2o/deps/yaml/tests/run-loader.c:42,1
    - Dst: yaml_document_get_root_node
      Src: /src/h2o/deps/yaml/tests/run-loader.c:47,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/run-loader.c:49,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/run-loader.c:54,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/tests/run-loader.c:56,1
    - Dst: fclose
      Src: /src/h2o/deps/yaml/tests/run-loader.c:56,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/run-loader.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (file)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/yaml/tests/run-loader.c
    - condition: (yaml_parser_initialize(&parser))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/yaml/tests/run-loader.c
    - condition: (!fclose(file))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/yaml/tests/run-loader.c
    constantsTouched: []
    func_position:
      end: 62
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/run-loader.c
    functionUses: 10
    functionsReached:
    - fflush
    - yaml_parser_initialize
    - yaml_parser_load
    - yaml_parser_delete
    - fopen
    - printf
    - yaml_document_delete
    - fclose
    - yaml_parser_set_input_file
    - assert
    - yaml_document_get_root_node
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 158
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:25,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:26,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:27,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:28,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:34,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:35,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:39,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:40,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:44,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:45,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:50,1
    - Dst: printf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:61,1
    - Dst: yaml_parser_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:72,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:73,1
    - Dst: yaml_emitter_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:77,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:78,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:79,1
    - Dst: yaml_parser_set_input_file
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:85,1
    - Dst: yaml_emitter_set_output_file
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:89,1
    - Dst: yaml_emitter_set_canonical
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:91,1
    - Dst: yaml_emitter_set_unicode
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:92,1
    - Dst: yaml_emitter_open
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:96,1
    - Dst: yaml_document_initialize
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:101,1
    - Dst: yaml_document_add_sequence
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:106,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:118,1
    - Dst: yaml_document_add_mapping
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:129,1
    - Dst: yaml_document_append_sequence_item
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:132,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:143,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:146,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:149,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:159,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:162,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:168,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:178,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:181,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:184,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:193,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:196,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:199,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:212,1
    - Dst: yaml_document_add_mapping
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:215,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:218,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:223,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:226,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:227,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:230,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:235,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:238,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:239,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:242,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:255,1
    - Dst: yaml_document_add_sequence
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:258,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:261,1
    - Dst: yaml_document_add_mapping
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:270,1
    - Dst: yaml_document_append_sequence_item
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:273,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:278,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:281,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:284,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:289,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:292,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:295,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:302,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:305,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:309,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:318,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:321,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:324,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:329,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:332,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:336,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:345,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:348,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:351,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:356,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:359,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:363,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:372,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:375,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:378,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:385,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:388,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:392,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:400,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:403,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:407,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:413,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:416,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:421,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:428,1
    - Dst: yaml_document_add_mapping
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:431,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:434,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:439,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:442,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:446,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:451,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:454,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:458,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:469,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:472,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:482,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:492,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:495,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:498,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:505,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:508,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:512,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:520,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:523,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:527,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:533,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:536,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:540,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:552,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:555,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:560,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:570,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:573,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:576,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:585,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:588,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:591,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:598,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:601,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:605,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:613,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:616,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:620,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:626,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:629,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:633,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:645,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:648,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:653,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:663,1
    - Dst: yaml_document_add_scalar
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:666,1
    - Dst: yaml_document_append_mapping_pair
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:669,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:681,1
    - Dst: yaml_emitter_dump
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:684,1
    - Dst: yaml_emitter_close
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:686,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:689,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:690,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:701,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:706,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:710,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:717,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:724,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:732,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:739,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:747,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:751,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:752,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:753,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:754,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:765,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:769,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:773,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:778,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:782,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:783,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:784,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:785,1
    - Dst: fprintf
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:791,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:793,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:794,1
    - Dst: yaml_parser_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:795,1
    - Dst: yaml_emitter_delete
      Src: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c:796,1
    CyclomaticComplexity: 281
    EdgeCount: 281
    ICount: 580
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 799
    functionName: main
    functionSourceFile: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c
    functionUses: 10
    functionsReached:
    - yaml_emitter_set_canonical
    - yaml_document_append_sequence_item
    - sprintf
    - yaml_emitter_dump
    - yaml_document_add_mapping
    - yaml_emitter_set_unicode
    - yaml_document_delete
    - printf
    - fprintf
    - yaml_document_add_scalar
    - yaml_parser_set_input_file
    - memset
    - yaml_document_initialize
    - yaml_emitter_initialize
    - yaml_event_delete
    - yaml_emitter_set_output_file
    - yaml_emitter_delete
    - yaml_emitter_close
    - yaml_parser_parse
    - yaml_emitter_open
    - yaml_parser_initialize
    - strcmp
    - yaml_parser_delete
    - yaml_document_append_mapping_pair
    - yaml_document_add_sequence
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: PEEK_TOKEN
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK_TOKEN(parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: SKIP_TOKEN
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_TOKEN(parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/parser.c:172,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/parser.c:173,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/parser.c:177,1
    - Dst: yaml_parser_state_machine
      Src: /src/h2o/deps/yaml/src/parser.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/h2o/deps/yaml/src/parser.c
    - condition: (event)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/h2o/deps/yaml/src/parser.c
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: yaml_parser_parse
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 7
    functionsReached:
    - memset
    - yaml_parser_state_machine
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - problem
    - problem_mark
    argTypes:
    - yaml_parser_t*
    - char*
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: yaml_parser_set_parser_error
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_parser_error(yaml_parser_t *parser,\n        const
      char *problem, yaml_mark_t problem_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - parser
    - context
    - context_mark
    - problem
    - problem_mark
    argTypes:
    - yaml_parser_t*
    - char*
    - yaml_mark_t
    - char*
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: yaml_parser_set_parser_error_context
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_parser_error_context(yaml_parser_t *parser,\n
      \       const char *context, yaml_mark_t context_mark,\n        const char *problem,
      yaml_mark_t problem_mark)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_parse_stream_start
      Src: /src/h2o/deps/yaml/src/parser.c:231,1
    - Dst: yaml_parser_parse_document_start
      Src: /src/h2o/deps/yaml/src/parser.c:234,1
    - Dst: yaml_parser_parse_document_start
      Src: /src/h2o/deps/yaml/src/parser.c:237,1
    - Dst: yaml_parser_parse_document_content
      Src: /src/h2o/deps/yaml/src/parser.c:240,1
    - Dst: yaml_parser_parse_document_end
      Src: /src/h2o/deps/yaml/src/parser.c:243,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:246,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:249,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:252,1
    - Dst: yaml_parser_parse_block_sequence_entry
      Src: /src/h2o/deps/yaml/src/parser.c:255,1
    - Dst: yaml_parser_parse_block_sequence_entry
      Src: /src/h2o/deps/yaml/src/parser.c:258,1
    - Dst: yaml_parser_parse_indentless_sequence_entry
      Src: /src/h2o/deps/yaml/src/parser.c:261,1
    - Dst: yaml_parser_parse_block_mapping_key
      Src: /src/h2o/deps/yaml/src/parser.c:264,1
    - Dst: yaml_parser_parse_block_mapping_key
      Src: /src/h2o/deps/yaml/src/parser.c:267,1
    - Dst: yaml_parser_parse_block_mapping_value
      Src: /src/h2o/deps/yaml/src/parser.c:270,1
    - Dst: yaml_parser_parse_flow_sequence_entry
      Src: /src/h2o/deps/yaml/src/parser.c:273,1
    - Dst: yaml_parser_parse_flow_sequence_entry
      Src: /src/h2o/deps/yaml/src/parser.c:276,1
    - Dst: yaml_parser_parse_flow_sequence_entry_mapping_key
      Src: /src/h2o/deps/yaml/src/parser.c:279,1
    - Dst: yaml_parser_parse_flow_sequence_entry_mapping_value
      Src: /src/h2o/deps/yaml/src/parser.c:282,1
    - Dst: yaml_parser_parse_flow_sequence_entry_mapping_end
      Src: /src/h2o/deps/yaml/src/parser.c:285,1
    - Dst: yaml_parser_parse_flow_mapping_key
      Src: /src/h2o/deps/yaml/src/parser.c:288,1
    - Dst: yaml_parser_parse_flow_mapping_key
      Src: /src/h2o/deps/yaml/src/parser.c:291,1
    - Dst: yaml_parser_parse_flow_mapping_value
      Src: /src/h2o/deps/yaml/src/parser.c:294,1
    - Dst: yaml_parser_parse_flow_mapping_value
      Src: /src/h2o/deps/yaml/src/parser.c:297,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/parser.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts:
    - condition: (1)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/h2o/deps/yaml/src/parser.c
    constantsTouched: []
    func_position:
      end: 304
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 304
    functionName: yaml_parser_state_machine
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_parse_document_start
    - yaml_parser_parse_flow_sequence_entry_mapping_value
    - yaml_parser_parse_flow_sequence_entry_mapping_end
    - yaml_parser_parse_document_end
    - yaml_parser_parse_block_mapping_key
    - yaml_parser_parse_flow_sequence_entry
    - yaml_parser_parse_stream_start
    - yaml_parser_parse_block_mapping_value
    - yaml_parser_parse_document_content
    - yaml_parser_parse_flow_sequence_entry_mapping_key
    - yaml_parser_parse_block_sequence_entry
    - yaml_parser_parse_flow_mapping_key
    - yaml_parser_parse_node
    - yaml_parser_parse_flow_mapping_value
    - assert
    - yaml_parser_parse_indentless_sequence_entry
    linkageType: ''
    returnType: int
    signature: int yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:317,1
    - Dst: yaml_parser_set_parser_error
      Src: /src/h2o/deps/yaml/src/parser.c:321,1
    - Dst: STREAM_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:326,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: yaml_parser_parse_stream_start
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - STREAM_START_EVENT_INIT
    - SKIP_TOKEN
    - yaml_parser_set_parser_error
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: int yaml_parser_parse_stream_start(yaml_parser_t *parser, yaml_event_t
      *event)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:352,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:360,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:361,1
    - Dst: yaml_parser_process_directives
      Src: /src/h2o/deps/yaml/src/parser.c:373,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:375,1
    - Dst: DOCUMENT_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:378,1
    - Dst: yaml_parser_process_directives
      Src: /src/h2o/deps/yaml/src/parser.c:389,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:392,1
    - Dst: yaml_parser_set_parser_error
      Src: /src/h2o/deps/yaml/src/parser.c:395,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:399,1
    - Dst: DOCUMENT_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:403,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:406,1
    - Dst: STREAM_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:417,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:418,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:423,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:425,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:426,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:429,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - parser
    - event
    - implicit
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 431
    functionName: yaml_parser_parse_document_start
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - PUSH
    - yaml_parser_process_directives
    - SKIP_TOKEN
    - STREAM_END_EVENT_INIT
    - yaml_parser_set_parser_error
    - DOCUMENT_START_EVENT_INIT
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_document_start(yaml_parser_t *parser, yaml_event_t
      *event,\n        int implicit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:444,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:452,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:453,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: yaml_parser_parse_document_content
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - POP
    - yaml_parser_parse_node
    - yaml_parser_process_empty_scalar
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: int yaml_parser_parse_document_content(yaml_parser_t *parser, yaml_event_t
      *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:476,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:483,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/parser.c:487,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:488,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:489,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:490,1
    - Dst: DOCUMENT_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 497
    functionName: yaml_parser_parse_document_end
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - SKIP_TOKEN
    - DOCUMENT_END_EVENT_INIT
    - STACK_EMPTY
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: int yaml_parser_parse_document_end(yaml_parser_t *parser, yaml_event_t
      *event)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:540,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:545,1
    - Dst: ALIAS_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:546,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:548,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:561,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:562,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:570,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:571,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:581,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:582,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:588,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:589,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:597,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/parser.c:605,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/parser.c:606,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/parser.c:607,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/parser.c:608,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/parser.c:613,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/parser.c:614,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:616,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:617,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:623,1
    - Dst: SEQUENCE_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:635,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/parser.c:645,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:651,1
    - Dst: SCALAR_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:652,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:656,1
    - Dst: SEQUENCE_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:662,1
    - Dst: MAPPING_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:669,1
    - Dst: SEQUENCE_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:676,1
    - Dst: MAPPING_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:683,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/parser.c:688,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:694,1
    - Dst: SCALAR_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:695,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:701,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:711,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:712,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:713,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:714,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 150
    argCount: 4
    argNames:
    - parser
    - event
    - block
    - indentless_sequence
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 717
    functionName: yaml_parser_parse_node
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 2
    functionsReached:
    - MAPPING_START_EVENT_INIT
    - YAML_MALLOC
    - yaml_free
    - SKIP_TOKEN
    - SEQUENCE_START_EVENT_INIT
    - strcmp
    - memcpy
    - yaml_parser_set_parser_error_context
    - POP
    - SCALAR_EVENT_INIT
    - ALIAS_EVENT_INIT
    - strlen
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_node(yaml_parser_t *parser, yaml_event_t *event,\n
      \       int block, int indentless_sequence)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:732,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:733,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:735,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:738,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:744,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:745,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:749,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:752,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:756,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:762,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:763,1
    - Dst: SEQUENCE_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:764,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:765,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:771,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - parser
    - event
    - first
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 775
    functionName: yaml_parser_parse_block_sequence_entry
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - SEQUENCE_END_EVENT_INIT
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - yaml_parser_set_parser_error_context
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:789,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:795,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:796,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:802,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:805,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:809,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:815,1
    - Dst: SEQUENCE_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 819
    functionName: yaml_parser_parse_indentless_sequence_entry
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - SEQUENCE_END_EVENT_INIT
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_indentless_sequence_entry(yaml_parser_t *parser,\n
      \       yaml_event_t *event)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:840,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:841,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:843,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:846,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:852,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:853,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:858,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:861,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:865,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:871,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:872,1
    - Dst: MAPPING_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:873,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:874,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:880,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:881,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - parser
    - event
    - first
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 884
    functionName: yaml_parser_parse_block_mapping_key
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - MAPPING_END_EVENT_INIT
    - yaml_parser_parse_node
    - yaml_parser_set_parser_error_context
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_block_mapping_key(yaml_parser_t *parser,\n        yaml_event_t
      *event, int first)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:904,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:910,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:911,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:916,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:919,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:923,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:930,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 932
    functionName: yaml_parser_parse_block_mapping_value
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_block_mapping_value(yaml_parser_t *parser,\n
      \       yaml_event_t *event)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:955,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:956,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:958,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:961,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:968,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:969,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:973,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:974,1
    - Dst: MAPPING_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:981,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:984,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:989,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:992,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:996,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:997,1
    - Dst: SEQUENCE_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:998,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:999,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - parser
    - event
    - first
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 1001
    functionName: yaml_parser_parse_flow_sequence_entry
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - MAPPING_START_EVENT_INIT
    - SEQUENCE_END_EVENT_INIT
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_set_parser_error_context
    - yaml_parser_parse_node
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1015,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1020,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:1023,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1027,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:1029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1031
    functionName: yaml_parser_parse_flow_sequence_entry_mapping_key
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_sequence_entry_mapping_key(yaml_parser_t
      *parser,\n        yaml_event_t *event)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1045,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1049,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1050,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1054,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:1057,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:1061,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1062
    functionName: yaml_parser_parse_flow_sequence_entry_mapping_value
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_sequence_entry_mapping_value(yaml_parser_t
      *parser,\n        yaml_event_t *event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1076,1
    - Dst: MAPPING_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:1081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1083
    functionName: yaml_parser_parse_flow_sequence_entry_mapping_end
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - MAPPING_END_EVENT_INIT
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_sequence_entry_mapping_end(yaml_parser_t
      *parser,\n        yaml_event_t *event)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1106,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1107,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1109,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1112,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1119,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1120,1
    - Dst: yaml_parser_set_parser_error_context
      Src: /src/h2o/deps/yaml/src/parser.c:1124,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:1125,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1131,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1132,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1137,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:1140,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:1144,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1149,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:1152,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:1156,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:1157,1
    - Dst: MAPPING_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:1158,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1159,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - parser
    - event
    - first
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1161
    functionName: yaml_parser_parse_flow_mapping_key
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - MAPPING_END_EVENT_INIT
    - yaml_parser_set_parser_error_context
    - yaml_parser_parse_node
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser,\n        yaml_event_t
      *event, int first)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1175,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:1180,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1185,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1186,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1190,1
    - Dst: yaml_parser_parse_node
      Src: /src/h2o/deps/yaml/src/parser.c:1193,1
    - Dst: yaml_parser_process_empty_scalar
      Src: /src/h2o/deps/yaml/src/parser.c:1198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - parser
    - event
    - empty
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1199
    functionName: yaml_parser_parse_flow_mapping_value
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_process_empty_scalar
    - PUSH
    - SKIP_TOKEN
    - yaml_parser_parse_node
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_parse_flow_mapping_value(yaml_parser_t *parser,\n
      \       yaml_event_t *event, int empty)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/parser.c:1211,1
    - Dst: SCALAR_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:1218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - parser
    - event
    - mark
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1222
    functionName: yaml_parser_process_empty_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 9
    functionsReached:
    - YAML_MALLOC
    - SCALAR_EVENT_INIT
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_process_empty_scalar(yaml_parser_t *parser, yaml_event_t
      *event,\n        yaml_mark_t mark)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/parser.c:1248,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1251,1
    - Dst: yaml_parser_set_parser_error
      Src: /src/h2o/deps/yaml/src/parser.c:1259,1
    - Dst: yaml_parser_set_parser_error
      Src: /src/h2o/deps/yaml/src/parser.c:1268,1
    - Dst: YAML_MALLOC_STATIC
      Src: /src/h2o/deps/yaml/src/parser.c:1272,1
    - Dst: yaml_parser_append_tag_directive
      Src: /src/h2o/deps/yaml/src/parser.c:1286,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1289,1
    - Dst: SKIP_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1293,1
    - Dst: PEEK_TOKEN
      Src: /src/h2o/deps/yaml/src/parser.c:1294,1
    - Dst: yaml_parser_append_tag_directive
      Src: /src/h2o/deps/yaml/src/parser.c:1300,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/parser.c:1309,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/parser.c:1311,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/parser.c:1319,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1323,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1327,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/parser.c:1328,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/parser.c:1329,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1330,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1331,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/parser.c:1333,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 4
    argNames:
    - parser
    - version_directive_ref
    - tag_directives_start_ref
    - tag_directives_end_ref
    argTypes:
    - yaml_parser_t*
    - yaml_version_directive_t**
    - yaml_tag_directive_t**
    - yaml_tag_directive_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1335
    functionName: yaml_parser_process_directives
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_parser_append_tag_directive
    - yaml_free
    - PUSH
    - YAML_MALLOC_STATIC
    - SKIP_TOKEN
    - STACK_INIT
    - STACK_EMPTY
    - yaml_parser_set_parser_error
    - STACK_DEL
    - POP
    - PEEK_TOKEN
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_process_directives(yaml_parser_t *parser,\n        yaml_version_directive_t
      **version_directive_ref,\n        yaml_tag_directive_t **tag_directives_start_ref,\n
      \       yaml_tag_directive_t **tag_directives_end_ref)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/parser.c:1350,1
    - Dst: yaml_parser_set_parser_error
      Src: /src/h2o/deps/yaml/src/parser.c:1353,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/parser.c:1358,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/parser.c:1359,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/parser.c:1365,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1371,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/parser.c:1372,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - parser
    - value
    - allow_duplicates
    - mark
    argTypes:
    - yaml_parser_t*
    - yaml_tag_directive_t
    - int
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1374
    functionName: yaml_parser_append_tag_directive
    functionSourceFile: /src/h2o/deps/yaml/src/parser.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - PUSH
    - strcmp
    - yaml_parser_set_parser_error
    - yaml_strdup
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_append_tag_directive(yaml_parser_t *parser,\n        yaml_tag_directive_t
      value, int allow_duplicates, yaml_mark_t mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - emitter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: FLUSH
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH(emitter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - emitter
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: PUT
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(emitter,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - emitter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: PUT_BREAK
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_BREAK(emitter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - emitter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: WRITE
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE(emitter,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - emitter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: WRITE_BREAK
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BREAK(emitter,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - emitter
    - problem
    argTypes:
    - yaml_emitter_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: yaml_emitter_set_emitter_error
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_set_emitter_error(yaml_emitter_t *emitter, const char
      *problem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/emitter.c:283,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/src/emitter.c:284,1
    - Dst: yaml_emitter_need_more_events
      Src: /src/h2o/deps/yaml/src/emitter.c:288,1
    - Dst: yaml_emitter_analyze_event
      Src: /src/h2o/deps/yaml/src/emitter.c:289,1
    - Dst: yaml_emitter_state_machine
      Src: /src/h2o/deps/yaml/src/emitter.c:291,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/src/emitter.c:293,1
    - Dst: DEQUEUE
      Src: /src/h2o/deps/yaml/src/emitter.c:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: yaml_emitter_emit
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 4
    functionsReached:
    - yaml_event_delete
    - yaml_emitter_analyze_event
    - DEQUEUE
    - yaml_emitter_state_machine
    - yaml_emitter_need_more_events
    - ENQUEUE
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: QUEUE_EMPTY
      Src: /src/h2o/deps/yaml/src/emitter.c:315,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 357
    functionName: yaml_emitter_need_more_events
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - QUEUE_EMPTY
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_need_more_events(yaml_emitter_t *emitter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/emitter.c:372,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:375,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/emitter.c:380,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/emitter.c:381,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:387,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/emitter.c:393,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/emitter.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - emitter
    - value
    - allow_duplicates
    argTypes:
    - yaml_emitter_t*
    - yaml_tag_directive_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 396
    functionName: yaml_emitter_append_tag_directive
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - yaml_free
    - yaml_emitter_set_emitter_error
    - PUSH
    - strcmp
    - yaml_strdup
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_append_tag_directive(yaml_emitter_t *emitter,\n        yaml_tag_directive_t
      value, int allow_duplicates)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - emitter
    - flow
    - indentless
    argTypes:
    - yaml_emitter_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 417
    functionName: yaml_emitter_increase_indent
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - PUSH
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_increase_indent(yaml_emitter_t *emitter,\n        int
      flow, int indentless)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_emit_stream_start
      Src: /src/h2o/deps/yaml/src/emitter.c:429,1
    - Dst: yaml_emitter_emit_document_start
      Src: /src/h2o/deps/yaml/src/emitter.c:432,1
    - Dst: yaml_emitter_emit_document_start
      Src: /src/h2o/deps/yaml/src/emitter.c:435,1
    - Dst: yaml_emitter_emit_document_content
      Src: /src/h2o/deps/yaml/src/emitter.c:438,1
    - Dst: yaml_emitter_emit_document_end
      Src: /src/h2o/deps/yaml/src/emitter.c:441,1
    - Dst: yaml_emitter_emit_flow_sequence_item
      Src: /src/h2o/deps/yaml/src/emitter.c:444,1
    - Dst: yaml_emitter_emit_flow_sequence_item
      Src: /src/h2o/deps/yaml/src/emitter.c:447,1
    - Dst: yaml_emitter_emit_flow_mapping_key
      Src: /src/h2o/deps/yaml/src/emitter.c:450,1
    - Dst: yaml_emitter_emit_flow_mapping_key
      Src: /src/h2o/deps/yaml/src/emitter.c:453,1
    - Dst: yaml_emitter_emit_flow_mapping_value
      Src: /src/h2o/deps/yaml/src/emitter.c:456,1
    - Dst: yaml_emitter_emit_flow_mapping_value
      Src: /src/h2o/deps/yaml/src/emitter.c:459,1
    - Dst: yaml_emitter_emit_block_sequence_item
      Src: /src/h2o/deps/yaml/src/emitter.c:462,1
    - Dst: yaml_emitter_emit_block_sequence_item
      Src: /src/h2o/deps/yaml/src/emitter.c:465,1
    - Dst: yaml_emitter_emit_block_mapping_key
      Src: /src/h2o/deps/yaml/src/emitter.c:468,1
    - Dst: yaml_emitter_emit_block_mapping_key
      Src: /src/h2o/deps/yaml/src/emitter.c:471,1
    - Dst: yaml_emitter_emit_block_mapping_value
      Src: /src/h2o/deps/yaml/src/emitter.c:474,1
    - Dst: yaml_emitter_emit_block_mapping_value
      Src: /src/h2o/deps/yaml/src/emitter.c:477,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:480,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/emitter.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts:
    - condition: (1)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/h2o/deps/yaml/src/emitter.c
    constantsTouched: []
    func_position:
      end: 488
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 488
    functionName: yaml_emitter_state_machine
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_emit_block_mapping_key
    - assert
    - yaml_emitter_set_emitter_error
    - yaml_emitter_emit_block_mapping_value
    - yaml_emitter_emit_stream_start
    - yaml_emitter_emit_flow_mapping_key
    - yaml_emitter_emit_document_end
    - yaml_emitter_emit_flow_sequence_item
    - yaml_emitter_emit_document_content
    - yaml_emitter_emit_block_sequence_item
    - yaml_emitter_emit_document_start
    - yaml_emitter_emit_flow_mapping_value
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_state_machine(yaml_emitter_t *emitter, yaml_event_t
      *event)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_bom
      Src: /src/h2o/deps/yaml/src/emitter.c:534,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 545
    functionName: yaml_emitter_emit_stream_start
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_set_emitter_error
    - yaml_emitter_write_bom
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_stream_start(yaml_emitter_t *emitter,\n        yaml_event_t
      *event)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_analyze_version_directive
      Src: /src/h2o/deps/yaml/src/emitter.c:566,1
    - Dst: yaml_emitter_analyze_tag_directive
      Src: /src/h2o/deps/yaml/src/emitter.c:574,1
    - Dst: yaml_emitter_append_tag_directive
      Src: /src/h2o/deps/yaml/src/emitter.c:576,1
    - Dst: yaml_emitter_append_tag_directive
      Src: /src/h2o/deps/yaml/src/emitter.c:582,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:596,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:598,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:605,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:608,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:612,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:615,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:625,1
    - Dst: yaml_emitter_write_tag_handle
      Src: /src/h2o/deps/yaml/src/emitter.c:627,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:628,1
    - Dst: yaml_emitter_write_tag_content
      Src: /src/h2o/deps/yaml/src/emitter.c:630,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:631,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:633,1
    - Dst: yaml_emitter_check_empty_document
      Src: /src/h2o/deps/yaml/src/emitter.c:638,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:643,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:645,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:648,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:668,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:671,1
    - Dst: yaml_emitter_flush
      Src: /src/h2o/deps/yaml/src/emitter.c:674,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:682,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 3
    argNames:
    - emitter
    - event
    - first
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 684
    functionName: yaml_emitter_emit_document_start
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_append_tag_directive
    - yaml_emitter_set_emitter_error
    - yaml_emitter_write_indicator
    - yaml_emitter_check_empty_document
    - yaml_emitter_analyze_version_directive
    - yaml_emitter_write_tag_handle
    - yaml_emitter_analyze_tag_directive
    - yaml_emitter_write_indent
    - yaml_emitter_write_tag_content
    - yaml_emitter_flush
    - strlen
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_document_start(yaml_emitter_t *emitter,\n        yaml_event_t
      *event, int first)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:694,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: yaml_emitter_emit_document_content
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - PUSH
    - yaml_emitter_emit_node
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_document_content(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:710,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:713,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:716,1
    - Dst: yaml_emitter_flush
      Src: /src/h2o/deps/yaml/src/emitter.c:721,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/emitter.c:726,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:727,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/emitter.c:729,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/emitter.c:730,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:736,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 738
    functionName: yaml_emitter_emit_document_end
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - yaml_emitter_set_emitter_error
    - yaml_emitter_write_indicator
    - STACK_EMPTY
    - POP
    - yaml_emitter_write_indent
    - yaml_emitter_flush
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_document_end(yaml_emitter_t *emitter,\n        yaml_event_t
      *event)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:751,1
    - Dst: yaml_emitter_increase_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:753,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:761,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:763,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:765,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:768,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:770,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:776,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:781,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:784,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:787,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 3
    argNames:
    - emitter
    - event
    - first
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 788
    functionName: yaml_emitter_emit_flow_sequence_item
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_write_indicator
    - PUSH
    - POP
    - yaml_emitter_emit_node
    - yaml_emitter_increase_indent
    - yaml_emitter_write_indent
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_flow_sequence_item(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:800,1
    - Dst: yaml_emitter_increase_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:802,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:810,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:812,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:814,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:817,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:819,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:825,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:829,1
    - Dst: yaml_emitter_check_simple_key
      Src: /src/h2o/deps/yaml/src/emitter.c:833,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:835,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:839,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:843,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:845,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:849,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - emitter
    - event
    - first
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 851
    functionName: yaml_emitter_emit_flow_mapping_key
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_write_indicator
    - PUSH
    - yaml_emitter_check_simple_key
    - POP
    - yaml_emitter_emit_node
    - yaml_emitter_increase_indent
    - yaml_emitter_write_indent
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_flow_mapping_key(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:862,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:867,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:870,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:873,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:875,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - emitter
    - event
    - simple
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 876
    functionName: yaml_emitter_emit_flow_mapping_value
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - PUSH
    - yaml_emitter_write_indent
    - yaml_emitter_emit_node
    - yaml_emitter_write_indicator
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_flow_mapping_value(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int simple)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_increase_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:888,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:895,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:896,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:901,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:903,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:905,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - emitter
    - event
    - first
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 910
    functionName: yaml_emitter_emit_block_sequence_item
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_write_indicator
    - PUSH
    - POP
    - yaml_emitter_emit_node
    - yaml_emitter_increase_indent
    - yaml_emitter_write_indent
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_block_sequence_item(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_increase_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:922,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:928,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:929,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:934,1
    - Dst: yaml_emitter_check_simple_key
      Src: /src/h2o/deps/yaml/src/emitter.c:937,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:939,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:943,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:947,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:949,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - emitter
    - event
    - first
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 955
    functionName: yaml_emitter_emit_block_mapping_key
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_write_indicator
    - PUSH
    - yaml_emitter_check_simple_key
    - POP
    - yaml_emitter_emit_node
    - yaml_emitter_increase_indent
    - yaml_emitter_write_indent
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_block_mapping_key(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int first)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:966,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:970,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:972,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:975,1
    - Dst: yaml_emitter_emit_node
      Src: /src/h2o/deps/yaml/src/emitter.c:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - emitter
    - event
    - simple
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 980
    functionName: yaml_emitter_emit_block_mapping_value
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - PUSH
    - yaml_emitter_write_indent
    - yaml_emitter_emit_node
    - yaml_emitter_write_indicator
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_block_mapping_value(yaml_emitter_t *emitter,\n
      \       yaml_event_t *event, int simple)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_emit_alias
      Src: /src/h2o/deps/yaml/src/emitter.c:998,1
    - Dst: yaml_emitter_emit_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1001,1
    - Dst: yaml_emitter_emit_sequence_start
      Src: /src/h2o/deps/yaml/src/emitter.c:1004,1
    - Dst: yaml_emitter_emit_mapping_start
      Src: /src/h2o/deps/yaml/src/emitter.c:1007,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - emitter
    - event
    - root
    - sequence
    - mapping
    - simple_key
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1015
    functionName: yaml_emitter_emit_node
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 7
    functionsReached:
    - yaml_emitter_emit_mapping_start
    - yaml_emitter_set_emitter_error
    - yaml_emitter_emit_scalar
    - yaml_emitter_emit_alias
    - yaml_emitter_emit_sequence_start
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_emit_node(yaml_emitter_t *emitter, yaml_event_t *event,\n
      \       int root, int sequence, int mapping, int simple_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_process_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1024,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1027,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1031
    functionName: yaml_emitter_emit_alias
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - POP
    - PUT
    - yaml_emitter_process_anchor
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_emit_alias(yaml_emitter_t *emitter, SHIM(yaml_event_t
      *event))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_select_scalar_style
      Src: /src/h2o/deps/yaml/src/emitter.c:1040,1
    - Dst: yaml_emitter_process_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1042,1
    - Dst: yaml_emitter_process_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1044,1
    - Dst: yaml_emitter_increase_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:1046,1
    - Dst: yaml_emitter_process_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1048,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:1050,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/emitter.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1054
    functionName: yaml_emitter_emit_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_select_scalar_style
    - POP
    - yaml_emitter_process_scalar
    - yaml_emitter_process_anchor
    - yaml_emitter_increase_indent
    - yaml_emitter_process_tag
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_emit_scalar(yaml_emitter_t *emitter, yaml_event_t
      *event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_process_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1063,1
    - Dst: yaml_emitter_process_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1065,1
    - Dst: yaml_emitter_check_empty_sequence
      Src: /src/h2o/deps/yaml/src/emitter.c:1070,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1078
    functionName: yaml_emitter_emit_sequence_start
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_check_empty_sequence
    - yaml_emitter_process_tag
    - yaml_emitter_process_anchor
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_emit_sequence_start(yaml_emitter_t *emitter, yaml_event_t
      *event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_process_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1087,1
    - Dst: yaml_emitter_process_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1089,1
    - Dst: yaml_emitter_check_empty_mapping
      Src: /src/h2o/deps/yaml/src/emitter.c:1094,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1102
    functionName: yaml_emitter_emit_mapping_start
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_check_empty_mapping
    - yaml_emitter_process_tag
    - yaml_emitter_process_anchor
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_emit_mapping_start(yaml_emitter_t *emitter, yaml_event_t
      *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1112
    functionName: yaml_emitter_check_empty_document
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_check_empty_document(SHIM(yaml_emitter_t *emitter))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1126
    functionName: yaml_emitter_check_empty_sequence
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_check_empty_sequence(yaml_emitter_t *emitter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1140
    functionName: yaml_emitter_check_empty_mapping
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_check_empty_mapping(yaml_emitter_t *emitter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_check_empty_sequence
      Src: /src/h2o/deps/yaml/src/emitter.c:1168,1
    - Dst: yaml_emitter_check_empty_mapping
      Src: /src/h2o/deps/yaml/src/emitter.c:1176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1191
    functionName: yaml_emitter_check_simple_key
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 2
    functionsReached:
    - yaml_emitter_check_empty_sequence
    - yaml_emitter_check_empty_mapping
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_check_simple_key(yaml_emitter_t *emitter)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1205,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 32
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1253
    functionName: yaml_emitter_select_scalar_style
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_set_emitter_error
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_select_scalar_style(yaml_emitter_t *emitter, yaml_event_t
      *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:1265,1
    - Dst: yaml_emitter_write_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1271
    functionName: yaml_emitter_process_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 4
    functionsReached:
    - yaml_emitter_write_anchor
    - yaml_emitter_write_indicator
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_process_anchor(yaml_emitter_t *emitter)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_tag_handle
      Src: /src/h2o/deps/yaml/src/emitter.c:1285,1
    - Dst: yaml_emitter_write_tag_content
      Src: /src/h2o/deps/yaml/src/emitter.c:1289,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:1296,1
    - Dst: yaml_emitter_write_tag_content
      Src: /src/h2o/deps/yaml/src/emitter.c:1298,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:1301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1306
    functionName: yaml_emitter_process_tag
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 3
    functionsReached:
    - yaml_emitter_write_tag_content
    - yaml_emitter_write_tag_handle
    - yaml_emitter_write_indicator
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_process_tag(yaml_emitter_t *emitter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_write_plain_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1318,1
    - Dst: yaml_emitter_write_single_quoted_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1323,1
    - Dst: yaml_emitter_write_double_quoted_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1328,1
    - Dst: yaml_emitter_write_literal_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1333,1
    - Dst: yaml_emitter_write_folded_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1337,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/emitter.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (1)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/h2o/deps/yaml/src/emitter.c
    constantsTouched: []
    func_position:
      end: 1345
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1345
    functionName: yaml_emitter_process_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_write_folded_scalar
    - yaml_emitter_write_plain_scalar
    - yaml_emitter_write_literal_scalar
    - yaml_emitter_write_double_quoted_scalar
    - yaml_emitter_write_single_quoted_scalar
    - assert
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_process_scalar(yaml_emitter_t *emitter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - emitter
    - version_directive
    argTypes:
    - yaml_emitter_t*
    - yaml_version_directive_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1364
    functionName: yaml_emitter_analyze_version_directive
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_set_emitter_error
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter,\n
      \       yaml_version_directive_t version_directive)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1379,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1380,1
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1381,1
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1382,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1385,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1390,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1395,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/emitter.c:1402,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1403,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:1406,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1410,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - emitter
    - tag_directive
    argTypes:
    - yaml_emitter_t*
    - yaml_tag_directive_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1415
    functionName: yaml_emitter_analyze_tag_directive
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - STRING_ASSIGN
    - yaml_emitter_set_emitter_error
    - IS_ALPHA
    - MOVE
    - strlen
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_tag_directive(yaml_emitter_t *emitter,\n
      \       yaml_tag_directive_t tag_directive)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1428,1
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1429,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1432,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/emitter.c:1438,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1439,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - emitter
    - anchor
    - alias
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1451
    functionName: yaml_emitter_analyze_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - STRING_ASSIGN
    - yaml_emitter_set_emitter_error
    - IS_ALPHA
    - MOVE
    - strlen
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_anchor(yaml_emitter_t *emitter,\n        yaml_char_t
      *anchor, int alias)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1465,1
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1466,1
    - Dst: yaml_emitter_set_emitter_error
      Src: /src/h2o/deps/yaml/src/emitter.c:1469,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1475,1
    - Dst: strncmp
      Src: /src/h2o/deps/yaml/src/emitter.c:1477,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - emitter
    - tag
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1494
    functionName: yaml_emitter_analyze_tag
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - STRING_ASSIGN
    - yaml_emitter_set_emitter_error
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_tag(yaml_emitter_t *emitter,\n        yaml_char_t
      *tag)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1523,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1539,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1540,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1541,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1542,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1543,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1544,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1550,1
    - Dst: WIDTH
      Src: /src/h2o/deps/yaml/src/emitter.c:1550,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1556,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1556,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1557,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1557,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1558,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1558,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1559,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1559,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1560,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1560,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1561,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1561,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1562,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1562,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1563,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1563,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1568,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1568,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1575,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1582,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1582,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1583,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1583,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1584,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1584,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1588,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1595,1
    - Dst: IS_PRINTABLE
      Src: /src/h2o/deps/yaml/src/emitter.c:1601,1
    - Dst: IS_ASCII
      Src: /src/h2o/deps/yaml/src/emitter.c:1602,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1606,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:1610,1
    - Dst: WIDTH
      Src: /src/h2o/deps/yaml/src/emitter.c:1615,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1624,1
    - Dst: WIDTH
      Src: /src/h2o/deps/yaml/src/emitter.c:1629,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/emitter.c:1644,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:1645,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1647,1
    - Dst: WIDTH
      Src: /src/h2o/deps/yaml/src/emitter.c:1647,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 124
    argCount: 3
    argNames:
    - emitter
    - value
    - length
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1694
    functionName: yaml_emitter_analyze_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - IS_SPACE
    - STRING_ASSIGN
    - IS_ASCII
    - IS_BLANKZ_AT
    - IS_BLANKZ
    - CHECK_AT
    - MOVE
    - IS_BREAK
    - CHECK
    - WIDTH
    - IS_PRINTABLE
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_scalar(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_analyze_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1716,1
    - Dst: yaml_emitter_analyze_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1723,1
    - Dst: yaml_emitter_analyze_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1730,1
    - Dst: yaml_emitter_analyze_scalar
      Src: /src/h2o/deps/yaml/src/emitter.c:1733,1
    - Dst: yaml_emitter_analyze_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1740,1
    - Dst: yaml_emitter_analyze_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1746,1
    - Dst: yaml_emitter_analyze_anchor
      Src: /src/h2o/deps/yaml/src/emitter.c:1754,1
    - Dst: yaml_emitter_analyze_tag
      Src: /src/h2o/deps/yaml/src/emitter.c:1760,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 2
    argNames:
    - emitter
    - event
    argTypes:
    - yaml_emitter_t*
    - yaml_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1769
    functionName: yaml_emitter_analyze_event
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_analyze_anchor
    - yaml_emitter_analyze_scalar
    - yaml_emitter_analyze_tag
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_analyze_event(yaml_emitter_t *emitter,\n        yaml_event_t
      *event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLUSH
      Src: /src/h2o/deps/yaml/src/emitter.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1785
    functionName: yaml_emitter_write_bom
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - FLUSH
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_write_bom(yaml_emitter_t *emitter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1794,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1805
    functionName: yaml_emitter_write_indent
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 8
    functionsReached:
    - PUT
    - PUT_BREAK
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_write_indent(yaml_emitter_t *emitter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/emitter.c:1815,1
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1816,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1819,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - emitter
    - indicator
    - need_whitespace
    - is_whitespace
    - is_indention
    argTypes:
    - yaml_emitter_t*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1830
    functionName: yaml_emitter_write_indicator
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 10
    functionsReached:
    - WRITE
    - STRING_ASSIGN
    - PUT
    - strlen
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_indicator(yaml_emitter_t *emitter,\n        const
      char *indicator, int need_whitespace,\n        int is_whitespace, int is_indention)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1837,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - emitter
    - value
    - length
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1847
    functionName: yaml_emitter_write_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - STRING_ASSIGN
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_anchor(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1854,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1857,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - emitter
    - value
    - length
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1868
    functionName: yaml_emitter_write_tag_handle
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 2
    functionsReached:
    - STRING_ASSIGN
    - PUT
    - WRITE
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_tag_handle(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1876,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1879,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/emitter.c:1883,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1884,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1884,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1885,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1885,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1886,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1886,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1887,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1887,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1888,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1888,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1889,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1889,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1890,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1890,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1891,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1891,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1892,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1892,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1893,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1894,1
    - Dst: WIDTH
      Src: /src/h2o/deps/yaml/src/emitter.c:1897,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1901,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1902,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1905,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 25
    argCount: 4
    argNames:
    - emitter
    - value
    - length
    - need_whitespace
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1916
    functionName: yaml_emitter_write_tag_content
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 2
    functionsReached:
    - STRING_ASSIGN
    - IS_ALPHA
    - PUT
    - WRITE
    - CHECK
    - WIDTH
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_tag_content(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length,\n        int need_whitespace)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1926,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:1939,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:1944,1
    - Dst: IS_SPACE_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:1948,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:1949,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:1950,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1953,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1957,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:1959,1
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1960,1
    - Dst: WRITE_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:1962,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:1969,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:1971,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 4
    argNames:
    - emitter
    - value
    - length
    - allow_breaks
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1982
    functionName: yaml_emitter_write_plain_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - IS_SPACE
    - STRING_ASSIGN
    - IS_SPACE_AT
    - PUT
    - MOVE
    - WRITE
    - IS_BREAK
    - WRITE_BREAK
    - CHECK
    - yaml_emitter_write_indent
    - PUT_BREAK
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_plain_scalar(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length, int allow_breaks)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:1992,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:1994,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:1999,1
    - Dst: IS_SPACE_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2005,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2006,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:2007,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2010,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2014,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:2016,1
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2017,1
    - Dst: WRITE_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2019,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2026,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:2028,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2029,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2031,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2039,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2041,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 4
    argNames:
    - emitter
    - value
    - length
    - allow_breaks
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 2048
    functionName: yaml_emitter_write_single_quoted_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - IS_SPACE
    - STRING_ASSIGN
    - IS_SPACE_AT
    - yaml_emitter_write_indicator
    - PUT
    - MOVE
    - WRITE
    - IS_BREAK
    - WRITE_BREAK
    - CHECK
    - yaml_emitter_write_indent
    - PUT_BREAK
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_single_quoted_scalar(yaml_emitter_t *emitter,\n
      \       yaml_char_t *value, size_t length, int allow_breaks)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:2057,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2059,1
    - Dst: IS_PRINTABLE
      Src: /src/h2o/deps/yaml/src/emitter.c:2064,1
    - Dst: IS_ASCII
      Src: /src/h2o/deps/yaml/src/emitter.c:2064,1
    - Dst: IS_BOM
      Src: /src/h2o/deps/yaml/src/emitter.c:2065,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2065,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:2066,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:2066,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2088,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2093,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2097,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2101,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2105,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2109,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2113,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2117,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2121,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2125,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2129,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2133,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2137,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2141,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2145,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2149,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2154,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2158,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2162,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2167,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:2173,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2179,1
    - Dst: IS_SPACE_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2180,1
    - Dst: PUT
      Src: /src/h2o/deps/yaml/src/emitter.c:2181,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:2183,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2186,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2192,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2197,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 124
    argCount: 4
    argNames:
    - emitter
    - value
    - length
    - allow_breaks
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2050
    functionDepth: 2
    functionLinenumber: 2050
    functionLinenumberEnd: 2204
    functionName: yaml_emitter_write_double_quoted_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - IS_SPACE
    - STRING_ASSIGN
    - IS_SPACE_AT
    - IS_ASCII
    - yaml_emitter_write_indicator
    - PUT
    - IS_BOM
    - MOVE
    - IS_BREAK
    - WRITE
    - CHECK
    - yaml_emitter_write_indent
    - IS_PRINTABLE
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_double_quoted_scalar(yaml_emitter_t *emitter,\n
      \       yaml_char_t *value, size_t length, int allow_breaks)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:2213,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2213,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2217,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2233,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2247,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2257,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - emitter
    - string
    argTypes:
    - yaml_emitter_t*
    - yaml_string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2206
    functionDepth: 2
    functionLinenumber: 2206
    functionLinenumberEnd: 2262
    functionName: yaml_emitter_write_block_scalar_hints
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 0
    functionsReached:
    - IS_SPACE
    - IS_BREAK
    - yaml_emitter_write_indicator
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter,\n
      \       yaml_string_t string)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:2271,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2273,1
    - Dst: yaml_emitter_write_block_scalar_hints
      Src: /src/h2o/deps/yaml/src/emitter.c:2275,1
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2277,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2283,1
    - Dst: WRITE_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2285,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2292,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - emitter
    - value
    - length
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2264
    functionDepth: 3
    functionLinenumber: 2264
    functionLinenumberEnd: 2301
    functionName: yaml_emitter_write_literal_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - STRING_ASSIGN
    - yaml_emitter_write_indicator
    - yaml_emitter_write_block_scalar_hints
    - WRITE
    - IS_BREAK
    - WRITE_BREAK
    - yaml_emitter_write_indent
    - PUT_BREAK
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_literal_scalar(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STRING_ASSIGN
      Src: /src/h2o/deps/yaml/src/emitter.c:2311,1
    - Dst: yaml_emitter_write_indicator
      Src: /src/h2o/deps/yaml/src/emitter.c:2313,1
    - Dst: yaml_emitter_write_block_scalar_hints
      Src: /src/h2o/deps/yaml/src/emitter.c:2315,1
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2317,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2323,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/emitter.c:2325,1
    - Dst: IS_BREAK_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2327,1
    - Dst: WIDTH_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2328,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2330,1
    - Dst: PUT_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2331,1
    - Dst: WRITE_BREAK
      Src: /src/h2o/deps/yaml/src/emitter.c:2334,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2341,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/emitter.c:2342,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/emitter.c:2344,1
    - Dst: IS_SPACE_AT
      Src: /src/h2o/deps/yaml/src/emitter.c:2344,1
    - Dst: yaml_emitter_write_indent
      Src: /src/h2o/deps/yaml/src/emitter.c:2346,1
    - Dst: MOVE
      Src: /src/h2o/deps/yaml/src/emitter.c:2347,1
    - Dst: WRITE
      Src: /src/h2o/deps/yaml/src/emitter.c:2350,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 3
    argNames:
    - emitter
    - value
    - length
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2303
    functionDepth: 3
    functionLinenumber: 2303
    functionLinenumberEnd: 2358
    functionName: yaml_emitter_write_folded_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/emitter.c
    functionUses: 1
    functionsReached:
    - IS_SPACE
    - STRING_ASSIGN
    - IS_SPACE_AT
    - IS_BLANKZ_AT
    - yaml_emitter_write_indicator
    - IS_BLANK
    - yaml_emitter_write_block_scalar_hints
    - IS_BREAK_AT
    - MOVE
    - IS_BREAK
    - WRITE_BREAK
    - WRITE
    - CHECK
    - yaml_emitter_write_indent
    - WIDTH_AT
    - PUT_BREAK
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_write_folded_scalar(yaml_emitter_t *emitter,\n        yaml_char_t
      *value, size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - emitter
    - problem
    argTypes:
    - yaml_emitter_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: yaml_emitter_set_writer_error
    functionSourceFile: /src/h2o/deps/yaml/src/writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char
      *problem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/writer.c:36,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/writer.c:37,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/writer.c:38,1
    - Dst: yaml_emitter_t*::write_handler
      Src: /src/h2o/deps/yaml/src/writer.c:53,1
    - Dst: yaml_emitter_set_writer_error
      Src: /src/h2o/deps/yaml/src/writer.c:61,1
    - Dst: yaml_emitter_t*::write_handler
      Src: /src/h2o/deps/yaml/src/writer.c:128,1
    - Dst: yaml_emitter_set_writer_error
      Src: /src/h2o/deps/yaml/src/writer.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/yaml/src/writer.c
    - condition: (emitter->encoding)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/yaml/src/writer.c
    - condition: (emitter->write_handler)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/h2o/deps/yaml/src/writer.c
    constantsTouched: []
    func_position:
      end: 140
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 140
    functionName: yaml_emitter_flush
    functionSourceFile: /src/h2o/deps/yaml/src/writer.c
    functionUses: 3
    functionsReached:
    - yaml_emitter_t*::write_handler
    - yaml_emitter_set_writer_error
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_flush(yaml_emitter_t *emitter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parser
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: CACHE
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHE(parser,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: SKIP
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP(parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 514
    functionName: SKIP_LINE
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_LINE(parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parser
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: READ
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ(parser,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parser
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: READ_LINE
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_LINE(parser,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - parser
    - context
    - context_mark
    - problem
    argTypes:
    - yaml_parser_t*
    - char*
    - yaml_mark_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 793
    functionName: yaml_parser_set_scanner_error
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_scanner_error(yaml_parser_t *parser, const char
      *context,\n        yaml_mark_t context_mark, const char *problem)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_stale_simple_keys
      Src: /src/h2o/deps/yaml/src/scanner.c:827,1
    - Dst: yaml_parser_fetch_next_token
      Src: /src/h2o/deps/yaml/src/scanner.c:847,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 854
    functionName: yaml_parser_fetch_more_tokens
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached:
    - yaml_parser_stale_simple_keys
    - yaml_parser_fetch_next_token
    linkageType: ''
    returnType: void
    signature: void yaml_parser_fetch_more_tokens(yaml_parser_t *parser)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:865,1
    - Dst: yaml_parser_fetch_stream_start
      Src: /src/h2o/deps/yaml/src/scanner.c:871,1
    - Dst: yaml_parser_scan_to_next_token
      Src: /src/h2o/deps/yaml/src/scanner.c:875,1
    - Dst: yaml_parser_stale_simple_keys
      Src: /src/h2o/deps/yaml/src/scanner.c:880,1
    - Dst: yaml_parser_unroll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:885,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:893,1
    - Dst: IS_Z
      Src: /src/h2o/deps/yaml/src/scanner.c:898,1
    - Dst: yaml_parser_fetch_stream_end
      Src: /src/h2o/deps/yaml/src/scanner.c:899,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:903,1
    - Dst: yaml_parser_fetch_directive
      Src: /src/h2o/deps/yaml/src/scanner.c:904,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:909,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:910,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:911,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:912,1
    - Dst: yaml_parser_fetch_document_indicator
      Src: /src/h2o/deps/yaml/src/scanner.c:913,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:919,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:920,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:921,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:922,1
    - Dst: yaml_parser_fetch_document_indicator
      Src: /src/h2o/deps/yaml/src/scanner.c:923,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:928,1
    - Dst: yaml_parser_fetch_flow_collection_start
      Src: /src/h2o/deps/yaml/src/scanner.c:929,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:934,1
    - Dst: yaml_parser_fetch_flow_collection_start
      Src: /src/h2o/deps/yaml/src/scanner.c:935,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:940,1
    - Dst: yaml_parser_fetch_flow_collection_end
      Src: /src/h2o/deps/yaml/src/scanner.c:941,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:946,1
    - Dst: yaml_parser_fetch_flow_collection_end
      Src: /src/h2o/deps/yaml/src/scanner.c:947,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:952,1
    - Dst: yaml_parser_fetch_flow_entry
      Src: /src/h2o/deps/yaml/src/scanner.c:953,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:957,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:957,1
    - Dst: yaml_parser_fetch_block_entry
      Src: /src/h2o/deps/yaml/src/scanner.c:958,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:962,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:963,1
    - Dst: yaml_parser_fetch_key
      Src: /src/h2o/deps/yaml/src/scanner.c:964,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:968,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:969,1
    - Dst: yaml_parser_fetch_value
      Src: /src/h2o/deps/yaml/src/scanner.c:970,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:974,1
    - Dst: yaml_parser_fetch_anchor
      Src: /src/h2o/deps/yaml/src/scanner.c:975,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:979,1
    - Dst: yaml_parser_fetch_anchor
      Src: /src/h2o/deps/yaml/src/scanner.c:980,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:984,1
    - Dst: yaml_parser_fetch_tag
      Src: /src/h2o/deps/yaml/src/scanner.c:985,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:989,1
    - Dst: yaml_parser_fetch_block_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:990,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:994,1
    - Dst: yaml_parser_fetch_block_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:995,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:999,1
    - Dst: yaml_parser_fetch_flow_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1000,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1004,1
    - Dst: yaml_parser_fetch_flow_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1005,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:1026,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1026,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1027,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1027,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1028,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1028,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1029,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1029,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1030,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1030,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1031,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1031,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1032,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1032,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1033,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1033,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1034,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1034,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1035,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1035,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1036,1
    - Dst: IS_BLANK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:1036,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1038,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1038,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:1039,1
    - Dst: yaml_parser_fetch_plain_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1040,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1046,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 54
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 1049
    functionName: yaml_parser_fetch_next_token
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_fetch_anchor
    - yaml_parser_unroll_indent
    - yaml_parser_scan_to_next_token
    - yaml_parser_fetch_block_entry
    - CHECK
    - yaml_parser_fetch_plain_scalar
    - yaml_parser_fetch_flow_collection_end
    - yaml_parser_fetch_flow_entry
    - yaml_parser_fetch_block_scalar
    - yaml_parser_fetch_tag
    - yaml_parser_fetch_flow_scalar
    - CACHE
    - yaml_parser_set_scanner_error
    - IS_BLANKZ_AT
    - yaml_parser_fetch_stream_start
    - IS_BLANKZ
    - yaml_parser_fetch_directive
    - CHECK_AT
    - yaml_parser_fetch_key
    - IS_Z
    - yaml_parser_fetch_stream_end
    - yaml_parser_stale_simple_keys
    - yaml_parser_fetch_value
    - IS_BLANK_AT
    - yaml_parser_fetch_flow_collection_start
    - yaml_parser_fetch_document_indicator
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_next_token(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1090
    functionName: yaml_parser_stale_simple_keys
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 2
    functionsReached:
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: int yaml_parser_stale_simple_keys(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1128
    functionName: yaml_parser_save_simple_key
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached:
    - yaml_parser_remove_simple_key
    linkageType: ''
    returnType: int
    signature: int yaml_parser_save_simple_key(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1155
    functionName: yaml_parser_remove_simple_key
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: int yaml_parser_remove_simple_key(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/scanner.c:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1181
    functionName: yaml_parser_increase_flow_level
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached:
    - PUSH
    linkageType: ''
    returnType: int
    signature: int yaml_parser_increase_flow_level(yaml_parser_t *parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/scanner.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1196
    functionName: yaml_parser_decrease_flow_level
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached:
    - POP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_decrease_flow_level(yaml_parser_t *parser)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/scanner.c:1223,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1235,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1238,1
    - Dst: QUEUE_INSERT
      Src: /src/h2o/deps/yaml/src/scanner.c:1242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - parser
    - column
    - number
    - type
    - mark
    argTypes:
    - yaml_parser_t*
    - ptrdiff_t
    - ptrdiff_t
    - yaml_token_type_t
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1249
    functionName: yaml_parser_roll_indent
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 0
    functionsReached:
    - PUSH
    - TOKEN_INIT
    - QUEUE_INSERT
    - ENQUEUE
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,\n
      \       ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1274,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1276,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/scanner.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - parser
    - column
    argTypes:
    - yaml_parser_t*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1285
    functionName: yaml_parser_unroll_indent
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - POP
    - TOKEN_INIT
    - ENQUEUE
    linkageType: ''
    returnType: int
    signature: int yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/scanner.c:1303,1
    - Dst: STREAM_START_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1316,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1323
    functionName: yaml_parser_fetch_stream_start
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - PUSH
    - ENQUEUE
    - STREAM_START_TOKEN_INIT
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_stream_start(yaml_parser_t *parser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_unroll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1343,1
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1348,1
    - Dst: STREAM_END_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1355,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1361
    functionName: yaml_parser_fetch_stream_end
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - STREAM_END_TOKEN_INIT
    - ENQUEUE
    - yaml_parser_remove_simple_key
    - yaml_parser_unroll_indent
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_stream_end(yaml_parser_t *parser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_unroll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1374,1
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1379,1
    - Dst: yaml_parser_scan_directive
      Src: /src/h2o/deps/yaml/src/scanner.c:1386,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1391,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1397
    functionName: yaml_parser_fetch_directive
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_unroll_indent
    - yaml_parser_scan_directive
    - yaml_token_delete
    - yaml_parser_remove_simple_key
    - ENQUEUE
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_directive(yaml_parser_t *parser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_unroll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1412,1
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1417,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1426,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1427,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1428,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1434,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - parser
    - type
    argTypes:
    - yaml_parser_t*
    - yaml_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1442
    functionName: yaml_parser_fetch_document_indicator
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_unroll_indent
    - TOKEN_INIT
    - yaml_parser_remove_simple_key
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_fetch_document_indicator(yaml_parser_t *parser,\n
      \       yaml_token_type_t type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_save_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1457,1
    - Dst: yaml_parser_increase_flow_level
      Src: /src/h2o/deps/yaml/src/scanner.c:1462,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1472,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1477,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - type
    argTypes:
    - yaml_parser_t*
    - yaml_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1448
    functionDepth: 2
    functionLinenumber: 1448
    functionLinenumberEnd: 1485
    functionName: yaml_parser_fetch_flow_collection_start
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_save_simple_key
    - yaml_parser_increase_flow_level
    - TOKEN_INIT
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_fetch_flow_collection_start(yaml_parser_t *parser,\n
      \       yaml_token_type_t type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1500,1
    - Dst: yaml_parser_decrease_flow_level
      Src: /src/h2o/deps/yaml/src/scanner.c:1505,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1515,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1520,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - type
    argTypes:
    - yaml_parser_t*
    - yaml_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1528
    functionName: yaml_parser_fetch_flow_collection_end
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_decrease_flow_level
    - TOKEN_INIT
    - yaml_parser_remove_simple_key
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_fetch_flow_collection_end(yaml_parser_t *parser,\n
      \       yaml_token_type_t type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1542,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1552,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1557,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1534
    functionDepth: 2
    functionLinenumber: 1534
    functionLinenumberEnd: 1563
    functionName: yaml_parser_fetch_flow_entry
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - TOKEN_INIT
    - ENQUEUE
    - yaml_parser_remove_simple_key
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_flow_entry(yaml_parser_t *parser)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1582,1
    - Dst: yaml_parser_roll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1588,1
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1603,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1613,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1618,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1624
    functionName: yaml_parser_fetch_block_entry
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_set_scanner_error
    - yaml_parser_roll_indent
    - TOKEN_INIT
    - yaml_parser_remove_simple_key
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_block_entry(yaml_parser_t *parser)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1643,1
    - Dst: yaml_parser_roll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1649,1
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1656,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1666,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1671,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1677
    functionName: yaml_parser_fetch_key
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_set_scanner_error
    - yaml_parser_roll_indent
    - TOKEN_INIT
    - yaml_parser_remove_simple_key
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_key(yaml_parser_t *parser)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1697,1
    - Dst: QUEUE_INSERT
      Src: /src/h2o/deps/yaml/src/scanner.c:1699,1
    - Dst: yaml_parser_roll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1705,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:1729,1
    - Dst: yaml_parser_roll_indent
      Src: /src/h2o/deps/yaml/src/scanner.c:1735,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1748,1
    - Dst: TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:1753,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1759
    functionName: yaml_parser_fetch_value
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - QUEUE_INSERT
    - yaml_parser_set_scanner_error
    - yaml_parser_roll_indent
    - TOKEN_INIT
    - ENQUEUE
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_value(yaml_parser_t *parser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_save_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1772,1
    - Dst: yaml_parser_scan_anchor
      Src: /src/h2o/deps/yaml/src/scanner.c:1781,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1784,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - type
    argTypes:
    - yaml_parser_t*
    - yaml_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1789
    functionName: yaml_parser_fetch_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_scan_anchor
    - yaml_token_delete
    - ENQUEUE
    - yaml_parser_save_simple_key
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_anchor(yaml_parser_t *parser, yaml_token_type_t
      type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_save_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1802,1
    - Dst: yaml_parser_scan_tag
      Src: /src/h2o/deps/yaml/src/scanner.c:1811,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1814,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1795
    functionDepth: 2
    functionLinenumber: 1795
    functionLinenumberEnd: 1820
    functionName: yaml_parser_fetch_tag
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_token_delete
    - ENQUEUE
    - yaml_parser_scan_tag
    - yaml_parser_save_simple_key
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_tag(yaml_parser_t *parser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_remove_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1833,1
    - Dst: yaml_parser_scan_block_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1842,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1845,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - literal
    argTypes:
    - yaml_parser_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1826
    functionDepth: 2
    functionLinenumber: 1826
    functionLinenumberEnd: 1851
    functionName: yaml_parser_fetch_block_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_token_delete
    - ENQUEUE
    - yaml_parser_scan_block_scalar
    - yaml_parser_remove_simple_key
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_block_scalar(yaml_parser_t *parser, int literal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_save_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1864,1
    - Dst: yaml_parser_scan_flow_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1873,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1876,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - single
    argTypes:
    - yaml_parser_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1882
    functionName: yaml_parser_fetch_flow_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_token_delete
    - yaml_parser_scan_flow_scalar
    - ENQUEUE
    - yaml_parser_save_simple_key
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_flow_scalar(yaml_parser_t *parser, int single)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_save_simple_key
      Src: /src/h2o/deps/yaml/src/scanner.c:1895,1
    - Dst: yaml_parser_scan_plain_scalar
      Src: /src/h2o/deps/yaml/src/scanner.c:1904,1
    - Dst: ENQUEUE
      Src: /src/h2o/deps/yaml/src/scanner.c:1907,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/scanner.c:1908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1888
    functionDepth: 2
    functionLinenumber: 1888
    functionLinenumberEnd: 1913
    functionName: yaml_parser_fetch_plain_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_token_delete
    - ENQUEUE
    - yaml_parser_save_simple_key
    - yaml_parser_scan_plain_scalar
    linkageType: ''
    returnType: int
    signature: int yaml_parser_fetch_plain_scalar(yaml_parser_t *parser)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:1928,1
    - Dst: IS_BOM
      Src: /src/h2o/deps/yaml/src/scanner.c:1930,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1931,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:1943,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1945,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1947,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1948,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:1949,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:1954,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:1955,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:1956,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:1957,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:1963,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:1965,1
    - Dst: SKIP_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:1966,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1983
    functionName: yaml_parser_scan_to_next_token
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - IS_BREAKZ
    - IS_BOM
    - IS_BREAK
    - CHECK
    - CACHE
    - SKIP_LINE
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_scan_to_next_token(yaml_parser_t *parser)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2007,1
    - Dst: yaml_parser_scan_directive_name
      Src: /src/h2o/deps/yaml/src/scanner.c:2011,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/scanner.c:2016,1
    - Dst: yaml_parser_scan_version_directive_value
      Src: /src/h2o/deps/yaml/src/scanner.c:2020,1
    - Dst: VERSION_DIRECTIVE_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2028,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/scanner.c:2034,1
    - Dst: yaml_parser_scan_tag_directive_value
      Src: /src/h2o/deps/yaml/src/scanner.c:2038,1
    - Dst: TAG_DIRECTIVE_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2046,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2054,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2061,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2063,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2064,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2065,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2068,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2069,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2070,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2071,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2077,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2078,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:2085,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2086,1
    - Dst: SKIP_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:2087,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2090,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2095,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2096,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2097,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 2
    argNames:
    - parser
    - token
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2099
    functionName: yaml_parser_scan_directive
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_scan_directive_name
    - IS_BREAKZ
    - yaml_free
    - yaml_parser_set_scanner_error
    - VERSION_DIRECTIVE_TOKEN_INIT
    - yaml_parser_scan_version_directive_value
    - strcmp
    - TAG_DIRECTIVE_TOKEN_INIT
    - IS_BREAK
    - yaml_parser_scan_tag_directive_value
    - CACHE
    - CHECK
    - SKIP_LINE
    - IS_BLANK
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t
      *token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2117,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2121,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/scanner.c:2123,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2125,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2126,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2132,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2139,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2140,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - parser
    - start_mark
    - name
    argTypes:
    - yaml_parser_t*
    - yaml_mark_t
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2152
    functionName: yaml_parser_scan_directive_name
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - READ
    - IS_ALPHA
    - IS_BLANKZ
    - STRING_DEL
    - CACHE
    - STRING_INIT
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_directive_name(yaml_parser_t *parser,\n        yaml_mark_t
      start_mark, yaml_char_t **name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2168,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2170,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2171,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2172,1
    - Dst: yaml_parser_scan_version_directive_number
      Src: /src/h2o/deps/yaml/src/scanner.c:2177,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2182,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2183,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2187,1
    - Dst: yaml_parser_scan_version_directive_number
      Src: /src/h2o/deps/yaml/src/scanner.c:2191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - parser
    - start_mark
    - major
    - minor
    argTypes:
    - yaml_parser_t*
    - yaml_mark_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2162
    functionDepth: 1
    functionLinenumber: 2162
    functionLinenumberEnd: 2195
    functionName: yaml_parser_scan_version_directive_value
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_parser_set_scanner_error
    - CHECK
    - CACHE
    - yaml_parser_scan_version_directive_number
    - IS_BLANK
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_version_directive_value(yaml_parser_t *parser,\n
      \       yaml_mark_t start_mark, int *major, int *minor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2218,1
    - Dst: IS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2220,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2225,1
    - Dst: AS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2229,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2231,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2233,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - parser
    - start_mark
    - number
    argTypes:
    - yaml_parser_t*
    - yaml_mark_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2246
    functionName: yaml_parser_scan_version_directive_number
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - AS_DIGIT
    - yaml_parser_set_scanner_error
    - IS_DIGIT
    - CACHE
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_version_directive_number(yaml_parser_t *parser,\n
      \       yaml_mark_t start_mark, int *number)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2265,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2267,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2268,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2269,1
    - Dst: yaml_parser_scan_tag_handle
      Src: /src/h2o/deps/yaml/src/scanner.c:2274,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2279,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2281,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2282,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2289,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2290,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2291,1
    - Dst: yaml_parser_scan_tag_uri
      Src: /src/h2o/deps/yaml/src/scanner.c:2296,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2301,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2303,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2304,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2315,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2316,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - parser
    - start_mark
    - handle
    - prefix
    argTypes:
    - yaml_parser_t*
    - yaml_mark_t
    - yaml_char_t**
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2318
    functionName: yaml_parser_scan_tag_directive_value
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - IS_BLANKZ
    - yaml_parser_scan_tag_handle
    - CACHE
    - yaml_parser_scan_tag_uri
    - SKIP
    - IS_BLANK
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_tag_directive_value(yaml_parser_t *parser,\n
      \       yaml_mark_t start_mark, yaml_char_t **handle, yaml_char_t **prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2328,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2334,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2338,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/scanner.c:2340,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2341,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2342,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2355,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2355,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2356,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2356,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2357,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2357,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2358,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2358,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2359,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2360,1
    - Dst: ANCHOR_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2369,1
    - Dst: ALIAS_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2372,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2378,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 3
    argNames:
    - parser
    - token
    - type
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    - yaml_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2380
    functionName: yaml_parser_scan_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - READ
    - IS_ALPHA
    - IS_BLANKZ
    - yaml_parser_set_scanner_error
    - STRING_DEL
    - ALIAS_TOKEN_INIT
    - CHECK
    - CACHE
    - ANCHOR_TOKEN_INIT
    - STRING_INIT
    - SKIP
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_anchor(yaml_parser_t *parser, yaml_token_t *token,\n
      \       yaml_token_type_t type)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2397,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:2399,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/scanner.c:2403,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2409,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2410,1
    - Dst: yaml_parser_scan_tag_uri
      Src: /src/h2o/deps/yaml/src/scanner.c:2414,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2419,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2420,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2425,1
    - Dst: yaml_parser_scan_tag_handle
      Src: /src/h2o/deps/yaml/src/scanner.c:2433,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/scanner.c:2438,1
    - Dst: yaml_parser_scan_tag_uri
      Src: /src/h2o/deps/yaml/src/scanner.c:2442,1
    - Dst: yaml_parser_scan_tag_uri
      Src: /src/h2o/deps/yaml/src/scanner.c:2449,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2454,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/scanner.c:2455,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2475,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2477,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2478,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2479,1
    - Dst: TAG_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2489,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2494,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/scanner.c:2495,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 2
    argNames:
    - parser
    - token
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2497
    functionName: yaml_parser_scan_tag
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - YAML_MALLOC
    - yaml_free
    - IS_BLANKZ
    - yaml_parser_set_scanner_error
    - CHECK_AT
    - yaml_parser_scan_tag_handle
    - CHECK
    - CACHE
    - yaml_parser_scan_tag_uri
    - TAG_TOKEN_INIT
    - strlen
    - SKIP
    linkageType: ''
    returnType: int
    signature: int yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2509,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2513,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2515,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2516,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2524,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2528,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/scanner.c:2530,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2532,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2533,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2538,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2540,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2551,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2562,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 4
    argNames:
    - parser
    - directive
    - start_mark
    - handle
    argTypes:
    - yaml_parser_t*
    - int
    - yaml_mark_t
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2503
    functionDepth: 1
    functionLinenumber: 2503
    functionLinenumberEnd: 2564
    functionName: yaml_parser_scan_tag_handle
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 2
    functionsReached:
    - READ
    - IS_ALPHA
    - STRING_DEL
    - CHECK
    - CACHE
    - STRING_INIT
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_tag_handle(yaml_parser_t *parser, int directive,\n
      \       yaml_mark_t start_mark, yaml_char_t **handle)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/scanner.c:2574,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2577,1
    - Dst: yaml_string_extend
      Src: /src/h2o/deps/yaml/src/scanner.c:2582,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/scanner.c:2595,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2601,1
    - Dst: IS_ALPHA
      Src: /src/h2o/deps/yaml/src/scanner.c:2614,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2614,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2615,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2615,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2616,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2616,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2617,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2617,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2618,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2618,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2619,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2619,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2620,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2620,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2621,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2621,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2622,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2622,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2624,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2625,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2625,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2631,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:2632,1
    - Dst: yaml_parser_scan_uri_escapes
      Src: /src/h2o/deps/yaml/src/scanner.c:2635,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2639,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2643,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:2649,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2652,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2663,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 50
    argCount: 6
    argNames:
    - parser
    - uri_char
    - directive
    - head
    - start_mark
    - uri
    argTypes:
    - yaml_parser_t*
    - int
    - int
    - yaml_char_t*
    - yaml_mark_t
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2570
    functionDepth: 1
    functionLinenumber: 2570
    functionLinenumberEnd: 2665
    functionName: yaml_parser_scan_tag_uri
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 2
    functionsReached:
    - yaml_string_extend
    - yaml_parser_scan_uri_escapes
    - READ
    - IS_ALPHA
    - STRING_DEL
    - STRING_EXTEND
    - memcpy
    - CHECK
    - CACHE
    - STRING_INIT
    - strlen
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_tag_uri(yaml_parser_t *parser, int uri_char,
      int directive,\n        yaml_char_t *head, yaml_mark_t start_mark, yaml_char_t
      **uri)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2685,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2687,1
    - Dst: IS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:2688,1
    - Dst: IS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:2689,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2690,1
    - Dst: AS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:2697,1
    - Dst: AS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:2697,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2708,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2718,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2727,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2728,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2729,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - parser
    - directive
    - start_mark
    - string
    argTypes:
    - yaml_parser_t*
    - int
    - yaml_mark_t
    - yaml_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2671
    functionDepth: 1
    functionLinenumber: 2671
    functionLinenumberEnd: 2734
    functionName: yaml_parser_scan_uri_escapes
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - AS_HEX_AT
    - IS_HEX_AT
    - CHECK
    - CACHE
    - SKIP
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive,\n
      \       yaml_mark_t start_mark, yaml_string_t *string)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2755,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2756,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2757,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2763,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2767,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2771,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2771,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2775,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2777,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2781,1
    - Dst: IS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2783,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2787,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2788,1
    - Dst: AS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2795,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2797,1
    - Dst: IS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2803,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2805,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2806,1
    - Dst: AS_DIGIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2811,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2813,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2815,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2817,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2817,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2818,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2820,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2826,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2828,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2829,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2830,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:2833,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2834,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2835,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2836,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2842,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2843,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:2850,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2851,1
    - Dst: SKIP_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:2852,1
    - Dst: yaml_parser_scan_block_scalar_breaks
      Src: /src/h2o/deps/yaml/src/scanner.c:2865,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2870,1
    - Dst: IS_Z
      Src: /src/h2o/deps/yaml/src/scanner.c:2872,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2880,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:2890,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:2894,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:2897,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:2898,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:2903,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:2904,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:2908,1
    - Dst: IS_BREAKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:2912,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:2913,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2914,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2919,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:2921,1
    - Dst: yaml_parser_scan_block_scalar_breaks
      Src: /src/h2o/deps/yaml/src/scanner.c:2925,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:2932,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:2935,1
    - Dst: SCALAR_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:2940,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2944,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2945,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2950,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2951,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:2952,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 144
    argCount: 3
    argNames:
    - parser
    - token
    - literal
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2955
    functionName: yaml_parser_scan_block_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - CHECK
    - SKIP_LINE
    - IS_BLANK
    - AS_DIGIT
    - STRING_DEL
    - IS_DIGIT
    - CACHE
    - READ_LINE
    - yaml_parser_set_scanner_error
    - SKIP
    - CLEAR
    - JOIN
    - SCALAR_TOKEN_INIT
    - yaml_parser_scan_block_scalar_breaks
    - STRING_INIT
    - READ
    - IS_BREAKZ
    - IS_Z
    - IS_BREAK
    - STRING_EXTEND
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t
      *token,\n        int literal)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2977,1
    - Dst: IS_SPACE
      Src: /src/h2o/deps/yaml/src/scanner.c:2980,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:2981,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:2982,1
    - Dst: IS_TAB
      Src: /src/h2o/deps/yaml/src/scanner.c:2991,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:2992,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:2998,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3002,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3003,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 5
    argNames:
    - parser
    - indent
    - breaks
    - start_mark
    - end_mark
    argTypes:
    - yaml_parser_t*
    - int*
    - yaml_string_t*
    - yaml_mark_t
    - yaml_mark_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 3018
    functionName: yaml_parser_scan_block_scalar_breaks
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - IS_SPACE
    - IS_TAB
    - IS_BREAK
    - READ_LINE
    - CACHE
    - SKIP
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,\n
      \       int *indent, yaml_string_t *breaks,\n        yaml_mark_t start_mark,
      yaml_mark_t *end_mark)"
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3036,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3037,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3038,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3039,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3045,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3053,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3056,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3057,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3058,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3059,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3060,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3061,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3062,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3064,1
    - Dst: IS_Z
      Src: /src/h2o/deps/yaml/src/scanner.c:3071,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3072,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3079,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:3083,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3087,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3088,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:3090,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3092,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3093,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3098,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3105,1
    - Dst: IS_BREAK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3106,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3108,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3109,1
    - Dst: SKIP_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3110,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3117,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:3121,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3215,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3220,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3221,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3232,1
    - Dst: IS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3235,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3236,1
    - Dst: AS_HEX_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3240,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3246,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3273,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:3282,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3285,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3294,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3295,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3300,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:3302,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:3302,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:3304,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:3309,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3312,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3317,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3323,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3324,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3329,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3332,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:3343,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3347,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3348,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3350,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3353,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3354,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3355,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3356,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3361,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3362,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3368,1
    - Dst: SCALAR_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3374,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3378,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3379,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3380,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3385,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3386,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3387,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3388,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 262
    argCount: 3
    argNames:
    - parser
    - token
    - single
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3024
    functionDepth: 1
    functionLinenumber: 3024
    functionLinenumberEnd: 3391
    functionName: yaml_parser_scan_flow_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - CHECK
    - SKIP_LINE
    - IS_BLANK
    - AS_HEX_AT
    - STRING_DEL
    - CACHE
    - READ_LINE
    - yaml_parser_set_scanner_error
    - SKIP
    - CLEAR
    - IS_BLANKZ_AT
    - IS_BLANKZ
    - JOIN
    - CHECK_AT
    - IS_HEX_AT
    - SCALAR_TOKEN_INIT
    - STRING_INIT
    - READ
    - IS_Z
    - IS_BREAK_AT
    - IS_BREAK
    - STRING_EXTEND
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_scan_flow_scalar(yaml_parser_t *parser, yaml_token_t
      *token,\n        int single)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3409,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3410,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3411,1
    - Dst: STRING_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3412,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3422,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3425,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3426,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3427,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3428,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3429,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3430,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3431,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3435,1
    - Dst: IS_BLANKZ
      Src: /src/h2o/deps/yaml/src/scanner.c:3440,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3448,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3450,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3451,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3452,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3453,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3454,1
    - Dst: CHECK_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3455,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3458,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3465,1
    - Dst: IS_BLANKZ_AT
      Src: /src/h2o/deps/yaml/src/scanner.c:3465,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3467,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3468,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3469,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3469,1
    - Dst: CHECK
      Src: /src/h2o/deps/yaml/src/scanner.c:3470,1
    - Dst: STRING_EXTEND
      Src: /src/h2o/deps/yaml/src/scanner.c:3483,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3487,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3488,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3490,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3493,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3494,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3495,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3496,1
    - Dst: JOIN
      Src: /src/h2o/deps/yaml/src/scanner.c:3503,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3504,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:3510,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3514,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:3519,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:3519,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3524,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:3526,1
    - Dst: IS_BREAK
      Src: /src/h2o/deps/yaml/src/scanner.c:3526,1
    - Dst: IS_BLANK
      Src: /src/h2o/deps/yaml/src/scanner.c:3528,1
    - Dst: IS_TAB
      Src: /src/h2o/deps/yaml/src/scanner.c:3533,1
    - Dst: yaml_parser_set_scanner_error
      Src: /src/h2o/deps/yaml/src/scanner.c:3534,1
    - Dst: READ
      Src: /src/h2o/deps/yaml/src/scanner.c:3542,1
    - Dst: SKIP
      Src: /src/h2o/deps/yaml/src/scanner.c:3545,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3550,1
    - Dst: CLEAR
      Src: /src/h2o/deps/yaml/src/scanner.c:3556,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3557,1
    - Dst: READ_LINE
      Src: /src/h2o/deps/yaml/src/scanner.c:3562,1
    - Dst: CACHE
      Src: /src/h2o/deps/yaml/src/scanner.c:3565,1
    - Dst: SCALAR_TOKEN_INIT
      Src: /src/h2o/deps/yaml/src/scanner.c:3576,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3585,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3586,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3587,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3592,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3593,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3594,1
    - Dst: STRING_DEL
      Src: /src/h2o/deps/yaml/src/scanner.c:3595,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 128
    argCount: 2
    argNames:
    - parser
    - token
    argTypes:
    - yaml_parser_t*
    - yaml_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3397
    functionDepth: 1
    functionLinenumber: 3397
    functionLinenumberEnd: 3598
    functionName: yaml_parser_scan_plain_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/scanner.c
    functionUses: 1
    functionsReached:
    - CLEAR
    - READ
    - IS_TAB
    - IS_BLANKZ_AT
    - IS_BLANK
    - IS_BLANKZ
    - STRING_DEL
    - JOIN
    - CHECK_AT
    - IS_BREAK
    - SKIP
    - SCALAR_TOKEN_INIT
    - CHECK
    - CACHE
    - READ_LINE
    - STRING_INIT
    - STRING_EXTEND
    - yaml_parser_set_scanner_error
    linkageType: ''
    returnType: int
    signature: int yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t
      *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: yaml_get_version_string
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yaml_get_version_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - major
    - minor
    - patch
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: yaml_get_version
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yaml_get_version(int *major, int *minor, int *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/h2o/deps/yaml/src/api.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: yaml_malloc
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void yaml_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/h2o/deps/yaml/src/api.c:43,1
    - Dst: malloc
      Src: /src/h2o/deps/yaml/src/api.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: yaml_realloc
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - realloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void yaml_realloc(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/deps/yaml/src/api.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: yaml_free
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 10
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void yaml_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/h2o/deps/yaml/src/api.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: yaml_strdup
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - strdup
    linkageType: ''
    returnType: void
    signature: void yaml_strdup(const yaml_char_t *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yaml_realloc
      Src: /src/h2o/deps/yaml/src/api.c:77,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - start
    - pointer
    - end
    argTypes:
    - yaml_char_t**
    - yaml_char_t**
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: yaml_string_extend
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 1
    functionsReached:
    - yaml_realloc
    - memset
    linkageType: ''
    returnType: void
    signature: "void yaml_string_extend(yaml_char_t **start,\n        yaml_char_t
      **pointer, yaml_char_t **end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/h2o/deps/yaml/src/api.c:99,1
    - Dst: yaml_string_extend
      Src: /src/h2o/deps/yaml/src/api.c:104,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - a_start
    - a_pointer
    - a_end
    - b_start
    - b_pointer
    argTypes:
    - yaml_char_t**
    - yaml_char_t**
    - yaml_char_t**
    - yaml_char_t**
    - yaml_char_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: yaml_string_join
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - memcpy
    - yaml_string_extend
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void yaml_string_join(\n        yaml_char_t **a_start, yaml_char_t
      **a_pointer, yaml_char_t **a_end,\n        yaml_char_t **b_start, yaml_char_t
      **b_pointer, SHIM(yaml_char_t **b_end))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yaml_realloc
      Src: /src/h2o/deps/yaml/src/api.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - start
    - top
    - end
    argTypes:
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: yaml_stack_extend
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - yaml_realloc
    linkageType: ''
    returnType: void
    signature: void yaml_stack_extend(void **start, void **top, void **end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaml_realloc
      Src: /src/h2o/deps/yaml/src/api.c:147,1
    - Dst: memmove
      Src: /src/h2o/deps/yaml/src/api.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - start
    - head
    - tail
    - end
    argTypes:
    - void**
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 169
    functionName: yaml_queue_extend
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - yaml_realloc
    - memmove
    linkageType: ''
    returnType: void
    signature: void yaml_queue_extend(void **start, void **head, void **tail, void
      **end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:179,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:181,1
    - Dst: BUFFER_INIT
      Src: /src/h2o/deps/yaml/src/api.c:182,1
    - Dst: BUFFER_INIT
      Src: /src/h2o/deps/yaml/src/api.c:184,1
    - Dst: QUEUE_INIT
      Src: /src/h2o/deps/yaml/src/api.c:186,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:188,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:190,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:192,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:194,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:196,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:203,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:204,1
    - Dst: QUEUE_DEL
      Src: /src/h2o/deps/yaml/src/api.c:205,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:206,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:207,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:208,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:209,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:210,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 213
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 213
    functionName: yaml_parser_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 18
    functionsReached:
    - BUFFER_INIT
    - QUEUE_DEL
    - QUEUE_INIT
    - BUFFER_DEL
    - STACK_INIT
    - STACK_DEL
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_initialize(yaml_parser_t *parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:222,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:224,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:225,1
    - Dst: QUEUE_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:226,1
    - Dst: yaml_token_delete
      Src: /src/h2o/deps/yaml/src/api.c:227,1
    - Dst: DEQUEUE
      Src: /src/h2o/deps/yaml/src/api.c:227,1
    - Dst: QUEUE_DEL
      Src: /src/h2o/deps/yaml/src/api.c:229,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:230,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:231,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:232,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:233,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:234,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/api.c:235,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:236,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:237,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:239,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: yaml_parser_delete
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 18
    functionsReached:
    - yaml_free
    - QUEUE_DEL
    - yaml_token_delete
    - BUFFER_DEL
    - STACK_EMPTY
    - DEQUEUE
    - STACK_DEL
    - POP
    - memset
    - QUEUE_EMPTY
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_delete(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - size_read
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: yaml_string_read_handler
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int yaml_string_read_handler(void *data, unsigned char *buffer, size_t
      size,\n        size_t *size_read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/h2o/deps/yaml/src/api.c:280,1
    - Dst: ferror
      Src: /src/h2o/deps/yaml/src/api.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - size_read
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: yaml_file_read_handler
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - fread
    - ferror
    linkageType: ''
    returnType: int
    signature: "int yaml_file_read_handler(void *data, unsigned char *buffer, size_t
      size,\n        size_t *size_read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:292,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:293,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - parser
    - input
    - size
    argTypes:
    - yaml_parser_t*
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (input)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!parser->read_handler)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: yaml_parser_set_input_string
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_parser_set_input_string(yaml_parser_t *parser,\n        const
      unsigned char *input, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:311,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:312,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - parser
    - file
    argTypes:
    - yaml_parser_t*
    - FILE*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (file)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!parser->read_handler)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: yaml_parser_set_input_file
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_set_input_file(yaml_parser_t *parser, FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:329,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:330,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - parser
    - handler
    - data
    argTypes:
    - yaml_parser_t*
    - yaml_read_handler_t*
    - void*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!parser->read_handler)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (handler)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: yaml_parser_set_input
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_parser_set_input(yaml_parser_t *parser,\n        yaml_read_handler_t
      *handler, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:344,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - encoding
    argTypes:
    - yaml_parser_t*
    - yaml_encoding_t
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!parser->encoding)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: yaml_parser_set_encoding
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_set_encoding(yaml_parser_t *parser, yaml_encoding_t
      encoding)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:357,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:359,1
    - Dst: BUFFER_INIT
      Src: /src/h2o/deps/yaml/src/api.c:360,1
    - Dst: BUFFER_INIT
      Src: /src/h2o/deps/yaml/src/api.c:362,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:364,1
    - Dst: QUEUE_INIT
      Src: /src/h2o/deps/yaml/src/api.c:366,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:368,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:370,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:377,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:378,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:379,1
    - Dst: QUEUE_DEL
      Src: /src/h2o/deps/yaml/src/api.c:380,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:381,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 385
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 385
    functionName: yaml_emitter_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 7
    functionsReached:
    - BUFFER_INIT
    - QUEUE_DEL
    - QUEUE_INIT
    - BUFFER_DEL
    - STACK_INIT
    - STACK_DEL
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_initialize(yaml_emitter_t *emitter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:394,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:396,1
    - Dst: BUFFER_DEL
      Src: /src/h2o/deps/yaml/src/api.c:397,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:398,1
    - Dst: QUEUE_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:399,1
    - Dst: yaml_event_delete
      Src: /src/h2o/deps/yaml/src/api.c:400,1
    - Dst: DEQUEUE
      Src: /src/h2o/deps/yaml/src/api.c:400,1
    - Dst: QUEUE_DEL
      Src: /src/h2o/deps/yaml/src/api.c:402,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:403,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:404,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/api.c:405,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:406,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:407,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:409,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:410,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 413
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 413
    functionName: yaml_emitter_delete
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 7
    functionsReached:
    - yaml_free
    - QUEUE_DEL
    - yaml_event_delete
    - BUFFER_DEL
    - STACK_EMPTY
    - DEQUEUE
    - STACK_DEL
    - POP
    - memset
    - QUEUE_EMPTY
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_delete(yaml_emitter_t *emitter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:426,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: yaml_string_write_handler
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int yaml_string_write_handler(void *data, unsigned char *buffer, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/h2o/deps/yaml/src/api.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: yaml_file_write_handler
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int yaml_file_write_handler(void *data, unsigned char *buffer, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:460,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:461,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - emitter
    - output
    - size
    - size_written
    argTypes:
    - yaml_emitter_t*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!emitter->write_handler)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (output)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: yaml_emitter_set_output_string
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_emitter_set_output_string(yaml_emitter_t *emitter,\n        unsigned
      char *output, size_t size, size_t *size_written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:480,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:481,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - emitter
    - file
    argTypes:
    - yaml_emitter_t*
    - FILE*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!emitter->write_handler)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (file)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: yaml_emitter_set_output_file
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_output_file(yaml_emitter_t *emitter, FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:498,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:499,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - emitter
    - handler
    - data
    argTypes:
    - yaml_emitter_t*
    - yaml_write_handler_t*
    - void*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!emitter->write_handler)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (handler)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 504
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 504
    functionName: yaml_emitter_set_output
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_emitter_set_output(yaml_emitter_t *emitter,\n        yaml_write_handler_t
      *handler, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:513,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - emitter
    - encoding
    argTypes:
    - yaml_emitter_t*
    - yaml_encoding_t
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (!emitter->encoding)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: yaml_emitter_set_encoding
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_encoding(yaml_emitter_t *emitter, yaml_encoding_t
      encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - canonical
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: yaml_emitter_set_canonical
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - indent
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: yaml_emitter_set_indent
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - width
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: yaml_emitter_set_width
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_width(yaml_emitter_t *emitter, int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - unicode
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: yaml_emitter_set_unicode
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - line_break
    argTypes:
    - yaml_emitter_t*
    - yaml_break_t
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: yaml_emitter_set_break
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_set_break(yaml_emitter_t *emitter, yaml_break_t line_break)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:586,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:591,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:592,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:596,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:600,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:604,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:605,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:609,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:616,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - token
    argTypes:
    - yaml_token_t*
    assertStmts:
    - condition: (token)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 617
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 617
    functionName: yaml_token_delete
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 8
    functionsReached:
    - memset
    - yaml_free
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_token_delete(yaml_token_t *token)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - yaml_char_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 662
    functionName: yaml_check_utf8
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaml_check_utf8(const yaml_char_t *start, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:674,1
    - Dst: STREAM_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - event
    - encoding
    argTypes:
    - yaml_event_t*
    - yaml_encoding_t
    assertStmts:
    - condition: (event)
      pos:
        line_end: 673
        line_start: 673
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 679
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 679
    functionName: yaml_stream_start_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - assert
    - STREAM_START_EVENT_INIT
    linkageType: ''
    returnType: void
    signature: "void yaml_stream_start_event_initialize(yaml_event_t *event,\n        yaml_encoding_t
      encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:690,1
    - Dst: STREAM_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts:
    - condition: (event)
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: yaml_stream_end_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - assert
    - STREAM_END_EVENT_INIT
    linkageType: ''
    returnType: void
    signature: void yaml_stream_end_event_initialize(yaml_event_t *event)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:720,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:721,1
    - Dst: YAML_MALLOC_STATIC
      Src: /src/h2o/deps/yaml/src/api.c:726,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:734,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:738,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:739,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:740,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:741,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:743,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:744,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:746,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:747,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:749,1
    - Dst: DOCUMENT_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:756,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:763,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:764,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/api.c:765,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:766,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:767,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:769,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:770,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:771,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 5
    argNames:
    - event
    - version_directive
    - tag_directives_start
    - tag_directives_end
    - implicit
    argTypes:
    - yaml_event_t*
    - yaml_version_directive_t*
    - yaml_tag_directive_t*
    - yaml_tag_directive_t*
    - int
    assertStmts:
    - condition: (event)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: "((tag_directives_start && tag_directives_end) ||\n            (tag_directives_start
        == tag_directives_end))"
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (tag_directive->prefix)
      pos:
        line_end: 738
        line_start: 738
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (tag_directive->handle)
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 774
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 774
    functionName: yaml_document_start_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - yaml_free
    - PUSH
    - YAML_MALLOC_STATIC
    - STACK_INIT
    - yaml_check_utf8
    - STACK_EMPTY
    - STACK_DEL
    - DOCUMENT_START_EVENT_INIT
    - POP
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_document_start_event_initialize(yaml_event_t *event,\n        yaml_version_directive_t
      *version_directive,\n        yaml_tag_directive_t *tag_directives_start,\n        yaml_tag_directive_t
      *tag_directives_end,\n        int implicit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:785,1
    - Dst: DOCUMENT_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - event
    - implicit
    argTypes:
    - yaml_event_t*
    - int
    assertStmts:
    - condition: (event)
      pos:
        line_end: 784
        line_start: 784
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 790
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 790
    functionName: yaml_document_end_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - DOCUMENT_END_EVENT_INIT
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_document_end_event_initialize(yaml_event_t *event, int implicit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:802,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:803,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:805,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:805,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:807,1
    - Dst: ALIAS_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - event
    - anchor
    argTypes:
    - yaml_event_t*
    - yaml_char_t*
    assertStmts:
    - condition: (event)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (anchor)
      pos:
        line_end: 802
        line_start: 802
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 814
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 814
    functionName: yaml_alias_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - yaml_check_utf8
    - ALIAS_EVENT_INIT
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: void yaml_alias_event_initialize(yaml_event_t *event, const yaml_char_t
      *anchor)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:832,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:833,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:836,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:836,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:837,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:842,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:842,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:843,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:848,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:851,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/api.c:852,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:854,1
    - Dst: SCALAR_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:857,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:863,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:864,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:865,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 8
    argNames:
    - event
    - anchor
    - tag
    - value
    - length
    - plain_implicit
    - quoted_implicit
    - style
    argTypes:
    - yaml_event_t*
    - yaml_char_t*
    - yaml_char_t*
    - yaml_char_t*
    - int
    - int
    - int
    - yaml_scalar_style_t
    assertStmts:
    - condition: (event)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (value)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 868
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 868
    functionName: yaml_scalar_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - YAML_MALLOC
    - yaml_free
    - yaml_check_utf8
    - memcpy
    - SCALAR_EVENT_INIT
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_scalar_event_initialize(yaml_event_t *event,\n        const
      yaml_char_t *anchor, const yaml_char_t *tag,\n        const yaml_char_t *value,
      int length,\n        int plain_implicit, int quoted_implicit,\n        yaml_scalar_style_t
      style)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:883,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:886,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:886,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:887,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:892,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:892,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:893,1
    - Dst: SEQUENCE_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:897,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:903,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:904,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - event
    - anchor
    - tag
    - implicit
    - style
    argTypes:
    - yaml_event_t*
    - yaml_char_t*
    - yaml_char_t*
    - int
    - yaml_sequence_style_t
    assertStmts:
    - condition: (event)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 907
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 907
    functionName: yaml_sequence_start_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - yaml_free
    - SEQUENCE_START_EVENT_INIT
    - yaml_check_utf8
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_sequence_start_event_initialize(yaml_event_t *event,\n        const
      yaml_char_t *anchor, const yaml_char_t *tag, int implicit,\n        yaml_sequence_style_t
      style)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:918,1
    - Dst: SEQUENCE_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts:
    - condition: (event)
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 923
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 923
    functionName: yaml_sequence_end_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - SEQUENCE_END_EVENT_INIT
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_sequence_end_event_initialize(yaml_event_t *event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:938,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:941,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:941,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:942,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:947,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:947,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:948,1
    - Dst: MAPPING_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:952,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:958,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:959,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - event
    - anchor
    - tag
    - implicit
    - style
    argTypes:
    - yaml_event_t*
    - yaml_char_t*
    - yaml_char_t*
    - int
    - yaml_mapping_style_t
    assertStmts:
    - condition: (event)
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 962
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 962
    functionName: yaml_mapping_start_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - MAPPING_START_EVENT_INIT
    - yaml_free
    - yaml_check_utf8
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_mapping_start_event_initialize(yaml_event_t *event,\n        const
      yaml_char_t *anchor, const yaml_char_t *tag, int implicit,\n        yaml_mapping_style_t
      style)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:973,1
    - Dst: MAPPING_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts:
    - condition: (event)
      pos:
        line_end: 972
        line_start: 972
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 978
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 978
    functionName: yaml_mapping_end_event_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - MAPPING_END_EVENT_INIT
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_mapping_end_event_initialize(yaml_event_t *event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:989,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:994,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:998,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:999,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1001,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1005,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1009,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1010,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1011,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1015,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1016,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1020,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1021,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:1028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts:
    - condition: (event)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1029
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1029
    functionName: yaml_event_delete
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 8
    functionsReached:
    - memset
    - yaml_free
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_event_delete(yaml_event_t *event)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1059,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1060,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1064,1
    - Dst: YAML_MALLOC_STATIC
      Src: /src/h2o/deps/yaml/src/api.c:1067,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1075,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1079,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1080,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1081,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1082,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1084,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1085,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:1087,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:1088,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1090,1
    - Dst: DOCUMENT_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1097,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1104,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1105,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:1106,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/api.c:1107,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1108,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1109,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1111,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1112,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1113,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 6
    argNames:
    - document
    - version_directive
    - tag_directives_start
    - tag_directives_end
    - start_implicit
    - end_implicit
    argTypes:
    - yaml_document_t*
    - yaml_version_directive_t*
    - yaml_tag_directive_t*
    - yaml_tag_directive_t*
    - int
    - int
    assertStmts:
    - condition: (tag_directive->handle)
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (tag_directive->prefix)
      pos:
        line_end: 1079
        line_start: 1079
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (document)
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: "((tag_directives_start && tag_directives_end) ||\n            (tag_directives_start
        == tag_directives_end))"
      pos:
        line_end: 1060
        line_start: 1059
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1116
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1116
    functionName: yaml_document_initialize
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - yaml_free
    - PUSH
    - YAML_MALLOC_STATIC
    - POP
    - STACK_INIT
    - yaml_check_utf8
    - STACK_EMPTY
    - STACK_DEL
    - DOCUMENT_INIT
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_document_initialize(yaml_document_t *document,\n        yaml_version_directive_t
      *version_directive,\n        yaml_tag_directive_t *tag_directives_start,\n        yaml_tag_directive_t
      *tag_directives_end,\n        int start_implicit, int end_implicit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1127,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/api.c:1129,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/api.c:1130,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1131,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1134,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1137,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1140,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1143,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1146,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1148,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1152,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1153,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1155,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/api.c:1157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - document
    argTypes:
    - yaml_document_t*
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (0)
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1158
    functionName: yaml_document_delete
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 4
    functionsReached:
    - yaml_free
    - STACK_EMPTY
    - STACK_DEL
    - POP
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_document_delete(yaml_document_t *document)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - document
    - index
    argTypes:
    - yaml_document_t*
    - int
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1173
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1173
    functionName: yaml_document_get_node
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_document_get_node(yaml_document_t *document, int index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - document
    argTypes:
    - yaml_document_t*
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1181
        line_start: 1181
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1188
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1188
    functionName: yaml_document_get_root_node
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_document_get_root_node(yaml_document_t *document)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1207,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1208,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1214,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1214,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:1215,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1219,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1222,1
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/api.c:1223,1
    - Dst: memcpy
      Src: /src/h2o/deps/yaml/src/api.c:1225,1
    - Dst: SCALAR_NODE_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1228,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1229,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1234,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - document
    - tag
    - value
    - length
    - style
    argTypes:
    - yaml_document_t*
    - yaml_char_t*
    - yaml_char_t*
    - int
    - yaml_scalar_style_t
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1206
        line_start: 1206
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (value)
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1238
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1238
    functionName: yaml_document_add_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - YAML_MALLOC
    - yaml_free
    - PUSH
    - yaml_check_utf8
    - memcpy
    - SCALAR_NODE_INIT
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_document_add_scalar(yaml_document_t *document,\n        const
      yaml_char_t *tag, const yaml_char_t *value, int length,\n        yaml_scalar_style_t
      style)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1260,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1266,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1266,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:1267,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1270,1
    - Dst: SEQUENCE_NODE_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1272,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1274,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1279,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - document
    - tag
    - style
    argTypes:
    - yaml_document_t*
    - yaml_char_t*
    - yaml_sequence_style_t
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1259
        line_start: 1259
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1283
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1283
    functionName: yaml_document_add_sequence
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - yaml_free
    - PUSH
    - STACK_INIT
    - yaml_check_utf8
    - SEQUENCE_NODE_INIT
    - STACK_DEL
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_document_add_sequence(yaml_document_t *document,\n        const
      yaml_char_t *tag, yaml_sequence_style_t style)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1305,1
    - Dst: yaml_check_utf8
      Src: /src/h2o/deps/yaml/src/api.c:1311,1
    - Dst: strlen
      Src: /src/h2o/deps/yaml/src/api.c:1311,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/api.c:1312,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1315,1
    - Dst: MAPPING_NODE_INIT
      Src: /src/h2o/deps/yaml/src/api.c:1317,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1319,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/api.c:1324,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/api.c:1325,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - document
    - tag
    - style
    argTypes:
    - yaml_document_t*
    - yaml_char_t*
    - yaml_mapping_style_t
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1304
        line_start: 1304
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1328
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1328
    functionName: yaml_document_add_mapping
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - yaml_free
    - PUSH
    - STACK_INIT
    - yaml_check_utf8
    - MAPPING_NODE_INIT
    - STACK_DEL
    - assert
    - strlen
    - yaml_strdup
    linkageType: ''
    returnType: void
    signature: "void yaml_document_add_mapping(yaml_document_t *document,\n        const
      yaml_char_t *tag, yaml_mapping_style_t style)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1342,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1343,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1346,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1348,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - document
    - sequence
    - item
    argTypes:
    - yaml_document_t*
    - int
    - int
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1341
        line_start: 1341
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: "(sequence > 0\n            && document->nodes.start + sequence <=
        document->nodes.top)"
      pos:
        line_end: 1343
        line_start: 1342
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (item > 0 && document->nodes.start + item <= document->nodes.top)
      pos:
        line_end: 1347
        line_start: 1347
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (document->nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)
      pos:
        line_end: 1345
        line_start: 1345
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1356
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1356
    functionName: yaml_document_append_sequence_item
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - PUSH
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_document_append_sequence_item(yaml_document_t *document,\n
      \       int sequence, int item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1372,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1373,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1376,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1378,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/api.c:1380,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/api.c:1386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - document
    - mapping
    - key
    - value
    argTypes:
    - yaml_document_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (document)
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (value > 0 && document->nodes.start + value <= document->nodes.top)
      pos:
        line_end: 1379
        line_start: 1379
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (key > 0 && document->nodes.start + key <= document->nodes.top)
      pos:
        line_end: 1377
        line_start: 1377
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: "(mapping > 0\n            && document->nodes.start + mapping <=
        document->nodes.top)"
      pos:
        line_end: 1373
        line_start: 1372
        source_file: /src/h2o/deps/yaml/src/api.c
    - condition: (document->nodes.start[mapping-1].type == YAML_MAPPING_NODE)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/h2o/deps/yaml/src/api.c
    constantsTouched: []
    func_position:
      end: 1391
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1391
    functionName: yaml_document_append_mapping_pair
    functionSourceFile: /src/h2o/deps/yaml/src/api.c
    functionUses: 2
    functionsReached:
    - PUSH
    - assert
    linkageType: ''
    returnType: void
    signature: "void yaml_document_append_mapping_pair(yaml_document_t *document,\n
      \       int mapping, int key, int value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - parser
    - problem
    - offset
    - value
    argTypes:
    - yaml_parser_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: yaml_parser_set_reader_error
    functionSourceFile: /src/h2o/deps/yaml/src/reader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_reader_error(yaml_parser_t *parser, const char
      *problem,\n        size_t offset, int value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_update_raw_buffer
      Src: /src/h2o/deps/yaml/src/reader.c:57,1
    - Dst: memcmp
      Src: /src/h2o/deps/yaml/src/reader.c:65,1
    - Dst: memcmp
      Src: /src/h2o/deps/yaml/src/reader.c:71,1
    - Dst: memcmp
      Src: /src/h2o/deps/yaml/src/reader.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 87
    functionName: yaml_parser_determine_encoding
    functionSourceFile: /src/h2o/deps/yaml/src/reader.c
    functionUses: 0
    functionsReached:
    - yaml_parser_update_raw_buffer
    - memcmp
    linkageType: ''
    returnType: int
    signature: int yaml_parser_determine_encoding(yaml_parser_t *parser)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/h2o/deps/yaml/src/reader.c:112,1
    - Dst: yaml_parser_t*::read_handler
      Src: /src/h2o/deps/yaml/src/reader.c:121,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 132
    functionName: yaml_parser_update_raw_buffer
    functionSourceFile: /src/h2o/deps/yaml/src/reader.c
    functionUses: 1
    functionsReached:
    - yaml_parser_t*::read_handler
    - memmove
    - yaml_parser_set_reader_error
    linkageType: ''
    returnType: int
    signature: int yaml_parser_update_raw_buffer(yaml_parser_t *parser)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/reader.c:146,1
    - Dst: yaml_parser_determine_encoding
      Src: /src/h2o/deps/yaml/src/reader.c:161,1
    - Dst: memmove
      Src: /src/h2o/deps/yaml/src/reader.c:170,1
    - Dst: yaml_parser_update_raw_buffer
      Src: /src/h2o/deps/yaml/src/reader.c:186,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:239,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:247,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:271,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:286,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:293,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:335,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:351,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:365,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:381,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/reader.c:397,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:416,1
    - Dst: yaml_parser_set_reader_error
      Src: /src/h2o/deps/yaml/src/reader.c:464,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 120
    argCount: 2
    argNames:
    - parser
    - length
    argTypes:
    - yaml_parser_t*
    - size_t
    assertStmts:
    - condition: (parser->read_handler)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/h2o/deps/yaml/src/reader.c
    - condition: (1)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/h2o/deps/yaml/src/reader.c
    constantsTouched: []
    func_position:
      end: 469
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 469
    functionName: yaml_parser_update_buffer
    functionSourceFile: /src/h2o/deps/yaml/src/reader.c
    functionUses: 4
    functionsReached:
    - yaml_parser_determine_encoding
    - yaml_parser_update_raw_buffer
    - yaml_parser_set_reader_error
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:67,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:68,1
    - Dst: STREAM_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:70,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/deps/yaml/src/dumper.c
    - condition: (!emitter->opened)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/h2o/deps/yaml/src/dumper.c
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: yaml_emitter_open
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 2
    functionsReached:
    - yaml_emitter_emit
    - assert
    - STREAM_START_EVENT_INIT
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_open(yaml_emitter_t *emitter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:91,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:92,1
    - Dst: STREAM_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:96,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/h2o/deps/yaml/src/dumper.c
    - condition: (emitter->opened)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/yaml/src/dumper.c
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: yaml_emitter_close
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 2
    functionsReached:
    - yaml_emitter_emit
    - assert
    - STREAM_END_EVENT_INIT
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_close(yaml_emitter_t *emitter)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:117,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:118,1
    - Dst: yaml_emitter_open
      Src: /src/h2o/deps/yaml/src/dumper.c:123,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/dumper.c:126,1
    - Dst: yaml_emitter_close
      Src: /src/h2o/deps/yaml/src/dumper.c:127,1
    - Dst: yaml_emitter_delete_document_and_anchors
      Src: /src/h2o/deps/yaml/src/dumper.c:128,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:132,1
    - Dst: yaml_malloc
      Src: /src/h2o/deps/yaml/src/dumper.c:134,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/dumper.c:137,1
    - Dst: DOCUMENT_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:140,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:143,1
    - Dst: yaml_emitter_anchor_node
      Src: /src/h2o/deps/yaml/src/dumper.c:145,1
    - Dst: yaml_emitter_dump_node
      Src: /src/h2o/deps/yaml/src/dumper.c:146,1
    - Dst: DOCUMENT_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:148,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:149,1
    - Dst: yaml_emitter_delete_document_and_anchors
      Src: /src/h2o/deps/yaml/src/dumper.c:151,1
    - Dst: yaml_emitter_delete_document_and_anchors
      Src: /src/h2o/deps/yaml/src/dumper.c:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - emitter
    - document
    argTypes:
    - yaml_emitter_t*
    - yaml_document_t*
    assertStmts:
    - condition: (emitter)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/h2o/deps/yaml/src/dumper.c
    - condition: (document)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/h2o/deps/yaml/src/dumper.c
    - condition: (emitter->opened)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/deps/yaml/src/dumper.c
    constantsTouched: []
    func_position:
      end: 160
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 160
    functionName: yaml_emitter_dump
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 3
    functionsReached:
    - yaml_emitter_delete_document_and_anchors
    - yaml_emitter_open
    - yaml_emitter_emit
    - DOCUMENT_END_EVENT_INIT
    - STACK_EMPTY
    - yaml_emitter_anchor_node
    - DOCUMENT_START_EVENT_INIT
    - yaml_malloc
    - yaml_emitter_close
    - yaml_emitter_dump_node
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/src/dumper.c:172,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/dumper.c:181,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/dumper.c:183,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/dumper.c:187,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/dumper.c:190,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/dumper.c:194,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/dumper.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - emitter
    argTypes:
    - yaml_emitter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 200
    functionName: yaml_emitter_delete_document_and_anchors
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - STACK_DEL
    - yaml_document_delete
    - yaml_free
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_anchor_node
      Src: /src/h2o/deps/yaml/src/dumper.c:220,1
    - Dst: yaml_emitter_anchor_node
      Src: /src/h2o/deps/yaml/src/dumper.c:226,1
    - Dst: yaml_emitter_anchor_node
      Src: /src/h2o/deps/yaml/src/dumper.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - emitter
    - index
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: yaml_emitter_anchor_node
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 2
    functionsReached:
    - yaml_emitter_anchor_node
    linkageType: ''
    returnType: void
    signature: void yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YAML_MALLOC
      Src: /src/h2o/deps/yaml/src/dumper.c:250,1
    - Dst: sprintf
      Src: /src/h2o/deps/yaml/src/dumper.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - anchor_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: yaml_emitter_generate_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 0
    functionsReached:
    - YAML_MALLOC
    - sprintf
    linkageType: ''
    returnType: yaml_char_t
    signature: 'yaml_char_t *

      yaml_emitter_generate_anchor(SHIM(yaml_emitter_t *emitter), int anchor_id)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yaml_emitter_generate_anchor
      Src: /src/h2o/deps/yaml/src/dumper.c:271,1
    - Dst: yaml_emitter_dump_alias
      Src: /src/h2o/deps/yaml/src/dumper.c:276,1
    - Dst: yaml_emitter_dump_scalar
      Src: /src/h2o/deps/yaml/src/dumper.c:283,1
    - Dst: yaml_emitter_dump_sequence
      Src: /src/h2o/deps/yaml/src/dumper.c:285,1
    - Dst: yaml_emitter_dump_mapping
      Src: /src/h2o/deps/yaml/src/dumper.c:287,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/dumper.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - emitter
    - index
    argTypes:
    - yaml_emitter_t*
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/h2o/deps/yaml/src/dumper.c
    constantsTouched: []
    func_position:
      end: 294
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 294
    functionName: yaml_emitter_dump_node
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_dump_mapping
    - yaml_emitter_dump_scalar
    - yaml_emitter_dump_alias
    - yaml_emitter_dump_sequence
    - yaml_emitter_generate_anchor
    - assert
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_dump_node(yaml_emitter_t *emitter, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIAS_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:306,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - emitter
    - anchor
    argTypes:
    - yaml_emitter_t*
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: yaml_emitter_dump_alias
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - yaml_emitter_emit
    - ALIAS_EVENT_INIT
    linkageType: ''
    returnType: int
    signature: int yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/dumper.c:322,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/dumper.c:324,1
    - Dst: SCALAR_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:327,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - emitter
    - node
    - anchor
    argTypes:
    - yaml_emitter_t*
    - yaml_node_t*
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 332
    functionName: yaml_emitter_dump_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - SCALAR_EVENT_INIT
    - strcmp
    - yaml_emitter_emit
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t
      *node,\n        yaml_char_t *anchor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/dumper.c:345,1
    - Dst: SEQUENCE_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:349,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:351,1
    - Dst: yaml_emitter_dump_node
      Src: /src/h2o/deps/yaml/src/dumper.c:355,1
    - Dst: SEQUENCE_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:358,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - emitter
    - node
    - anchor
    argTypes:
    - yaml_emitter_t*
    - yaml_node_t*
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 362
    functionName: yaml_emitter_dump_sequence
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - SEQUENCE_END_EVENT_INIT
    - SEQUENCE_START_EVENT_INIT
    - strcmp
    - yaml_emitter_dump_node
    - yaml_emitter_emit
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t
      *node,\n        yaml_char_t *anchor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/dumper.c:375,1
    - Dst: MAPPING_START_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:379,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:381,1
    - Dst: yaml_emitter_dump_node
      Src: /src/h2o/deps/yaml/src/dumper.c:385,1
    - Dst: yaml_emitter_dump_node
      Src: /src/h2o/deps/yaml/src/dumper.c:386,1
    - Dst: MAPPING_END_EVENT_INIT
      Src: /src/h2o/deps/yaml/src/dumper.c:389,1
    - Dst: yaml_emitter_emit
      Src: /src/h2o/deps/yaml/src/dumper.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - emitter
    - node
    - anchor
    argTypes:
    - yaml_emitter_t*
    - yaml_node_t*
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 393
    functionName: yaml_emitter_dump_mapping
    functionSourceFile: /src/h2o/deps/yaml/src/dumper.c
    functionUses: 1
    functionsReached:
    - MAPPING_START_EVENT_INIT
    - MAPPING_END_EVENT_INIT
    - strcmp
    - yaml_emitter_dump_node
    - yaml_emitter_emit
    linkageType: ''
    returnType: int
    signature: "int yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t
      *node,\n        yaml_char_t *anchor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - buffer
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: BUFFER_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUFFER_INIT(context,buffer,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: BUFFER_DEL
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUFFER_DEL(context,buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: STRING
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING(string,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - string
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: STRING_ASSIGN
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_ASSIGN(value,string,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - string
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: STRING_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_INIT(context,string,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: STRING_DEL
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_DEL(context,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: STRING_EXTEND
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_EXTEND(context,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: CLEAR
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(context,string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - string_a
    - ','
    - string_b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: JOIN
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN(context,string_a,string_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - string
    - ','
    - octet
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: CHECK_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_AT(string,octet,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - octet
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: CHECK
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(string,octet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: IS_ALPHA_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALPHA_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: IS_ALPHA
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALPHA(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: IS_DIGIT_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DIGIT_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: IS_DIGIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DIGIT(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: AS_DIGIT_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_DIGIT_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: AS_DIGIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_DIGIT(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: IS_HEX_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HEX_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: IS_HEX
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HEX(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: AS_HEX_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_HEX_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: AS_HEX
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_HEX(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: IS_ASCII_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ASCII_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: IS_ASCII
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ASCII(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: IS_PRINTABLE
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PRINTABLE(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: IS_Z_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_Z_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: IS_Z
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_Z(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: IS_BOM_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BOM_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: IS_BOM
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BOM(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: IS_SPACE_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SPACE_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: IS_SPACE
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SPACE(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: IS_TAB_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TAB_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: IS_TAB
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TAB(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: IS_BLANK_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BLANK_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: IS_BLANK
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BLANK(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: IS_BREAK_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BREAK_AT((string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: IS_BREAK
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BREAK(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: IS_CRLF_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CRLF_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: IS_CRLF
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CRLF(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: IS_BREAKZ_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BREAKZ_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: IS_BREAKZ
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BREAKZ(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: IS_SPACEZ_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SPACEZ_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: IS_SPACEZ
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SPACEZ(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: IS_BLANKZ_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BLANKZ_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: IS_BLANKZ
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BLANKZ(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: WIDTH_AT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIDTH_AT(string,offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: WIDTH
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIDTH(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: MOVE
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOVE(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_a
    - ','
    - string_b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 413
    functionName: COPY
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(string_a,string_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - stack
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: STACK_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_INIT(context,stack,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: STACK_DEL
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_DEL(context,stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: STACK_EMPTY
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_EMPTY(context,stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - stack
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: STACK_LIMIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_LIMIT(context,stack,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - stack
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: PUSH
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH(context,stack,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: POP
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP(context,stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - context
    - ','
    - queue
    - ','
    - size
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: QUEUE_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_INIT(context,queue,size,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - queue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: QUEUE_DEL
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_DEL(context,queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - queue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: QUEUE_EMPTY
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_EMPTY(context,queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - context
    - ','
    - queue
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 480
    functionName: ENQUEUE
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENQUEUE(context,queue,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - queue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: DEQUEUE
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEQUEUE(context,queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - context
    - ','
    - queue
    - ','
    - index
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: QUEUE_INSERT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_INSERT(context,queue,index,value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - token
    - ','
    - token_type
    - ','
    - token_start_mark
    - ','
    - token_end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOKEN_INIT(token,token_type,token_start_mark,token_end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - token
    - ','
    - token_encoding
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: STREAM_START_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STREAM_START_TOKEN_INIT(token,token_encoding,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - token
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: STREAM_END_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STREAM_END_TOKEN_INIT(token,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - token
    - ','
    - token_value
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: ALIAS_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIAS_TOKEN_INIT(token,token_value,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - token
    - ','
    - token_value
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: ANCHOR_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ANCHOR_TOKEN_INIT(token,token_value,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - token
    - ','
    - token_handle
    - ','
    - token_suffix
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: TAG_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAG_TOKEN_INIT(token,token_handle,token_suffix,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - token
    - ','
    - token_value
    - ','
    - token_length
    - ','
    - token_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: SCALAR_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCALAR_TOKEN_INIT(token,token_value,token_length,token_style,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - token
    - ','
    - token_major
    - ','
    - token_minor
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: VERSION_DIRECTIVE_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION_DIRECTIVE_TOKEN_INIT(token,token_major,token_minor,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - token
    - ','
    - token_handle
    - ','
    - token_prefix
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: TAG_DIRECTIVE_TOKEN_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAG_DIRECTIVE_TOKEN_INIT(token,token_handle,token_prefix,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - event
    - ','
    - event_type
    - ','
    - event_start_mark
    - ','
    - event_end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_INIT(event,event_type,event_start_mark,event_end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - event
    - ','
    - event_encoding
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: STREAM_START_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STREAM_START_EVENT_INIT(event,event_encoding,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - event
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 558
    functionName: STREAM_END_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STREAM_END_EVENT_INIT(event,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - event
    - ','
    - event_version_directive
    - ','
    - event_tag_directives_start
    - ','
    - event_tag_directives_end
    - ','
    - event_implicit
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 566
    functionName: DOCUMENT_START_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DOCUMENT_START_EVENT_INIT(event,event_version_directive,                \\\n
      \       event_tag_directives_start,event_tag_directives_end,event_implicit,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - event
    - ','
    - event_implicit
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: DOCUMENT_END_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCUMENT_END_EVENT_INIT(event,event_implicit,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - event
    - ','
    - event_anchor
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: ALIAS_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIAS_EVENT_INIT(event,event_anchor,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - event
    - ','
    - event_anchor
    - ','
    - event_tag
    - ','
    - event_value
    - ','
    - event_length
    - ','
    - event_plain_implicit
    - ','
    - event_quoted_implicit
    - ','
    - event_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 585
    functionName: SCALAR_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SCALAR_EVENT_INIT(event,event_anchor,event_tag,event_value,event_length,
      \   \\\n        event_plain_implicit, event_quoted_implicit,event_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - event
    - ','
    - event_anchor
    - ','
    - event_tag
    - ','
    - event_implicit
    - ','
    - event_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 593
    functionName: SEQUENCE_START_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SEQUENCE_START_EVENT_INIT(event,event_anchor,event_tag,                 \\\n
      \       event_implicit,event_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - event
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: SEQUENCE_END_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEQUENCE_END_EVENT_INIT(event,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - event
    - ','
    - event_anchor
    - ','
    - event_tag
    - ','
    - event_implicit
    - ','
    - event_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: MAPPING_START_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "MAPPING_START_EVENT_INIT(event,event_anchor,event_tag,                  \\\n
      \       event_implicit,event_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - event
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: MAPPING_END_EVENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPING_END_EVENT_INIT(event,start_mark,end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - document
    - ','
    - document_nodes_start
    - ','
    - document_nodes_end
    - ','
    - document_version_directive
    - ','
    - document_tag_directives_start
    - ','
    - document_tag_directives_end
    - ','
    - document_start_implicit
    - ','
    - document_end_implicit
    - ','
    - document_start_mark
    - ','
    - document_end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 627
    functionName: DOCUMENT_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DOCUMENT_INIT(document,document_nodes_start,document_nodes_end,         \\\n
      \       document_version_directive,document_tag_directives_start,               \\\n
      \       document_tag_directives_end,document_start_implicit,                    \\\n
      \       document_end_implicit,document_start_mark,document_end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - node
    - ','
    - node_type
    - ','
    - node_tag
    - ','
    - node_start_mark
    - ','
    - node_end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: NODE_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE_INIT(node,node_type,node_tag,node_start_mark,node_end_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - node
    - ','
    - node_tag
    - ','
    - node_value
    - ','
    - node_length
    - ','
    - node_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: SCALAR_NODE_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SCALAR_NODE_INIT(node,node_tag,node_value,node_length,                  \\\n
      \       node_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - node
    - ','
    - node_tag
    - ','
    - node_items_start
    - ','
    - node_items_end
    - ','
    - node_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: SEQUENCE_NODE_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SEQUENCE_NODE_INIT(node,node_tag,node_items_start,node_items_end,
      \      \\\n        node_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - node
    - ','
    - node_tag
    - ','
    - node_pairs_start
    - ','
    - node_pairs_end
    - ','
    - node_style
    - ','
    - start_mark
    - ','
    - end_mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: MAPPING_NODE_INIT
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "MAPPING_NODE_INIT(node,node_tag,node_pairs_start,node_pairs_end,        \\\n
      \       node_style,start_mark,end_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: SHIM
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: UNUSED_PARAM
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 681
    functionName: UNUSED_PARAM
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 685
    functionName: YAML_MALLOC_STATIC
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YAML_MALLOC_STATIC(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 686
    functionName: YAML_MALLOC
    functionSourceFile: /src/h2o/deps/yaml/src/yaml_private.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YAML_MALLOC(size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:91,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:92,1
    - Dst: memset
      Src: /src/h2o/deps/yaml/src/loader.c:94,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:95,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/src/loader.c:99,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:100,1
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/src/loader.c:108,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:113,1
    - Dst: yaml_parser_load_document
      Src: /src/h2o/deps/yaml/src/loader.c:118,1
    - Dst: yaml_parser_delete_aliases
      Src: /src/h2o/deps/yaml/src/loader.c:120,1
    - Dst: yaml_parser_delete_aliases
      Src: /src/h2o/deps/yaml/src/loader.c:127,1
    - Dst: yaml_document_delete
      Src: /src/h2o/deps/yaml/src/loader.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - parser
    - document
    argTypes:
    - yaml_parser_t*
    - yaml_document_t*
    assertStmts:
    - condition: (parser)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/h2o/deps/yaml/src/loader.c
    - condition: (document)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/yaml/src/loader.c
    - condition: (event.type == YAML_STREAM_START_EVENT)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 132
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 132
    functionName: yaml_parser_load
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 3
    functionsReached:
    - assert
    - yaml_parser_delete_aliases
    - STACK_INIT
    - yaml_document_delete
    - yaml_parser_load_document
    - memset
    - yaml_parser_parse
    linkageType: ''
    returnType: void
    signature: void yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - problem
    - problem_mark
    argTypes:
    - yaml_parser_t*
    - char*
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: yaml_parser_set_composer_error
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_composer_error(yaml_parser_t *parser,\n        const
      char *problem, yaml_mark_t problem_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - parser
    - context
    - context_mark
    - problem
    - problem_mark
    argTypes:
    - yaml_parser_t*
    - char*
    - yaml_mark_t
    - char*
    - yaml_mark_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: yaml_parser_set_composer_error_context
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_set_composer_error_context(yaml_parser_t *parser,\n
      \       const char *context, yaml_mark_t context_mark,\n        const char *problem,
      yaml_mark_t problem_mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/loader.c:174,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:175,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/loader.c:175,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/loader.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - parser
    argTypes:
    - yaml_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: yaml_parser_delete_aliases
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - POP
    - STACK_DEL
    - yaml_free
    - STACK_EMPTY
    linkageType: ''
    returnType: void
    signature: void yaml_parser_delete_aliases(yaml_parser_t *parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:189,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:202,1
    - Dst: yaml_parser_load_nodes
      Src: /src/h2o/deps/yaml/src/loader.c:203,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/loader.c:204,1
    - Dst: STACK_DEL
      Src: /src/h2o/deps/yaml/src/loader.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - parser
    - event
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    assertStmts:
    - condition: (event->type == YAML_DOCUMENT_START_EVENT)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 210
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 210
    functionName: yaml_parser_load_document
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_parser_load_nodes
    - STACK_DEL
    - STACK_INIT
    - assert
    linkageType: ''
    returnType: int
    signature: int yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *event)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: yaml_parser_parse
      Src: /src/h2o/deps/yaml/src/loader.c:222,1
    - Dst: yaml_parser_load_alias
      Src: /src/h2o/deps/yaml/src/loader.c:226,1
    - Dst: yaml_parser_load_scalar
      Src: /src/h2o/deps/yaml/src/loader.c:229,1
    - Dst: yaml_parser_load_sequence
      Src: /src/h2o/deps/yaml/src/loader.c:232,1
    - Dst: yaml_parser_load_sequence_end
      Src: /src/h2o/deps/yaml/src/loader.c:235,1
    - Dst: yaml_parser_load_mapping
      Src: /src/h2o/deps/yaml/src/loader.c:239,1
    - Dst: yaml_parser_load_mapping_end
      Src: /src/h2o/deps/yaml/src/loader.c:242,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:246,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - parser
    - ctx
    argTypes:
    - yaml_parser_t*
    - struct loader_ctx*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 257
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 257
    functionName: yaml_parser_load_nodes
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_parser_load_sequence
    - yaml_parser_load_mapping_end
    - yaml_parser_load_alias
    - yaml_parser_load_scalar
    - assert
    - yaml_parser_load_sequence_end
    - yaml_parser_parse
    - yaml_parser_load_mapping
    linkageType: ''
    returnType: int
    signature: int yaml_parser_load_nodes(yaml_parser_t *parser, struct loader_ctx
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/loader.c:278,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:279,1
    - Dst: yaml_parser_set_composer_error_context
      Src: /src/h2o/deps/yaml/src/loader.c:280,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:286,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - parser
    - index
    - anchor
    argTypes:
    - yaml_parser_t*
    - int
    - yaml_char_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 292
    functionName: yaml_parser_register_anchor
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 0
    functionsReached:
    - PUSH
    - yaml_parser_set_composer_error_context
    - yaml_free
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_register_anchor(yaml_parser_t *parser,\n        int
      index, yaml_char_t *anchor)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/loader.c:305,1
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:315,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:317,1
    - Dst: STACK_EMPTY
      Src: /src/h2o/deps/yaml/src/loader.c:322,1
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:332,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:334,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - parser
    - ctx
    - index
    argTypes:
    - yaml_parser_t*
    - struct loader_ctx*
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 344
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 344
    functionName: yaml_parser_load_node_add
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 0
    functionsReached:
    - PUSH
    - assert
    - STACK_EMPTY
    - STACK_LIMIT
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_node_add(yaml_parser_t *parser, struct loader_ctx
      *ctx,\n        int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/loader.c:359,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:360,1
    - Dst: yaml_parser_load_node_add
      Src: /src/h2o/deps/yaml/src/loader.c:361,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:365,1
    - Dst: yaml_parser_set_composer_error
      Src: /src/h2o/deps/yaml/src/loader.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: yaml_parser_load_alias
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_parser_load_node_add
    - yaml_free
    - strcmp
    - yaml_parser_set_composer_error
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *event,\n
      \       struct loader_ctx *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:382,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/loader.c:384,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:385,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/loader.c:386,1
    - Dst: SCALAR_NODE_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:390,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:394,1
    - Dst: yaml_parser_register_anchor
      Src: /src/h2o/deps/yaml/src/loader.c:398,1
    - Dst: yaml_parser_load_node_add
      Src: /src/h2o/deps/yaml/src/loader.c:401,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:404,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:405,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 408
    functionName: yaml_parser_load_scalar
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - PUSH
    - strcmp
    - STACK_LIMIT
    - SCALAR_NODE_INIT
    - yaml_parser_load_node_add
    - yaml_parser_register_anchor
    - yaml_strdup
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *event,\n
      \       struct loader_ctx *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:427,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/loader.c:429,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:430,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/loader.c:431,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:435,1
    - Dst: SEQUENCE_NODE_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:437,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:441,1
    - Dst: yaml_parser_register_anchor
      Src: /src/h2o/deps/yaml/src/loader.c:445,1
    - Dst: yaml_parser_load_node_add
      Src: /src/h2o/deps/yaml/src/loader.c:448,1
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:450,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:451,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:456,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:457,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 459
    functionName: yaml_parser_load_sequence
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - PUSH
    - STACK_INIT
    - strcmp
    - STACK_LIMIT
    - yaml_parser_load_node_add
    - yaml_parser_register_anchor
    - SEQUENCE_NODE_INIT
    - yaml_strdup
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t
      *event,\n        struct loader_ctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:467,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:470,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/loader.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts:
    - condition: (((*ctx).top - (*ctx).start) > 0)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/h2o/deps/yaml/src/loader.c
    - condition: (parser->document->nodes.start[index-1].type == YAML_SEQUENCE_NODE)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: yaml_parser_load_sequence_end
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - POP
    - assert
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_sequence_end(yaml_parser_t *parser, yaml_event_t
      *event,\n        struct loader_ctx *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:495,1
    - Dst: strcmp
      Src: /src/h2o/deps/yaml/src/loader.c:497,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:498,1
    - Dst: yaml_strdup
      Src: /src/h2o/deps/yaml/src/loader.c:499,1
    - Dst: STACK_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:503,1
    - Dst: MAPPING_NODE_INIT
      Src: /src/h2o/deps/yaml/src/loader.c:505,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:509,1
    - Dst: yaml_parser_register_anchor
      Src: /src/h2o/deps/yaml/src/loader.c:513,1
    - Dst: yaml_parser_load_node_add
      Src: /src/h2o/deps/yaml/src/loader.c:516,1
    - Dst: STACK_LIMIT
      Src: /src/h2o/deps/yaml/src/loader.c:518,1
    - Dst: PUSH
      Src: /src/h2o/deps/yaml/src/loader.c:519,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:524,1
    - Dst: yaml_free
      Src: /src/h2o/deps/yaml/src/loader.c:525,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 527
    functionName: yaml_parser_load_mapping
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - yaml_free
    - PUSH
    - STACK_INIT
    - MAPPING_NODE_INIT
    - strcmp
    - STACK_LIMIT
    - yaml_parser_load_node_add
    - yaml_parser_register_anchor
    - yaml_strdup
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *event,\n
      \       struct loader_ctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:535,1
    - Dst: assert
      Src: /src/h2o/deps/yaml/src/loader.c:538,1
    - Dst: POP
      Src: /src/h2o/deps/yaml/src/loader.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - parser
    - event
    - ctx
    argTypes:
    - yaml_parser_t*
    - yaml_event_t*
    - struct loader_ctx*
    assertStmts:
    - condition: (((*ctx).top - (*ctx).start) > 0)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/h2o/deps/yaml/src/loader.c
    - condition: (parser->document->nodes.start[index-1].type == YAML_MAPPING_NODE)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/h2o/deps/yaml/src/loader.c
    constantsTouched: []
    func_position:
      end: 544
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: yaml_parser_load_mapping_end
    functionSourceFile: /src/h2o/deps/yaml/src/loader.c
    functionUses: 1
    functionsReached:
    - POP
    - assert
    linkageType: ''
    returnType: int
    signature: "int yaml_parser_load_mapping_end(yaml_parser_t *parser, yaml_event_t
      *event,\n        struct loader_ctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: YAML_DECLARE
    functionSourceFile: /src/h2o/deps/yaml/include/yaml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YAML_DECLARE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:8,1
    - Dst: system
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:9,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 9
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: test_system
    functionSourceFile: /src/h2o/deps/mruby-file-stat/test/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - system
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value test_system(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:17,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: test_win_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/test/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value test_win_p(mrb_state *mrb, mrb_value klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:27,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:28,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:28,1
    - Dst: mrb_define_module_function
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:29,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/test/file-stat.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: mrb_mruby_file_stat_gem_test
    functionSourceFile: /src/h2o/deps/mruby-file-stat/test/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_define_module_function
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_file_stat_gem_test(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: S_ISLNK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: S_ISFIFO
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISFIFO(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: S_ISSOCK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: S_ISBLK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISBLK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: S_ISBLK
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISBLK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: S_ISCHR
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: S_ISREG
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: S_ISDIR
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: STAT
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT(p,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: LSTAT
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSTAT(p,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: LSTAT
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSTAT(p,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: getuid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t getuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: geteuid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t geteuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: getgid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gid_t
    signature: gid_t getgid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: getegid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gid_t
    signature: gid_t getegid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: mrb_stat_alloc
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_malloc
    linkageType: ''
    returnType: struct stat
    signature: 'struct stat *

      mrb_stat_alloc(mrb_state *mrb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:163,1
    - Dst: mrb_check_convert_type
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:165,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:166,1
    - Dst: mrb_convert_type
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:167,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:169,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:174,1
    - Dst: LSTAT
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:175,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:176,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:178,1
    - Dst: mrb_class_ptr
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:182,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:183,1
    - Dst: mrb_stat_alloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:184,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:187,1
    - Dst: Data_Wrap_Struct
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - klass
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 188
    functionName: file_s_lstat
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - LSTAT
    - mrb_stat_alloc
    - mrb_convert_type
    - mrb_locale_free
    - mrb_str_to_cstr
    - mrb_obj_value
    - mrb_get_args
    - mrb_class_ptr
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_class_get_under
    - mrb_check_convert_type
    - Data_Wrap_Struct
    - mrb_nil_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value file_s_lstat(mrb_state *mrb, mrb_value klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:197,1
    - Dst: mrb_check_convert_type
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:199,1
    - Dst: mrb_nil_p
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:200,1
    - Dst: mrb_convert_type
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:201,1
    - Dst: mrb_str_to_cstr
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:203,1
    - Dst: mrb_locale_from_utf8
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:208,1
    - Dst: STAT
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:209,1
    - Dst: mrb_locale_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:210,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:212,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:216,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:218,1
    - Dst: mrb_stat_alloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:221,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:224,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:225,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 190
    functionDepth: 9
    functionLinenumber: 190
    functionLinenumberEnd: 228
    functionName: stat_initialize
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_stat_alloc
    - DATA_TYPE
    - mrb_convert_type
    - mrb_locale_free
    - DATA_PTR
    - mrb_str_to_cstr
    - mrb_get_args
    - mrb_free
    - mrb_sys_fail
    - mrb_locale_from_utf8
    - mrb_check_convert_type
    - STAT
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_initialize(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:235,1
    - Dst: mrb_obj_equal
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:237,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:239,1
    - Dst: mrb_obj_class
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:239,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:240,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:243,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:244,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:244,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:248,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:249,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:249,1
    - Dst: DATA_TYPE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:250,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:251,1
    - Dst: DATA_PTR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - copy
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 254
    functionName: stat_initialize_copy
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_obj_class
    - DATA_TYPE
    - DATA_PTR
    - mrb_raise
    - mrb_get_args
    - mrb_obj_equal
    - mrb_free
    - mrb_obj_is_instance_of
    - mrb_malloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_initialize_copy(mrb_state *mrb, mrb_value copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: DATA_PTR
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DATA_PTR(copy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:261,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: get_stat
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_data_get_ptr
    linkageType: ''
    returnType: struct stat
    signature: 'struct stat *

      get_stat(mrb_state *mrb, mrb_value self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_int_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:272,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:274,1
    - Dst: mrb_float_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - t
    argTypes:
    - mrb_state*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: mrb_ll2num
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_float_value
    - mrb_int_value
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mrb_ll2num(mrb_state *mrb, long long t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_respond_to
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:289,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:289,1
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:290,1
    - Dst: mrb_raise
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:293,1
    - Dst: fstat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:296,1
    - Dst: mrb_fixnum
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:296,1
    - Dst: mrb_sys_fail
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:297,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:300,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:301,1
    - Dst: mrb_stat_alloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:302,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:305,1
    - Dst: Data_Wrap_Struct
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 306
    functionName: io_stat
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_stat_alloc
    - mrb_funcall
    - mrb_raise
    - mrb_intern_lit
    - mrb_respond_to
    - mrb_sys_fail
    - fstat
    - mrb_fixnum
    - mrb_class_get_under
    - mrb_obj_value
    - mrb_class_get
    - Data_Wrap_Struct
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value io_stat(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:311,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 8
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: stat_dev
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_dev(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:318,1
    - Dst: major
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:318,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:318,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 8
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: stat_dev_major
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - major
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_dev_major(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:328,1
    - Dst: minor
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:328,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:328,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 8
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: stat_dev_minor
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - minor
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_dev_minor(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:337,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 8
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: stat_ino
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_ll2num
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_ino(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:343,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 8
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: stat_mode
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_mode(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:349,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 8
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: stat_nlink
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_nlink(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:355,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 8
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: stat_uid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_ll2num
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_uid(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:361,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: stat_gid
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_ll2num
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_gid(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:367,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 8
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: stat_rdev
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_rdev(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:374,1
    - Dst: major
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:374,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:374,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 8
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: stat_rdev_major
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - major
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_rdev_major(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:384,1
    - Dst: minor
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:384,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:384,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 8
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: stat_rdev_minor
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - minor
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_rdev_minor(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:393,1
    - Dst: mrb_obj_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:393,1
    - Dst: mrb_class_get
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:393,1
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:393,1
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - sec
    - nsec
    argTypes:
    - mrb_state*
    - time_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: time_at_with_sec_nsec
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_class_get
    - mrb_ll2num
    - mrb_funcall
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value time_at_with_sec_nsec(mrb_state *mrb, time_t sec, long nsec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 411
    functionName: stat_atimespec
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec stat_atimespec(const struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_atimespec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:416,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:416,1
    - Dst: time_at_with_sec_nsec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 8
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: stat_atime
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - time_at_with_sec_nsec
    - stat_atimespec
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_atime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: stat_mtimespec
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec stat_mtimespec(const struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_mtimespec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:440,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:440,1
    - Dst: time_at_with_sec_nsec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: stat_mtime
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - time_at_with_sec_nsec
    - stat_mtimespec
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_mtime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: stat_ctimespec
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec stat_ctimespec(const struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_ctimespec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:464,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:464,1
    - Dst: time_at_with_sec_nsec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: stat_ctime
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - stat_ctimespec
    - time_at_with_sec_nsec
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_ctime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:472,1
    - Dst: time_at_with_sec_nsec
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 8
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: stat_birthtime
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - time_at_with_sec_nsec
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_birthtime(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:485,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 8
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: stat_size
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_ll2num
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_size(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:492,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:492,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 8
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: stat_blksize
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_blksize(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ll2num
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:502,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:502,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 506
    functionName: stat_blocks
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_ll2num
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_blocks(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getgid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:519,1
    - Dst: getegid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:519,1
    - Dst: mrb_malloc
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:528,1
    - Dst: getgroups
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:529,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:534,1
    - Dst: mrb_free
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:549,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - mrb
    - gid
    argTypes:
    - mrb_state*
    - GETGROUPS_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 553
    functionName: mrb_group_member
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - getgid
    - getegid
    - mrb_free
    - getgroups
    - mrb_malloc
    linkageType: ''
    returnType: int
    signature: int mrb_group_member(mrb_state *mrb, GETGROUPS_T gid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:559,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:559,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:559,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 8
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: stat_grpowned_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_group_member
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_grpowned_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:569,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:570,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:572,1
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:574,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:575,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:575,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:578,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:579,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:579,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:583,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 586
    functionName: stat_readable_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - geteuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_readable_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:594,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:595,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:597,1
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:599,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:600,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:600,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:603,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:604,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:604,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:607,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 588
    functionDepth: 8
    functionLinenumber: 588
    functionLinenumberEnd: 610
    functionName: stat_readable_real_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - getuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_readable_real_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:616,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:618,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:621,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 612
    functionDepth: 8
    functionLinenumber: 612
    functionLinenumberEnd: 626
    functionName: stat_world_readable_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_world_readable_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:635,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:636,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:638,1
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:640,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:641,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:641,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:644,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:645,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:645,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:649,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 629
    functionDepth: 8
    functionLinenumber: 629
    functionLinenumberEnd: 652
    functionName: stat_writable_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - geteuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_writable_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:660,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:661,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:663,1
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:665,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:666,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:666,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:669,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:670,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:670,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:673,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 654
    functionDepth: 8
    functionLinenumber: 654
    functionLinenumberEnd: 676
    functionName: stat_writable_real_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - getuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_writable_real_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:682,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:684,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:687,1
    - Dst: mrb_nil_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 678
    functionDepth: 8
    functionLinenumber: 678
    functionLinenumberEnd: 692
    functionName: stat_world_writable_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_fixnum_value
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_world_writable_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:697,1
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:700,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:701,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:701,1
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:705,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:706,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:706,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:709,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:710,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:710,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:714,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 694
    functionDepth: 8
    functionLinenumber: 694
    functionLinenumberEnd: 717
    functionName: stat_executable_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - geteuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_executable_p(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:722,1
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:725,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:726,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:726,1
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:729,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:730,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:730,1
    - Dst: mrb_group_member
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:733,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:734,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:734,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:737,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 740
    functionName: stat_executable_real_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - mrb_group_member
    - get_stat
    - mrb_false_value
    - getuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_executable_real_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:746,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:746,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:747,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 8
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: stat_symlink_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - S_ISLNK
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_symlink_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:755,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:755,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:756,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 8
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: stat_file_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    - S_ISREG
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_file_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:763,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:763,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:764,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 8
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: stat_directory_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - S_ISDIR
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_directory_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISCHR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:771,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:771,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:772,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 8
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: stat_chardev_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - S_ISCHR
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_chardev_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISBLK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:780,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:780,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:781,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 776
    functionDepth: 8
    functionLinenumber: 776
    functionLinenumberEnd: 784
    functionName: stat_blockdev_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - S_ISBLK
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_blockdev_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISFIFO
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:790,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:790,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:791,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 8
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: stat_pipe_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - get_stat
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_pipe_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSOCK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:800,1
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:800,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:801,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 796
    functionDepth: 8
    functionLinenumber: 796
    functionLinenumberEnd: 804
    functionName: stat_socket_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    - S_ISSOCK
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_socket_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:810,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:811,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 806
    functionDepth: 8
    functionLinenumber: 806
    functionLinenumberEnd: 814
    functionName: stat_setuid_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_setuid_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:820,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:821,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 816
    functionDepth: 8
    functionLinenumber: 816
    functionLinenumberEnd: 824
    functionName: stat_setgid_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_setgid_p(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:830,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:831,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 826
    functionDepth: 8
    functionLinenumber: 826
    functionLinenumberEnd: 834
    functionName: stat_sticky_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_sticky_p(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:839,1
    - Dst: S_ISREG
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:842,1
    - Dst: S_ISDIR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:845,1
    - Dst: S_ISCHR
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:848,1
    - Dst: S_ISBLK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:852,1
    - Dst: S_ISFIFO
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:857,1
    - Dst: S_ISLNK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:862,1
    - Dst: S_ISSOCK
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 836
    functionDepth: 8
    functionLinenumber: 836
    functionLinenumberEnd: 873
    functionName: stat_ftype
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - S_ISCHR
    - S_ISDIR
    - S_ISLNK
    - get_stat
    - S_ISREG
    - S_ISSOCK
    - S_ISBLK
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_ftype(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:880,1
    - Dst: geteuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:880,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:880,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 8
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: stat_owned_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - mrb_true_value
    - mrb_false_value
    - geteuid
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_owned_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_stat
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:886,1
    - Dst: getuid
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:886,1
    - Dst: mrb_true_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:886,1
    - Dst: mrb_false_value
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 883
    functionDepth: 8
    functionLinenumber: 883
    functionLinenumberEnd: 887
    functionName: stat_owned_real_p
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - get_stat
    - getuid
    - mrb_false_value
    - mrb_true_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value stat_owned_real_p(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:892,1
    - Dst: mrb_define_class
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:893,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:894,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:896,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:898,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:898,1
    - Dst: mrb_define_class_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:900,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:900,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:902,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:902,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:903,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:903,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:904,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:904,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:905,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:905,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:906,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:906,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:907,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:907,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:908,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:908,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:909,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:909,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:910,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:910,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:911,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:911,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:912,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:912,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:913,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:913,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:914,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:914,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:915,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:915,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:916,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:916,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:917,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:917,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:918,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:918,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:919,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:919,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:920,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:920,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:921,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:921,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:922,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:922,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:923,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:923,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:924,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:924,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:925,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:925,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:926,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:926,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:927,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:927,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:928,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:928,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:929,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:929,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:930,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:930,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:932,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:932,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:933,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:933,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:934,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:934,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:935,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:935,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:936,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:936,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:937,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:937,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:938,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:938,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:940,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:940,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:941,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:941,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:942,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:942,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:944,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:944,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:946,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:946,1
    - Dst: mrb_define_method
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:947,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/deps/mruby-file-stat/src/file-stat.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 948
    functionName: mrb_mruby_file_stat_gem_init
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_define_class_method
    - MRB_ARGS_REQ
    - MRB_ARGS_NONE
    - mrb_define_class
    - mrb_define_class_under
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_file_stat_gem_init(mrb_state* mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 953
    functionName: mrb_mruby_file_stat_gem_final
    functionSourceFile: /src/h2o/deps/mruby-file-stat/src/file-stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mrb_mruby_file_stat_gem_final(mrb_state* mrb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http1.c:114,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/http1.c:115,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:117,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:119,1
    - Dst: h2o_init_request
      Src: /src/h2o/lib/http1.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts:
    - condition: (conn->req_body == NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: init_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 5
    functionsReached:
    - h2o_buffer_dispose
    - h2o_dispose_request
    - h2o_init_request
    - h2o_buffer_consume
    - assert
    linkageType: ''
    returnType: void
    signature: void init_request(struct st_h2o_http1_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_CONN0
      Src: /src/h2o/lib/http1.c:137,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http1.c:138,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http1.c:140,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http1.c:141,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http1.c:143,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/http1.c:144,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/http1.c:146,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/lib/http1.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - close_socket
    argTypes:
    - struct st_h2o_http1_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: close_connection
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_socket_close
    - h2o_buffer_dispose
    - h2o_dispose_request
    - H2O_LOG_CONN
    - h2o_destroy_connection
    - H2O_PROBE_CONN0
    linkageType: ''
    returnType: void
    signature: void close_connection(struct st_h2o_http1_conn_t *conn, int close_socket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:154,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:158,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:159,1
    - Dst: init_request
      Src: /src/h2o/lib/http1.c:162,1
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http1.c:170,1
    - Dst: reqread_start
      Src: /src/h2o/lib/http1.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts:
    - condition: (conn->req.proceed_req == NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/h2o/lib/http1.c
    - condition: (conn->_req_entity_reader == NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: cleanup_connection
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - reqread_start
    - close_connection
    - init_request
    - h2o_conn_set_state
    - assert
    linkageType: ''
    returnType: void
    signature: void cleanup_connection(struct st_h2o_http1_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http1.c:183,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http1.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - timeout
    - cb
    argTypes:
    - struct st_h2o_http1_conn_t*
    - uint64_t
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: set_req_timeout
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void set_req_timeout(struct st_h2o_http1_conn_t *conn, uint64_t timeout,
      h2o_timer_cb cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http1.c:194,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http1.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - timeout
    - cb
    argTypes:
    - struct st_h2o_http1_conn_t*
    - uint64_t
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: set_req_io_timeout
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void set_req_io_timeout(struct st_h2o_http1_conn_t *conn, uint64_t
      timeout, h2o_timer_cb cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_req_timeout
      Src: /src/h2o/lib/http1.c:202,1
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: clear_timeouts
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - set_req_io_timeout
    - set_req_timeout
    linkageType: ''
    returnType: void
    signature: void clear_timeouts(struct st_h2o_http1_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:211,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:212,1
    - Dst: h2o_send_error_generic
      Src: /src/h2o/lib/http1.c:217,1
    - Dst: cleanup_connection
      Src: /src/h2o/lib/http1.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - conn
    - status
    - status_error_index
    - reason
    - body
    argTypes:
    - struct st_h2o_http1_conn_t*
    - int
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: entity_read_do_send_error
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - cleanup_connection
    - h2o_socket_read_stop
    - clear_timeouts
    - h2o_send_error_generic
    linkageType: ''
    returnType: void
    signature: "void entity_read_do_send_error(struct st_h2o_http1_conn_t *conn, int
      status, size_t status_error_index, const char *reason,\n                                      const
      char *body)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: DECL_ENTITY_READ_SEND_ERROR_XXX
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_ENTITY_READ_SEND_ERROR_XXX(status_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:238,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:242,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:243,1
    - Dst: h2o_buffer_try_append
      Src: /src/h2o/lib/http1.c:246,1
    - Dst: entity_read_send_error_502
      Src: /src/h2o/lib/http1.c:247,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:250,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:254,1
    - Dst: struct st_h2o_http1_conn_t*::req::write_req::cb
      Src: /src/h2o/lib/http1.c:255,1
    - Dst: entity_read_send_error_502
      Src: /src/h2o/lib/http1.c:256,1
    - Dst: cleanup_connection
      Src: /src/h2o/lib/http1.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - conn
    - fragment_size
    - extra_bytes
    - complete
    argTypes:
    - struct st_h2o_http1_conn_t*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 266
    functionName: handle_one_body_fragment
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - clear_timeouts
    - cleanup_connection
    - entity_read_send_error_502
    - struct st_h2o_http1_conn_t*::req::write_req::cb
    - h2o_buffer_consume
    - h2o_buffer_try_append
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void handle_one_body_fragment(struct st_h2o_http1_conn_t *conn, size_t
      fragment_size, size_t extra_bytes, int complete)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: phr_decode_chunked
      Src: /src/h2o/lib/http1.c:277,1
    - Dst: entity_read_send_error_413
      Src: /src/h2o/lib/http1.c:279,1
    - Dst: handle_one_body_fragment
      Src: /src/h2o/lib/http1.c:285,1
    - Dst: entity_read_send_error_400
      Src: /src/h2o/lib/http1.c:288,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:292,1
    - Dst: handle_one_body_fragment
      Src: /src/h2o/lib/http1.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts:
    - condition: (bufsz + ret <= conn->sock->input->size)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 296
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 296
    functionName: handle_chunked_entity_read
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - entity_read_send_error_413
    - entity_read_send_error_400
    - handle_one_body_fragment
    - phr_decode_chunked
    - assert
    linkageType: ''
    returnType: void
    signature: void handle_chunked_entity_read(struct st_h2o_http1_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:300,1
    - Dst: memset
      Src: /src/h2o/lib/http1.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: create_chunked_entity_reader
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - memset
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: int
    signature: int create_chunked_entity_reader(struct st_h2o_http1_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle_one_body_fragment
      Src: /src/h2o/lib/http1.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: handle_content_length_entity_read
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - handle_one_body_fragment
    linkageType: ''
    returnType: void
    signature: void handle_content_length_entity_read(struct st_h2o_http1_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - content_length
    argTypes:
    - struct st_h2o_http1_conn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: create_content_length_entity_reader
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: int
    signature: int create_content_length_entity_reader(struct st_h2o_http1_conn_t
      *conn, size_t content_length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http1.c:342,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:342,1
    - Dst: entity_read_send_error_400
      Src: /src/h2o/lib/http1.c:343,1
    - Dst: create_chunked_entity_reader
      Src: /src/h2o/lib/http1.c:346,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/http1.c:349,1
    - Dst: entity_read_send_error_400
      Src: /src/h2o/lib/http1.c:351,1
    - Dst: entity_read_send_error_413
      Src: /src/h2o/lib/http1.c:355,1
    - Dst: create_content_length_entity_reader
      Src: /src/h2o/lib/http1.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - conn
    - entity_header
    argTypes:
    - struct st_h2o_http1_conn_t*
    - struct phr_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 363
    functionName: create_entity_reader
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - entity_read_send_error_413
    - h2o_strtosize
    - H2O_STRLIT
    - entity_read_send_error_400
    - create_chunked_entity_reader
    - create_content_length_entity_reader
    - h2o_lcstris
    linkageType: ''
    returnType: int
    signature: int create_entity_reader(struct st_h2o_http1_conn_t *conn, const struct
      phr_header *entity_header)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:372,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http1.c:377,1
    - Dst: memcpy
      Src: /src/h2o/lib/http1.c:385,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/http1.c:387,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/http1.c:388,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:404,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http1.c:407,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/http1.c:412,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 9
    argNames:
    - pool
    - headers
    - src
    - len
    - connection
    - host
    - upgrade
    - expect_header_index
    - entity_header_index
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - struct phr_header*
    - size_t
    - h2o_iovec_t*
    - h2o_iovec_t*
    - h2o_iovec_t*
    - ssize_t*
    - ssize_t*
    assertStmts:
    - condition: (headers->size == 0)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/h2o/lib/http1.c
    - condition: (!"logic flaw")
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 418
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 418
    functionName: init_headers
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_lookup_token
    - memcpy
    - h2o_add_header
    - h2o_vector_reserve
    - h2o_strtolower
    - assert
    linkageType: ''
    returnType: char
    signature: "char *init_headers(h2o_mem_pool_t *pool, h2o_headers_t *headers, const
      struct phr_header *src, size_t len,\n                                h2o_iovec_t
      *connection, h2o_iovec_t *host, h2o_iovec_t *upgrade, ssize_t *expect_header_index,\n
      \                               ssize_t *entity_header_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http1.c:422,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:422,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http1.c:422,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:422,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http1.c:423,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - upgrade
    argTypes:
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: upgrade_is_h2
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_lcstris
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int upgrade_is_h2(h2o_iovec_t upgrade)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/http1.c:444,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:444,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http1.c:446,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:446,1
    - Dst: init_headers
      Src: /src/h2o/lib/http1.c:453,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:460,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:461,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http1.c:464,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:465,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:467,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:470,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:472,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http1.c:478,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:482,1
    - Dst: h2o_url_parse
      Src: /src/h2o/lib/http1.c:488,1
    - Dst: h2o_req_validate_pseudo_headers
      Src: /src/h2o/lib/http1.c:498,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/http1.c:507,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:507,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/http1.c:512,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:512,1
    - Dst: upgrade_is_h2
      Src: /src/h2o/lib/http1.c:515,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 73
    argCount: 6
    argNames:
    - conn
    - headers
    - num_headers
    - minor_version
    - expect_header_index
    - entity_header_index
    argTypes:
    - struct st_h2o_http1_conn_t*
    - struct phr_header*
    - size_t
    - int
    - ssize_t*
    - ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 535
    functionName: fixup_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - H2O_STRLIT
    - h2o_strdup
    - upgrade_is_h2
    - init_headers
    - h2o_contains_token
    - h2o_url_parse
    - h2o_req_validate_pseudo_headers
    - h2o_memis
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: "char *fixup_request(struct st_h2o_http1_conn_t *conn, struct phr_header
      *headers, size_t num_headers,\n                                 int minor_version,
      ssize_t *expect_header_index, ssize_t *entity_header_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:542,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http1.c:546,1
    - Dst: struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
      Src: /src/h2o/lib/http1.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: on_continue_sent
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
    - close_connection
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_continue_sent(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: contains_crlf_only
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int contains_crlf_only(const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:560,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/http1.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - body
    argTypes:
    - struct st_h2o_http1_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: send_bad_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - h2o_send_error_400
    linkageType: ''
    returnType: void
    signature: void send_bad_request(struct st_h2o_http1_conn_t *conn, const char
      *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_req_timeout
      Src: /src/h2o/lib/http1.c:566,1
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:567,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http1.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: resume_request_read
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - set_req_io_timeout
    - set_req_timeout
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void resume_request_read(struct st_h2o_http1_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:573,1
    - Dst: entity_read_send_error_502
      Src: /src/h2o/lib/http1.c:576,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:580,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:581,1
    - Dst: resume_request_read
      Src: /src/h2o/lib/http1.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - h2o_req_t*
    - char*
    assertStmts:
    - condition: (conn->req.entity.len == conn->req_body->size)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 584
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 584
    functionName: proceed_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - entity_read_send_error_502
    - resume_request_read
    - h2o_buffer_consume
    - assert
    linkageType: ''
    returnType: void
    signature: void proceed_request(h2o_req_t *req, const char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:588,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http1.c:592,1
    - Dst: resume_request_read
      Src: /src/h2o/lib/http1.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - _req
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 597
    functionName: write_req_non_streaming
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_process_request
    - H2O_STRUCT_FROM_MEMBER
    - resume_request_read
    linkageType: ''
    returnType: int
    signature: int write_req_non_streaming(void *_req, int is_end_stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:601,1
    - Dst: h2o_req_can_stream_request
      Src: /src/h2o/lib/http1.c:604,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http1.c:607,1
    - Dst: write_req_non_streaming
      Src: /src/h2o/lib/http1.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - _req
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 613
    functionName: write_req_first
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - write_req_non_streaming
    - h2o_process_request
    - h2o_req_can_stream_request
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: int write_req_first(void *_req, int is_end_stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _req
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 624
    functionName: write_req_connect_first
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: int write_req_connect_first(void *_req, int is_end_stream)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http1.c:634,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http1.c:637,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http1.c:638,1
    - Dst: phr_parse_request
      Src: /src/h2o/lib/http1.c:640,1
    - Dst: send_bad_request
      Src: /src/h2o/lib/http1.c:649,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:656,1
    - Dst: memcmp
      Src: /src/h2o/lib/http1.c:657,1
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:663,1
    - Dst: h2o_http2_accept
      Src: /src/h2o/lib/http1.c:665,1
    - Dst: contains_crlf_only
      Src: /src/h2o/lib/http1.c:669,1
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:670,1
    - Dst: send_bad_request
      Src: /src/h2o/lib/http1.c:672,1
    - Dst: fixup_request
      Src: /src/h2o/lib/http1.c:684,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:686,1
    - Dst: send_bad_request
      Src: /src/h2o/lib/http1.c:687,1
    - Dst: h2o_probe_log_request
      Src: /src/h2o/lib/http1.c:690,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:694,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:695,1
    - Dst: h2o_http2_handle_upgrade
      Src: /src/h2o/lib/http1.c:696,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/http1.c:697,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http1.c:704,1
    - Dst: create_entity_reader
      Src: /src/h2o/lib/http1.c:705,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http1.c:708,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:712,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http1.c:713,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:713,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:714,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:715,1
    - Dst: h2o_send_error_417
      Src: /src/h2o/lib/http1.c:716,1
    - Dst: h2o_req_should_forward_expect
      Src: /src/h2o/lib/http1.c:719,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:722,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/http1.c:723,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http1.c:724,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http1.c:725,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:726,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:730,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:731,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/http1.c:732,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:734,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:736,1
    - Dst: struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
      Src: /src/h2o/lib/http1.c:738,1
    - Dst: h2o_req_can_stream_request
      Src: /src/h2o/lib/http1.c:746,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http1.c:747,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:747,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:748,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:749,1
    - Dst: h2o_send_error_405
      Src: /src/h2o/lib/http1.c:750,1
    - Dst: create_content_length_entity_reader
      Src: /src/h2o/lib/http1.c:753,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http1.c:756,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http1.c:757,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:762,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:763,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http1.c:764,1
    - Dst: struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
      Src: /src/h2o/lib/http1.c:771,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:773,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http1.c:775,1
    - Dst: clear_timeouts
      Src: /src/h2o/lib/http1.c:776,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http1.c:777,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 108
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts:
    - condition: (sizeof(orig_case_cstr) - 1 == headers[expect_header_index].name_len)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 779
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 779
    functionName: handle_incoming_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - fixup_request
    - h2o_send_error_405
    - h2o_req_should_forward_expect
    - h2o_memcpy
    - h2o_probe_log_request
    - h2o_process_request
    - send_bad_request
    - h2o_http2_handle_upgrade
    - close_connection
    - assert
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_strdup
    - h2o_req_can_stream_request
    - h2o_buffer_init
    - create_content_length_entity_reader
    - h2o_send_error_400
    - h2o_lcstris
    - h2o_add_header
    - h2o_buffer_consume
    - h2o_conn_set_state
    - h2o_http2_accept
    - h2o_send_error_417
    - clear_timeouts
    - memcmp
    - struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
    - h2o_gettimeofday
    - contains_crlf_only
    - create_entity_reader
    - h2o_socket_read_stop
    - phr_parse_request
    - h2o_timeval_is_null
    - h2o_socket_write
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void handle_incoming_request(struct st_h2o_http1_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:786,1
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:790,1
    - Dst: handle_incoming_request
      Src: /src/h2o/lib/http1.c:792,1
    - Dst: struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
      Src: /src/h2o/lib/http1.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 795
    functionName: reqread_on_read
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http1_conn_t*::_req_entity_reader::handle_incoming_entity
    - handle_incoming_request
    - set_req_io_timeout
    - close_connection
    linkageType: ''
    returnType: void
    signature: void reqread_on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 802
    functionName: close_idle_connection
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - close_connection
    linkageType: ''
    returnType: void
    signature: void close_idle_connection(h2o_conn_t *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_setup
      Src: /src/h2o/lib/http1.c:808,1
    - Dst: h2o_req_bind_conf
      Src: /src/h2o/lib/http1.c:809,1
    - Dst: close_idle_connection
      Src: /src/h2o/lib/http1.c:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 815
    functionName: on_timeout
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_req_setup
    - h2o_req_bind_conf
    - close_idle_connection
    linkageType: ''
    returnType: void
    signature: void on_timeout(struct st_h2o_http1_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:819,1
    - Dst: on_timeout
      Src: /src/h2o/lib/http1.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 822
    functionName: req_io_on_timeout
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - on_timeout
    linkageType: ''
    returnType: void
    signature: void req_io_on_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:826,1
    - Dst: on_timeout
      Src: /src/h2o/lib/http1.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: reqread_on_timeout
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - on_timeout
    linkageType: ''
    returnType: void
    signature: void reqread_on_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_req_timeout
      Src: /src/h2o/lib/http1.c:833,1
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:834,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http1.c:835,1
    - Dst: handle_incoming_request
      Src: /src/h2o/lib/http1.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 838
    functionName: reqread_start
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 1
    functionsReached:
    - handle_incoming_request
    - set_req_io_timeout
    - set_req_timeout
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void reqread_start(struct st_h2o_http1_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:845,1
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:850,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/lib/http1.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 853
    functionName: on_send_next
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - set_req_io_timeout
    - close_connection
    - h2o_proceed_response
    linkageType: ''
    returnType: void
    signature: void on_send_next(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_connection
      Src: /src/h2o/lib/http1.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 865
    functionName: on_send_complete_post_trailers
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - cleanup_connection
    linkageType: ''
    returnType: void
    signature: void on_send_complete_post_trailers(h2o_socket_t *sock, const char
      *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:872,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http1.c:881,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http1.c:882,1
    - Dst: h2o_build_server_timing_trailer
      Src: /src/h2o/lib/http1.c:893,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:893,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:893,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/http1.c:895,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:906,1
    - Dst: cleanup_connection
      Src: /src/h2o/lib/http1.c:907,1
    - Dst: cleanup_connection
      Src: /src/h2o/lib/http1.c:910,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (!conn->req.http1_is_persistent)
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 912
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 912
    functionName: on_send_complete
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_build_server_timing_trailer
    - H2O_STRLIT
    - cleanup_connection
    - set_req_io_timeout
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - h2o_socket_write
    - assert
    linkageType: ''
    returnType: void
    signature: void on_send_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:926,1
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:928,1
    - Dst: cb
      Src: /src/h2o/lib/http1.c:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - socket
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 932
    functionName: on_upgrade_complete
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - cb
    - close_connection
    linkageType: ''
    returnType: void
    signature: void on_upgrade_complete(h2o_socket_t *socket, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/http1.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - req
    - server_name_and_connection_len
    argTypes:
    - h2o_req_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 944
    functionName: flatten_headers_estimate_size
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t flatten_headers_estimate_size(h2o_req_t *req, size_t server_name_and_connection_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http1.c:952,1
    - Dst: memcpy
      Src: /src/h2o/lib/http1.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - req
    argTypes:
    - char*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 963
    functionName: flatten_res_headers
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t flatten_res_headers(char *buf, h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:970,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:974,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:977,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:980,1
    - Dst: flatten_res_headers
      Src: /src/h2o/lib/http1.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - req
    - connection
    argTypes:
    - char*
    - h2o_req_t*
    - char*
    assertStmts:
    - condition: (req->res.status <= 999)
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 988
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 988
    functionName: flatten_headers
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - sprintf
    - assert
    - flatten_res_headers
    linkageType: ''
    returnType: size_t
    signature: size_t flatten_headers(char *buf, h2o_req_t *req, const char *connection)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/http1.c:1002,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:1002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1006
    functionName: should_use_chunked_encoding
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int should_use_chunked_encoding(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_use_chunked_encoding
      Src: /src/h2o/lib/http1.c:1010,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http1.c:1011,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http1.c:1011,1
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/http1.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - struct st_h2o_http1_finalostream_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: setup_chunked
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool_aligned
    - h2o_add_header
    - should_use_chunked_encoding
    - H2O_STRLIT
    linkageType: ''
    returnType: void
    signature: void setup_chunked(struct st_h2o_http1_finalostream_t *self, h2o_req_t
      *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/http1.c:1019,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/http1.c:1020,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:1025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - prefix
    - suffix
    - state
    - chunk_size
    - send_trailers
    - buffer
    argTypes:
    - h2o_sendvec_t*
    - h2o_sendvec_t*
    - h2o_send_state_t
    - size_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1040
    functionName: encode_chunked
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - sprintf
    linkageType: ''
    returnType: void
    signature: "void encode_chunked(h2o_sendvec_t *prefix, h2o_sendvec_t *suffix,
      h2o_send_state_t state, size_t chunk_size,\n                           int send_trailers,
      char *buffer)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1049,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1050,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:1053,1
    - Dst: memcpy
      Src: /src/h2o/lib/http1.c:1054,1
    - Dst: on_send_complete
      Src: /src/h2o/lib/http1.c:1065,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http1.c:1072,1
    - Dst: setup_chunked
      Src: /src/h2o/lib/http1.c:1073,1
    - Dst: h2o_add_server_timing_header
      Src: /src/h2o/lib/http1.c:1075,1
    - Dst: flatten_headers_estimate_size
      Src: /src/h2o/lib/http1.c:1081,1
    - Dst: strlen
      Src: /src/h2o/lib/http1.c:1081,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/http1.c:1082,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:1082,1
    - Dst: flatten_headers
      Src: /src/h2o/lib/http1.c:1083,1
    - Dst: h2o_probe_log_response
      Src: /src/h2o/lib/http1.c:1086,1
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1100,1
    - Dst: encode_chunked
      Src: /src/h2o/lib/http1.c:1104,1
    - Dst: set_req_io_timeout
      Src: /src/h2o/lib/http1.c:1111,1
    - Dst: h2o_socket_sendvec
      Src: /src/h2o/lib/http1.c:1113,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/http1.c:1114,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - _self
    - _req
    - inbufs
    - inbufcnt
    - send_state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (_self == &conn->_ostr_final.super)
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/h2o/lib/http1.c
    - condition: (&conn->req == _req)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/h2o/lib/http1.c
    - condition: (empty_payload_allowed || bytes_sent != 0 || !"h2o_data must only
        be called when there is progress")
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 1115
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1115
    functionName: finalostream_send
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - encode_chunked
    - h2o_socket_sendvec
    - on_send_complete
    - h2o_mem_alloc_pool
    - flatten_headers
    - set_req_io_timeout
    - h2o_gettimeofday
    - memcpy
    - setup_chunked
    - flatten_headers_estimate_size
    - h2o_send_state_is_in_progress
    - h2o_add_server_timing_header
    - h2o_probe_log_response
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void finalostream_send(h2o_ostream_t *_self, h2o_req_t *_req, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t send_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1121,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/http1.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http1_conn_t*
    assertStmts:
    - condition: (!conn->_ostr_final.informational.write_inflight && conn->_ostr_final.informational.pending.size
        != 0)
      pos:
        line_end: 1120
        line_start: 1120
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: do_send_informational
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_socket_write
    linkageType: ''
    returnType: void
    signature: void do_send_informational(struct st_h2o_http1_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:1133,1
    - Dst: finalostream_send
      Src: /src/h2o/lib/http1.c:1140,1
    - Dst: do_send_informational
      Src: /src/h2o/lib/http1.c:1147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: on_send_informational_complete
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - finalostream_send
    - do_send_informational
    - close_connection
    linkageType: ''
    returnType: void
    signature: void on_send_informational_complete(h2o_socket_t *sock, const char
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1153,1
    - Dst: strlen
      Src: /src/h2o/lib/http1.c:1155,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:1156,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:1162,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:1164,1
    - Dst: flatten_res_headers
      Src: /src/h2o/lib/http1.c:1165,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http1.c:1171,1
    - Dst: do_send_informational
      Src: /src/h2o/lib/http1.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    assertStmts:
    - condition: (_self == &conn->_ostr_final.super)
      pos:
        line_end: 1152
        line_start: 1152
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 1176
      start: 1150
    functionDepth: 2
    functionLinenumber: 1150
    functionLinenumberEnd: 1176
    functionName: finalostream_send_informational
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - do_send_informational
    - sprintf
    - flatten_res_headers
    - h2o_vector_reserve
    - assert
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void finalostream_send_informational(h2o_ostream_t *_self, h2o_req_t
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_getsockname
      Src: /src/h2o/lib/http1.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1182
    functionName: get_sockname
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_socket_getsockname
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_getpeername
      Src: /src/h2o/lib/http1.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1188
    functionName: get_peername
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 1
    functionsReached:
    - h2o_socket_getpeername
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1193,1
    - Dst: h2o_socket_get_ptls
      Src: /src/h2o/lib/http1.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->sock != NULL && "it never becomes NULL, right?")
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1195
    functionName: get_ptls
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 2
    functionsReached:
    - h2o_socket_get_ptls
    - assert
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *get_ptls(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_server_name
      Src: /src/h2o/lib/http1.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1201
    functionName: get_ssl_server_name
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 2
    functionsReached:
    - h2o_socket_get_ssl_server_name
    linkageType: ''
    returnType: char
    signature: char *get_ssl_server_name(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_log_state
      Src: /src/h2o/lib/http1.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1207
    functionName: log_state
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 8
    functionsReached:
    - h2o_socket_log_state
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *log_state(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_can_tls_offload
      Src: /src/h2o/lib/http1.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1213
    functionName: can_zerocopy
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_socket_can_tls_offload
    linkageType: ''
    returnType: int
    signature: int can_zerocopy(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http1.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1219
    functionName: get_req_id
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_req_id(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http1.c:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1231
    functionName: steal_socket
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - close_connection
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *steal_socket(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: DEFINE_LOGGER
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LOGGER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:1259,1
    - Dst: sprintf
      Src: /src/h2o/lib/http1.c:1260,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http1.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1262
    functionName: log_request_index
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_request_index(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/lib/http1.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _conn
    - cbdata
    argTypes:
    - h2o_conn_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1268
    functionName: foreach_request
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: int
    signature: int foreach_request(h2o_conn_t *_conn, int (*cb)(h2o_req_t *req, void
      *cbdata), void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1273
    functionName: initiate_graceful_shutdown
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initiate_graceful_shutdown(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1317
    functionName: conn_is_h1
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_is_h1(h2o_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_connection
      Src: /src/h2o/lib/http1.c:1322,1
    - Dst: memset
      Src: /src/h2o/lib/http1.c:1325,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http1.c:1331,1
    - Dst: h2o_conn_get_uuid
      Src: /src/h2o/lib/http1.c:1331,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http1.c:1332,1
    - Dst: PTLS_LOG_ELEMENT_PTR
      Src: /src/h2o/lib/http1.c:1333,1
    - Dst: PTLS_LOG_ELEMENT_SAFESTR
      Src: /src/h2o/lib/http1.c:1334,1
    - Dst: h2o_conn_get_uuid
      Src: /src/h2o/lib/http1.c:1334,1
    - Dst: init_request
      Src: /src/h2o/lib/http1.c:1337,1
    - Dst: reqread_start
      Src: /src/h2o/lib/http1.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - sock
    - connected_at
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1319
    functionDepth: 3
    functionLinenumber: 1319
    functionLinenumberEnd: 1339
    functionName: h2o_http1_accept
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - reqread_start
    - H2O_PROBE_CONN
    - init_request
    - PTLS_LOG_ELEMENT_PTR
    - h2o_create_connection
    - H2O_LOG_CONN
    - PTLS_LOG_ELEMENT_SAFESTR
    - memset
    - h2o_conn_get_uuid
    linkageType: ''
    returnType: void
    signature: void h2o_http1_accept(h2o_accept_ctx_t *ctx, h2o_socket_t *sock, struct
      timeval connected_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http1.c:1344,1
    - Dst: conn_is_h1
      Src: /src/h2o/lib/http1.c:1344,1
    - Dst: alloca
      Src: /src/h2o/lib/http1.c:1347,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http1.c:1352,1
    - Dst: flatten_headers_estimate_size
      Src: /src/h2o/lib/http1.c:1354,1
    - Dst: flatten_headers
      Src: /src/h2o/lib/http1.c:1355,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/http1.c:1356,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/http1.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - req
    - inbufs
    - inbufcnt
    - on_complete
    - user_data
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - size_t
    - h2o_http1_upgrade_cb
    - void*
    assertStmts:
    - condition: (conn_is_h1(req->conn))
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/h2o/lib/http1.c
    constantsTouched: []
    func_position:
      end: 1359
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1359
    functionName: h2o_http1_upgrade
    functionSourceFile: /src/h2o/lib/http1.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - flatten_headers
    - h2o_memcpy
    - flatten_headers_estimate_size
    - alloca
    - h2o_socket_write
    - conn_is_h1
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http1_upgrade(h2o_req_t *req, h2o_iovec_t *inbufs, size_t
      inbufcnt, h2o_http1_upgrade_cb on_complete, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _sock
    - ','
    - _block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: H2O_LOG_SOCK
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_LOG_SOCK(_name, _sock, _block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _conn
    - ','
    - _block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 63
    functionName: H2O_LOG_CONN
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_LOG_CONN(_name, _conn, _block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: H2O_PROBE_IS_ENABLED
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_IS_ENABLED(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: H2O_PROBE_CONN0
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_CONN0(label, conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - conn
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: H2O_PROBE_CONN
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_CONN(label, conn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - req
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: H2O_PROBE_REQUEST0
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_REQUEST0(label, req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - req
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: H2O_PROBE_REQUEST
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_REQUEST(label, req, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: H2O_PROBE
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE(label, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: H2O_PROBE_HEXDUMP
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_HEXDUMP(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: H2O_PROBE_IS_ENABLED
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2O_PROBE_IS_ENABLED(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/probes_.h:146,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/probes_.h:147,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/probes_.h:148,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
      Src: /src/h2o/lib/probes_.h:149,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
      Src: /src/h2o/lib/probes_.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - req
    - req_index
    - name
    - value
    argTypes:
    - h2o_req_t*
    - uint64_t
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: h2o_probe_request_header
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached:
    - H2O_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
    - H2O_PROBE_CONN
    linkageType: ''
    returnType: void
    signature: "void h2o_probe_request_header(h2o_req_t *req, uint64_t req_index,
      h2o_iovec_t name,\n                                                               h2o_iovec_t
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/probes_.h:157,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/probes_.h:158,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/probes_.h:159,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
      Src: /src/h2o/lib/probes_.h:160,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
      Src: /src/h2o/lib/probes_.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - req
    - req_index
    - name
    - value
    argTypes:
    - h2o_req_t*
    - uint64_t
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: h2o_probe_response_header
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 0
    functionsReached:
    - H2O_LOG_CONN
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
    - H2O_PROBE_CONN
    linkageType: ''
    returnType: void
    signature: "void h2o_probe_response_header(h2o_req_t *req, uint64_t req_index,
      h2o_iovec_t name,\n                                                                h2o_iovec_t
      value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/probes_.h:167,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/probes_.h:168,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/probes_.h:169,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/lib/probes_.h:170,1
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/lib/probes_.h:173,1
    - Dst: H2O_PROBE_IS_ENABLED
      Src: /src/h2o/lib/probes_.h:174,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/lib/probes_.h:175,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/lib/probes_.h:177,1
    - Dst: h2o_req_t*::conn::callbacks::log_state
      Src: /src/h2o/lib/probes_.h:177,1
    - Dst: ptls_log_getsni_h2o_conn
      Src: /src/h2o/lib/probes_.h:177,1
    - Dst: h2o_probe_request_header
      Src: /src/h2o/lib/probes_.h:179,1
    - Dst: h2o_probe_request_header
      Src: /src/h2o/lib/probes_.h:181,1
    - Dst: h2o_probe_request_header
      Src: /src/h2o/lib/probes_.h:183,1
    - Dst: h2o_probe_request_header
      Src: /src/h2o/lib/probes_.h:185,1
    - Dst: h2o_probe_request_header
      Src: /src/h2o/lib/probes_.h:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - req
    - req_index
    argTypes:
    - h2o_req_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 192
    functionName: h2o_probe_log_request
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 1
    functionsReached:
    - h2o_req_t*::conn::callbacks::log_state
    - H2O_PROBE_IS_ENABLED
    - h2o_probe_request_header
    - ptls_log_getsni_h2o_conn
    - H2O_PROBE_CONN
    - H2O_LOG_CONN
    - PTLS_LOG_ELEMENT_SIGNED
    - ptls_log_conn_maybe_active
    - ptls_log_point_maybe_active
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_DEFINE_POINT
    linkageType: ''
    returnType: void
    signature: void h2o_probe_log_request(h2o_req_t *req, uint64_t req_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/probes_.h:196,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/probes_.h:197,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/probes_.h:198,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/lib/probes_.h:199,1
    - Dst: PTLS_LOG_DEFINE_POINT
      Src: /src/h2o/lib/probes_.h:201,1
    - Dst: H2O_PROBE_IS_ENABLED
      Src: /src/h2o/lib/probes_.h:202,1
    - Dst: ptls_log_point_maybe_active
      Src: /src/h2o/lib/probes_.h:203,1
    - Dst: ptls_log_conn_maybe_active
      Src: /src/h2o/lib/probes_.h:205,1
    - Dst: h2o_req_t*::conn::callbacks::log_state
      Src: /src/h2o/lib/probes_.h:205,1
    - Dst: ptls_log_getsni_h2o_conn
      Src: /src/h2o/lib/probes_.h:205,1
    - Dst: sprintf
      Src: /src/h2o/lib/probes_.h:208,1
    - Dst: h2o_probe_response_header
      Src: /src/h2o/lib/probes_.h:209,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/probes_.h:209,1
    - Dst: h2o_probe_response_header
      Src: /src/h2o/lib/probes_.h:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - req
    - req_index
    argTypes:
    - h2o_req_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 217
    functionName: h2o_probe_log_response
    functionSourceFile: /src/h2o/lib/probes_.h
    functionUses: 1
    functionsReached:
    - h2o_req_t*::conn::callbacks::log_state
    - H2O_PROBE_IS_ENABLED
    - ptls_log_getsni_h2o_conn
    - H2O_PROBE_CONN
    - h2o_iovec_init
    - H2O_LOG_CONN
    - sprintf
    - PTLS_LOG_ELEMENT_SIGNED
    - h2o_probe_response_header
    - ptls_log_conn_maybe_active
    - ptls_log_point_maybe_active
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_DEFINE_POINT
    linkageType: ''
    returnType: void
    signature: void h2o_probe_log_response(h2o_req_t *req, uint64_t req_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/websocket.c:34,1
    - Dst: memcpy
      Src: /src/h2o/lib/websocket.c:35,1
    - Dst: SHA1
      Src: /src/h2o/lib/websocket.c:36,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/websocket.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - client_key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: create_accept_key
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SHA1
    - h2o_base64_encode
    linkageType: ''
    returnType: void
    signature: void create_accept_key(char *dst, const char *client_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_websocket_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: on_close
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_close(h2o_websocket_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_close
      Src: /src/h2o/lib/websocket.c:51,1
    - Dst: h2o_websocket_proceed
      Src: /src/h2o/lib/websocket.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: on_recv
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - on_close
    - h2o_websocket_proceed
    linkageType: ''
    returnType: void
    signature: void on_recv(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/websocket.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_websocket_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: free_write_buf
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_write_buf(h2o_websocket_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_close
      Src: /src/h2o/lib/websocket.c:69,1
    - Dst: assert
      Src: /src/h2o/lib/websocket.c:72,1
    - Dst: free_write_buf
      Src: /src/h2o/lib/websocket.c:73,1
    - Dst: h2o_websocket_proceed
      Src: /src/h2o/lib/websocket.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (conn->_write_buf.cnt > 0)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/lib/websocket.c
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: on_write_complete
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - on_close
    - h2o_websocket_proceed
    - assert
    - free_write_buf
    linkageType: ''
    returnType: void
    signature: void on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wslay_event_set_error
      Src: /src/h2o/lib/websocket.c:85,1
    - Dst: memcpy
      Src: /src/h2o/lib/websocket.c:91,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/websocket.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - buf
    - len
    - flags
    - _conn
    argTypes:
    - wslay_event_context_ptr
    - uint8_t*
    - size_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: recv_callback
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - memcpy
    - wslay_event_set_error
    - h2o_buffer_consume
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t recv_callback(wslay_event_context_ptr ctx, uint8_t *buf, size_t
      len, int flags, void *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/websocket.c:102,1
    - Dst: wslay_event_set_error
      Src: /src/h2o/lib/websocket.c:104,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/websocket.c:111,1
    - Dst: memcpy
      Src: /src/h2o/lib/websocket.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - data
    - len
    - flags
    - _conn
    argTypes:
    - wslay_event_context_ptr
    - uint8_t*
    - size_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 116
    functionName: send_callback
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - wslay_event_set_error
    - h2o_socket_is_writing
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t send_callback(wslay_event_context_ptr ctx, const uint8_t *data,
      size_t len, int flags, void *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - arg
    - _conn
    argTypes:
    - wslay_event_context_ptr
    - struct wslay_event_on_msg_recv_arg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: on_msg_callback
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_msg_callback(wslay_event_context_ptr ctx, const struct wslay_event_on_msg_recv_arg
      *arg, void *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/websocket.c:136,1
    - Dst: h2o_websocket_proceed
      Src: /src/h2o/lib/websocket.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - user_data
    - sock
    - reqsize
    argTypes:
    - void*
    - h2o_socket_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: on_complete
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_websocket_proceed
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void on_complete(void *user_data, h2o_socket_t *sock, size_t reqsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/websocket.c:142,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/websocket.c:143,1
    - Dst: assert
      Src: /src/h2o/lib/websocket.c:146,1
    - Dst: memset
      Src: /src/h2o/lib/websocket.c:149,1
    - Dst: wslay_event_context_server_init
      Src: /src/h2o/lib/websocket.c:157,1
    - Dst: create_accept_key
      Src: /src/h2o/lib/websocket.c:160,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/websocket.c:163,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/websocket.c:163,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/websocket.c:164,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/websocket.c:164,1
    - Dst: strlen
      Src: /src/h2o/lib/websocket.c:165,1
    - Dst: h2o_http1_upgrade
      Src: /src/h2o/lib/websocket.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - req
    - client_key
    - data
    - cb
    argTypes:
    - h2o_req_t*
    - char*
    - void*
    - h2o_websocket_msg_callback
    assertStmts:
    - condition: (req->version < 0x200)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/h2o/lib/websocket.c
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: h2o_upgrade_to_websocket
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - H2O_STRLIT
    - h2o_mem_alloc_pool
    - h2o_http1_upgrade
    - create_accept_key
    - h2o_mem_alloc
    - h2o_add_header
    - wslay_event_context_server_init
    - memset
    - assert
    - strlen
    linkageType: ''
    returnType: h2o_websocket_conn_t
    signature: h2o_websocket_conn_t *h2o_upgrade_to_websocket(h2o_req_t *req, const
      char *client_key, void *data, h2o_websocket_msg_callback cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/websocket.c:180,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/websocket.c:180,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/websocket.c:187,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/websocket.c:187,1
    - Dst: h2o_find_header_by_str
      Src: /src/h2o/lib/websocket.c:193,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/websocket.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - req
    - ws_client_key
    argTypes:
    - h2o_req_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 203
    functionName: h2o_is_websocket_handshake
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_lcstris
    - H2O_STRLIT
    - h2o_find_header_by_str
    linkageType: ''
    returnType: int
    signature: int h2o_is_websocket_handshake(h2o_req_t *req, const char **ws_client_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/websocket.c:208,1
    - Dst: free_write_buf
      Src: /src/h2o/lib/websocket.c:209,1
    - Dst: wslay_event_context_free
      Src: /src/h2o/lib/websocket.c:210,1
    - Dst: free
      Src: /src/h2o/lib/websocket.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_websocket_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: h2o_websocket_close
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_socket_close
    - wslay_event_context_free
    - free_write_buf
    linkageType: ''
    returnType: void
    signature: void h2o_websocket_close(h2o_websocket_conn_t *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/websocket.c:221,1
    - Dst: wslay_event_want_write
      Src: /src/h2o/lib/websocket.c:221,1
    - Dst: wslay_event_send
      Src: /src/h2o/lib/websocket.c:222,1
    - Dst: wslay_event_want_read
      Src: /src/h2o/lib/websocket.c:230,1
    - Dst: wslay_event_recv
      Src: /src/h2o/lib/websocket.c:231,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/websocket.c:238,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/websocket.c:240,1
    - Dst: wslay_event_want_read
      Src: /src/h2o/lib/websocket.c:243,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/websocket.c:244,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/websocket.c:245,1
    - Dst: wslay_event_want_write
      Src: /src/h2o/lib/websocket.c:245,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/websocket.c:246,1
    - Dst: on_close
      Src: /src/h2o/lib/websocket.c:255,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_websocket_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 256
    functionName: h2o_websocket_proceed
    functionSourceFile: /src/h2o/lib/websocket.c
    functionUses: 3
    functionsReached:
    - h2o_socket_is_writing
    - wslay_event_recv
    - h2o_socket_read_stop
    - on_close
    - wslay_event_send
    - wslay_event_want_write
    - wslay_event_want_read
    - h2o_socket_write
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void h2o_websocket_proceed(h2o_websocket_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/logconf.c:111,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/core/logconf.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: strdup_lowercased
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - h2o_strtolower
    - h2o_strdup
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t strdup_lowercased(const char *s, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - logconf
    - errbuf
    argTypes:
    - h2o_logconf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: determine_magicquote_nodes
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int determine_magicquote_nodes(h2o_logconf_t *logconf, char *errbuf)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/logconf.c:155,1
    - Dst: strlen
      Src: /src/h2o/lib/core/logconf.c:157,1
    - Dst: memcmp
      Src: /src/h2o/lib/core/logconf.c:173,1
    - Dst: strchr
      Src: /src/h2o/lib/core/logconf.c:191,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:193,1
    - Dst: strdup_lowercased
      Src: /src/h2o/lib/core/logconf.c:200,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/core/logconf.c:201,1
    - Dst: free
      Src: /src/h2o/lib/core/logconf.c:203,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:205,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:207,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:208,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:210,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:211,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:214,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:215,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:217,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:220,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:220,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:221,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:222,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:222,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:223,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:225,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/logconf.c:230,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:231,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:232,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:235,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:235,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:236,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:237,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:237,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:238,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:239,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:239,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:240,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:241,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:241,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:242,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/logconf.c:243,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:243,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:244,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/logconf.c:246,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:247,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:248,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:264,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:265,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:266,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:267,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:268,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:269,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:270,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:271,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:272,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:273,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:274,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:275,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:276,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:277,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:278,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:279,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:280,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:281,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:282,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:283,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:284,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:285,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:286,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:287,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:288,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:289,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:290,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:291,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:292,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:293,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:294,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:295,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:296,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:297,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:298,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:299,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:300,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:301,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:302,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:303,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:304,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:305,1
    - Dst: MAP_EXT_TO_TYPE
      Src: /src/h2o/lib/core/logconf.c:306,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:307,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:308,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:309,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:310,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:311,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:312,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:313,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:314,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:315,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:316,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:317,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:318,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:319,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:320,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:321,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:322,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:323,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:324,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:325,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:326,1
    - Dst: MAP_EXT_TO_PROTO
      Src: /src/h2o/lib/core/logconf.c:327,1
    - Dst: strdup_lowercased
      Src: /src/h2o/lib/core/logconf.c:329,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:330,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:331,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:338,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:350,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:351,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:352,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:353,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:354,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:355,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:356,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:357,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:358,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:359,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:360,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:361,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:362,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:363,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:364,1
    - Dst: TYPE_MAP
      Src: /src/h2o/lib/core/logconf.c:365,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:368,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:371,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:372,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:378,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:379,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:379,1
    - Dst: NEW_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:384,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:385,1
    - Dst: LAST_ELEMENT
      Src: /src/h2o/lib/core/logconf.c:385,1
    - Dst: determine_magicquote_nodes
      Src: /src/h2o/lib/core/logconf.c:391,1
    - Dst: h2o_logconf_dispose
      Src: /src/h2o/lib/core/logconf.c:398,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 208
    argCount: 3
    argNames:
    - fmt
    - escape
    - errbuf
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 400
    functionName: h2o_logconf_compile
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - LAST_ELEMENT
    - h2o_memis
    - H2O_STRLIT
    - h2o_lookup_token
    - memcmp
    - NEW_ELEMENT
    - h2o_strdup
    - free
    - MAP_EXT_TO_TYPE
    - TYPE_MAP
    - h2o_mem_alloc
    - sprintf
    - determine_magicquote_nodes
    - strdup_lowercased
    - MAP_EXT_TO_PROTO
    - h2o_logconf_dispose
    - strchr
    - strlen
    linkageType: ''
    returnType: h2o_logconf_t
    signature: h2o_logconf_t *h2o_logconf_compile(const char *fmt, int escape, char
      *errbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: LAST_ELEMENT
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_ELEMENT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: NEW_ELEMENT
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_ELEMENT(ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: MAP_EXT_TO_TYPE
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_EXT_TO_TYPE(name, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: MAP_EXT_TO_PROTO
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_EXT_TO_PROTO(name, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ch
    - ','
    - ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: TYPE_MAP
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_MAP(ch, ty)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/core/logconf.c:407,1
    - Dst: free
      Src: /src/h2o/lib/core/logconf.c:413,1
    - Dst: free
      Src: /src/h2o/lib/core/logconf.c:419,1
    - Dst: free
      Src: /src/h2o/lib/core/logconf.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - logconf
    argTypes:
    - h2o_logconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: h2o_logconf_dispose
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_logconf_dispose(h2o_logconf_t *logconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/core/logconf.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pos
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: append_safe_string
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *append_safe_string(char *pos, const char *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: append_unsafe_string_apache
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *append_unsafe_string_apache(char *pos, const char *src, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pos
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: append_unsafe_string_json
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *append_unsafe_string_json(char *pos, const char *src, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/lib/core/logconf.c:475,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/core/logconf.c:477,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/logconf.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - conn
    - nullexpr
    argTypes:
    - char*
    - h2o_conn_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: append_addr
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cb
    - h2o_socket_getnumerichost
    linkageType: ''
    returnType: char
    signature: char *append_addr(char *pos, socklen_t (*cb)(h2o_conn_t *conn, struct
      sockaddr *sa), h2o_conn_t *conn, h2o_iovec_t nullexpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/lib/core/logconf.c:494,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/core/logconf.c:496,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:499,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/logconf.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - conn
    - nullexpr
    argTypes:
    - char*
    - h2o_conn_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: append_port
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_socket_getport
    - cb
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *append_port(char *pos, socklen_t (*cb)(h2o_conn_t *conn, struct
      sockaddr *sa), h2o_conn_t *conn, h2o_iovec_t nullexpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - s
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: APPEND_SAFE_STRING_WITH_LEN
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_SAFE_STRING_WITH_LEN(pos, s, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: APPEND_SAFE_STRING
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_SAFE_STRING(pos, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 535
    functionName: APPEND_DURATION
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_DURATION(pos, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/logconf.c:547,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/logconf.c:548,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/core/logconf.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - line
    - cur_size
    - required
    - should_realloc
    argTypes:
    - char*
    - size_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 556
    functionName: expand_line_buf
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - h2o_mem_realloc
    linkageType: ''
    returnType: char
    signature: char *expand_line_buf(char *line, size_t *cur_size, size_t required,
      int should_realloc)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/logconf.c:569,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:569,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/logconf.c:574,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:574,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/core/logconf.c:579,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:601,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:604,1
    - Dst: append_addr
      Src: /src/h2o/lib/core/logconf.c:605,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:608,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:609,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:612,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:613,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:616,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:617,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:622,1
    - Dst: h2o_stringify_protocol_version
      Src: /src/h2o/lib/core/logconf.c:623,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:626,1
    - Dst: append_addr
      Src: /src/h2o/lib/core/logconf.c:627,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:632,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:633,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:636,1
    - Dst: append_port
      Src: /src/h2o/lib/core/logconf.c:637,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:640,1
    - Dst: append_port
      Src: /src/h2o/lib/core/logconf.c:641,1
    - Dst: h2o_req_getenv
      Src: /src/h2o/lib/core/logconf.c:644,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:647,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:648,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:653,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:654,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:660,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:661,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:663,1
    - Dst: h2o_stringify_protocol_version
      Src: /src/h2o/lib/core/logconf.c:665,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:670,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:671,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:674,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:676,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:678,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:682,1
    - Dst: localtime_r
      Src: /src/h2o/lib/core/logconf.c:687,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:689,1
    - Dst: strftime
      Src: /src/h2o/lib/core/logconf.c:690,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:697,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:699,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:700,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:703,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:705,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:706,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:710,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:712,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:714,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:717,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:719,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:720,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/core/logconf.c:723,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:725,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:726,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:732,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:733,1
    - Dst: h2o_req_getenv
      Src: /src/h2o/lib/core/logconf.c:736,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/logconf.c:736,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:739,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:740,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:743,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:744,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:747,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:748,1
    - Dst: EMIT_HEADER
      Src: /src/h2o/lib/core/logconf.c:775,1
    - Dst: EMIT_HEADER
      Src: /src/h2o/lib/core/logconf.c:778,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:783,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:784,1
    - Dst: EMIT_HEADER
      Src: /src/h2o/lib/core/logconf.c:787,1
    - Dst: EMIT_HEADER
      Src: /src/h2o/lib/core/logconf.c:791,1
    - Dst: EMIT_HEADER
      Src: /src/h2o/lib/core/logconf.c:795,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:802,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:803,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:807,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:811,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:812,1
    - Dst: h2o_req_t*::conn::callbacks::get_req_id
      Src: /src/h2o/lib/core/logconf.c:812,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:816,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:820,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:824,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:828,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:832,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:836,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:841,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:845,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:849,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:853,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:857,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:861,1
    - Dst: APPEND_DURATION
      Src: /src/h2o/lib/core/logconf.c:865,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:869,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:870,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:874,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:875,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:879,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:880,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:884,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:885,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:889,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:890,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:894,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:895,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:898,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:904,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/logconf.c:905,1
    - Dst: APPEND_SAFE_STRING
      Src: /src/h2o/lib/core/logconf.c:908,1
    - Dst: APPEND_SAFE_STRING
      Src: /src/h2o/lib/core/logconf.c:911,1
    - Dst: h2o_req_t*::conn::callbacks::get_ssl_server_name
      Src: /src/h2o/lib/core/logconf.c:915,1
    - Dst: strlen
      Src: /src/h2o/lib/core/logconf.c:918,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:919,1
    - Dst: append_unsafe_string
      Src: /src/h2o/lib/core/logconf.c:920,1
    - Dst: cb
      Src: /src/h2o/lib/core/logconf.c:926,1
    - Dst: APPEND_SAFE_STRING_WITH_LEN
      Src: /src/h2o/lib/core/logconf.c:927,1
    - Dst: RESERVE
      Src: /src/h2o/lib/core/logconf.c:933,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:937,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:938,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:941,1
    - Dst: assert
      Src: /src/h2o/lib/core/logconf.c:945,1
    - Dst: append_safe_string
      Src: /src/h2o/lib/core/logconf.c:951,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 327
    argCount: 4
    argNames:
    - logconf
    - req
    - len
    - buf
    argTypes:
    - h2o_logconf_t*
    - h2o_req_t*
    - size_t*
    - char*
    assertStmts:
    - condition: (!"unknown type")
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/h2o/lib/core/logconf.c
    constantsTouched: []
    func_position:
      end: 956
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 956
    functionName: h2o_log_request
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 0
    functionsReached:
    - strftime
    - sprintf
    - RESERVE
    - assert
    - h2o_iovec_init
    - H2O_STRLIT
    - localtime_r
    - h2o_req_t*::conn::callbacks::get_ssl_server_name
    - h2o_req_t*::conn::callbacks::get_req_id
    - EMIT_HEADER
    - append_addr
    - append_port
    - APPEND_SAFE_STRING
    - h2o_fatal
    - strlen
    - APPEND_SAFE_STRING_WITH_LEN
    - cb
    - h2o_timeval_is_null
    - h2o_req_getenv
    - append_safe_string
    - APPEND_DURATION
    - append_unsafe_string
    - h2o_stringify_protocol_version
    linkageType: ''
    returnType: char
    signature: char *h2o_log_request(h2o_logconf_t *logconf, h2o_req_t *req, size_t
      *len, char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - capacity
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 598
    functionName: RESERVE
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESERVE(capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __headers
    - ','
    - concat
    - ','
    - findfunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 773
    functionName: EMIT_HEADER
    functionSourceFile: /src/h2o/lib/core/logconf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_HEADER(__headers, concat, findfunc, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_dispose_context
      Src: /src/h2o/lib/core/context.c:104,1
    - Dst: quicly_free_default_cid_encryptor
      Src: /src/h2o/lib/core/context.c:105,1
    - Dst: ptls_openssl_dispose_verify_certificate
      Src: /src/h2o/lib/core/context.c:107,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h3ctx
    argTypes:
    - h2o_http3client_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: h2o_destroy_proxy_http3_context
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached:
    - h2o_quic_dispose_context
    - free
    - quicly_free_default_cid_encryptor
    - ptls_openssl_dispose_verify_certificate
    linkageType: ''
    returnType: void
    signature: void h2o_destroy_proxy_http3_context(h2o_http3client_ctx_t *h3ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/context.c:118,1
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:131,1
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:132,1
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pathconf
    argTypes:
    - h2o_context_t*
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: h2o_context_init_pathconf_context
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - DOIT
    linkageType: ''
    returnType: void
    signature: void h2o_context_init_pathconf_context(h2o_context_t *ctx, h2o_pathconf_t
      *pathconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: DOIT
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOIT(type, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:159,1
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:160,1
    - Dst: DOIT
      Src: /src/h2o/lib/core/context.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - pathconf
    argTypes:
    - h2o_context_t*
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: h2o_context_dispose_pathconf_context
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached:
    - DOIT
    linkageType: ''
    returnType: void
    signature: void h2o_context_dispose_pathconf_context(h2o_context_t *ctx, h2o_pathconf_t
      *pathconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: DOIT
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOIT(type, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/context.c:170,1
    - Dst: memset
      Src: /src/h2o/lib/core/context.c:172,1
    - Dst: h2o_multithread_create_queue
      Src: /src/h2o/lib/core/context.c:175,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/lib/core/context.c:176,1
    - Dst: h2o_filecache_create
      Src: /src/h2o/lib/core/context.c:177,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/context.c:178,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/core/context.c:180,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/core/context.c:181,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/core/context.c:182,1
    - Dst: h2o_create_proxy_http3_context
      Src: /src/h2o/lib/core/context.c:196,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/core/context.c:199,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/context.c:201,1
    - Dst: memset
      Src: /src/h2o/lib/core/context.c:202,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/core/context.c:205,1
    - Dst: h2o_socketpool_register_loop
      Src: /src/h2o/lib/core/context.c:207,1
    - Dst: h2o_context_init_pathconf_context
      Src: /src/h2o/lib/core/context.c:213,1
    - Dst: h2o_context_init_pathconf_context
      Src: /src/h2o/lib/core/context.c:215,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/core/context.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - loop
    - config
    argTypes:
    - h2o_context_t*
    - h2o_loop_t*
    - h2o_globalconf_t*
    assertStmts:
    - condition: (config->hosts[0] != NULL)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/h2o/lib/core/context.c
    constantsTouched: []
    func_position:
      end: 219
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 219
    functionName: h2o_context_init
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 6
    functionsReached:
    - h2o_create_proxy_http3_context
    - h2o_filecache_create
    - pthread_mutex_lock
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - h2o_multithread_create_queue
    - pthread_mutex_unlock
    - h2o_multithread_register_receiver
    - memset
    - h2o_socketpool_register_loop
    - assert
    - h2o_context_init_pathconf_context
    linkageType: ''
    returnType: void
    signature: void h2o_context_init(h2o_context_t *ctx, h2o_loop_t *loop, h2o_globalconf_t
      *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_unregister_loop
      Src: /src/h2o/lib/core/context.c:225,1
    - Dst: h2o_context_dispose_pathconf_context
      Src: /src/h2o/lib/core/context.c:231,1
    - Dst: h2o_context_dispose_pathconf_context
      Src: /src/h2o/lib/core/context.c:233,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:235,1
    - Dst: h2o_destroy_proxy_http3_context
      Src: /src/h2o/lib/core/context.c:237,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:238,1
    - Dst: close
      Src: /src/h2o/lib/core/context.c:242,1
    - Dst: close
      Src: /src/h2o/lib/core/context.c:243,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:245,1
    - Dst: h2o_filecache_destroy
      Src: /src/h2o/lib/core/context.c:247,1
    - Dst: h2o_context_storage_item_t*::dispose
      Src: /src/h2o/lib/core/context.c:254,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:257,1
    - Dst: h2o_multithread_unregister_receiver
      Src: /src/h2o/lib/core/context.c:260,1
    - Dst: h2o_multithread_destroy_queue
      Src: /src/h2o/lib/core/context.c:261,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/context.c:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 265
    functionName: h2o_context_dispose
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 5
    functionsReached:
    - close
    - h2o_mem_release_shared
    - h2o_context_dispose_pathconf_context
    - h2o_context_storage_item_t*::dispose
    - h2o_multithread_destroy_queue
    - free
    - h2o_multithread_unregister_receiver
    - h2o_socketpool_unregister_loop
    - h2o_destroy_proxy_http3_context
    - h2o_filecache_destroy
    linkageType: ''
    returnType: void
    signature: void h2o_context_dispose(h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_CONN_LIST_FOREACH
      Src: /src/h2o/lib/core/context.c:271,1
    - Dst: callbacks::request_shutdown
      Src: /src/h2o/lib/core/context.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: h2o_context_request_shutdown
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 1
    functionsReached:
    - callbacks::request_shutdown
    - H2O_CONN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void h2o_context_request_shutdown(h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/context.c:282,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/core/context.c:283,1
    - Dst: gmtime_r
      Src: /src/h2o/lib/core/context.c:284,1
    - Dst: h2o_time2str_rfc1123
      Src: /src/h2o/lib/core/context.c:285,1
    - Dst: h2o_time2str_log
      Src: /src/h2o/lib/core/context.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: h2o_context_update_timestamp_string_cache
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 1
    functionsReached:
    - h2o_mem_release_shared
    - gmtime_r
    - h2o_mem_alloc_shared
    - h2o_time2str_rfc1123
    - h2o_time2str_log
    linkageType: ''
    returnType: void
    signature: void h2o_context_update_timestamp_string_cache(h2o_context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H2O_CONN_LIST_FOREACH
      Src: /src/h2o/lib/core/context.c:299,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/core/context.c:300,1
    - Dst: h2o_timeval_subtract
      Src: /src/h2o/lib/core/context.c:301,1
    - Dst: callbacks::close_idle_connection
      Src: /src/h2o/lib/core/context.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - max_connections_to_close
    - min_age
    argTypes:
    - h2o_context_t*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: h2o_context_close_idle_connections
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 1
    functionsReached:
    - h2o_gettimeofday
    - H2O_CONN_LIST_FOREACH
    - callbacks::close_idle_connection
    - h2o_timeval_subtract
    linkageType: ''
    returnType: void
    signature: void h2o_context_close_idle_connections(h2o_context_t *ctx, size_t
      max_connections_to_close, uint64_t min_age)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - h2o_context_t*
    - h2o_conn_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: get_connection_state_counter
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t *get_connection_state_counter(h2o_context_t *ctx, h2o_conn_state_t
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state_counter
      Src: /src/h2o/lib/core/context.c:318,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/core/context.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: unlink_conn
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_unlink
    - get_connection_state_counter
    linkageType: ''
    returnType: void
    signature: void unlink_conn(h2o_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/core/context.c:326,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/core/context.c:329,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/core/context.c:332,1
    - Dst: get_connection_state_counter
      Src: /src/h2o/lib/core/context.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: link_conn
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 0
    functionsReached:
    - get_connection_state_counter
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void link_conn(h2o_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/context.c:341,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/core/context.c:347,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/core/context.c:349,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/core/context.c:351,1
    - Dst: link_conn
      Src: /src/h2o/lib/core/context.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - sz
    - ctx
    - hosts
    - connected_at
    - callbacks
    argTypes:
    - size_t
    - h2o_context_t*
    - h2o_hostconf_t**
    - struct timeval
    - h2o_conn_callbacks_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 361
    functionName: h2o_create_connection
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 2
    functionsReached:
    - link_conn
    - __sync_add_and_fetch
    - pthread_mutex_lock
    - h2o_mem_alloc
    - pthread_mutex_unlock
    linkageType: ''
    returnType: h2o_conn_t
    signature: "h2o_conn_t *h2o_create_connection(size_t sz, h2o_context_t *ctx, h2o_hostconf_t
      **hosts, struct timeval connected_at,\n                                  const
      h2o_conn_callbacks_t *callbacks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_conn
      Src: /src/h2o/lib/core/context.c:365,1
    - Dst: free
      Src: /src/h2o/lib/core/context.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: h2o_destroy_connection
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 2
    functionsReached:
    - free
    - unlink_conn
    linkageType: ''
    returnType: void
    signature: void h2o_destroy_connection(h2o_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink_conn
      Src: /src/h2o/lib/core/context.c:372,1
    - Dst: link_conn
      Src: /src/h2o/lib/core/context.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - h2o_conn_t*
    - h2o_conn_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: h2o_conn_set_state
    functionSourceFile: /src/h2o/lib/core/context.c
    functionUses: 3
    functionsReached:
    - link_conn
    - unlink_conn
    linkageType: ''
    returnType: void
    signature: void h2o_conn_set_state(h2o_conn_t *conn, h2o_conn_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/util.c:70,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/core/util.c:73,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/core/util.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - sock
    - connected_at
    - timeout_cb
    - sz
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    - h2o_timer_cb
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: create_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_timer_init
    - h2o_timer_link
    linkageType: ''
    returnType: struct st_h2o_accept_data_t
    signature: "struct st_h2o_accept_data_t *create_accept_data(h2o_accept_ctx_t *ctx,
      h2o_socket_t *sock, struct timeval connected_at,\n                                                       h2o_timer_cb
      timeout_cb, size_t sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_accept_data
      Src: /src/h2o/lib/core/util.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - sock
    - connected_at
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: create_default_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - create_accept_data
    linkageType: ''
    returnType: struct st_h2o_accept_data_t
    signature: "struct st_h2o_accept_data_t *create_default_accept_data(h2o_accept_ctx_t
      *ctx, h2o_socket_t *sock,\n                                                               struct
      timeval connected_at)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_accept_data
      Src: /src/h2o/lib/core/util.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - sock
    - connected_at
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: create_redis_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - create_accept_data
    linkageType: ''
    returnType: struct st_h2o_accept_data_t
    signature: struct st_h2o_accept_data_t *create_redis_accept_data(h2o_accept_ctx_t
      *ctx, h2o_socket_t *sock, struct timeval connected_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_accept_data
      Src: /src/h2o/lib/core/util.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - sock
    - connected_at
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: create_memcached_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - create_accept_data
    linkageType: ''
    returnType: struct st_h2o_accept_data_t
    signature: "struct st_h2o_accept_data_t *create_memcached_accept_data(h2o_accept_ctx_t
      *ctx, h2o_socket_t *sock,\n                                                                 struct
      timeval connected_at)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/util.c:106,1
    - Dst: free
      Src: /src/h2o/lib/core/util.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct st_h2o_accept_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: destroy_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void destroy_accept_data(struct st_h2o_accept_data_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_accept_data
      Src: /src/h2o/lib/core/util.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _accept_data
    argTypes:
    - struct st_h2o_accept_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: destroy_default_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - destroy_accept_data
    linkageType: ''
    returnType: void
    signature: void destroy_default_accept_data(struct st_h2o_accept_data_t *_accept_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/util.c:118,1
    - Dst: destroy_accept_data
      Src: /src/h2o/lib/core/util.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _accept_data
    argTypes:
    - struct st_h2o_accept_data_t*
    assertStmts:
    - condition: (accept_data->get_command == NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/h2o/lib/core/util.c
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: destroy_redis_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - destroy_accept_data
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_redis_accept_data(struct st_h2o_accept_data_t *_accept_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/util.c:126,1
    - Dst: destroy_accept_data
      Src: /src/h2o/lib/core/util.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _accept_data
    argTypes:
    - struct st_h2o_accept_data_t*
    assertStmts:
    - condition: (accept_data->get_req == NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/h2o/lib/core/util.c
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: destroy_memcached_accept_data
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - destroy_accept_data
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_memcached_accept_data(struct st_h2o_accept_data_t *_accept_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_ssl_resume_server_handshake
      Src: /src/h2o/lib/core/util.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - session_data
    - _accept_data
    argTypes:
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: memcached_resumption_on_get
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_socket_ssl_resume_server_handshake
    linkageType: ''
    returnType: void
    signature: void memcached_resumption_on_get(h2o_iovec_t session_data, void *_accept_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memcached_get
      Src: /src/h2o/lib/core/util.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - session_id
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: memcached_resumption_get
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_memcached_get
    linkageType: ''
    returnType: void
    signature: void memcached_resumption_get(h2o_socket_t *sock, h2o_iovec_t session_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memcached_set
      Src: /src/h2o/lib/core/util.c:155,1
    - Dst: time
      Src: /src/h2o/lib/core/util.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sock
    - session_id
    - session_data
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: memcached_resumption_new
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - time
    - h2o_memcached_set
    linkageType: ''
    returnType: void
    signature: void memcached_resumption_new(h2o_socket_t *sock, h2o_iovec_t session_id,
      h2o_iovec_t session_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_ssl_async_resumption_init
      Src: /src/h2o/lib/core/util.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - memc
    - expiration
    argTypes:
    - h2o_memcached_context_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: h2o_accept_setup_memcached_ssl_resumption
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - h2o_socket_ssl_async_resumption_init
    linkageType: ''
    returnType: void
    signature: void h2o_accept_setup_memcached_ssl_resumption(h2o_memcached_context_t
      *memc, unsigned expiration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/util.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: on_redis_connect
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    linkageType: ''
    returnType: void
    signature: void on_redis_connect(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/util.c:178,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/util.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - errstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: on_redis_close
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    linkageType: ''
    returnType: void
    signature: void on_redis_close(const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_redis_free
      Src: /src/h2o/lib/core/util.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: dispose_redis_connection
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_redis_free
    linkageType: ''
    returnType: void
    signature: void dispose_redis_connection(void *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_storage
      Src: /src/h2o/lib/core/util.c:193,1
    - Dst: h2o_redis_create_client
      Src: /src/h2o/lib/core/util.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: get_redis_client
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_redis_create_client
    - h2o_context_get_storage
    linkageType: ''
    returnType: h2o_redis_client_t
    signature: h2o_redis_client_t *get_redis_client(h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: BASE64_LENGTH
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASE64_LENGTH(len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/util.c:207,1
    - Dst: BASE64_LENGTH
      Src: /src/h2o/lib/core/util.c:207,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:209,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/core/util.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - session_id
    - prefix
    argTypes:
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: build_redis_key
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - BASE64_LENGTH
    - h2o_base64_encode
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t build_redis_key(h2o_iovec_t session_id, h2o_iovec_t prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/util.c:219,1
    - Dst: BASE64_LENGTH
      Src: /src/h2o/lib/core/util.c:219,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/core/util.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_data
    argTypes:
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: build_redis_value
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - BASE64_LENGTH
    - h2o_base64_encode
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t build_redis_value(h2o_iovec_t session_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_decode_base64url
      Src: /src/h2o/lib/core/util.c:233,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:235,1
    - Dst: h2o_socket_ssl_resume_server_handshake
      Src: /src/h2o/lib/core/util.c:238,1
    - Dst: free
      Src: /src/h2o/lib/core/util.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - reply
    - _accept_data
    - errstr
    argTypes:
    - redisReply*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: redis_resumption_on_get
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_decode_base64url
    - h2o_socket_ssl_resume_server_handshake
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void redis_resumption_on_get(redisReply *reply, void *_accept_data,
      const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/util.c:247,1
    - Dst: h2o_socket_ssl_resume_server_handshake
      Src: /src/h2o/lib/core/util.c:249,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:249,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/util.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout_entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: on_redis_resumption_get_failed
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_socket_ssl_resume_server_handshake
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_redis_resumption_get_failed(h2o_timer_t *timeout_entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_redis_client
      Src: /src/h2o/lib/core/util.c:256,1
    - Dst: build_redis_key
      Src: /src/h2o/lib/core/util.c:259,1
    - Dst: h2o_redis_command
      Src: /src/h2o/lib/core/util.c:260,1
    - Dst: free
      Src: /src/h2o/lib/core/util.c:261,1
    - Dst: h2o_redis_connect
      Src: /src/h2o/lib/core/util.c:265,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/util.c:268,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/core/util.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - session_id
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 272
    functionName: redis_resumption_get
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - get_redis_client
    - h2o_timer_link
    - free
    - h2o_redis_connect
    - h2o_redis_command
    - build_redis_key
    linkageType: ''
    returnType: void
    signature: void redis_resumption_get(h2o_socket_t *sock, h2o_iovec_t session_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_redis_client
      Src: /src/h2o/lib/core/util.c:277,1
    - Dst: h2o_redis_connect
      Src: /src/h2o/lib/core/util.c:281,1
    - Dst: build_redis_key
      Src: /src/h2o/lib/core/util.c:284,1
    - Dst: build_redis_value
      Src: /src/h2o/lib/core/util.c:285,1
    - Dst: h2o_redis_command
      Src: /src/h2o/lib/core/util.c:286,1
    - Dst: free
      Src: /src/h2o/lib/core/util.c:287,1
    - Dst: free
      Src: /src/h2o/lib/core/util.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sock
    - session_id
    - session_data
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: redis_resumption_new
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - get_redis_client
    - free
    - build_redis_value
    - h2o_redis_connect
    - h2o_redis_command
    - build_redis_key
    linkageType: ''
    returnType: void
    signature: void redis_resumption_new(h2o_socket_t *sock, h2o_iovec_t session_id,
      h2o_iovec_t session_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/util.c:293,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/util.c:295,1
    - Dst: h2o_socket_ssl_async_resumption_init
      Src: /src/h2o/lib/core/util.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - host
    - port
    - expiration
    - prefix
    argTypes:
    - char*
    - uint16_t
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: h2o_accept_setup_redis_ssl_resumption
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - h2o_socket_ssl_async_resumption_init
    - h2o_strdup
    linkageType: ''
    returnType: void
    signature: void h2o_accept_setup_redis_ssl_resumption(const char *host, uint16_t
      port, unsigned expiration, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/h2o/lib/core/util.c:308,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/core/util.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct st_h2o_accept_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: accept_timeout
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - destroy
    - h2o_socket_close
    linkageType: ''
    returnType: void
    signature: void accept_timeout(struct st_h2o_accept_data_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/util.c:314,1
    - Dst: accept_timeout
      Src: /src/h2o/lib/core/util.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: on_accept_timeout
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - accept_timeout
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_accept_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/util.c:321,1
    - Dst: accept_timeout
      Src: /src/h2o/lib/core/util.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: on_redis_accept_timeout
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - accept_timeout
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_redis_accept_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/util.c:332,1
    - Dst: h2o_memcached_cancel_get
      Src: /src/h2o/lib/core/util.c:334,1
    - Dst: accept_timeout
      Src: /src/h2o/lib/core/util.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: on_memcached_accept_timeout
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - accept_timeout
    - h2o_memcached_cancel_get
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_memcached_accept_timeout(h2o_timer_t *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/core/util.c:347,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/core/util.c:352,1
    - Dst: h2o_timeval_subtract
      Src: /src/h2o/lib/core/util.c:353,1
    - Dst: h2o_socket_get_ssl_session_reused
      Src: /src/h2o/lib/core/util.c:354,1
    - Dst: h2o_socket_ssl_get_selected_protocol
      Src: /src/h2o/lib/core/util.c:362,1
    - Dst: memcmp
      Src: /src/h2o/lib/core/util.c:365,1
    - Dst: h2o_http2_accept
      Src: /src/h2o/lib/core/util.c:368,1
    - Dst: h2o_http1_accept
      Src: /src/h2o/lib/core/util.c:375,1
    - Dst: destroy
      Src: /src/h2o/lib/core/util.c:378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 379
    functionName: on_ssl_handshake_complete
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_http2_accept
    - h2o_socket_ssl_get_selected_protocol
    - h2o_timeval_subtract
    - memcmp
    - h2o_socket_close
    - h2o_http1_accept
    - h2o_socket_get_ssl_session_reused
    - h2o_gettimeofday
    - destroy
    linkageType: ''
    returnType: void
    signature: void on_ssl_handshake_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:405,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:406,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:407,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:408,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:409,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:410,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/core/util.c:413,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:418,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:419,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/core/util.c:420,1
    - Dst: memset
      Src: /src/h2o/lib/core/util.c:424,1
    - Dst: memset
      Src: /src/h2o/lib/core/util.c:431,1
    - Dst: EXPECT_CHAR
      Src: /src/h2o/lib/core/util.c:439,1
    - Dst: SKIP_TO_WS
      Src: /src/h2o/lib/core/util.c:443,1
    - Dst: inet_pton
      Src: /src/h2o/lib/core/util.c:445,1
    - Dst: SKIP_TO_WS
      Src: /src/h2o/lib/core/util.c:450,1
    - Dst: SKIP_TO_WS
      Src: /src/h2o/lib/core/util.c:455,1
    - Dst: sscanf
      Src: /src/h2o/lib/core/util.c:458,1
    - Dst: htons
      Src: /src/h2o/lib/core/util.c:460,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/core/util.c:465,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/core/util.c:467,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 4
    argNames:
    - src
    - len
    - sa
    - salen
    argTypes:
    - char*
    - size_t
    - struct sockaddr*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 475
    functionName: parse_proxy_line
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - htons
    - EXPECT_CHAR
    - CHECK_EOF
    - inet_pton
    - sscanf
    - memset
    - SKIP_TO_WS
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t parse_proxy_line(char *src, size_t len, struct sockaddr *sa,
      socklen_t *salen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: CHECK_EOF
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: EXPECT_CHAR
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: SKIP_TO_WS
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_TO_WS()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/h2o/lib/core/util.c:482,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/core/util.c:483,1
    - Dst: parse_proxy_line
      Src: /src/h2o/lib/core/util.c:489,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/core/util.c:496,1
    - Dst: h2o_socket_setpeername
      Src: /src/h2o/lib/core/util.c:498,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/lib/core/util.c:503,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:503,1
    - Dst: h2o_http1_accept
      Src: /src/h2o/lib/core/util.c:507,1
    - Dst: destroy
      Src: /src/h2o/lib/core/util.c:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 510
    functionName: on_read_proxy_line
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - parse_proxy_line
    - h2o_socket_setpeername
    - h2o_socket_close
    - h2o_socket_ssl_handshake
    - h2o_http1_accept
    - destroy
    - h2o_buffer_consume
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_read_proxy_line(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/core/util.c:514,1
    - Dst: create
      Src: /src/h2o/lib/core/util.c:517,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/core/util.c:519,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/lib/core/util.c:521,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:521,1
    - Dst: h2o_http1_accept
      Src: /src/h2o/lib/core/util.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - sock
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: h2o_accept
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - create
    - h2o_http1_accept
    - h2o_gettimeofday
    - h2o_socket_ssl_handshake
    - h2o_socket_read_start
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_accept(h2o_accept_ctx_t *ctx, h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/util.c:533,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:535,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - dst
    - version
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (version <= 0x109)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/h2o/lib/core/util.c
    constantsTouched: []
    func_position:
      end: 549
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 549
    functionName: h2o_stringify_protocol_version
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_stringify_protocol_version(char *dst, int version)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_conn_t*::callbacks::get_peername
      Src: /src/h2o/lib/core/util.c:559,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:563,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:567,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/core/util.c:573,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/core/util.c:578,1
    - Dst: h2o_conn_t*::callbacks::get_sockname
      Src: /src/h2o/lib/core/util.c:580,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/core/util.c:582,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/util.c:587,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/core/util.c:587,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:592,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - conn
    - buf
    argTypes:
    - h2o_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 594
    functionName: h2o_stringify_proxy_header
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_conn_t*::callbacks::get_sockname
    - h2o_socket_getport
    - h2o_socket_getnumerichost
    - h2o_conn_t*::callbacks::get_peername
    - memcpy
    - sprintf
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_stringify_proxy_header(h2o_conn_t *conn, char *buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/lib/core/util.c:603,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/util.c:608,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/lib/core/util.c:617,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:621,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:627,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 8
    argNames:
    - pool
    - url
    - base_path
    - input_scheme
    - input_authority
    - base_scheme
    - base_authority
    - allow_cross_origin_push
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 628
    functionName: to_push_path
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_lcstris
    - h2o_url_resolve
    - h2o_url_parse_relative
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t to_push_path(h2o_mem_pool_t *pool, h2o_iovec_t url, h2o_iovec_t
      base_path, const h2o_url_scheme_t *input_scheme,\n                                h2o_iovec_t
      input_authority, const h2o_url_scheme_t *base_scheme, h2o_iovec_t *base_authority,\n
      \                               int allow_cross_origin_push)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:636,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:639,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/core/util.c:653,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:658,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/core/util.c:661,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/util.c:662,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:662,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:663,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:663,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:664,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:664,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:666,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:666,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:668,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:668,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:670,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:670,1
    - Dst: to_push_path
      Src: /src/h2o/lib/core/util.c:676,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:676,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/util.c:685,1
    - Dst: h2o_memrchr
      Src: /src/h2o/lib/core/util.c:686,1
    - Dst: PUSH_FILTERED_VALUE
      Src: /src/h2o/lib/core/util.c:688,1
    - Dst: PUSH_FILTERED_VALUE
      Src: /src/h2o/lib/core/util.c:691,1
    - Dst: PUSH_FILTERED_VALUE
      Src: /src/h2o/lib/core/util.c:697,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:699,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 11
    argNames:
    - pool
    - value
    - value_len
    - base_path
    - input_scheme
    - input_authority
    - base_scheme
    - base_authority
    - cb_ctx
    - filtered_value
    - allow_cross_origin_push
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t*
    - void*
    - h2o_iovec_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 703
    functionName: h2o_extract_push_path_from_link_header
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_memrchr
    - PUSH_FILTERED_VALUE
    - h2o_mem_alloc_pool
    - h2o_lcstris
    - to_push_path
    - h2o_memis
    - h2o_next_token
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void h2o_extract_push_path_from_link_header(h2o_mem_pool_t *pool,
      const char *value, size_t value_len, h2o_iovec_t base_path,\n                                            const
      h2o_url_scheme_t *input_scheme, h2o_iovec_t input_authority,\n                                            const
      h2o_url_scheme_t *base_scheme, h2o_iovec_t *base_authority,\n                                            void
      (*cb)(void *ctx, const char *path, size_t path_len, int is_critical), void *cb_ctx,\n
      \                                           h2o_iovec_t *filtered_value, int
      allow_cross_origin_push)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 650
    functionName: PUSH_FILTERED_VALUE
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_FILTERED_VALUE(s, e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/core/util.c:712,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:713,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/core/util.c:716,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:717,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:717,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:719,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:719,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/util.c:721,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - headers
    argTypes:
    - h2o_headers_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 728
    functionName: h2o_get_compressible_types
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - H2O_UNLIKELY
    - H2O_STRLIT
    - h2o_lcstris
    - h2o_next_token
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int h2o_get_compressible_types(const h2o_headers_t *headers)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:738,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:747,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:747,1
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/core/util.c:757,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:760,1
    - Dst: h2o_concat_list
      Src: /src/h2o/lib/core/util.c:787,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - req
    - prefix
    - prefix_len
    - use_path_normalized
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 788
    functionName: h2o_build_destination
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 3
    functionsReached:
    - h2o_concat_list
    - H2O_STRLIT
    - h2o_uri_escape
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_build_destination(h2o_req_t *req, const char *prefix,
      size_t prefix_len, int use_path_normalized)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/h2o/lib/core/util.c:797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - usec
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 810
    functionName: stringify_duration
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: size_t
    signature: size_t stringify_duration(char *buf, int64_t usec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 814
    functionName: ELEMENT_LONGEST_STR
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELEMENT_LONGEST_STR(name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compute_func
      Src: /src/h2o/lib/core/util.c:819,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/util.c:823,1
    - Dst: strlen
      Src: /src/h2o/lib/core/util.c:828,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:829,1
    - Dst: stringify_duration
      Src: /src/h2o/lib/core/util.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - req
    - dst
    - name
    - max_len
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 834
    functionName: emit_server_timing_element
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached:
    - stringify_duration
    - h2o_mem_alloc_pool
    - memcpy
    - compute_func
    - strlen
    linkageType: ''
    returnType: void
    signature: "void emit_server_timing_element(h2o_req_t *req, h2o_iovec_t *dst,
      const char *name,\n                                       int (*compute_func)(h2o_req_t
      *, int64_t *), size_t max_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/util.c:840,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:854,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:855,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:856,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:857,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:858,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:861,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:862,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:863,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:864,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/core/util.c:870,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:870,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:870,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/core/util.c:872,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/util.c:872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - req
    - uses_trailer
    argTypes:
    - h2o_req_t*
    - int
    assertStmts:
    - condition: (req->content_length == SIZE_MAX)
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/h2o/lib/core/util.c
    constantsTouched: []
    func_position:
      end: 873
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 873
    functionName: h2o_add_server_timing_header
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - h2o_add_header_by_str
    - emit_server_timing_element
    - H2O_STRLIT
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_add_server_timing_header(h2o_req_t *req, int uses_trailer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/util.c:885,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:889,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:893,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:896,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:897,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:900,1
    - Dst: emit_server_timing_element
      Src: /src/h2o/lib/core/util.c:901,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/util.c:905,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/util.c:909,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - req
    - prefix
    - prefix_len
    - suffix
    - suffix_len
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 916
    functionName: h2o_build_server_timing_trailer
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - memcpy
    - h2o_mem_alloc_pool
    - emit_server_timing_element
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t h2o_build_server_timing_trailer(h2o_req_t *req, const
      char *prefix, size_t prefix_len, const char *suffix,\n                                            size_t
      suffix_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: ALPN_ENTRY
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALPN_ENTRY(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_filecache_clear
      Src: /src/h2o/lib/core/util.c:948,1
    - Dst: h2o_buffer_clear_recycle
      Src: /src/h2o/lib/core/util.c:954,1
    - Dst: h2o_socket_clear_recycle
      Src: /src/h2o/lib/core/util.c:955,1
    - Dst: h2o_mem_clear_recycle
      Src: /src/h2o/lib/core/util.c:956,1
    - Dst: h2o_buffer_recycle_is_empty
      Src: /src/h2o/lib/core/util.c:961,1
    - Dst: h2o_socket_recycle_is_empty
      Src: /src/h2o/lib/core/util.c:961,1
    - Dst: h2o_mem_recycle_is_empty
      Src: /src/h2o/lib/core/util.c:961,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - now
    - ctx_optional
    argTypes:
    - uint64_t
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 966
    functionName: h2o_cleanup_thread
    functionSourceFile: /src/h2o/lib/core/util.c
    functionUses: 1
    functionsReached:
    - h2o_mem_recycle_is_empty
    - h2o_buffer_clear_recycle
    - h2o_buffer_recycle_is_empty
    - h2o_socket_recycle_is_empty
    - h2o_filecache_clear
    - h2o_mem_clear_recycle
    - h2o_socket_clear_recycle
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h2o_cleanup_thread(uint64_t now, h2o_context_t *ctx_optional)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/configurator.c:50,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/core/configurator.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - parent
    - is_custom_handler
    argTypes:
    - h2o_configurator_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: create_context
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 3
    functionsReached:
    - h2o_mem_alloc
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: h2o_configurator_context_t
    signature: h2o_configurator_context_t *create_context(h2o_configurator_context_t
      *parent, int is_custom_handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/configurator.c:68,1
    - Dst: free
      Src: /src/h2o/lib/core/configurator.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_configurator_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: destroy_context
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_context(h2o_configurator_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: on_core_enter
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_core_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: on_core_exit
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_core_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_t*::dispose
      Src: /src/h2o/lib/core/configurator.c:104,1
    - Dst: free
      Src: /src/h2o/lib/core/configurator.c:105,1
    - Dst: free
      Src: /src/h2o/lib/core/configurator.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - configurator
    argTypes:
    - h2o_configurator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: destroy_configurator
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_configurator_t*::dispose
    linkageType: ''
    returnType: void
    signature: void destroy_configurator(h2o_configurator_t *configurator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/configurator.c:114,1
    - Dst: h2o_configurator_t*::enter
      Src: /src/h2o/lib/core/configurator.c:116,1
    - Dst: h2o_configurator_t*::exit
      Src: /src/h2o/lib/core/configurator.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - is_enter
    - node
    argTypes:
    - h2o_configurator_context_t*
    - int
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: setup_configurators
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_t*::enter
    - h2o_configurator_t*::exit
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: int setup_configurators(h2o_configurator_context_t *ctx, int is_enter,
      yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - node
    - slot
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: config_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int config_timeout(h2o_configurator_command_t *cmd, yoml_t *node, uint64_t
      *slot)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:148,1
    - Dst: setup_configurators
      Src: /src/h2o/lib/core/configurator.c:153,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:164,1
    - Dst: strcmp
      Src: /src/h2o/lib/core/configurator.c:170,1
    - Dst: h2o_configurator_get_command
      Src: /src/h2o/lib/core/configurator.c:173,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:174,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:178,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:187,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:193,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:199,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:204,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/configurator.c:210,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/configurator.c:213,1
    - Dst: h2o_configurator_command_t*::cb
      Src: /src/h2o/lib/core/configurator.c:216,1
    - Dst: struct st_cmd_value_t*::cmd::cb
      Src: /src/h2o/lib/core/configurator.c:223,1
    - Dst: struct st_cmd_value_t*::cmd::cb
      Src: /src/h2o/lib/core/configurator.c:228,1
    - Dst: setup_configurators
      Src: /src/h2o/lib/core/configurator.c:234,1
    - Dst: free
      Src: /src/h2o/lib/core/configurator.c:239,1
    - Dst: free
      Src: /src/h2o/lib/core/configurator.c:240,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 97
    argCount: 4
    argNames:
    - ctx
    - node
    - flags_mask
    - ignore_commands
    argTypes:
    - h2o_configurator_context_t*
    - yoml_t*
    - int
    - char**
    assertStmts:
    - condition: (!"unreachable")
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/h2o/lib/core/configurator.c
    constantsTouched: []
    func_position:
      end: 242
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 242
    functionName: h2o_configurator_apply_commands
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - setup_configurators
    - struct st_cmd_value_t*::cmd::cb
    - h2o_configurator_command_t*::cb
    - free
    - strcmp
    - h2o_vector_reserve
    - h2o_configurator_get_command
    - assert
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int h2o_configurator_apply_commands(h2o_configurator_context_t *ctx,
      yoml_t *node, int flags_mask, const char **ignore_commands)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/configurator.c:253,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/configurator.c:256,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/configurator.c:260,1
    - Dst: yoml_free
      Src: /src/h2o/lib/core/configurator.c:266,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/core/configurator.c:272,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - cmd
    - node
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 291
    functionName: convert_path_config_node
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_mem_realloc
    - h2o_mem_alloc
    - yoml_free
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: yoml_t
    signature: yoml_t *convert_path_config_node(h2o_configurator_command_t *cmd, yoml_t
      *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_context
      Src: /src/h2o/lib/core/configurator.c:295,1
    - Dst: h2o_configurator_apply_commands
      Src: /src/h2o/lib/core/configurator.c:299,1
    - Dst: destroy_context
      Src: /src/h2o/lib/core/configurator.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - parent_ctx
    - pathconf
    - node
    argTypes:
    - h2o_configurator_context_t*
    - h2o_pathconf_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: config_path
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - destroy_context
    - create_context
    - h2o_configurator_apply_commands
    linkageType: ''
    returnType: int
    signature: int config_path(h2o_configurator_context_t *parent_ctx, h2o_pathconf_t
      *pathconf, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:313,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:316,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:317,1
    - Dst: convert_path_config_node
      Src: /src/h2o/lib/core/configurator.c:324,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/lib/core/configurator.c:326,1
    - Dst: config_path
      Src: /src/h2o/lib/core/configurator.c:327,1
    - Dst: yoml_free
      Src: /src/h2o/lib/core/configurator.c:328,1
    - Dst: config_path
      Src: /src/h2o/lib/core/configurator.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 335
    functionName: on_config_paths
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_path
    - h2o_configurator_errprintf
    - yoml_free
    - convert_path_config_node
    - strlen
    - h2o_config_register_path
    linkageType: ''
    returnType: int
    signature: int on_config_paths(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:342,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:352,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/lib/core/configurator.c:355,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:355,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:356,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:359,1
    - Dst: memchr
      Src: /src/h2o/lib/core/configurator.c:361,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:362,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:368,1
    - Dst: create_context
      Src: /src/h2o/lib/core/configurator.c:372,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/lib/core/configurator.c:373,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:374,1
    - Dst: destroy_context
      Src: /src/h2o/lib/core/configurator.c:375,1
    - Dst: h2o_configurator_apply_commands
      Src: /src/h2o/lib/core/configurator.c:379,1
    - Dst: destroy_context
      Src: /src/h2o/lib/core/configurator.c:380,1
    - Dst: yoml_get
      Src: /src/h2o/lib/core/configurator.c:383,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:384,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: (hostname.len != 0)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/h2o/lib/core/configurator.c
    constantsTouched: []
    func_position:
      end: 390
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 390
    functionName: on_config_hosts
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_url_parse_hostport
    - h2o_config_register_host
    - destroy_context
    - memchr
    - yoml_get
    - strlen
    - create_context
    - assert
    - h2o_configurator_errprintf
    - h2o_configurator_apply_commands
    linkageType: ''
    returnType: int
    signature: int on_config_hosts(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: on_config_strict_match
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_strict_match(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: on_config_limit_request_body
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_limit_request_body(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: on_config_max_delegations
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_max_delegations(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: on_config_max_reprocesses
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_max_reprocesses(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: on_config_handshake_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_handshake_timeout(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: on_config_max_spare_pipes
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_max_spare_pipes(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: on_config_http1_request_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http1_request_timeout(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: on_config_http1_request_io_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http1_request_io_timeout(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: on_config_http1_upgrade_to_http2
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http1_upgrade_to_http2(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: on_config_http2_idle_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http2_idle_timeout(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: on_config_http2_graceful_shutdown_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http2_graceful_shutdown_timeout(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: on_config_http2_max_streams
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_http2_max_streams(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: on_config_http2_max_concurrent_requests_per_connection
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_max_concurrent_requests_per_connection(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                                  yoml_t
      *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: on_config_http2_max_concurrent_streaming_requests_per_connection
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_max_concurrent_streaming_requests_per_connection(h2o_configurator_command_t
      *cmd,\n                                                                            h2o_configurator_context_t
      *ctx, yoml_t *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:480,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: on_config_http2_input_window_size
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http2_input_window_size(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: on_config_http2_latency_optimization_min_rtt
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_latency_optimization_min_rtt(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                        yoml_t
      *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:501,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 509
    functionName: on_config_http2_latency_optimization_max_additional_delay
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_latency_optimization_max_additional_delay(h2o_configurator_command_t
      *cmd,\n                                                                     h2o_configurator_context_t
      *ctx, yoml_t *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: on_config_http2_latency_optimization_max_cwnd
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_latency_optimization_max_cwnd(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                         yoml_t
      *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: on_config_http2_reprioritize_blocking_assets
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: "int on_config_http2_reprioritize_blocking_assets(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                        yoml_t
      *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: on_config_http2_push_preload
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http2_push_preload(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: on_config_http2_allow_cross_origin_push
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http2_allow_cross_origin_push(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/lib/core/configurator.c:565,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/core/configurator.c:567,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/core/configurator.c:576,1
    - Dst: sscanf
      Src: /src/h2o/lib/core/configurator.c:580,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:582,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:587,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:591,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 596
    functionName: on_config_http2_casper
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - sscanf
    - strcasecmp
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_http2_casper(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: on_config_http2_dos_delay
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http2_dos_delay(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: on_config_http3_idle_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http3_idle_timeout(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_timeout
      Src: /src/h2o/lib/core/configurator.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: on_config_http3_graceful_shutdown_timeout
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - config_timeout
    linkageType: ''
    returnType: int
    signature: int on_config_http3_graceful_shutdown_timeout(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:616,1
    - Dst: h2o_http3_calc_min_flow_control_size
      Src: /src/h2o/lib/core/configurator.c:618,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:619,1
    - Dst: h2o_http3_calc_min_flow_control_size
      Src: /src/h2o/lib/core/configurator.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 625
    functionName: on_config_http3_input_window_size
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_http3_calc_min_flow_control_size
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http3_input_window_size(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:631,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 639
    functionName: on_config_http3_ack_frequency
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http3_ack_frequency(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 649
    functionName: on_config_http3_allow_delayed_ack
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http3_allow_delayed_ack(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:655,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 665
    functionName: on_config_http3_gso
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http3_gso(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/core/configurator.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: on_config_http3_max_concurrent_streaming_requests_per_connection
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_http3_max_concurrent_streaming_requests_per_connection(h2o_configurator_command_t
      *cmd,\n                                                                            h2o_configurator_context_t
      *ctx, yoml_t *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:676,1
    - Dst: strchr
      Src: /src/h2o/lib/core/configurator.c:679,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cmd
    - node
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: assert_is_mimetype
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - strchr
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int assert_is_mimetype(h2o_configurator_command_t *cmd, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:689,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:693,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cmd
    - node
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 701
    functionName: assert_is_extension
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int assert_is_extension(h2o_configurator_command_t *cmd, yoml_t *node)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:707,1
    - Dst: assert_is_mimetype
      Src: /src/h2o/lib/core/configurator.c:712,1
    - Dst: assert_is_extension
      Src: /src/h2o/lib/core/configurator.c:716,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/lib/core/configurator.c:718,1
    - Dst: assert_is_extension
      Src: /src/h2o/lib/core/configurator.c:723,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/lib/core/configurator.c:725,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/lib/core/configurator.c:731,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/core/configurator.c:732,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:736,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:748,1
    - Dst: assert_is_extension
      Src: /src/h2o/lib/core/configurator.c:761,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/lib/core/configurator.c:763,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/core/configurator.c:767,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 3
    argNames:
    - cmd
    - mimemap
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_mimemap_t*
    - yoml_t*
    assertStmts:
    - condition: (node->type == YOML_TYPE_MAPPING)
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/h2o/lib/core/configurator.c
    constantsTouched: []
    func_position:
      end: 772
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 772
    functionName: set_mimetypes
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - assert_is_extension
    - h2o_configurator_get_one_of
    - h2o_mimemap_get_default_attributes
    - assert_is_mimetype
    - h2o_mimemap_define_mimetype
    - h2o_fatal
    - assert
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int set_mimetypes(h2o_configurator_command_t *cmd, h2o_mimemap_t *mimemap,
      yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_create
      Src: /src/h2o/lib/core/configurator.c:776,1
    - Dst: h2o_mimemap_clear_types
      Src: /src/h2o/lib/core/configurator.c:777,1
    - Dst: h2o_mimemap_set_default_type
      Src: /src/h2o/lib/core/configurator.c:778,1
    - Dst: h2o_mimemap_get_default_type
      Src: /src/h2o/lib/core/configurator.c:778,1
    - Dst: set_mimetypes
      Src: /src/h2o/lib/core/configurator.c:779,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/configurator.c:780,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/configurator.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 787
    functionName: on_config_mime_settypes
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mimemap_get_default_type
    - h2o_mimemap_set_default_type
    - h2o_mimemap_create
    - h2o_mimemap_clear_types
    - set_mimetypes
    linkageType: ''
    returnType: int
    signature: int on_config_mime_settypes(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/configurator.c:795,1
    - Dst: h2o_mimemap_clone
      Src: /src/h2o/lib/core/configurator.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_configurator_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 798
    functionName: clone_mimemap_if_clean
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mimemap_clone
    linkageType: ''
    returnType: void
    signature: void clone_mimemap_if_clean(h2o_configurator_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clone_mimemap_if_clean
      Src: /src/h2o/lib/core/configurator.c:802,1
    - Dst: set_mimetypes
      Src: /src/h2o/lib/core/configurator.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 804
    functionName: on_config_mime_addtypes
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - clone_mimemap_if_clean
    - set_mimetypes
    linkageType: ''
    returnType: int
    signature: int on_config_mime_addtypes(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clone_mimemap_if_clean
      Src: /src/h2o/lib/core/configurator.c:810,1
    - Dst: assert_is_extension
      Src: /src/h2o/lib/core/configurator.c:813,1
    - Dst: h2o_mimemap_remove_type
      Src: /src/h2o/lib/core/configurator.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 819
    functionName: on_config_mime_removetypes
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - clone_mimemap_if_clean
    - assert_is_extension
    - h2o_mimemap_remove_type
    linkageType: ''
    returnType: int
    signature: int on_config_mime_removetypes(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_is_mimetype
      Src: /src/h2o/lib/core/configurator.c:823,1
    - Dst: clone_mimemap_if_clean
      Src: /src/h2o/lib/core/configurator.c:826,1
    - Dst: h2o_mimemap_set_default_type
      Src: /src/h2o/lib/core/configurator.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: on_config_mime_setdefaulttype
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - clone_mimemap_if_clean
    - h2o_mimemap_set_default_type
    - assert_is_mimetype
    linkageType: ''
    returnType: int
    signature: int on_config_mime_setdefaulttype(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/core/configurator.c:834,1
    - Dst: assert_is_extension
      Src: /src/h2o/lib/core/configurator.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cmd
    - node
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 842
    functionName: normalize_ext
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - assert_is_extension
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *normalize_ext(h2o_configurator_command_t *cmd, yoml_t *node)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:852,1
    - Dst: yoml_get
      Src: /src/h2o/lib/core/configurator.c:855,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:856,1
    - Dst: alloca
      Src: /src/h2o/lib/core/configurator.c:863,1
    - Dst: normalize_ext
      Src: /src/h2o/lib/core/configurator.c:864,1
    - Dst: alloca
      Src: /src/h2o/lib/core/configurator.c:869,1
    - Dst: normalize_ext
      Src: /src/h2o/lib/core/configurator.c:873,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:879,1
    - Dst: clone_mimemap_if_clean
      Src: /src/h2o/lib/core/configurator.c:882,1
    - Dst: h2o_mimemap_define_dynamic
      Src: /src/h2o/lib/core/configurator.c:883,1
    - Dst: create_context
      Src: /src/h2o/lib/core/configurator.c:886,1
    - Dst: h2o_configurator_apply_commands
      Src: /src/h2o/lib/core/configurator.c:889,1
    - Dst: destroy_context
      Src: /src/h2o/lib/core/configurator.c:890,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:897,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:900,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 905
    functionName: on_config_custom_handler
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - create_context
    - yoml_get
    - destroy_context
    - clone_mimemap_if_clean
    - alloca
    - h2o_mimemap_define_dynamic
    - normalize_ext
    - h2o_configurator_errprintf
    - h2o_configurator_apply_commands
    linkageType: ''
    returnType: int
    signature: int on_config_custom_handler(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_create_envconf
      Src: /src/h2o/lib/core/configurator.c:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_configurator_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 911
    functionName: inherit_env_if_necessary
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_config_create_envconf
    linkageType: ''
    returnType: void
    signature: void inherit_env_if_necessary(h2o_configurator_context_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inherit_env_if_necessary
      Src: /src/h2o/lib/core/configurator.c:917,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:922,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:926,1
    - Dst: h2o_config_setenv
      Src: /src/h2o/lib/core/configurator.c:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 933
    functionName: on_config_setenv
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - inherit_env_if_necessary
    - h2o_configurator_errprintf
    - h2o_config_setenv
    linkageType: ''
    returnType: int
    signature: int on_config_setenv(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inherit_env_if_necessary
      Src: /src/h2o/lib/core/configurator.c:937,1
    - Dst: h2o_config_unsetenv
      Src: /src/h2o/lib/core/configurator.c:941,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:948,1
    - Dst: h2o_config_unsetenv
      Src: /src/h2o/lib/core/configurator.c:951,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 960
    functionName: on_config_unsetenv
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_config_unsetenv
    - inherit_env_if_necessary
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_unsetenv(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/configurator.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: on_config_server_name
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    linkageType: ''
    returnType: int
    signature: int on_config_server_name(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:970,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/configurator.c:972,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/configurator.c:972,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/configurator.c:977,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/configurator.c:977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 984
    functionName: on_config_send_server_name
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_config_send_server_name(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 996
    functionName: on_config_error_log_emit_request_errors
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_error_log_emit_request_errors(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/core/configurator.c:1000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: on_config_send_informational
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_send_informational(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: on_config_stash
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_stash(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_command
      Src: /src/h2o/lib/core/configurator.c:1025,1
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/core/configurator.c:1029,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1030,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1033,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1036,1
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/core/configurator.c:1041,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1048,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1051,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1054,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1057,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1060,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1063,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1066,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1069,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1072,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1075,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1078,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1081,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1084,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1087,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1090,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1093,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1096,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1099,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1102,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1106,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1110,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1114,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1116,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1119,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1122,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1125,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1128,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1131,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1134,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1136,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1139,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1143,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1147,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1151,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1155,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1159,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1161,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1162,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1164,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1168,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1171,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/core/configurator.c:1174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1176
    functionName: h2o_configurator__init_core
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_get_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_configurator__init_core(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/core/configurator.c:1180,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/configurator.c:1181,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/core/configurator.c:1182,1
    - Dst: h2o_configurator_t*::dispose
      Src: /src/h2o/lib/core/configurator.c:1184,1
    - Dst: destroy_configurator
      Src: /src/h2o/lib/core/configurator.c:1185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1187
    functionName: h2o_configurator__dispose_configurators
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_configurator_t*::dispose
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    - destroy_configurator
    linkageType: ''
    returnType: void
    signature: void h2o_configurator__dispose_configurators(h2o_globalconf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1193,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/configurator.c:1195,1
    - Dst: memset
      Src: /src/h2o/lib/core/configurator.c:1196,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/core/configurator.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - sz
    argTypes:
    - h2o_globalconf_t*
    - size_t
    assertStmts:
    - condition: (sz >= sizeof(*c))
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/h2o/lib/core/configurator.c
    constantsTouched: []
    func_position:
      end: 1200
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1200
    functionName: h2o_configurator_create
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc
    - memset
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: h2o_configurator_t
    signature: h2o_configurator_t *h2o_configurator_create(h2o_globalconf_t *conf,
      size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/configurator.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - configurator
    - name
    - flags
    - cb
    argTypes:
    - h2o_configurator_t*
    - char*
    - int
    - h2o_configurator_command_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1212
    functionName: h2o_configurator_define_command
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 2
    functionsReached:
    - h2o_vector_reserve
    linkageType: ''
    returnType: void
    signature: void h2o_configurator_define_command(h2o_configurator_t *configurator,
      const char *name, int flags, h2o_configurator_command_cb cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/configurator.c:1220,1
    - Dst: strcmp
      Src: /src/h2o/lib/core/configurator.c:1223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - conf
    - name
    argTypes:
    - h2o_globalconf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1230
    functionName: h2o_configurator_get_command
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 2
    functionsReached:
    - strcmp
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: h2o_configurator_command_t
    signature: h2o_configurator_command_t *h2o_configurator_get_command(h2o_globalconf_t
      *conf, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_context
      Src: /src/h2o/lib/core/configurator.c:1234,1
    - Dst: h2o_configurator_apply_commands
      Src: /src/h2o/lib/core/configurator.c:1238,1
    - Dst: destroy_context
      Src: /src/h2o/lib/core/configurator.c:1239,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - config
    - node
    - dry_run
    argTypes:
    - h2o_globalconf_t*
    - yoml_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1248
    functionName: h2o_configurator_apply
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 1
    functionsReached:
    - destroy_context
    - create_context
    - h2o_configurator_errprintf
    - h2o_configurator_apply_commands
    linkageType: ''
    returnType: int
    signature: int h2o_configurator_apply(h2o_globalconf_t *config, yoml_t *node,
      int dry_run)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/configurator.c:1255,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/configurator.c:1257,1
    - Dst: va_start
      Src: /src/h2o/lib/core/configurator.c:1258,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/core/configurator.c:1259,1
    - Dst: va_end
      Src: /src/h2o/lib/core/configurator.c:1260,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/core/configurator.c:1261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - node
    - reason
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1262
    functionName: h2o_configurator_errprintf
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 43
    functionsReached:
    - vsnprintf
    - h2o_error_printf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void h2o_configurator_errprintf(h2o_configurator_command_t *cmd, yoml_t
      *node, const char *reason, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/lib/core/configurator.c:1271,1
    - Dst: vsscanf
      Src: /src/h2o/lib/core/configurator.c:1272,1
    - Dst: va_end
      Src: /src/h2o/lib/core/configurator.c:1273,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - node
    - fmt
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1281
    functionName: h2o_configurator_scanf
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 33
    functionsReached:
    - va_end
    - va_start
    - h2o_configurator_errprintf
    - vsscanf
    linkageType: ''
    returnType: int
    signature: int h2o_configurator_scanf(h2o_configurator_command_t *cmd, yoml_t
      *node, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:1292,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/core/configurator.c:1296,1
    - Dst: strchr
      Src: /src/h2o/lib/core/configurator.c:1301,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1309,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - cmd
    - node
    - candidates
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1311
    functionName: h2o_configurator_get_one_of
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 19
    functionsReached:
    - strchr
    - strncasecmp
    - h2o_configurator_errprintf
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_configurator_get_one_of(h2o_configurator_command_t *cmd,
      yoml_t *node, const char *candidates)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/lib/core/configurator.c:1315,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/configurator.c:1320,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/core/configurator.c:1348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - start
    - output
    - type_mask
    argTypes:
    - char*
    - h2o_iovec_t*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1349
    functionName: get_next_key
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - strchr
    - h2o_fatal
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: char *get_next_key(const char *start, h2o_iovec_t *output, unsigned
      *type_mask)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/lib/core/configurator.c:1358,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1361,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1368,1
    - Dst: get_next_key
      Src: /src/h2o/lib/core/configurator.c:1369,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1376,1
    - Dst: get_next_key
      Src: /src/h2o/lib/core/configurator.c:1377,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1381,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1391,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:1394,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/core/configurator.c:1397,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1400,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1404,1
    - Dst: snprintf
      Src: /src/h2o/lib/core/configurator.c:1409,1
    - Dst: assert
      Src: /src/h2o/lib/core/configurator.c:1413,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:1413,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1414,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/core/configurator.c:1424,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 6
    argNames:
    - cmd
    - node
    - keys_required
    - keys_optional
    - values
    - num_values
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    - char*
    - yoml_t****
    - size_t
    assertStmts:
    - condition: (i < num_values)
      pos:
        line_end: 1367
        line_start: 1367
        source_file: /src/h2o/lib/core/configurator.c
    - condition: (i < num_values)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/h2o/lib/core/configurator.c
    - condition: (node->type == YOML_TYPE_MAPPING)
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/h2o/lib/core/configurator.c
    - condition: (i == num_values)
      pos:
        line_end: 1380
        line_start: 1380
        source_file: /src/h2o/lib/core/configurator.c
    - condition: (strlen(permitted_types) != 0)
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/h2o/lib/core/configurator.c
    constantsTouched: []
    func_position:
      end: 1430
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1430
    functionName: h2o_configurator__do_parse_mapping
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strncasecmp
    - get_next_key
    - strlen
    - alloca
    - assert
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int h2o_configurator__do_parse_mapping(h2o_configurator_command_t
      *cmd, yoml_t *node, const char *keys_required,\n                                       const
      char *keys_optional, yoml_t ****values, size_t num_values)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/lib/core/configurator.c:1437,1
    - Dst: getenv
      Src: /src/h2o/lib/core/configurator.c:1441,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/lib/core/configurator.c:1442,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/configurator.c:1446,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:1446,1
    - Dst: strlen
      Src: /src/h2o/lib/core/configurator.c:1446,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/configurator.c:1447,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/configurator.c:1451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1452
    functionName: h2o_configurator_get_cmd_path
    functionSourceFile: /src/h2o/lib/core/configurator.c
    functionUses: 5
    functionsReached:
    - H2O_TO_STR
    - h2o_strdup
    - h2o_mem_alloc
    - sprintf
    - getenv
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *h2o_configurator_get_cmd_path(const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:39,1
    - Dst: h2o_config_init_pathconf
      Src: /src/h2o/lib/core/config.c:42,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/core/config.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - globalconf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: create_hostconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_config_init_pathconf
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: h2o_hostconf_t
    signature: h2o_hostconf_t *create_hostconf(h2o_globalconf_t *globalconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/core/config.c:53,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:54,1
    - Dst: h2o_config_dispose_pathconf
      Src: /src/h2o/lib/core/config.c:57,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:58,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:60,1
    - Dst: h2o_config_dispose_pathconf
      Src: /src/h2o/lib/core/config.c:61,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:62,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - hostconf
    argTypes:
    - h2o_hostconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: destroy_hostconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    - h2o_config_dispose_pathconf
    linkageType: ''
    returnType: void
    signature: void destroy_hostconf(h2o_hostconf_t *hostconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:73,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:76,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:77,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:79,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - _envconf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: on_dispose_envconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    linkageType: ''
    returnType: void
    signature: void on_dispose_envconf(void *_envconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/core/config.c:85,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/core/config.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - parent
    argTypes:
    - h2o_envconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: h2o_config_create_envconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc_shared
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: h2o_envconf_t
    signature: h2o_envconf_t *h2o_config_create_envconf(h2o_envconf_t *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/core/config.c:97,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/config.c:102,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:103,1
    - Dst: h2o_vector_erase
      Src: /src/h2o/lib/core/config.c:104,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/config.c:110,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:112,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:117,1
    - Dst: h2o_strdup_shared
      Src: /src/h2o/lib/core/config.c:118,1
    - Dst: h2o_strdup_shared
      Src: /src/h2o/lib/core/config.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - envconf
    - name
    - value
    argTypes:
    - h2o_envconf_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 122
    functionName: h2o_config_setenv
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - h2o_mem_release_shared
    - h2o_vector_erase
    - h2o_strdup_shared
    - h2o_memis
    - h2o_vector_reserve
    - strlen
    linkageType: ''
    returnType: void
    signature: void h2o_config_setenv(h2o_envconf_t *envconf, const char *name, const
      char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/core/config.c:126,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/config.c:130,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:133,1
    - Dst: h2o_strdup_shared
      Src: /src/h2o/lib/core/config.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - envconf
    - name
    argTypes:
    - h2o_envconf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: h2o_config_unsetenv
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - h2o_memis
    - h2o_vector_reserve
    - h2o_strdup_shared
    - strlen
    linkageType: ''
    returnType: void
    signature: void h2o_config_unsetenv(h2o_envconf_t *envconf, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/core/config.c:139,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/config.c:142,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/core/config.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pathconf
    - globalconf
    - path
    - mimemap
    argTypes:
    - h2o_pathconf_t*
    - h2o_globalconf_t*
    - char*
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: h2o_config_init_pathconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - memset
    - h2o_mem_addref_shared
    - h2o_strdup
    linkageType: ''
    returnType: void
    signature: void h2o_config_init_pathconf(h2o_pathconf_t *pathconf, h2o_globalconf_t
      *globalconf, const char *path, h2o_mimemap_t *mimemap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DESTROY_LIST
      Src: /src/h2o/lib/core/config.c:161,1
    - Dst: DESTROY_LIST
      Src: /src/h2o/lib/core/config.c:162,1
    - Dst: DESTROY_LIST
      Src: /src/h2o/lib/core/config.c:163,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:166,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:168,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pathconf
    argTypes:
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 171
    functionName: h2o_config_dispose_pathconf
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - DESTROY_LIST
    - free
    - h2o_mem_release_shared
    linkageType: ''
    returnType: void
    signature: void h2o_config_dispose_pathconf(h2o_pathconf_t *pathconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: DESTROY_LIST
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_LIST(type, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/core/config.c:175,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:176,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/core/config.c:178,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/config.c:179,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/config.c:179,1
    - Dst: h2o_mimemap_create
      Src: /src/h2o/lib/core/config.c:211,1
    - Dst: h2o_socketpool_init_global
      Src: /src/h2o/lib/core/config.c:212,1
    - Dst: h2o_configurator__init_core
      Src: /src/h2o/lib/core/config.c:214,1
    - Dst: create_hostconf
      Src: /src/h2o/lib/core/config.c:216,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/config.c:218,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/config.c:218,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/config.c:219,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/config.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 1
    argNames:
    - config
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 220
    functionName: h2o_config_init
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 7
    functionsReached:
    - h2o_configurator__init_core
    - H2O_STRLIT
    - h2o_strdup
    - h2o_mimemap_create
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - create_hostconf
    - memset
    - h2o_socketpool_init_global
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_config_init(h2o_globalconf_t *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:224,1
    - Dst: h2o_config_init_pathconf
      Src: /src/h2o/lib/core/config.c:225,1
    - Dst: memcmp
      Src: /src/h2o/lib/core/config.c:235,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:239,1
    - Dst: memmove
      Src: /src/h2o/lib/core/config.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - hostconf
    - path
    - flags
    argTypes:
    - h2o_hostconf_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 247
    functionName: h2o_config_register_path
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 6
    functionsReached:
    - memcmp
    - h2o_mem_alloc
    - h2o_config_init_pathconf
    - memmove
    - h2o_vector_reserve
    linkageType: ''
    returnType: h2o_pathconf_t
    signature: h2o_pathconf_t *h2o_config_register_path(h2o_hostconf_t *hostconf,
      const char *path, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - config
    - status_handler
    argTypes:
    - h2o_globalconf_t*
    - h2o_status_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: h2o_config_register_status_handler
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 1
    functionsReached:
    - h2o_vector_reserve
    linkageType: ''
    returnType: void
    signature: void h2o_config_register_status_handler(h2o_globalconf_t *config, h2o_status_handler_t
      *status_handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/config.c:266,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/config.c:269,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/core/config.c:270,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/config.c:275,1
    - Dst: create_hostconf
      Src: /src/h2o/lib/core/config.c:281,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:288,1
    - Dst: strchr
      Src: /src/h2o/lib/core/config.c:289,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/config.c:291,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/config.c:294,1
    - Dst: h2o_append_to_null_terminated_list
      Src: /src/h2o/lib/core/config.c:299,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - config
    - host
    - port
    argTypes:
    - h2o_globalconf_t*
    - h2o_iovec_t
    - uint16_t
    assertStmts:
    - condition: (host.len != 0)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/h2o/lib/core/config.c
    constantsTouched: []
    func_position:
      end: 304
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 304
    functionName: h2o_config_register_host
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 7
    functionsReached:
    - h2o_strdup
    - strchr
    - free
    - h2o_mem_alloc
    - sprintf
    - h2o_append_to_null_terminated_list
    - h2o_memis
    - create_hostconf
    - h2o_strtolower
    - assert
    linkageType: ''
    returnType: h2o_hostconf_t
    signature: h2o_hostconf_t *h2o_config_register_host(h2o_globalconf_t *config,
      h2o_iovec_t host, uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_hostconf
      Src: /src/h2o/lib/core/config.c:312,1
    - Dst: free
      Src: /src/h2o/lib/core/config.c:314,1
    - Dst: destroy_hostconf
      Src: /src/h2o/lib/core/config.c:316,1
    - Dst: h2o_socketpool_dispose
      Src: /src/h2o/lib/core/config.c:318,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/core/config.c:319,1
    - Dst: h2o_configurator__dispose_configurators
      Src: /src/h2o/lib/core/config.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: h2o_config_dispose
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 5
    functionsReached:
    - h2o_mem_release_shared
    - destroy_hostconf
    - h2o_socketpool_dispose
    - free
    - h2o_configurator__dispose_configurators
    linkageType: ''
    returnType: void
    signature: void h2o_config_dispose(h2o_globalconf_t *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:325,1
    - Dst: memset
      Src: /src/h2o/lib/core/config.c:327,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - sz
    argTypes:
    - h2o_pathconf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: h2o_create_handler
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_mem_alloc
    - memset
    linkageType: ''
    returnType: h2o_handler_t
    signature: h2o_handler_t *h2o_create_handler(h2o_pathconf_t *conf, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:338,1
    - Dst: memset
      Src: /src/h2o/lib/core/config.c:340,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:343,1
    - Dst: memmove
      Src: /src/h2o/lib/core/config.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - sz
    argTypes:
    - h2o_pathconf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 349
    functionName: h2o_create_filter
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_mem_alloc
    - memset
    - memmove
    linkageType: ''
    returnType: h2o_filter_t
    signature: h2o_filter_t *h2o_create_filter(h2o_pathconf_t *conf, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/core/config.c:353,1
    - Dst: memset
      Src: /src/h2o/lib/core/config.c:355,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/config.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - sz
    argTypes:
    - h2o_pathconf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: h2o_create_logger
    functionSourceFile: /src/h2o/lib/core/config.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_mem_alloc
    - memset
    linkageType: ''
    returnType: h2o_logger_t
    signature: h2o_logger_t *h2o_create_logger(h2o_pathconf_t *conf, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/headers.c:31,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/headers.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - pool
    - headers
    - name
    - orig_name
    - value
    - value_len
    - flags
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_iovec_t*
    - char*
    - char*
    - size_t
    - h2o_header_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: add_header
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 15
    functionsReached:
    - h2o_vector_reserve
    - h2o_strdup
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t add_header(h2o_mem_pool_t *pool, h2o_headers_t *headers, h2o_iovec_t
      *name, const char *orig_name, const char *value,\n                          size_t
      value_len, h2o_header_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/headers.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pool
    - base
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: alloc_and_init_iovec
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t *alloc_and_init_iovec(h2o_mem_pool_t *pool, const char
      *base, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - headers
    - token
    - cursor
    argTypes:
    - h2o_headers_t*
    - h2o_token_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: h2o_find_header
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_find_header(const h2o_headers_t *headers, const h2o_token_t
      *token, ssize_t cursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/headers.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - headers
    - name
    - name_len
    - cursor
    argTypes:
    - h2o_headers_t*
    - char*
    - size_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: h2o_find_header_by_str
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 2
    functionsReached:
    - h2o_memis
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_find_header_by_str(const h2o_headers_t *headers, const
      char *name, size_t name_len, ssize_t cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_header
      Src: /src/h2o/lib/core/headers.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pool
    - headers
    - token
    - orig_name
    - value
    - value_len
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_token_t*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: h2o_add_header
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 14
    functionsReached:
    - add_header
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_add_header(h2o_mem_pool_t *pool, h2o_headers_t *headers,
      const h2o_token_t *token, const char *orig_name,\n                       const
      char *value, size_t value_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/core/headers.c:81,1
    - Dst: add_header
      Src: /src/h2o/lib/core/headers.c:83,1
    - Dst: add_header
      Src: /src/h2o/lib/core/headers.c:86,1
    - Dst: alloc_and_init_iovec
      Src: /src/h2o/lib/core/headers.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - pool
    - headers
    - lowercase_name
    - lowercase_name_len
    - maybe_token
    - orig_name
    - value
    - value_len
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - char*
    - size_t
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: h2o_add_header_by_str
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 6
    functionsReached:
    - add_header
    - h2o_lookup_token
    - alloc_and_init_iovec
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_add_header_by_str(h2o_mem_pool_t *pool, h2o_headers_t
      *headers, const char *lowercase_name, size_t lowercase_name_len,\n                              int
      maybe_token, const char *orig_name, const char *value, size_t value_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/lib/core/headers.c:93,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/headers.c:96,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/headers.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - pool
    - headers
    - token
    - value
    - value_len
    - overwrite_if_exists
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_token_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: h2o_set_header
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - h2o_add_header
    - h2o_find_header
    - h2o_iovec_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_set_header(h2o_mem_pool_t *pool, h2o_headers_t *headers,
      const h2o_token_t *token, const char *value, size_t value_len,\n                       int
      overwrite_if_exists)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/core/headers.c:110,1
    - Dst: h2o_set_header
      Src: /src/h2o/lib/core/headers.c:112,1
    - Dst: h2o_find_header_by_str
      Src: /src/h2o/lib/core/headers.c:116,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/headers.c:119,1
    - Dst: add_header
      Src: /src/h2o/lib/core/headers.c:123,1
    - Dst: alloc_and_init_iovec
      Src: /src/h2o/lib/core/headers.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - pool
    - headers
    - lowercase_name
    - lowercase_name_len
    - maybe_token
    - value
    - value_len
    - overwrite_if_exists
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - char*
    - size_t
    - int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: h2o_set_header_by_str
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - h2o_lookup_token
    - alloc_and_init_iovec
    - h2o_find_header_by_str
    - add_header
    - h2o_set_header
    - h2o_iovec_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_set_header_by_str(h2o_mem_pool_t *pool, h2o_headers_t
      *headers, const char *lowercase_name, size_t lowercase_name_len,\n                              int
      maybe_token, const char *value, size_t value_len, int overwrite_if_exists)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/core/headers.c:135,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/core/headers.c:142,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/headers.c:142,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/headers.c:142,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/headers.c:142,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/headers.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - pool
    - headers
    - token
    - value
    - value_len
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_token_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: h2o_set_header_token
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 1
    functionsReached:
    - H2O_STRLIT
    - h2o_concat
    - h2o_contains_token
    - h2o_add_header
    - h2o_iovec_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_set_header_token(h2o_mem_pool_t *pool, h2o_headers_t *headers,
      const h2o_token_t *token, const char *value,\n                             size_t
      value_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/headers.c:151,1
    - Dst: memmove
      Src: /src/h2o/lib/core/headers.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - headers
    - cursor
    argTypes:
    - h2o_headers_t*
    - ssize_t
    assertStmts:
    - condition: (cursor != -1)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/h2o/lib/core/headers.c
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: h2o_delete_header
    functionSourceFile: /src/h2o/lib/core/headers.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h2o_delete_header(h2o_headers_t *headers, ssize_t cursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/lib/core/pipe_sender.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: empty_pipe
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int empty_pipe(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty_pipe
      Src: /src/h2o/lib/core/pipe_sender.c:56,1
    - Dst: close
      Src: /src/h2o/lib/core/pipe_sender.c:61,1
    - Dst: close
      Src: /src/h2o/lib/core/pipe_sender.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - sender
    - ctx
    argTypes:
    - h2o_pipe_sender_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: h2o_pipe_sender_dispose
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - close
    - empty_pipe
    linkageType: ''
    returnType: void
    signature: void h2o_pipe_sender_dispose(h2o_pipe_sender_t *sender, h2o_context_t
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/h2o/lib/core/pipe_sender.c:78,1
    - Dst: cloexec_pipe
      Src: /src/h2o/lib/core/pipe_sender.c:80,1
    - Dst: fcntl
      Src: /src/h2o/lib/core/pipe_sender.c:82,1
    - Dst: fcntl
      Src: /src/h2o/lib/core/pipe_sender.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - sender
    argTypes:
    - h2o_context_t*
    - h2o_pipe_sender_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: h2o_pipe_sender_start
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - pipe2
    - fcntl
    - cloexec_pipe
    linkageType: ''
    returnType: int
    signature: int h2o_pipe_sender_start(h2o_context_t *ctx, h2o_pipe_sender_t *sender)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/lib/core/pipe_sender.c:94,1
    - Dst: assert
      Src: /src/h2o/lib/core/pipe_sender.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - vec
    - dst
    - len
    argTypes:
    - h2o_sendvec_t*
    - void*
    - size_t
    assertStmts:
    - condition: (errno != EAGAIN)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/lib/core/pipe_sender.c
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: from_pipe_read
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - assert
    - read
    linkageType: ''
    returnType: int
    signature: int from_pipe_read(h2o_sendvec_t *vec, void *dst, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: splice
      Src: /src/h2o/lib/core/pipe_sender.c:114,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/core/pipe_sender.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - vec
    - sockfd
    - len
    argTypes:
    - h2o_sendvec_t*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 127
    functionName: from_pipe_send
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - h2o_fatal
    - splice
    linkageType: ''
    returnType: size_t
    signature: size_t from_pipe_send(h2o_sendvec_t *vec, int sockfd, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/pipe_sender.c:132,1
    - Dst: h2o_sendvec
      Src: /src/h2o/lib/core/pipe_sender.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - req
    - sender
    - len
    - send_state
    argTypes:
    - h2o_req_t*
    - h2o_pipe_sender_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (len <= H2O_PULL_SENDVEC_MAX_SIZE)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/h2o/lib/core/pipe_sender.c
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: h2o_pipe_sender_send
    functionSourceFile: /src/h2o/lib/core/pipe_sender.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_sendvec
    linkageType: ''
    returnType: void
    signature: void h2o_pipe_sender_send(h2o_req_t *req, h2o_pipe_sender_t *sender,
      size_t len, h2o_send_state_t send_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: get_client_ctx
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_httpclient_ctx_t
    signature: h2o_httpclient_ctx_t *get_client_ctx(h2o_req_t *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse
      Src: /src/h2o/lib/core/proxy.c:68,1
    - Dst: h2o_url_hosts_are_equal
      Src: /src/h2o/lib/core/proxy.c:72,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/core/proxy.c:74,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/core/proxy.c:74,1
    - Dst: memcmp
      Src: /src/h2o/lib/core/proxy.c:78,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/core/proxy.c:81,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:81,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:81,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:82,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 7
    argNames:
    - pool
    - location
    - location_len
    - match
    - req_scheme
    - req_authority
    - req_basepath
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - h2o_url_t*
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: rewrite_location
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 1
    functionsReached:
    - h2o_url_hosts_are_equal
    - h2o_url_get_port
    - H2O_STRLIT
    - h2o_concat
    - memcmp
    - h2o_iovec_init
    - h2o_url_parse
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t rewrite_location(h2o_mem_pool_t *pool, const char *location,
      size_t location_len, h2o_url_t *match,\n                                    const
      h2o_url_scheme_t *req_scheme, h2o_iovec_t req_authority, h2o_iovec_t req_basepath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/proxy.c:96,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/proxy.c:97,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/proxy.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pool
    - merged
    - added
    - seperator
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: build_request_merge_headers
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t build_request_merge_headers(h2o_mem_pool_t *pool, h2o_iovec_t
      merged, h2o_iovec_t added, int seperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/proxy.c:129,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:129,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/proxy.c:130,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:130,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/core/proxy.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: req_requires_content_length
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - h2o_find_header
    linkageType: ''
    returnType: int
    signature: int req_requires_content_length(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/proxy.c:138,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/proxy.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - cl
    argTypes:
    - h2o_mem_pool_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: build_content_length
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t build_content_length(h2o_mem_pool_t *pool, size_t cl)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_t*::conn::callbacks::get_peername
      Src: /src/h2o/lib/core/proxy.c:157,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/core/proxy.c:158,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/proxy.c:161,1
    - Dst: h2o_stringify_proxy_header
      Src: /src/h2o/lib/core/proxy.c:162,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:166,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/proxy.c:168,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:168,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:170,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:170,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/proxy.c:171,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:171,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:173,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:173,1
    - Dst: h2o_url_init
      Src: /src/h2o/lib/core/proxy.c:178,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:178,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/core/proxy.c:179,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:183,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:183,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:185,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:185,1
    - Dst: req_requires_content_length
      Src: /src/h2o/lib/core/proxy.c:192,1
    - Dst: build_content_length
      Src: /src/h2o/lib/core/proxy.c:193,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:194,1
    - Dst: build_content_length
      Src: /src/h2o/lib/core/proxy.c:198,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:199,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:202,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:202,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/core/proxy.c:210,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/core/proxy.c:212,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/proxy.c:217,1
    - Dst: build_request_merge_headers
      Src: /src/h2o/lib/core/proxy.c:224,1
    - Dst: build_request_merge_headers
      Src: /src/h2o/lib/core/proxy.c:230,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:237,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:237,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/core/proxy.c:240,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:242,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/core/proxy.c:244,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:252,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:252,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:257,1
    - Dst: h2o_join_list
      Src: /src/h2o/lib/core/proxy.c:261,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:261,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:261,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:262,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/core/proxy.c:266,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:266,1
    - Dst: build_request_merge_headers
      Src: /src/h2o/lib/core/proxy.c:269,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:269,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:271,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/proxy.c:275,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/proxy.c:286,1
    - Dst: build_request_merge_headers
      Src: /src/h2o/lib/core/proxy.c:289,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:290,1
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/lib/core/proxy.c:297,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 123
    argCount: 10
    argNames:
    - req
    - method
    - url
    - headers
    - props
    - keepalive
    - upgrade_to
    - use_proxy_protocol
    - reprocess_if_too_early
    - origin
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - h2o_url_t*
    - h2o_headers_t*
    - h2o_httpclient_properties_t*
    - int
    - char*
    - int
    - int*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 299
    functionName: build_request
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 1
    functionsReached:
    - h2o_req_t*::conn::callbacks::get_peername
    - h2o_mem_alloc_pool
    - req_requires_content_length
    - h2o_iovec_init
    - h2o_url_init
    - H2O_STRLIT
    - h2o_strdup
    - h2o_socket_getnumerichost
    - h2o_join_list
    - H2O_LIKELY
    - h2o_lcstris
    - h2o_add_header
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - memcpy
    - h2o_vector_reserve
    - h2o_fatal
    - h2o_rewrite_headers
    - build_request_merge_headers
    - build_content_length
    - h2o_memis
    - h2o_stringify_proxy_header
    linkageType: ''
    returnType: void
    signature: "void build_request(h2o_req_t *req, h2o_iovec_t *method, h2o_url_t
      *url, h2o_headers_t *headers,\n                          h2o_httpclient_properties_t
      *props, int keepalive, const char *upgrade_to, int use_proxy_protocol,\n                          int
      *reprocess_if_too_early, h2o_url_t *origin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct rp_generator_t*
    assertStmts:
    - condition: (client != NULL)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: detach_client
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: h2o_httpclient_t
    signature: h2o_httpclient_t *detach_client(struct rp_generator_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:324,1
    - Dst: h2o_httpclient_t*::cancel
      Src: /src/h2o/lib/core/proxy.c:325,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/proxy.c:327,1
    - Dst: h2o_pipe_sender_dispose
      Src: /src/h2o/lib/core/proxy.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct rp_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: do_close
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_httpclient_t*::cancel
    - h2o_pipe_sender_dispose
    - h2o_timer_unlink
    - detach_client
    linkageType: ''
    returnType: void
    signature: void do_close(struct rp_generator_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_close
      Src: /src/h2o/lib/core/proxy.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: do_stop
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - do_close
    linkageType: ''
    returnType: void
    signature: void do_stop(h2o_generator_t *generator, h2o_req_t *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_prepare
      Src: /src/h2o/lib/core/proxy.c:343,1
    - Dst: h2o_pipe_sender_in_use
      Src: /src/h2o/lib/core/proxy.c:364,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/proxy.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct rp_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: do_send
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 4
    functionsReached:
    - h2o_pipe_sender_in_use
    - h2o_send
    - h2o_doublebuffer_prepare
    linkageType: ''
    returnType: void
    signature: void do_send(struct rp_generator_t *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/core/proxy.c:377,1
    - Dst: struct rp_generator_t*::client::update_window
      Src: /src/h2o/lib/core/proxy.c:379,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/proxy.c:381,1
    - Dst: h2o_pipe_sender_send
      Src: /src/h2o/lib/core/proxy.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct rp_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 393
    functionName: do_send_from_pipe
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_send_state_is_in_progress
    - h2o_pipe_sender_send
    - h2o_send
    - struct rp_generator_t*::client::update_window
    linkageType: ''
    returnType: void
    signature: void do_send_from_pipe(struct rp_generator_t *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/core/proxy.c:400,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:402,1
    - Dst: h2o_pipe_sender_in_use
      Src: /src/h2o/lib/core/proxy.c:402,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:403,1
    - Dst: h2o_pipe_sender_in_use
      Src: /src/h2o/lib/core/proxy.c:407,1
    - Dst: do_send_from_pipe
      Src: /src/h2o/lib/core/proxy.c:408,1
    - Dst: do_send
      Src: /src/h2o/lib/core/proxy.c:410,1
    - Dst: struct rp_generator_t*::client::update_window
      Src: /src/h2o/lib/core/proxy.c:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts:
    - condition: (self->pipe_sender.inflight)
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/h2o/lib/core/proxy.c
    - condition: (h2o_pipe_sender_in_use(&self->pipe_sender))
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 414
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 414
    functionName: do_proceed
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_doublebuffer_consume
    - h2o_pipe_sender_in_use
    - struct rp_generator_t*::client::update_window
    - do_send_from_pipe
    - do_send
    - assert
    linkageType: ''
    returnType: void
    signature: void do_proceed(h2o_generator_t *generator, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct rp_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: copy_stats
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_stats(struct rp_generator_t *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_stats
      Src: /src/h2o/lib/core/proxy.c:429,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/core/proxy.c:433,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:437,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:439,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/core/proxy.c:440,1
    - Dst: struct rp_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/core/proxy.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - errstr
    argTypes:
    - struct rp_generator_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 445
    functionName: on_body_on_close
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - copy_stats
    - h2o_buffer_init
    - h2o_req_log_error
    - struct rp_generator_t*::src_req::proceed_req
    - detach_client
    linkageType: ''
    returnType: void
    signature: void on_body_on_close(struct rp_generator_t *self, const char *errstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/proxy.c:453,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:456,1
    - Dst: on_body_on_close
      Src: /src/h2o/lib/core/proxy.c:463,1
    - Dst: do_send
      Src: /src/h2o/lib/core/proxy.c:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - client
    - errstr
    - trailers
    - num_trailers
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_header_t*
    - size_t
    assertStmts:
    - condition: (errstr == h2o_httpclient_error_is_eos)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 471
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 471
    functionName: on_body
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - on_body_on_close
    - do_send
    - assert
    - h2o_timer_unlink
    linkageType: ''
    returnType: int
    signature: int on_body(h2o_httpclient_t *client, const char *errstr, h2o_header_t
      *trailers, size_t num_trailers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/proxy.c:478,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:481,1
    - Dst: on_body_on_close
      Src: /src/h2o/lib/core/proxy.c:486,1
    - Dst: do_send_from_pipe
      Src: /src/h2o/lib/core/proxy.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - client
    - errstr
    - trailers
    - num_trailers
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_header_t*
    - size_t
    assertStmts:
    - condition: (errstr == h2o_httpclient_error_is_eos)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 491
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 491
    functionName: on_body_piped
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - on_body_on_close
    - do_send_from_pipe
    - assert
    - h2o_timer_unlink
    linkageType: ''
    returnType: int
    signature: int on_body_piped(h2o_httpclient_t *client, const char *errstr, h2o_header_t
      *trailers, size_t num_trailers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:495,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:495,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:498,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:498,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:501,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:501,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:504,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:504,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:507,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 511
    functionName: compress_hint_to_enum
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_lcstris
    - H2O_STRLIT
    linkageType: ''
    returnType: char
    signature: char compress_hint_to_enum(const char *val, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/proxy.c:515,1
    - Dst: h2o_doublebuffer_prepare_empty
      Src: /src/h2o/lib/core/proxy.c:516,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/proxy.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: on_send_headers_timeout
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_send
    - h2o_doublebuffer_prepare_empty
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_send_headers_timeout(h2o_timer_t *entry)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: copy_stats
      Src: /src/h2o/lib/core/proxy.c:528,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:531,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/core/proxy.c:532,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/core/proxy.c:537,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/proxy.c:538,1
    - Dst: h2o_send_error_502
      Src: /src/h2o/lib/core/proxy.c:540,1
    - Dst: struct rp_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/core/proxy.c:542,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:550,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/core/proxy.c:553,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/proxy.c:554,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:558,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:558,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/core/proxy.c:565,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:567,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/core/proxy.c:568,1
    - Dst: h2o_send_error_502
      Src: /src/h2o/lib/core/proxy.c:569,1
    - Dst: struct rp_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/core/proxy.c:571,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:577,1
    - Dst: h2o_get_redirect_method
      Src: /src/h2o/lib/core/proxy.c:578,1
    - Dst: h2o_send_redirect_internal
      Src: /src/h2o/lib/core/proxy.c:579,1
    - Dst: rewrite_location
      Src: /src/h2o/lib/core/proxy.c:584,1
    - Dst: h2o_push_path_in_link_header
      Src: /src/h2o/lib/core/proxy.c:592,1
    - Dst: compress_hint_to_enum
      Src: /src/h2o/lib/core/proxy.c:599,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:605,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:607,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:612,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:613,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/core/proxy.c:615,1
    - Dst: h2o_resp_add_date_header
      Src: /src/h2o/lib/core/proxy.c:621,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:626,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/proxy.c:629,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/core/proxy.c:636,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:641,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/proxy.c:642,1
    - Dst: h2o_pipe_sender_start
      Src: /src/h2o/lib/core/proxy.c:648,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/core/proxy.c:652,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/core/proxy.c:657,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 117
    argCount: 3
    argNames:
    - client
    - errstr
    - args
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_httpclient_on_head_t*
    assertStmts:
    - condition: (req->is_tunnel_req)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 660
      start: 520
    functionDepth: 4
    functionLinenumber: 520
    functionLinenumberEnd: 660
    functionName: on_head
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    - h2o_get_redirect_method
    - struct rp_generator_t*::src_req::proceed_req
    - h2o_send_redirect_internal
    - assert
    - h2o_send_error_502
    - h2o_strtosize
    - H2O_STRLIT
    - h2o_strdup
    - H2O_STRUCT_FROM_MEMBER
    - h2o_req_log_error
    - h2o_resp_add_date_header
    - h2o_lcstris
    - h2o_send
    - h2o_add_header
    - h2o_push_path_in_link_header
    - detach_client
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - copy_stats
    - h2o_start_response
    - rewrite_location
    - h2o_pipe_sender_start
    - compress_hint_to_enum
    linkageType: ''
    returnType: h2o_httpclient_body_cb
    signature: h2o_httpclient_body_cb on_head(h2o_httpclient_t *client, const char
      *errstr, h2o_httpclient_on_head_t *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_push_path_in_link_header
      Src: /src/h2o/lib/core/proxy.c:670,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:673,1
    - Dst: h2o_send_informational
      Src: /src/h2o/lib/core/proxy.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 6
    argNames:
    - client
    - version
    - status
    - msg
    - headers
    - num_headers
    argTypes:
    - h2o_httpclient_t*
    - int
    - int
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    assertStmts:
    - condition: (status != 101 && "101 has to be notified as final")
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 685
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 685
    functionName: on_informational
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_send_informational
    - assert
    - h2o_push_path_in_link_header
    linkageType: ''
    returnType: int
    signature: "int on_informational(h2o_httpclient_t *client, int version, int status,
      h2o_iovec_t msg, h2o_header_t *headers,\n                            size_t
      num_headers)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:693,1
    - Dst: struct rp_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/core/proxy.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_httpclient_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 696
    functionName: proceed_request
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - struct rp_generator_t*::src_req::proceed_req
    - detach_client
    linkageType: ''
    returnType: void
    signature: void proceed_request(h2o_httpclient_t *client, const char *errstr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:704,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:714,1
    - Dst: h2o_httpclient_t*::write_req
      Src: /src/h2o/lib/core/proxy.c:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: (chunk.len != 0 || is_end_stream)
      pos:
        line_end: 703
        line_start: 703
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 718
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 718
    functionName: write_req
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 3
    functionsReached:
    - h2o_httpclient_t*::write_req
    - assert
    - detach_client
    linkageType: ''
    returnType: int
    signature: int write_req(void *ctx, int is_end_stream)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: copy_stats
      Src: /src/h2o/lib/core/proxy.c:729,1
    - Dst: detach_client
      Src: /src/h2o/lib/core/proxy.c:732,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/core/proxy.c:733,1
    - Dst: h2o_send_error_502
      Src: /src/h2o/lib/core/proxy.c:734,1
    - Dst: assert
      Src: /src/h2o/lib/core/proxy.c:738,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/core/proxy.c:753,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/lib/core/proxy.c:756,1
    - Dst: h2o_conn_is_early_data
      Src: /src/h2o/lib/core/proxy.c:760,1
    - Dst: build_request
      Src: /src/h2o/lib/core/proxy.c:762,1
    - Dst: h2o_socketpool_can_keepalive
      Src: /src/h2o/lib/core/proxy.c:763,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:771,1
    - Dst: h2o_httpclient_t*::get_conn_properties
      Src: /src/h2o/lib/core/proxy.c:785,1
    - Dst: h2o_conn_t*::callbacks::can_zerocopy
      Src: /src/h2o/lib/core/proxy.c:794,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 10
    argNames:
    - client
    - errstr
    - method
    - url
    - headers
    - num_headers
    - body
    - proceed_req_cb
    - props
    - origin
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_iovec_t*
    - h2o_url_t*
    - h2o_header_t**
    - size_t*
    - h2o_iovec_t*
    - h2o_httpclient_proceed_req_cb*
    - h2o_httpclient_properties_t*
    - h2o_url_t*
    assertStmts:
    - condition: (origin != NULL)
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/h2o/lib/core/proxy.c
    constantsTouched: []
    func_position:
      end: 803
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 803
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - build_request
    - h2o_concat
    - copy_stats
    - detach_client
    - h2o_url_normalize_path
    - h2o_conn_is_early_data
    - h2o_req_log_error
    - h2o_socketpool_can_keepalive
    - h2o_iovec_init
    - h2o_httpclient_t*::get_conn_properties
    - h2o_conn_t*::callbacks::can_zerocopy
    - assert
    - h2o_send_error_502
    linkageType: ''
    returnType: h2o_httpclient_head_cb
    signature: "h2o_httpclient_head_cb on_connect(h2o_httpclient_t *client, const
      char *errstr, h2o_iovec_t *method, h2o_url_t *url,\n                                         const
      h2o_header_t **headers, size_t *num_headers, h2o_iovec_t *body,\n                                         h2o_httpclient_proceed_req_cb
      *proceed_req_cb, h2o_httpclient_properties_t *props,\n                                         h2o_url_t
      *origin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_close
      Src: /src/h2o/lib/core/proxy.c:808,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/core/proxy.c:811,1
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/core/proxy.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: on_generator_dispose
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - do_close
    - h2o_doublebuffer_dispose
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void on_generator_dispose(void *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/core/proxy.c:820,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/proxy.c:828,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:828,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/core/proxy.c:830,1
    - Dst: memset
      Src: /src/h2o/lib/core/proxy.c:831,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/core/proxy.c:832,1
    - Dst: h2o_pipe_sender_init
      Src: /src/h2o/lib/core/proxy.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 839
    functionName: proxy_send_prepare
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_doublebuffer_init
    - h2o_mem_alloc_shared
    - h2o_timer_init
    - h2o_memis
    - memset
    - h2o_pipe_sender_init
    linkageType: ''
    returnType: struct rp_generator_t
    signature: struct rp_generator_t *proxy_send_prepare(h2o_req_t *req)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_client_ctx
      Src: /src/h2o/lib/core/proxy.c:844,1
    - Dst: h2o_url_init
      Src: /src/h2o/lib/core/proxy.c:853,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/proxy.c:853,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:853,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/core/proxy.c:854,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:867,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:867,1
    - Dst: h2o_send_error_421
      Src: /src/h2o/lib/core/proxy.c:868,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/proxy.c:871,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/proxy.c:875,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/proxy.c:875,1
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/core/proxy.c:876,1
    - Dst: h2o_send_error_405
      Src: /src/h2o/lib/core/proxy.c:885,1
    - Dst: proxy_send_prepare
      Src: /src/h2o/lib/core/proxy.c:890,1
    - Dst: h2o_httpclient_connect
      Src: /src/h2o/lib/core/proxy.c:905,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 906
    functionName: h2o__proxy_process_request
    functionSourceFile: /src/h2o/lib/core/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_url_init
    - H2O_STRLIT
    - h2o_strdup
    - get_client_ctx
    - h2o_send_error_403
    - h2o_send_error_405
    - h2o_httpclient_connect
    - h2o_send_error_400
    - h2o_lcstris
    - h2o_send_error_421
    - proxy_send_prepare
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o__proxy_process_request(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/request.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _action
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: on_deferred_action_dispose
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void on_deferred_action_dispose(void *_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/core/request.c:68,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/core/request.c:70,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/core/request.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - req
    - sz
    - cb
    argTypes:
    - h2o_req_t*
    - size_t
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: create_deferred_action
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_shared
    - h2o_timer_init
    - h2o_timer_link
    linkageType: ''
    returnType: struct st_deferred_request_action_t
    signature: struct st_deferred_request_action_t *create_deferred_action(h2o_req_t
      *req, size_t sz, h2o_timer_cb cb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/lib/core/request.c:87,1
    - Dst: alloca
      Src: /src/h2o/lib/core/request.c:93,1
    - Dst: h2o_strcopytolower
      Src: /src/h2o/lib/core/request.c:94,1
    - Dst: memcmp
      Src: /src/h2o/lib/core/request.c:103,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:104,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - hostconfs
    - authority
    - default_port
    - wildcard_match
    argTypes:
    - h2o_hostconf_t**
    - h2o_iovec_t
    - uint16_t
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 116
    functionName: find_hostconf
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - memcmp
    - h2o_strcopytolower
    - h2o_memis
    - alloca
    - h2o_url_parse_hostport
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_hostconf_t
    signature: "h2o_hostconf_t *find_hostconf(h2o_hostconf_t **hostconfs, h2o_iovec_t
      authority, uint16_t default_port,\n                                     h2o_iovec_t
      *wildcard_match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hostconfs
    argTypes:
    - h2o_hostconf_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: find_default_hostconf
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_hostconf_t
    signature: h2o_hostconf_t *find_default_hostconf(h2o_hostconf_t **hostconfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_timestamp
      Src: /src/h2o/lib/core/request.c:136,1
    - Dst: find_hostconf
      Src: /src/h2o/lib/core/request.c:141,1
    - Dst: find_default_hostconf
      Src: /src/h2o/lib/core/request.c:143,1
    - Dst: find_default_hostconf
      Src: /src/h2o/lib/core/request.c:145,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/lib/core/request.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 160
    functionName: h2o_req_setup
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - find_hostconf
    - find_default_hostconf
    - h2o_url_normalize_path
    - h2o_get_timestamp
    linkageType: ''
    returnType: h2o_hostconf_t
    signature: h2o_hostconf_t *h2o_req_setup(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_req
      Src: /src/h2o/lib/core/request.c:168,1
    - Dst: h2o_send_error_404
      Src: /src/h2o/lib/core/request.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - handler
    argTypes:
    - h2o_req_t*
    - h2o_handler_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: call_handlers
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_send_error_404
    - on_req
    linkageType: ''
    returnType: void
    signature: void call_handlers(h2o_req_t *req, h2o_handler_t **handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/core/request.c:184,1
    - Dst: h2o_req_bind_conf
      Src: /src/h2o/lib/core/request.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - req
    - hostconf
    argTypes:
    - h2o_req_t*
    - h2o_hostconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: setup_pathconf
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_req_bind_conf
    - memcmp
    linkageType: ''
    returnType: void
    signature: void setup_pathconf(h2o_req_t *req, h2o_hostconf_t *hostconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/request.c:196,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/lib/core/request.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: deferred_proceed_cb
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_proceed_response
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void deferred_proceed_cb(h2o_timer_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_t*::_generator::stop
      Src: /src/h2o/lib/core/request.c:206,1
    - Dst: h2o_req_t*::_ostr_top::stop
      Src: /src/h2o/lib/core/request.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 215
    functionName: close_generator_and_filters
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_req_t*::_ostr_top::stop
    - h2o_req_t*::_generator::stop
    linkageType: ''
    returnType: void
    signature: void close_generator_and_filters(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: reset_response
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_response(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/request.c:231,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/core/request.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: retain_original_response
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_memcpy
    linkageType: ''
    returnType: void
    signature: void retain_original_response(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/lib/core/request.c:241,1
    - Dst: writev
      Src: /src/h2o/lib/core/request.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prefix
    - msg
    argTypes:
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: h2o_write_error_log
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - H2O_BUILD_ASSERT
    - writev
    linkageType: ''
    returnType: void
    signature: void h2o_write_error_log(h2o_iovec_t prefix, h2o_iovec_t msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/core/request.c:249,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/core/request.c:250,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/core/request.c:251,1
    - Dst: h2o_write_error_log
      Src: /src/h2o/lib/core/request.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - data
    - prefix
    - msg
    argTypes:
    - void*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: on_default_error_callback
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_write_error_log
    - h2o_buffer_init
    - h2o_buffer_append
    linkageType: ''
    returnType: void
    signature: void on_default_error_callback(void *data, h2o_iovec_t prefix, h2o_iovec_t
      msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/core/request.c:261,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/core/request.c:264,1
    - Dst: COPY
      Src: /src/h2o/lib/core/request.c:286,1
    - Dst: COPY
      Src: /src/h2o/lib/core/request.c:287,1
    - Dst: COPY
      Src: /src/h2o/lib/core/request.c:288,1
    - Dst: COPY
      Src: /src/h2o/lib/core/request.c:295,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/request.c:301,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/core/request.c:305,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/request.c:308,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:309,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:311,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:316,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/core/request.c:319,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 3
    argNames:
    - req
    - conn
    - src
    argTypes:
    - h2o_req_t*
    - h2o_conn_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 325
    functionName: h2o_init_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 5
    functionsReached:
    - h2o_iovec_is_token
    - COPY
    - h2o_strdup
    - h2o_mem_init_pool
    - h2o_mem_alloc_pool
    - h2o_vector_reserve
    - memset
    linkageType: ''
    returnType: void
    signature: void h2o_init_request(h2o_req_t *req, h2o_conn_t *conn, h2o_req_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: COPY
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_generator_and_filters
      Src: /src/h2o/lib/core/request.c:329,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/core/request.c:331,1
    - Dst: log_access
      Src: /src/h2o/lib/core/request.c:335,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/core/request.c:340,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/core/request.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: h2o_dispose_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 3
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_timer_unlink
    - close_generator_and_filters
    - h2o_buffer_dispose
    - log_access
    linkageType: ''
    returnType: void
    signature: void h2o_dispose_request(h2o_req_t *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:347,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:347,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:351,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: h2o_req_validate_pseudo_headers
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int h2o_req_validate_pseudo_headers(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_setup
      Src: /src/h2o/lib/core/request.c:364,1
    - Dst: setup_pathconf
      Src: /src/h2o/lib/core/request.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: h2o_get_first_handler
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached:
    - h2o_req_setup
    - setup_pathconf
    linkageType: ''
    returnType: h2o_handler_t
    signature: h2o_handler_t *h2o_get_first_handler(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:372,1
    - Dst: h2o_req_setup
      Src: /src/h2o/lib/core/request.c:376,1
    - Dst: setup_pathconf
      Src: /src/h2o/lib/core/request.c:377,1
    - Dst: call_handlers
      Src: /src/h2o/lib/core/request.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts:
    - condition: (!req->process_called)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: h2o_process_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 4
    functionsReached:
    - h2o_req_setup
    - setup_pathconf
    - assert
    - call_handlers
    linkageType: ''
    returnType: void
    signature: void h2o_process_request(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:386,1
    - Dst: call_handlers
      Src: /src/h2o/lib/core/request.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts:
    - condition: (handler != end)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: h2o_delegate_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - call_handlers
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_delegate_request(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/request.c:396,1
    - Dst: h2o_delegate_request
      Src: /src/h2o/lib/core/request.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: on_delegate_request_cb
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_delegate_request
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_delegate_request_cb(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_deferred_action
      Src: /src/h2o/lib/core/request.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: h2o_delegate_request_deferred
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - create_deferred_action
    linkageType: ''
    returnType: void
    signature: void h2o_delegate_request_deferred(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_hostconf
      Src: /src/h2o/lib/core/request.c:409,1
    - Dst: setup_pathconf
      Src: /src/h2o/lib/core/request.c:410,1
    - Dst: call_handlers
      Src: /src/h2o/lib/core/request.c:411,1
    - Dst: h2o__proxy_process_request
      Src: /src/h2o/lib/core/request.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - hosts
    argTypes:
    - h2o_req_t*
    - h2o_hostconf_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 417
    functionName: process_resolved_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - find_hostconf
    - h2o__proxy_process_request
    - setup_pathconf
    - call_handlers
    linkageType: ''
    returnType: void
    signature: void process_resolved_request(h2o_req_t *req, h2o_hostconf_t **hosts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: retain_original_response
      Src: /src/h2o/lib/core/request.c:422,1
    - Dst: close_generator_and_filters
      Src: /src/h2o/lib/core/request.c:425,1
    - Dst: h2o_url_normalize_path
      Src: /src/h2o/lib/core/request.c:435,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:437,1
    - Dst: reset_response
      Src: /src/h2o/lib/core/request.c:441,1
    - Dst: h2o_send_error_502
      Src: /src/h2o/lib/core/request.c:447,1
    - Dst: h2o_send_error_502
      Src: /src/h2o/lib/core/request.c:454,1
    - Dst: process_resolved_request
      Src: /src/h2o/lib/core/request.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - req
    - method
    - scheme
    - authority
    - path
    - overrides
    - is_delegated
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_req_overrides_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 461
    functionName: h2o_reprocess_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - reset_response
    - h2o_url_normalize_path
    - close_generator_and_filters
    - retain_original_response
    - h2o_send_error_502
    - process_resolved_request
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void h2o_reprocess_request(h2o_req_t *req, h2o_iovec_t method, const
      h2o_url_scheme_t *scheme, h2o_iovec_t authority,\n                           h2o_iovec_t
      path, h2o_req_overrides_t *overrides, int is_delegated)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/request.c:466,1
    - Dst: h2o_reprocess_request
      Src: /src/h2o/lib/core/request.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 6
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: on_reprocess_request_cb
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_reprocess_request
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_reprocess_request_cb(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_deferred_action
      Src: /src/h2o/lib/core/request.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - req
    - method
    - scheme
    - authority
    - path
    - overrides
    - is_delegated
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_req_overrides_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 482
    functionName: h2o_reprocess_request_deferred
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - create_deferred_action
    linkageType: ''
    returnType: void
    signature: "void h2o_reprocess_request_deferred(h2o_req_t *req, h2o_iovec_t method,
      const h2o_url_scheme_t *scheme, h2o_iovec_t authority,\n                                    h2o_iovec_t
      path, h2o_req_overrides_t *overrides, int is_delegated)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_generator_and_filters
      Src: /src/h2o/lib/core/request.c:486,1
    - Dst: reset_response
      Src: /src/h2o/lib/core/request.c:487,1
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:492,1
    - Dst: call_handlers
      Src: /src/h2o/lib/core/request.c:496,1
    - Dst: process_resolved_request
      Src: /src/h2o/lib/core/request.c:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts:
    - condition: (handler != end)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 500
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 500
    functionName: h2o_replay_request
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - reset_response
    - call_handlers
    - close_generator_and_filters
    - process_resolved_request
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_replay_request(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/core/request.c:504,1
    - Dst: h2o_replay_request
      Src: /src/h2o/lib/core/request.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: on_replay_request_cb
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_replay_request
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_replay_request_cb(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_deferred_action
      Src: /src/h2o/lib/core/request.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: h2o_replay_request_deferred
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - create_deferred_action
    linkageType: ''
    returnType: void
    signature: void h2o_replay_request_deferred(h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: retain_original_response
      Src: /src/h2o/lib/core/request.c:515,1
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:518,1
    - Dst: h2o_req_t*::prefilters::on_setup_ostream
      Src: /src/h2o/lib/core/request.c:526,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/core/request.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - req
    - generator
    argTypes:
    - h2o_req_t*
    - h2o_generator_t*
    assertStmts:
    - condition: (req->_generator == NULL)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 531
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 531
    functionName: h2o_start_response
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_req_t*::prefilters::on_setup_ostream
    - h2o_setup_next_ostream
    - assert
    - retain_original_response
    linkageType: ''
    returnType: void
    signature: void h2o_start_response(h2o_req_t *req, h2o_generator_t *generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:535,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/core/request.c:537,1
    - Dst: h2o_req_t*::_ostr_top::do_send
      Src: /src/h2o/lib/core/request.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - req
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (req->_generator != NULL)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 541
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 541
    functionName: do_sendvec
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_send_state_is_in_progress
    - assert
    - h2o_req_t*::_ostr_top::do_send
    linkageType: ''
    returnType: void
    signature: void do_sendvec(h2o_req_t *req, h2o_sendvec_t *bufs, size_t bufcnt,
      h2o_send_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/lib/core/request.c:545,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/core/request.c:549,1
    - Dst: do_sendvec
      Src: /src/h2o/lib/core/request.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - req
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: h2o_send
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 4
    functionsReached:
    - do_sendvec
    - h2o_sendvec_init_raw
    - alloca
    linkageType: ''
    returnType: void
    signature: void h2o_send(h2o_req_t *req, h2o_iovec_t *bufs, size_t bufcnt, h2o_send_state_t
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:556,1
    - Dst: do_sendvec
      Src: /src/h2o/lib/core/request.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - req
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (bufcnt == 0 || (bufs[0].callbacks->read_ == &h2o_sendvec_read_raw
        || bufcnt == 1))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: h2o_sendvec
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - do_sendvec
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_sendvec(h2o_req_t *req, h2o_sendvec_t *bufs, size_t bufcnt,
      h2o_send_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/core/request.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - req
    - alignment
    - sz
    argTypes:
    - h2o_req_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 566
    functionName: h2o_add_prefilter
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool_aligned
    linkageType: ''
    returnType: h2o_req_prefilter_t
    signature: h2o_req_prefilter_t *h2o_add_prefilter(h2o_req_t *req, size_t alignment,
      size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/core/request.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - req
    - alignment
    - sz
    - slot
    argTypes:
    - h2o_req_t*
    - size_t
    - size_t
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: h2o_add_ostream
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool_aligned
    linkageType: ''
    returnType: h2o_ostream_t
    signature: h2o_ostream_t *h2o_add_ostream(h2o_req_t *req, size_t alignment, size_t
      sz, h2o_ostream_t **slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_apply_env
      Src: /src/h2o/lib/core/request.c:586,1
    - Dst: h2o_req_unsetenv
      Src: /src/h2o/lib/core/request.c:588,1
    - Dst: h2o_req_getenv
      Src: /src/h2o/lib/core/request.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - req
    - env
    argTypes:
    - h2o_req_t*
    - h2o_envconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: h2o_req_apply_env
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_req_getenv
    - h2o_req_unsetenv
    - h2o_req_apply_env
    linkageType: ''
    returnType: void
    signature: void h2o_req_apply_env(h2o_req_t *req, h2o_envconf_t *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_apply_env
      Src: /src/h2o/lib/core/request.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - req
    - hostconf
    - pathconf
    argTypes:
    - h2o_req_t*
    - h2o_hostconf_t*
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 606
    functionName: h2o_req_bind_conf
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached:
    - h2o_req_apply_env
    linkageType: ''
    returnType: void
    signature: void h2o_req_bind_conf(h2o_req_t *req, h2o_hostconf_t *hostconf, h2o_pathconf_t
      *pathconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/core/request.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: h2o_proceed_response_deferred
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void h2o_proceed_response_deferred(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/core/request.c:615,1
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:616,1
    - Dst: h2o_ostream_t*::next::do_send
      Src: /src/h2o/lib/core/request.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ostream
    - req
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (req->_ostr_top == ostream)
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: h2o_ostream_send_next
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_ostream_t*::next::do_send
    - h2o_send_state_is_in_progress
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_ostream_send_next(h2o_ostream_t *ostream, h2o_req_t *req,
      h2o_sendvec_t *bufs, size_t bufcnt, h2o_send_state_t state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/lib/core/request.c:630,1
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/lib/core/request.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 636
    functionName: h2o_req_fill_mime_attributes
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_find_header
    - h2o_mimemap_get_type_by_mimetype
    linkageType: ''
    returnType: void
    signature: void h2o_req_fill_mime_attributes(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:642,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/core/request.c:646,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:648,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:648,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/request.c:649,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/request.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - req
    - body
    - len
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 652
    functionName: h2o_send_inline
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - h2o_start_response
    - h2o_send
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void h2o_send_inline(h2o_req_t *req, const char *body, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_setup
      Src: /src/h2o/lib/core/request.c:657,1
    - Dst: h2o_req_bind_conf
      Src: /src/h2o/lib/core/request.c:658,1
    - Dst: strlen
      Src: /src/h2o/lib/core/request.c:671,1
    - Dst: memset
      Src: /src/h2o/lib/core/request.c:674,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/request.c:676,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:676,1
    - Dst: h2o_send_inline
      Src: /src/h2o/lib/core/request.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - req
    - status
    - reason
    - body
    - flags
    argTypes:
    - h2o_req_t*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 654
    functionDepth: 5
    functionLinenumber: 654
    functionLinenumberEnd: 679
    functionName: h2o_send_error_generic
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_req_setup
    - H2O_STRLIT
    - h2o_send_inline
    - h2o_req_bind_conf
    - h2o_add_header
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: void h2o_send_error_generic(h2o_req_t *req, int status, const char
      *reason, const char *body, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 697
    functionName: DECL_SEND_ERROR_DEFERRED
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_SEND_ERROR_DEFERRED(status_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/core/request.c:705,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/request.c:708,1
    - Dst: memcpy
      Src: /src/h2o/lib/core/request.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - input
    - limit
    argTypes:
    - char*
    - h2o_iovec_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 712
    functionName: append_with_limit
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t append_with_limit(char *dst, h2o_iovec_t input, size_t limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/request.c:718,1
    - Dst: va_start
      Src: /src/h2o/lib/core/request.c:722,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/core/request.c:723,1
    - Dst: va_end
      Src: /src/h2o/lib/core/request.c:724,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/request.c:727,1
    - Dst: va_start
      Src: /src/h2o/lib/core/request.c:728,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/core/request.c:729,1
    - Dst: va_end
      Src: /src/h2o/lib/core/request.c:730,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:732,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/core/request.c:737,1
    - Dst: strlen
      Src: /src/h2o/lib/core/request.c:737,1
    - Dst: sprintf
      Src: /src/h2o/lib/core/request.c:739,1
    - Dst: append_with_limit
      Src: /src/h2o/lib/core/request.c:740,1
    - Dst: append_with_limit
      Src: /src/h2o/lib/core/request.c:741,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:743,1
    - Dst: h2o_req_t*::error_log_delegate::cb
      Src: /src/h2o/lib/core/request.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - req
    - module
    - fmt
    argTypes:
    - h2o_req_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 747
    functionName: h2o_req_log_error
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 3
    functionsReached:
    - va_start
    - h2o_mem_alloc_pool
    - vsnprintf
    - h2o_req_t*::error_log_delegate::cb
    - sprintf
    - append_with_limit
    - va_end
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_req_log_error(h2o_req_t *req, const char *module, const char
      *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_redirect_method
      Src: /src/h2o/lib/core/request.c:752,1
    - Dst: h2o_send_redirect_internal
      Src: /src/h2o/lib/core/request.c:753,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:758,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:759,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:764,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:764,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/core/request.c:769,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/request.c:777,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/request.c:778,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:778,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/core/request.c:779,1
    - Dst: h2o_send
      Src: /src/h2o/lib/core/request.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - req
    - status
    - reason
    - url
    - url_len
    argTypes:
    - h2o_req_t*
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 781
    functionName: h2o_send_redirect
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_htmlescape
    - h2o_start_response
    - h2o_add_header
    - h2o_send
    - h2o_get_redirect_method
    - h2o_memis
    - h2o_send_redirect_internal
    linkageType: ''
    returnType: void
    signature: void h2o_send_redirect(h2o_req_t *req, int status, const char *reason,
      const char *url, size_t url_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/lib/core/request.c:788,1
    - Dst: h2o_send_error_deferred_502
      Src: /src/h2o/lib/core/request.c:790,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/core/request.c:802,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/core/request.c:805,1
    - Dst: h2o_url_resolve_path
      Src: /src/h2o/lib/core/request.c:810,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/core/request.c:811,1
    - Dst: h2o_reprocess_request_deferred
      Src: /src/h2o/lib/core/request.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - req
    - method
    - url_str
    - url_len
    - preserve_overrides
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 814
    functionName: h2o_send_redirect_internal
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached:
    - h2o_strdup
    - h2o_concat
    - h2o_send_error_deferred_502
    - h2o_lcstris
    - h2o_reprocess_request_deferred
    - h2o_url_resolve_path
    - h2o_url_parse_relative
    linkageType: ''
    returnType: void
    signature: void h2o_send_redirect_internal(h2o_req_t *req, h2o_iovec_t method,
      const char *url_str, size_t url_len, int preserve_overrides)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/core/request.c:818,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:818,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:819,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/core/request.c:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - method
    - status
    argTypes:
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 821
    functionName: h2o_get_redirect_method
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_get_redirect_method(h2o_iovec_t method, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_t*::conn::callbacks::push_path
      Src: /src/h2o/lib/core/request.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - _req
    - path
    - path_len
    - is_critical
    argTypes:
    - void*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 829
    functionName: do_push_path
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_req_t*::conn::callbacks::push_path
    linkageType: ''
    returnType: void
    signature: void do_push_path(void *_req, const char *path, size_t path_len, int
      is_critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/core/request.c:833,1
    - Dst: h2o_extract_push_path_from_link_header
      Src: /src/h2o/lib/core/request.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - req
    - value
    - value_len
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 841
    functionName: h2o_push_path_in_link_header
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 2
    functionsReached:
    - h2o_extract_push_path_from_link_header
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_push_path_in_link_header(h2o_req_t *req, const char
      *value, size_t value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_timestamp
      Src: /src/h2o/lib/core/request.c:845,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/core/request.c:846,1
    - Dst: strlen
      Src: /src/h2o/lib/core/request.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: h2o_resp_add_date_header
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_add_header
    - strlen
    - h2o_get_timestamp
    linkageType: ''
    returnType: void
    signature: void h2o_resp_add_date_header(h2o_req_t *req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:852,1
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:853,1
    - Dst: assert
      Src: /src/h2o/lib/core/request.c:854,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/core/request.c:860,1
    - Dst: h2o_filter_t*::on_informational
      Src: /src/h2o/lib/core/request.c:870,1
    - Dst: h2o_req_t*::_ostr_top::send_informational
      Src: /src/h2o/lib/core/request.c:876,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts:
    - condition: (req->_generator == NULL)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/h2o/lib/core/request.c
    - condition: (100 <= req->res.status && req->res.status <= 199 && req->res.status
        != 101)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/h2o/lib/core/request.c
    - condition: (req->_ostr_top->next == NULL)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/h2o/lib/core/request.c
    constantsTouched: []
    func_position:
      end: 882
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 882
    functionName: h2o_send_informational
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 1
    functionsReached:
    - h2o_filter_t*::on_informational
    - h2o_req_t*::_ostr_top::send_informational
    - assert
    - h2o_find_header
    linkageType: ''
    returnType: void
    signature: void h2o_send_informational(h2o_req_t *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_relative
      Src: /src/h2o/lib/core/request.c:889,1
    - Dst: h2o_url_init
      Src: /src/h2o/lib/core/request.c:897,1
    - Dst: h2o_url_resolve
      Src: /src/h2o/lib/core/request.c:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - req
    - dest
    - resolved
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 904
    functionName: h2o_req_resolve_internal_redirect_url
    functionSourceFile: /src/h2o/lib/core/request.c
    functionUses: 0
    functionsReached:
    - h2o_url_init
    - h2o_url_resolve
    - h2o_url_parse_relative
    linkageType: ''
    returnType: int
    signature: int h2o_req_resolve_internal_redirect_url(h2o_req_t *req, h2o_iovec_t
      dest, h2o_url_t *resolved)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - h2o_http3_priority_update_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: h2o_http3_priority_update_frame_capacity
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_http3_priority_update_frame_capacity(h2o_http3_priority_update_frame_t
      *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/frame.c:31,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/frame.c:33,1
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/lib/http3/frame.c:33,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/frame.c:34,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/frame.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - frame
    argTypes:
    - uint8_t*
    - h2o_http3_priority_update_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: h2o_http3_encode_priority_update_frame
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached:
    - memcpy
    - quicly_encodev_capacity
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http3_encode_priority_update_frame(uint8_t *dst, const
      h2o_http3_priority_update_frame_t *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/frame.c:49,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/http3/frame.c:54,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/http3/frame.c:54,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/http3/frame.c:57,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/http3/frame.c:57,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/frame.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - frame
    - is_push
    - payload
    - len
    - err_desc
    argTypes:
    - h2o_http3_priority_update_frame_t*
    - int
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: h2o_http3_decode_priority_update_frame
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_decodev
    - quicly_stream_is_unidirectional
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int h2o_http3_decode_priority_update_frame(h2o_http3_priority_update_frame_t
      *frame, int is_push, const uint8_t *payload,\n                                           size_t
      len, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/lib/http3/frame.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream_or_push_id
    argTypes:
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: h2o_http3_goaway_frame_capacity
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_http3_goaway_frame_capacity(quicly_stream_id_t stream_or_push_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/lib/http3/frame.c:75,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/frame.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - stream_or_push_id
    argTypes:
    - uint8_t*
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: h2o_http3_encode_goaway_frame
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached:
    - quicly_encodev_capacity
    - quicly_encodev
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http3_encode_goaway_frame(uint8_t *dst, quicly_stream_id_t
      stream_or_push_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/frame.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - frame
    - payload
    - len
    - err_desc
    argTypes:
    - h2o_http3_goaway_frame_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: h2o_http3_decode_goaway_frame
    functionSourceFile: /src/h2o/lib/http3/frame.c
    functionUses: 0
    functionsReached:
    - quicly_decodev
    linkageType: ''
    returnType: int
    signature: int h2o_http3_decode_goaway_frame(h2o_http3_goaway_frame_t *frame,
      const uint8_t *payload, size_t len, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/lib/http3/common.c:73,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/http3/common.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - reporter
    - total_successes
    - cur_successes
    argTypes:
    - h2o_error_reporter_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: report_sendmsg_errors
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - fprintf
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void report_sendmsg_errors(h2o_error_reporter_t *reporter, uint64_t
      total_successes, uint64_t cur_successes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/h2o/lib/http3/common.c:87,1
    - Dst: setsockopt
      Src: /src/h2o/lib/http3/common.c:93,1
    - Dst: setsockopt
      Src: /src/h2o/lib/http3/common.c:99,1
    - Dst: setsockopt
      Src: /src/h2o/lib/http3/common.c:103,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:108,1
    - Dst: bind
      Src: /src/h2o/lib/http3/common.c:112,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/http3/common.c:115,1
    - Dst: close
      Src: /src/h2o/lib/http3/common.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - loop
    - family
    argTypes:
    - h2o_loop_t*
    - int
    assertStmts:
    - condition: (!"unexpected address family")
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 123
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 123
    functionName: h2o_quic_create_client_socket
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - close
    - setsockopt
    - bind
    - socket
    - assert
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_quic_create_client_socket(h2o_loop_t *loop, int family)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_socklen
      Src: /src/h2o/lib/http3/common.c:150,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/h2o/lib/http3/common.c:154,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:183,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:188,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:190,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:192,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:200,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:202,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:206,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:214,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:215,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:221,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:235,1
    - Dst: PUSH_CMSG
      Src: /src/h2o/lib/http3/common.c:239,1
    - Dst: sendmsg
      Src: /src/h2o/lib/http3/common.c:255,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/http3/common.c:255,1
    - Dst: h2o_error_reporter_record_success
      Src: /src/h2o/lib/http3/common.c:261,1
    - Dst: h2o_error_reporter_record_error
      Src: /src/h2o/lib/http3/common.c:275,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 6
    argNames:
    - ctx
    - dest
    - src
    - datagrams
    - num_datagrams
    - ecn
    argTypes:
    - h2o_quic_ctx_t*
    - quicly_address_t*
    - quicly_address_t*
    - struct iovec*
    - size_t
    - uint8_t
    assertStmts:
    - condition: (i == num_datagrams - 1 || datagrams[i].iov_len == datagrams[0].iov_len)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/h2o/lib/http3/common.c
    - condition: (datagrams[i - 1].iov_base + datagrams[i - 1].iov_len == datagrams[i].iov_base)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/h2o/lib/http3/common.c
    - condition: (fdaddr->sin_family == AF_INET)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 280
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 280
    functionName: h2o_quic_send_datagrams
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - assert
    - h2o_socket_get_fd
    - PUSH_CMSG
    - sendmsg
    - CMSG_FIRSTHDR
    - h2o_error_reporter_record_error
    - h2o_error_reporter_record_success
    - h2o_fatal
    - quicly_get_socklen
    linkageType: ''
    returnType: int
    signature: "int h2o_quic_send_datagrams(h2o_quic_ctx_t *ctx, quicly_address_t
      *dest, quicly_address_t *src, struct iovec *datagrams,\n                            size_t
      num_datagrams, uint8_t ecn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - level
    - ','
    - type
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: PUSH_CMSG
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_CMSG(level, type, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http3_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: get_callbacks
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_http3_conn_callbacks_t
    signature: h2o_http3_conn_callbacks_t *get_callbacks(h2o_http3_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http3/common.c:290,1
    - Dst: free
      Src: /src/h2o/lib/http3/common.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: ingress_unistream_on_destroy
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void ingress_unistream_on_destroy(quicly_stream_t *qs, quicly_error_t
      err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/common.c:296,1
    - Dst: h2o_http3_update_recvbuf
      Src: /src/h2o/lib/http3/common.c:300,1
    - Dst: quicly_recvstate_bytes_available
      Src: /src/h2o/lib/http3/common.c:303,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/common.c:305,1
    - Dst: struct st_h2o_http3_ingress_unistream_t*::handle_input
      Src: /src/h2o/lib/http3/common.c:310,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/common.c:310,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/common.c:313,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http3/common.c:319,1
    - Dst: quicly_stream_sync_recvbuf
      Src: /src/h2o/lib/http3/common.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - qs
    - 'off'
    - input
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 322
    functionName: ingress_unistream_on_receive
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_stream_sync_recvbuf
    - h2o_buffer_consume
    - quicly_recvstate_transfer_complete
    - struct st_h2o_http3_ingress_unistream_t*::handle_input
    - h2o_http3_update_recvbuf
    - quicly_get_data
    - quicly_get_state
    - quicly_recvstate_bytes_available
    linkageType: ''
    returnType: void
    signature: void ingress_unistream_on_receive(quicly_stream_t *qs, size_t off,
      const void *input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/common.c:326,1
    - Dst: struct st_h2o_http3_ingress_unistream_t*::handle_input
      Src: /src/h2o/lib/http3/common.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: ingress_unistream_on_receive_reset
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http3_ingress_unistream_t*::handle_input
    - quicly_get_data
    linkageType: ''
    returnType: void
    signature: void ingress_unistream_on_receive_reset(quicly_stream_t *qs, quicly_error_t
      err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:336,1
    - Dst: h2o_qpack_decoder_handle_input
      Src: /src/h2o/lib/http3/common.c:343,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:344,1
    - Dst: get_callbacks
      Src: /src/h2o/lib/http3/common.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - src_end
    - is_eos
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_ingress_unistream_t*
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: qpack_encoder_stream_handle_input
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_quic_close_connection
    - get_callbacks
    - h2o_qpack_decoder_handle_input
    linkageType: ''
    returnType: void
    signature: "void qpack_encoder_stream_handle_input(h2o_http3_conn_t *conn, struct
      st_h2o_http3_ingress_unistream_t *stream,\n                                              const
      uint8_t **src, const uint8_t *src_end, int is_eos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:355,1
    - Dst: h2o_qpack_encoder_handle_input
      Src: /src/h2o/lib/http3/common.c:361,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - src_end
    - is_eos
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_ingress_unistream_t*
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: qpack_decoder_stream_handle_input
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_qpack_encoder_handle_input
    - h2o_quic_close_connection
    linkageType: ''
    returnType: void
    signature: "void qpack_decoder_stream_handle_input(h2o_http3_conn_t *conn, struct
      st_h2o_http3_ingress_unistream_t *stream,\n                                              const
      uint8_t **src, const uint8_t *src_end, int is_eos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:369,1
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/http3/common.c:378,1
    - Dst: quicly_is_client
      Src: /src/h2o/lib/http3/common.c:378,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:381,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/http3/common.c:384,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:386,1
    - Dst: get_callbacks
      Src: /src/h2o/lib/http3/common.c:389,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/common.c:390,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - src_end
    - is_eos
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_ingress_unistream_t*
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 393
    functionName: control_stream_handle_input
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_is_client
    - h2o_http3_read_frame
    - get_callbacks
    - h2o_quic_close_connection
    - h2o_http3_has_received_settings
    - quicly_get_state
    linkageType: ''
    returnType: void
    signature: "void control_stream_handle_input(h2o_http3_conn_t *conn, struct st_h2o_http3_ingress_unistream_t
      *stream,\n                                        const uint8_t **src, const
      uint8_t *src_end, int is_eos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - src_end
    - is_eos
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_ingress_unistream_t*
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: discard_handle_input
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void discard_handle_input(h2o_http3_conn_t *conn, struct st_h2o_http3_ingress_unistream_t
      *stream, const uint8_t **src,\n                                 const uint8_t
      *src_end, int is_eos)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/common.c:413,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/http3/common.c:433,1
    - Dst: struct st_h2o_http3_ingress_unistream_t*::handle_input
      Src: /src/h2o/lib/http3/common.c:438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - src_end
    - is_eos
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_ingress_unistream_t*
    - uint8_t**
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 439
    functionName: unknown_type_handle_input
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http3_ingress_unistream_t*::handle_input
    - quicly_request_stop
    - quicly_decodev
    linkageType: ''
    returnType: void
    signature: "void unknown_type_handle_input(h2o_http3_conn_t *conn, struct st_h2o_http3_ingress_unistream_t
      *stream, const uint8_t **src,\n                                      const uint8_t
      *src_end, int is_eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http3/common.c:444,1
    - Dst: free
      Src: /src/h2o/lib/http3/common.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: egress_unistream_on_destroy
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void egress_unistream_on_destroy(quicly_stream_t *qs, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http3/common.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qs
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: egress_unistream_on_send_shift
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void egress_unistream_on_send_shift(quicly_stream_t *qs, size_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - qs
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: egress_unistream_on_send_emit
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void egress_unistream_on_send_emit(quicly_stream_t *qs, size_t off,
      void *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/common.c:472,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: egress_unistream_on_send_stop
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_get_data
    - h2o_quic_close_connection
    linkageType: ''
    returnType: void
    signature: void egress_unistream_on_send_stop(quicly_stream_t *qs, quicly_error_t
      err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_self_initiated
      Src: /src/h2o/lib/http3/common.c:478,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/common.c:482,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http3/common.c:487,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/common.c:492,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http3/common.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - qs
    argTypes:
    - quicly_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: h2o_http3_on_create_unidirectional_stream
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_buffer_init
    - quicly_stream_is_self_initiated
    linkageType: ''
    returnType: void
    signature: void h2o_http3_on_create_unidirectional_stream(quicly_stream_t *qs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_open_stream
      Src: /src/h2o/lib/http3/common.c:508,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:511,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/http3/common.c:514,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/http3/common.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - conn
    - stream
    - bytes_sent
    - initial_bytes
    argTypes:
    - h2o_http3_conn_t*
    - struct st_h2o_http3_egress_unistream_t**
    - uint64_t*
    - h2o_iovec_t
    assertStmts:
    - condition: ((*stream)->quic == qs)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: open_egress_unistream
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_open_stream
    - quicly_stream_sync_sendbuf
    - h2o_buffer_append
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t open_egress_unistream(h2o_http3_conn_t *conn, struct
      st_h2o_http3_egress_unistream_t **stream,\n                                            uint64_t
      *bytes_sent, h2o_iovec_t initial_bytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:523,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:525,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:530,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:532,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - uint8_t*
    - quicly_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 543
    functionName: accept_hashkey_flatten_address
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_fatal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *accept_hashkey_flatten_address(uint8_t *p, quicly_address_t
      *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/lib/http3/common.c:551,1
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/lib/http3/common.c:551,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/h2o/lib/http3/common.c:552,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/lib/http3/common.c:553,1
    - Dst: EVP_aes_128_cbc
      Src: /src/h2o/lib/http3/common.c:553,1
    - Dst: accept_hashkey_flatten_address
      Src: /src/h2o/lib/http3/common.c:560,1
    - Dst: accept_hashkey_flatten_address
      Src: /src/h2o/lib/http3/common.c:561,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:562,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:564,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:566,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/h2o/lib/http3/common.c:569,1
    - Dst: EVP_EncryptUpdate
      Src: /src/h2o/lib/http3/common.c:570,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:571,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:572,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - destaddr
    - srcaddr
    - src_cid
    argTypes:
    - quicly_address_t*
    - quicly_address_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (p <= buf + sizeof(buf))
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/h2o/lib/http3/common.c
    - condition: (bytes_to_encrypt <= sizeof(buf))
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/h2o/lib/http3/common.c
    - condition: (bytes_encrypted == bytes_to_encrypt)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/h2o/lib/http3/common.c
    - condition: (ret)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 582
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 582
    functionName: calc_accept_hashkey
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_aes_128_cbc
    - EVP_EncryptUpdate
    - memcpy
    - EVP_EncryptInit_ex
    - accept_hashkey_flatten_address
    - H2O_MULTITHREAD_ONCE
    - ptls_openssl_random_bytes
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_accept_hashkey(quicly_address_t *destaddr, quicly_address_t
      *srcaddr, ptls_iovec_t src_cid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:588,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:588,1
    - Dst: kh_del_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 592
    functionName: drop_from_acceptmap
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - kh_end
    - kh_get_h2o_quic_acceptmap
    - kh_del_h2o_quic_acceptmap
    linkageType: ''
    returnType: void
    signature: void drop_from_acceptmap(h2o_quic_ctx_t *ctx, h2o_quic_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_send_version_negotiation
      Src: /src/h2o/lib/http3/common.c:598,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:599,1
    - Dst: h2o_quic_send_datagrams
      Src: /src/h2o/lib/http3/common.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - destaddr
    - dest_cid
    - srcaddr
    - src_cid
    - versions
    argTypes:
    - h2o_quic_ctx_t*
    - quicly_address_t*
    - ptls_iovec_t
    - quicly_address_t*
    - ptls_iovec_t
    - uint32_t*
    assertStmts:
    - condition: (payload_size != SIZE_MAX)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: send_version_negotiation
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 2
    functionsReached:
    - quicly_send_version_negotiation
    - assert
    - h2o_quic_send_datagrams
    linkageType: ''
    returnType: void
    signature: "void send_version_negotiation(h2o_quic_ctx_t *ctx, quicly_address_t
      *destaddr, ptls_iovec_t dest_cid,\n                                     quicly_address_t
      *srcaddr, ptls_iovec_t src_cid, const uint32_t *versions)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:611,1
    - Dst: PTLS_UNLIKELY
      Src: /src/h2o/lib/http3/common.c:618,1
    - Dst: H2O_H3_PACKET_RECEIVE_ENABLED
      Src: /src/h2o/lib/http3/common.c:618,1
    - Dst: H2O_H3_PACKET_RECEIVE
      Src: /src/h2o/lib/http3/common.c:620,1
    - Dst: kh_get_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:630,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:631,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/common.c:632,1
    - Dst: quicly_is_destination
      Src: /src/h2o/lib/http3/common.c:635,1
    - Dst: quicly_send_stateless_reset
      Src: /src/h2o/lib/http3/common.c:644,1
    - Dst: h2o_quic_send_datagrams
      Src: /src/h2o/lib/http3/common.c:647,1
    - Dst: h2o_quic_ctx_t*::forward_packets
      Src: /src/h2o/lib/http3/common.c:657,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:667,1
    - Dst: calc_accept_hashkey
      Src: /src/h2o/lib/http3/common.c:668,1
    - Dst: h2o_quic_ctx_t*::forward_packets
      Src: /src/h2o/lib/http3/common.c:673,1
    - Dst: kh_get_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:677,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:678,1
    - Dst: quicly_is_supported_version
      Src: /src/h2o/lib/http3/common.c:681,1
    - Dst: send_version_negotiation
      Src: /src/h2o/lib/http3/common.c:682,1
    - Dst: h2o_quic_ctx_t*::forward_packets
      Src: /src/h2o/lib/http3/common.c:691,1
    - Dst: send_version_negotiation
      Src: /src/h2o/lib/http3/common.c:698,1
    - Dst: h2o_quic_ctx_t*::acceptor
      Src: /src/h2o/lib/http3/common.c:707,1
    - Dst: h2o_quic_ctx_t*::forward_packets
      Src: /src/h2o/lib/http3/common.c:716,1
    - Dst: kh_put_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:728,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:729,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:729,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/common.c:730,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/common.c:733,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:734,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:735,1
    - Dst: quicly_is_client
      Src: /src/h2o/lib/http3/common.c:735,1
    - Dst: quicly_is_destination
      Src: /src/h2o/lib/http3/common.c:736,1
    - Dst: h2o_quic_ctx_t*::forward_packets
      Src: /src/h2o/lib/http3/common.c:745,1
    - Dst: quicly_receive
      Src: /src/h2o/lib/http3/common.c:757,1
    - Dst: fprintf
      Src: /src/h2o/lib/http3/common.c:761,1
    - Dst: h2o_quic_conn_t*::callbacks::destroy_connection
      Src: /src/h2o/lib/http3/common.c:762,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/common.c:773,1
    - Dst: h2o_quic_ctx_t*::notify_conn_update
      Src: /src/h2o/lib/http3/common.c:775,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 110
    argCount: 6
    argNames:
    - ctx
    - destaddr
    - srcaddr
    - ttl
    - packets
    - num_packets
    argTypes:
    - h2o_quic_ctx_t*
    - quicly_address_t*
    - quicly_address_t*
    - uint8_t
    - quicly_decoded_packet_t*
    - size_t
    assertStmts:
    - condition: (num_packets != 0)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/h2o/lib/http3/common.c
    - condition: (!quicly_is_client(conn->quic))
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/h2o/lib/http3/common.c
    - condition: (iter != kh_end(conn->ctx->conns_accepting))
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/h2o/lib/http3/common.c
    - condition: (conn != NULL)
      pos:
        line_end: 733
        line_start: 733
        source_file: /src/h2o/lib/http3/common.c
    - condition: (packets[0].cid.dest.might_be_client_generated)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 776
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 776
    functionName: process_packets
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - calc_accept_hashkey
    - kh_get_h2o_quic_acceptmap
    - quicly_is_destination
    - kh_end
    - h2o_quic_ctx_t*::forward_packets
    - send_version_negotiation
    - h2o_quic_ctx_t*::acceptor
    - assert
    - quicly_is_client
    - h2o_quic_send_datagrams
    - h2o_quic_conn_t*::callbacks::destroy_connection
    - kh_get_h2o_quic_idmap
    - h2o_quic_schedule_timer
    - fprintf
    - quicly_send_stateless_reset
    - kh_val
    - kh_put_h2o_quic_acceptmap
    - H2O_H3_PACKET_RECEIVE
    - quicly_receive
    - PTLS_UNLIKELY
    - quicly_is_supported_version
    - h2o_quic_ctx_t*::notify_conn_update
    - H2O_H3_PACKET_RECEIVE_ENABLED
    linkageType: ''
    returnType: void
    signature: "void process_packets(h2o_quic_ctx_t *ctx, quicly_address_t *destaddr,
      quicly_address_t *srcaddr, uint8_t ttl,\n                            quicly_decoded_packet_t
      *packets, size_t num_packets)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/h2o/lib/http3/common.c:798,1
    - Dst: sizeof
      Src: /src/h2o/lib/http3/common.c:798,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:805,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:809,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/http3/common.c:831,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:842,1
    - Dst: INIT_DGRAMS
      Src: /src/h2o/lib/http3/common.c:843,1
    - Dst: recvmmsg
      Src: /src/h2o/lib/http3/common.c:844,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:844,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:852,1
    - Dst: INIT_DGRAMS
      Src: /src/h2o/lib/http3/common.c:855,1
    - Dst: recvmsg
      Src: /src/h2o/lib/http3/common.c:856,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/h2o/lib/http3/common.c:872,1
    - Dst: CMSG_NXTHDR
      Src: /src/h2o/lib/http3/common.c:873,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:880,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/http3/common.c:880,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:888,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/http3/common.c:888,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/http3/common.c:899,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:911,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/http3/common.c:912,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:919,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/http3/common.c:919,1
    - Dst: h2o_quic_ctx_t*::preprocess_packet
      Src: /src/h2o/lib/http3/common.c:933,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:937,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:955,1
    - Dst: h2o_socket_compare_address
      Src: /src/h2o/lib/http3/common.c:957,1
    - Dst: h2o_socket_compare_address
      Src: /src/h2o/lib/http3/common.c:963,1
    - Dst: quicly_decode_packet
      Src: /src/h2o/lib/http3/common.c:974,1
    - Dst: memcmp
      Src: /src/h2o/lib/http3/common.c:984,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:992,1
    - Dst: quicly_decode_packet
      Src: /src/h2o/lib/http3/common.c:993,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:1002,1
    - Dst: process_packets
      Src: /src/h2o/lib/http3/common.c:1007,1
    - Dst: process_packets
      Src: /src/h2o/lib/http3/common.c:1018,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 138
    argCount: 2
    argNames:
    - ctx
    - sock
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_socket_t*
    assertStmts:
    - condition: (dgram_index != 0)
      pos:
        line_end: 954
        line_start: 954
        source_file: /src/h2o/lib/http3/common.c
    - condition: (dgrams[dgram_index].srcaddr.sa.sa_family == AF_INET || dgrams[dgram_index].srcaddr.sa.sa_family
        == AF_INET6)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1024
      start: 778
    functionDepth: 4
    functionLinenumber: 778
    functionLinenumberEnd: 1024
    functionName: h2o_quic_read_socket
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    - h2o_socket_compare_address
    - INIT_DGRAMS
    - h2o_socket_get_fd
    - recvmmsg
    - h2o_quic_ctx_t*::preprocess_packet
    - CMSG_SPACE
    - CMSG_DATA
    - sizeof
    - memcmp
    - process_packets
    - quicly_decode_packet
    - memcpy
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - recvmsg
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_quic_read_socket(h2o_quic_ctx_t *ctx, h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 826
    functionName: INIT_DGRAMS
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_DGRAMS(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_read_socket
      Src: /src/h2o/lib/http3/common.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1030
    functionName: on_read
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 5
    functionsReached:
    - h2o_quic_read_socket
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_getsockname
      Src: /src/h2o/lib/http3/common.c:1035,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1044,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http3/common.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - qsock
    - sock
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_quic_socket_t*
    - h2o_socket_t*
    assertStmts:
    - condition: (!"unexpected address family")
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1049
    functionName: setup_quic_socket
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_socket_getsockname
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void setup_quic_socket(h2o_quic_ctx_t *ctx, h2o_quic_socket_t *qsock,
      h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/common.c:1053,1
    - Dst: h2o_quic_send
      Src: /src/h2o/lib/http3/common.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1055
    functionName: on_timeout
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 2
    functionsReached:
    - h2o_quic_send
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_timeout(h2o_timer_t *timeout)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/common.c:1062,1
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/common.c:1064,1
    - Dst: H2O_PROBE
      Src: /src/h2o/lib/http3/common.c:1072,1
    - Dst: PTLS_LOG
      Src: /src/h2o/lib/http3/common.c:1073,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/common.c:1074,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/common.c:1075,1
    - Dst: H2O_PROBE
      Src: /src/h2o/lib/http3/common.c:1086,1
    - Dst: PTLS_LOG
      Src: /src/h2o/lib/http3/common.c:1087,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/common.c:1088,1
    - Dst: PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
      Src: /src/h2o/lib/http3/common.c:1090,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/common.c:1092,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1124,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1125,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1126,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1127,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1128,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1129,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1130,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1131,1
    - Dst: FRAME
      Src: /src/h2o/lib/http3/common.c:1132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 7
    argNames:
    - frame
    - is_client
    - stream_type
    - max_frame_payload_size
    - _src
    - src_end
    - err_desc
    argTypes:
    - h2o_http3_read_frame_t*
    - int
    - uint64_t
    - size_t
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1145
    functionName: h2o_http3_read_frame
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - FRAME
    - quicly_decodev
    - H2O_PROBE
    - PTLS_LOG
    - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: int
    signature: "int h2o_http3_read_frame(h2o_http3_read_frame_t *frame, int is_client,
      uint64_t stream_type, size_t max_frame_payload_size,\n                         const
      uint8_t **_src, const uint8_t *src_end, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - id
    - ','
    - req_clnt
    - ','
    - req_srvr
    - ','
    - ctl_clnt
    - ','
    - ctl_srvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1118
    functionName: FRAME
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRAME(id, req_clnt, req_srvr, ctl_clnt, ctl_srvr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1151,1
    - Dst: kh_init_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:1157,1
    - Dst: kh_init_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:1158,1
    - Dst: setup_quic_socket
      Src: /src/h2o/lib/http3/common.c:1164,1
    - Dst: setup_quic_socket
      Src: /src/h2o/lib/http3/common.c:1166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 10
    argNames:
    - ctx
    - loop
    - sock
    - sock_alt_family
    - quic
    - next_cid
    - acceptor
    - notify_conn_update
    - use_gso
    - quic_stats
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_loop_t*
    - h2o_socket_t*
    - h2o_socket_t*
    - quicly_context_t*
    - quicly_cid_plaintext_t*
    - h2o_quic_accept_cb
    - h2o_quic_notify_connection_update_cb
    - uint8_t
    - h2o_quic_stats_t*
    assertStmts:
    - condition: (quic->stream_open != NULL)
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1168
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1168
    functionName: h2o_quic_init_context
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - kh_init_h2o_quic_idmap
    - kh_init_h2o_quic_acceptmap
    - assert
    - setup_quic_socket
    linkageType: ''
    returnType: void
    signature: "void h2o_quic_init_context(h2o_quic_ctx_t *ctx, h2o_loop_t *loop,
      h2o_socket_t *sock, h2o_socket_t *sock_alt_family,\n                           quicly_context_t
      *quic, quicly_cid_plaintext_t *next_cid, h2o_quic_accept_cb acceptor,\n                           h2o_quic_notify_connection_update_cb
      notify_conn_update, uint8_t use_gso, h2o_quic_stats_t *quic_stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1172,1
    - Dst: kh_size
      Src: /src/h2o/lib/http3/common.c:1172,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1173,1
    - Dst: kh_size
      Src: /src/h2o/lib/http3/common.c:1173,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/http3/common.c:1175,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/http3/common.c:1177,1
    - Dst: kh_destroy_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:1178,1
    - Dst: kh_destroy_h2o_quic_acceptmap
      Src: /src/h2o/lib/http3/common.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_quic_ctx_t*
    assertStmts:
    - condition: (kh_size(ctx->conns_by_id) == 0)
      pos:
        line_end: 1171
        line_start: 1171
        source_file: /src/h2o/lib/http3/common.c
    - condition: (kh_size(ctx->conns_accepting) == 0)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1180
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1180
    functionName: h2o_quic_dispose_context
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - h2o_socket_close
    - kh_size
    - kh_destroy_h2o_quic_idmap
    - kh_destroy_h2o_quic_acceptmap
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_quic_dispose_context(h2o_quic_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - accept_thread_divisor
    - ttl
    - forward_cb
    - preprocess_cb
    argTypes:
    - h2o_quic_ctx_t*
    - uint32_t
    - uint8_t
    - h2o_quic_forward_packets_cb
    - h2o_quic_preprocess_packet_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1189
    functionName: h2o_quic_set_forwarding_context
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void h2o_quic_set_forwarding_context(h2o_quic_ctx_t *ctx, uint32_t
      accept_thread_divisor, uint8_t ttl,\n                                     h2o_quic_forward_packets_cb
      forward_cb, h2o_quic_preprocess_packet_cb preprocess_cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/common.c:1193,1
    - Dst: h2o_quic_conn_t*::callbacks::destroy_connection
      Src: /src/h2o/lib/http3/common.c:1195,1
    - Dst: quicly_close
      Src: /src/h2o/lib/http3/common.c:1198,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/common.c:1199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - err
    - reason_phrase
    argTypes:
    - h2o_quic_conn_t*
    - quicly_error_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1205
    functionName: h2o_quic_close_connection
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 4
    functionsReached:
    - h2o_quic_schedule_timer
    - h2o_quic_conn_t*::callbacks::destroy_connection
    - quicly_close
    - quicly_get_state
    linkageType: ''
    returnType: void
    signature: void h2o_quic_close_connection(h2o_quic_conn_t *conn, quicly_error_t
      err, const char *reason_phrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/http3/common.c:1211,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/common.c:1211,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1213,1
    - Dst: kh_size
      Src: /src/h2o/lib/http3/common.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_quic_ctx_t*
    assertStmts:
    - condition: (kh_size(ctx->conns_accepting) == 0)
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1214
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1214
    functionName: h2o_quic_close_all_connections
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - kh_foreach_value
    - h2o_quic_close_connection
    - assert
    - kh_size
    linkageType: ''
    returnType: void
    signature: void h2o_quic_close_all_connections(h2o_quic_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_size
      Src: /src/h2o/lib/http3/common.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_quic_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1221
    functionName: h2o_quic_num_connections
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - kh_size
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_quic_num_connections(h2o_quic_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/http3/common.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - ctx
    - callbacks
    argTypes:
    - h2o_quic_conn_t*
    - h2o_quic_ctx_t*
    - h2o_quic_conn_callbacks_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1227
    functionName: h2o_quic_init_conn
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_timer_init
    linkageType: ''
    returnType: void
    signature: void h2o_quic_init_conn(h2o_quic_conn_t *conn, h2o_quic_ctx_t *ctx,
      const h2o_quic_conn_callbacks_t *callbacks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:1234,1
    - Dst: quicly_get_master_id
      Src: /src/h2o/lib/http3/common.c:1234,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:1235,1
    - Dst: kh_del_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:1236,1
    - Dst: drop_from_acceptmap
      Src: /src/h2o/lib/http3/common.c:1237,1
    - Dst: quicly_free
      Src: /src/h2o/lib/http3/common.c:1238,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http3/common.c:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1241
    functionName: h2o_quic_dispose_conn
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - kh_end
    - kh_get_h2o_quic_idmap
    - quicly_get_master_id
    - drop_from_acceptmap
    - quicly_free
    - kh_del_h2o_quic_idmap
    linkageType: ''
    returnType: void
    signature: void h2o_quic_dispose_conn(h2o_quic_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1247,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/common.c:1248,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1252,1
    - Dst: kh_put_h2o_quic_idmap
      Src: /src/h2o/lib/http3/common.c:1258,1
    - Dst: quicly_get_master_id
      Src: /src/h2o/lib/http3/common.c:1258,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1259,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/common.c:1259,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/common.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - quic
    argTypes:
    - h2o_quic_conn_t*
    - quicly_conn_t*
    assertStmts:
    - condition: (conn->quic == NULL)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/h2o/lib/http3/common.c
    - condition: (*backptr == conn)
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/h2o/lib/http3/common.c
    - condition: (iter != kh_end(conn->ctx->conns_by_id))
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1261
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1261
    functionName: h2o_quic_setup
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_end
    - kh_put_h2o_quic_idmap
    - quicly_get_master_id
    - quicly_get_data
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_quic_setup(h2o_quic_conn_t *conn, quicly_conn_t *quic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_init_conn
      Src: /src/h2o/lib/http3/common.c:1266,1
    - Dst: memset
      Src: /src/h2o/lib/http3/common.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - conn
    - ctx
    - callbacks
    - qpack_ctx
    - max_frame_payload_size
    argTypes:
    - h2o_http3_conn_t*
    - h2o_quic_ctx_t*
    - h2o_http3_conn_callbacks_t*
    - h2o_http3_qpack_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1263
    functionDepth: 3
    functionLinenumber: 1263
    functionLinenumberEnd: 1270
    functionName: h2o_http3_init_conn
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - memset
    - h2o_quic_init_conn
    linkageType: ''
    returnType: void
    signature: "void h2o_http3_init_conn(h2o_http3_conn_t *conn, h2o_quic_ctx_t *ctx,
      const h2o_http3_conn_callbacks_t *callbacks,\n                         const
      h2o_http3_qpack_context_t *qpack_ctx, size_t max_frame_payload_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_destroy_decoder
      Src: /src/h2o/lib/http3/common.c:1275,1
    - Dst: h2o_qpack_destroy_encoder
      Src: /src/h2o/lib/http3/common.c:1277,1
    - Dst: h2o_quic_dispose_conn
      Src: /src/h2o/lib/http3/common.c:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http3_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1279
    functionName: h2o_http3_dispose_conn
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_qpack_destroy_decoder
    - h2o_quic_dispose_conn
    - h2o_qpack_destroy_encoder
    linkageType: ''
    returnType: void
    signature: void h2o_http3_dispose_conn(h2o_http3_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_context
      Src: /src/h2o/lib/http3/common.c:1285,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1286,1
    - Dst: get_callbacks
      Src: /src/h2o/lib/http3/common.c:1286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http3_conn_t*
    assertStmts:
    - condition: "(max_blocked == 0 || get_callbacks(conn)->qpack_unblock_streams
        != NULL ||\n           !\"connection enables QPACK blocked-stream support
        but provides no qpack_unblock_streams callback\")"
      pos:
        line_end: 1286
        line_start: 1285
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1289
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1289
    functionName: calc_max_blocked_streams
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_get_context
    - assert
    - get_callbacks
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_max_blocked_streams(h2o_http3_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calc_max_blocked_streams
      Src: /src/h2o/lib/http3/common.c:1295,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/http3/common.c:1297,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1300,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1303,1
    - Dst: ptls_buffer_push_block
      Src: /src/h2o/lib/http3/common.c:1304,1
    - Dst: quicly_get_context
      Src: /src/h2o/lib/http3/common.c:1305,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1308,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1309,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1310,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1311,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1314,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1315,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1318,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1319,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1321,1
    - Dst: ptls_buffer_push_quicint
      Src: /src/h2o/lib/http3/common.c:1322,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1325,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:1329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - conn
    - bytebuf
    - capacity
    argTypes:
    - h2o_http3_conn_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (!buf.is_allocated)
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1330
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1330
    functionName: build_firstflight
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - calc_max_blocked_streams
    - ptls_buffer_push_block
    - quicly_get_context
    - h2o_fatal
    - ptls_buffer_push_quicint
    - assert
    - ptls_buffer_init
    linkageType: ''
    returnType: size_t
    signature: size_t build_firstflight(h2o_http3_conn_t *conn, uint8_t *bytebuf,
      size_t capacity)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_setup
      Src: /src/h2o/lib/http3/common.c:1336,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/common.c:1340,1
    - Dst: h2o_qpack_create_decoder
      Src: /src/h2o/lib/http3/common.c:1343,1
    - Dst: calc_max_blocked_streams
      Src: /src/h2o/lib/http3/common.c:1343,1
    - Dst: build_firstflight
      Src: /src/h2o/lib/http3/common.c:1347,1
    - Dst: open_egress_unistream
      Src: /src/h2o/lib/http3/common.c:1348,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/common.c:1349,1
    - Dst: open_egress_unistream
      Src: /src/h2o/lib/http3/common.c:1356,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/common.c:1357,1
    - Dst: open_egress_unistream
      Src: /src/h2o/lib/http3/common.c:1358,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/common.c:1359,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/common.c:1364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - conn
    - quic
    argTypes:
    - h2o_http3_conn_t*
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1366
    functionName: h2o_http3_setup
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - open_egress_unistream
    - build_firstflight
    - calc_max_blocked_streams
    - h2o_quic_schedule_timer
    - h2o_iovec_init
    - quicly_get_state
    - h2o_qpack_create_decoder
    - h2o_quic_setup
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t h2o_http3_setup(h2o_http3_conn_t *conn, quicly_conn_t
      *quic)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:1372,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http3/common.c:1373,1
    - Dst: quicly_send
      Src: /src/h2o/lib/http3/common.c:1375,1
    - Dst: h2o_quic_send_datagrams
      Src: /src/h2o/lib/http3/common.c:1379,1
    - Dst: quicly_send_get_ecn_bits
      Src: /src/h2o/lib/http3/common.c:1379,1
    - Dst: h2o_quic_conn_t*::callbacks::destroy_connection
      Src: /src/h2o/lib/http3/common.c:1386,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/common.c:1389,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/common.c:1392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1395
    functionName: h2o_quic_send
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    - h2o_quic_send_datagrams
    - quicly_send
    - h2o_quic_conn_t*::callbacks::destroy_connection
    - h2o_quic_schedule_timer
    - quicly_send_get_ecn_bits
    - h2o_fatal
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t h2o_quic_send(h2o_quic_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http3/common.c:1402,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - 'off'
    - src
    - len
    argTypes:
    - h2o_buffer_t**
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    functionName: h2o_http3_update_recvbuf
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - memcpy
    - h2o_buffer_reserve
    linkageType: ''
    returnType: void
    signature: void h2o_http3_update_recvbuf(h2o_buffer_t **buf, size_t off, const
      void *src, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_first_timeout
      Src: /src/h2o/lib/http3/common.c:1410,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http3/common.c:1411,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http3/common.c:1416,1
    - Dst: h2o_now
      Src: /src/h2o/lib/http3/common.c:1418,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http3/common.c:1419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1420
    functionName: h2o_quic_schedule_timer
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 5
    functionsReached:
    - h2o_timer_unlink
    - h2o_now
    - h2o_timer_link
    - quicly_get_first_timeout
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void h2o_quic_schedule_timer(h2o_quic_conn_t *conn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1428,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/http3/common.c:1428,1
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/common.c:1433,1
    - Dst: quicly_decodev
      Src: /src/h2o/lib/http3/common.c:1435,1
    - Dst: quicly_get_remote_transport_parameters
      Src: /src/h2o/lib/http3/common.c:1454,1
    - Dst: h2o_qpack_create_encoder
      Src: /src/h2o/lib/http3/common.c:1468,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - conn
    - payload
    - length
    - err_desc
    argTypes:
    - h2o_http3_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts:
    - condition: (!h2o_http3_has_received_settings(conn))
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1473
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1473
    functionName: h2o_http3_handle_settings_frame
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - h2o_qpack_create_encoder
    - quicly_decodev
    - h2o_http3_has_received_settings
    - quicly_get_remote_transport_parameters
    - assert
    linkageType: ''
    returnType: int
    signature: int h2o_http3_handle_settings_frame(h2o_http3_conn_t *conn, const uint8_t
      *payload, size_t length, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http3/common.c:1480,1
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1481,1
    - Dst: h2o_qpack_decoder_send_stream_cancel
      Src: /src/h2o/lib/http3/common.c:1482,1
    - Dst: H2O_HTTP3_CHECK_SUCCESS
      Src: /src/h2o/lib/http3/common.c:1485,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/http3/common.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - h2o_http3_conn_t*
    - quicly_stream_id_t
    assertStmts:
    - condition: (buf.base != NULL)
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1486
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1486
    functionName: h2o_http3_qpack_cancel_stream
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - quicly_stream_sync_sendbuf
    - h2o_buffer_reserve
    - H2O_HTTP3_CHECK_SUCCESS
    - assert
    - h2o_qpack_decoder_send_stream_cancel
    linkageType: ''
    returnType: void
    signature: void h2o_http3_qpack_cancel_stream(h2o_http3_conn_t *conn, quicly_stream_id_t
      stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/common.c:1492,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/http3/common.c:1493,1
    - Dst: H2O_HTTP3_CHECK_SUCCESS
      Src: /src/h2o/lib/http3/common.c:1494,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/http3/common.c:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - bytes
    - len
    argTypes:
    - h2o_http3_conn_t*
    - void*
    - size_t
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 1491
        line_start: 1491
        source_file: /src/h2o/lib/http3/common.c
    constantsTouched: []
    func_position:
      end: 1495
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1495
    functionName: h2o_http3_send_qpack_header_ack
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - H2O_HTTP3_CHECK_SUCCESS
    - quicly_stream_sync_sendbuf
    - h2o_buffer_append
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http3_send_qpack_header_ack(h2o_http3_conn_t *conn, const
      void *bytes, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/common.c:1501,1
    - Dst: h2o_http3_send_goaway_frame
      Src: /src/h2o/lib/http3/common.c:1507,1
    - Dst: UINT64_C
      Src: /src/h2o/lib/http3/common.c:1507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http3_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1509
    functionName: h2o_http3_send_shutdown_goaway_frame
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - h2o_http3_send_goaway_frame
    - quicly_get_state
    linkageType: ''
    returnType: void
    signature: void h2o_http3_send_shutdown_goaway_frame(h2o_http3_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_goaway_frame_capacity
      Src: /src/h2o/lib/http3/common.c:1513,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http3/common.c:1514,1
    - Dst: h2o_http3_encode_goaway_frame
      Src: /src/h2o/lib/http3/common.c:1515,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/http3/common.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream_or_push_id
    argTypes:
    - h2o_http3_conn_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1518
    functionName: h2o_http3_send_goaway_frame
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 1
    functionsReached:
    - h2o_http3_encode_goaway_frame
    - quicly_stream_sync_sendbuf
    - h2o_buffer_reserve
    - h2o_http3_goaway_frame_capacity
    linkageType: ''
    returnType: void
    signature: void h2o_http3_send_goaway_frame(h2o_http3_conn_t *conn, uint64_t stream_or_push_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/lib/http3/common.c:1524,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/common.c:1525,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/common.c:1526,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/lib/http3/common.c:1528,1
    - Dst: quicly_send_datagram_frames
      Src: /src/h2o/lib/http3/common.c:1529,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/common.c:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - conn
    - flow_id
    - datagrams
    - num_datagrams
    argTypes:
    - h2o_http3_conn_t*
    - uint64_t
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1533
    functionName: h2o_http3_send_h3_datagrams
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - quicly_encodev
    - quicly_encodev_capacity
    - h2o_quic_schedule_timer
    - memcpy
    - quicly_send_datagram_frames
    linkageType: ''
    returnType: void
    signature: void h2o_http3_send_h3_datagrams(h2o_http3_conn_t *conn, uint64_t flow_id,
      h2o_iovec_t *datagrams, size_t num_datagrams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/lib/http3/common.c:1540,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/common.c:1541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - payload
    - _src
    - len
    argTypes:
    - h2o_iovec_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1535
    functionDepth: 2
    functionLinenumber: 1535
    functionLinenumberEnd: 1543
    functionName: h2o_http3_decode_h3_datagram
    functionSourceFile: /src/h2o/lib/http3/common.c
    functionUses: 0
    functionsReached:
    - ptls_decode_quicint
    - h2o_iovec_init
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_http3_decode_h3_datagram(h2o_iovec_t *payload, const void
      *_src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - max_size
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: header_table_init
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void header_table_init(struct st_h2o_qpack_header_table_t *table, size_t
      max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http3/qpack.c:149,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: header_table_dispose
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    linkageType: ''
    returnType: void
    signature: void header_table_dispose(struct st_h2o_qpack_header_table_t *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http3/qpack.c:159,1
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - table
    - delta
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - size_t
    assertStmts:
    - condition: (table->num_bytes == 0)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: header_table_evict
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - assert
    linkageType: ''
    returnType: void
    signature: void header_table_evict(struct st_h2o_qpack_header_table_t *table,
      size_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: header_table_evict
      Src: /src/h2o/lib/http3/qpack.c:168,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/qpack.c:173,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:174,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:175,1
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:181,1
    - Dst: memmove
      Src: /src/h2o/lib/http3/qpack.c:182,1
    - Dst: memset
      Src: /src/h2o/lib/http3/qpack.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - table
    - added
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - struct st_h2o_qpack_header_t*
    assertStmts:
    - condition: (table->buf_start != table->first)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 190
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 190
    functionName: header_table_insert
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - header_table_evict
    - free
    - h2o_mem_alloc
    - memcpy
    - memmove
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void header_table_insert(struct st_h2o_qpack_header_table_t *table,
      struct st_h2o_qpack_header_t *added)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - err_desc
    argTypes:
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: resolve_static_abs
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_qpack_static_table_entry_t
    signature: h2o_qpack_static_table_entry_t *resolve_static_abs(int64_t index, const
      char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - table
    - index
    - err_desc
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: resolve_dynamic_abs
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_h2o_qpack_header_t
    signature: "struct st_h2o_qpack_header_t *resolve_dynamic_abs(struct st_h2o_qpack_header_table_t
      *table, int64_t index,\n                                                         const
      char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http3/qpack.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - value
    - src
    - src_end
    - prefix_bits
    argTypes:
    - int64_t*
    - uint8_t**
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: decode_int
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - h2o_hpack_decode_int
    linkageType: ''
    returnType: int
    signature: int decode_int(int64_t *value, const uint8_t **src, const uint8_t *src_end,
      unsigned prefix_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_decode_huffman
      Src: /src/h2o/lib/http3/qpack.c:228,1
    - Dst: h2o_hpack_validate_header_value
      Src: /src/h2o/lib/http3/qpack.c:231,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - outbuf
    - soft_errors
    - is_huff
    - src
    - srclen
    - err_desc
    argTypes:
    - char*
    - unsigned*
    - int
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: decode_value
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - memcpy
    - h2o_hpack_decode_huffman
    - h2o_hpack_validate_header_value
    linkageType: ''
    returnType: size_t
    signature: "size_t decode_value(char *outbuf, unsigned *soft_errors, int is_huff,
      const uint8_t *src, size_t srclen,\n                           const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/qpack.c:242,1
    - Dst: header_table_init
      Src: /src/h2o/lib/http3/qpack.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - header_table_size
    - max_blocked
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: h2o_qpack_create_decoder
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 9
    functionsReached:
    - h2o_mem_alloc
    - header_table_init
    linkageType: ''
    returnType: h2o_qpack_decoder_t
    signature: h2o_qpack_decoder_t *h2o_qpack_create_decoder(uint32_t header_table_size,
      uint64_t max_blocked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: header_table_dispose
      Src: /src/h2o/lib/http3/qpack.c:256,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qpack
    argTypes:
    - h2o_qpack_decoder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: h2o_qpack_destroy_decoder
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 8
    functionsReached:
    - free
    - header_table_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_qpack_destroy_decoder(h2o_qpack_decoder_t *qpack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:263,1
    - Dst: h2o_http3_calc_min_flow_control_size
      Src: /src/h2o/lib/http3/qpack.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts:
    - condition: (len <= h2o_http3_calc_min_flow_control_size(H2O_MAX_REQLEN))
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: assert_literal_length
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_http3_calc_min_flow_control_size
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_literal_length(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: header_table_insert
      Src: /src/h2o/lib/http3/qpack.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - qpack
    - added
    argTypes:
    - h2o_qpack_decoder_t*
    - struct st_h2o_qpack_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: decoder_insert
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - header_table_insert
    linkageType: ''
    returnType: void
    signature: void decoder_insert(h2o_qpack_decoder_t *qpack, struct st_h2o_qpack_header_t
      *added)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_value
      Src: /src/h2o/lib/http3/qpack.c:276,1
    - Dst: decoder_insert
      Src: /src/h2o/lib/http3/qpack.c:282,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http3/qpack.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - qpack
    - header
    - is_huff
    - qstr
    - qstrlen
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - struct st_h2o_qpack_header_t*
    - int
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: decode_value_and_insert
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - decode_value
    - h2o_mem_release_shared
    - decoder_insert
    linkageType: ''
    returnType: int
    signature: "int decode_value_and_insert(h2o_qpack_decoder_t *qpack, struct st_h2o_qpack_header_t
      *header, int is_huff,\n                                   const uint8_t *qstr,
      size_t qstrlen, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_literal_length
      Src: /src/h2o/lib/http3/qpack.c:292,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/http3/qpack.c:295,1
    - Dst: decode_value_and_insert
      Src: /src/h2o/lib/http3/qpack.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - qpack
    - name
    - value_is_huff
    - value
    - value_len
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - h2o_token_t*
    - int
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: insert_token_header
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - decode_value_and_insert
    - h2o_mem_alloc_shared
    - assert_literal_length
    linkageType: ''
    returnType: int
    signature: "int insert_token_header(h2o_qpack_decoder_t *qpack, const h2o_token_t
      *name, int value_is_huff, const uint8_t *value,\n                               size_t
      value_len, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_literal_length
      Src: /src/h2o/lib/http3/qpack.c:305,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/http3/qpack.c:309,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:311,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:312,1
    - Dst: decode_value_and_insert
      Src: /src/h2o/lib/http3/qpack.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - qpack
    - name
    - name_len
    - value_is_huff
    - value
    - value_len
    - soft_errors
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - char*
    - size_t
    - int
    - uint8_t*
    - size_t
    - unsigned
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 319
    functionName: insert_literal_header
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - assert_literal_length
    - memcpy
    - h2o_mem_alloc_shared
    - decode_value_and_insert
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int insert_literal_header(h2o_qpack_decoder_t *qpack, const char *name,
      size_t name_len, int value_is_huff,\n                                 const
      uint8_t *value, size_t value_len, unsigned soft_errors, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: qpack_table_total_inserts
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t qpack_table_total_inserts(struct st_h2o_qpack_header_table_t
      *table)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: resolve_static_abs
      Src: /src/h2o/lib/http3/qpack.c:331,1
    - Dst: insert_token_header
      Src: /src/h2o/lib/http3/qpack.c:333,1
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:336,1
    - Dst: resolve_dynamic_abs
      Src: /src/h2o/lib/http3/qpack.c:341,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http3/qpack.c:343,1
    - Dst: insert_token_header
      Src: /src/h2o/lib/http3/qpack.c:344,1
    - Dst: insert_literal_header
      Src: /src/h2o/lib/http3/qpack.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - qpack
    - name_is_static
    - name_index
    - value_is_huff
    - value
    - value_len
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - int
    - int64_t
    - int
    - uint8_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 7
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: insert_with_name_reference
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - insert_literal_header
    - resolve_static_abs
    - resolve_dynamic_abs
    - qpack_table_total_inserts
    - insert_token_header
    linkageType: ''
    returnType: int
    signature: "int insert_with_name_reference(h2o_qpack_decoder_t *qpack, int name_is_static,
      int64_t name_index, int value_is_huff,\n                                      const
      uint8_t *value, int64_t value_len, const char **err_desc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert_literal_length
      Src: /src/h2o/lib/http3/qpack.c:360,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/qpack.c:367,1
    - Dst: h2o_hpack_decode_huffman
      Src: /src/h2o/lib/http3/qpack.c:370,1
    - Dst: h2o_hpack_validate_header_name
      Src: /src/h2o/lib/http3/qpack.c:375,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:379,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/http3/qpack.c:383,1
    - Dst: insert_token_header
      Src: /src/h2o/lib/http3/qpack.c:384,1
    - Dst: insert_literal_header
      Src: /src/h2o/lib/http3/qpack.c:386,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 8
    argNames:
    - qpack
    - qnhuff
    - qn
    - qnlen
    - qvhuff
    - qv
    - qvlen
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - int
    - uint8_t*
    - int64_t
    - int
    - uint8_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 352
    functionDepth: 7
    functionLinenumber: 352
    functionLinenumberEnd: 393
    functionName: insert_without_name_reference
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - insert_literal_header
    - h2o_hpack_validate_header_name
    - h2o_lookup_token
    - free
    - assert_literal_length
    - h2o_mem_alloc
    - h2o_hpack_decode_huffman
    - insert_token_header
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int insert_without_name_reference(h2o_qpack_decoder_t *qpack, int
      qnhuff, const uint8_t *qn, int64_t qnlen, int qvhuff,\n                                         const
      uint8_t *qv, int64_t qvlen, const char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/http3/qpack.c:403,1
    - Dst: decoder_insert
      Src: /src/h2o/lib/http3/qpack.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - qpack
    - index
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 406
    functionName: duplicate
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_addref_shared
    - decoder_insert
    linkageType: ''
    returnType: int
    signature: int duplicate(h2o_qpack_decoder_t *qpack, int64_t index, const char
      **err_desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header_table_evict
      Src: /src/h2o/lib/http3/qpack.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - qpack
    - max_size
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: dynamic_table_size_update
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - header_table_evict
    linkageType: ''
    returnType: int
    signature: int dynamic_table_size_update(h2o_qpack_decoder_t *qpack, int64_t max_size,
      const char **err_desc)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:433,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:438,1
    - Dst: insert_with_name_reference
      Src: /src/h2o/lib/http3/qpack.c:442,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:449,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:456,1
    - Dst: insert_without_name_reference
      Src: /src/h2o/lib/http3/qpack.c:460,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:465,1
    - Dst: duplicate
      Src: /src/h2o/lib/http3/qpack.c:467,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:471,1
    - Dst: dynamic_table_size_update
      Src: /src/h2o/lib/http3/qpack.c:473,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 5
    argNames:
    - qpack
    - insert_count
    - _src
    - src_end
    - err_desc
    argTypes:
    - h2o_qpack_decoder_t*
    - uint64_t*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 420
    functionDepth: 8
    functionLinenumber: 420
    functionLinenumberEnd: 485
    functionName: h2o_qpack_decoder_handle_input
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 7
    functionsReached:
    - insert_with_name_reference
    - dynamic_table_size_update
    - insert_without_name_reference
    - duplicate
    - decode_int
    linkageType: ''
    returnType: int
    signature: "int h2o_qpack_decoder_handle_input(h2o_qpack_decoder_t *qpack, uint64_t
      *insert_count, const uint8_t **_src, const uint8_t *src_end,\n                                   const
      char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - qpack
    - outbuf
    argTypes:
    - h2o_qpack_decoder_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 498
    functionName: h2o_qpack_decoder_send_state_sync
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_qpack_decoder_send_state_sync(h2o_qpack_decoder_t *qpack,
      uint8_t *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - qpack
    - outbuf
    - stream_id
    argTypes:
    - h2o_qpack_decoder_t*
    - uint8_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: h2o_qpack_decoder_send_stream_cancel
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 2
    functionsReached:
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_qpack_decoder_send_stream_cancel(h2o_qpack_decoder_t *qpack,
      uint8_t *outbuf, int64_t stream_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:511,1
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - src
    - src_end
    - prefix_bits
    - err_desc
    argTypes:
    - uint8_t**
    - uint8_t*
    - unsigned
    - char**
    assertStmts:
    - condition: (index >= 0)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 521
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 521
    functionName: resolve_static
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - assert
    - decode_int
    linkageType: ''
    returnType: h2o_qpack_static_table_entry_t
    signature: "h2o_qpack_static_table_entry_t *resolve_static(const uint8_t **src,
      const uint8_t *src_end, unsigned prefix_bits,\n                                                            const
      char **err_desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:529,1
    - Dst: resolve_dynamic_abs
      Src: /src/h2o/lib/http3/qpack.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - table
    - req_insert_count
    - base_index
    - src
    - src_end
    - prefix_bits
    - err_desc
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - int64_t
    - int64_t
    - uint8_t**
    - uint8_t*
    - unsigned
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 539
    functionName: resolve_dynamic
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - resolve_dynamic_abs
    - decode_int
    linkageType: ''
    returnType: struct st_h2o_qpack_header_t
    signature: "struct st_h2o_qpack_header_t *resolve_dynamic(struct st_h2o_qpack_header_table_t
      *table, int64_t req_insert_count,\n                                                     int64_t
      base_index, const uint8_t **src, const uint8_t *src_end,\n                                                     unsigned
      prefix_bits, const char **err_desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:547,1
    - Dst: resolve_dynamic_abs
      Src: /src/h2o/lib/http3/qpack.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - table
    - req_insert_count
    - base_index
    - src
    - src_end
    - prefix_bits
    - err_desc
    argTypes:
    - struct st_h2o_qpack_header_table_t*
    - int64_t
    - int64_t
    - uint8_t**
    - uint8_t*
    - unsigned
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 557
    functionName: resolve_dynamic_postbase
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - resolve_dynamic_abs
    - decode_int
    linkageType: ''
    returnType: struct st_h2o_qpack_header_t
    signature: "struct st_h2o_qpack_header_t *resolve_dynamic_postbase(struct st_h2o_qpack_header_table_t
      *table, int64_t req_insert_count,\n                                                              int64_t
      base_index, const uint8_t **src, const uint8_t *src_end,\n                                                              unsigned
      prefix_bits, const char **err_desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:569,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/qpack.c:578,1
    - Dst: h2o_hpack_decode_huffman
      Src: /src/h2o/lib/http3/qpack.c:579,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/http3/qpack.c:582,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/http3/qpack.c:583,1
    - Dst: h2o_hpack_validate_header_name
      Src: /src/h2o/lib/http3/qpack.c:586,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http3/qpack.c:588,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/qpack.c:595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 6
    argNames:
    - pool
    - soft_errors
    - src
    - src_end
    - prefix_bits
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - unsigned*
    - uint8_t**
    - uint8_t*
    - unsigned
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 601
    functionName: decode_header_name_literal
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_validate_header_name
    - h2o_lookup_token
    - h2o_strdup
    - h2o_mem_alloc_pool
    - h2o_hpack_decode_huffman
    - decode_int
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t *decode_header_name_literal(h2o_mem_pool_t *pool, unsigned
      *soft_errors, const uint8_t **src,\n                                               const
      uint8_t *src_end, unsigned prefix_bits, const char **err_desc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:614,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/qpack.c:621,1
    - Dst: decode_value
      Src: /src/h2o/lib/http3/qpack.c:622,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - pool
    - soft_errors
    - src
    - src_end
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - unsigned*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 629
    functionName: decode_header_value_literal
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - decode_value
    - h2o_mem_alloc_pool
    - decode_int
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t decode_header_value_literal(h2o_mem_pool_t *pool, unsigned
      *soft_errors, const uint8_t **src,\n                                               const
      uint8_t *src_end, const char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - qpack
    - ctx
    - outbuf
    - stream_id
    argTypes:
    - h2o_qpack_decoder_t*
    - struct st_h2o_qpack_decode_header_ctx_t*
    - uint8_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 650
    functionName: send_header_ack
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: size_t
    signature: "size_t send_header_ack(h2o_qpack_decoder_t *qpack, struct st_h2o_qpack_decode_header_ctx_t
      *ctx, uint8_t *outbuf,\n                              int64_t stream_id)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: resolve_static
      Src: /src/h2o/lib/http3/qpack.c:664,1
    - Dst: resolve_dynamic
      Src: /src/h2o/lib/http3/qpack.c:675,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http3/qpack.c:678,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:680,1
    - Dst: resolve_static
      Src: /src/h2o/lib/http3/qpack.c:686,1
    - Dst: decode_header_value_literal
      Src: /src/h2o/lib/http3/qpack.c:690,1
    - Dst: resolve_dynamic
      Src: /src/h2o/lib/http3/qpack.c:696,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http3/qpack.c:699,1
    - Dst: decode_header_value_literal
      Src: /src/h2o/lib/http3/qpack.c:702,1
    - Dst: decode_header_name_literal
      Src: /src/h2o/lib/http3/qpack.c:708,1
    - Dst: decode_header_value_literal
      Src: /src/h2o/lib/http3/qpack.c:710,1
    - Dst: resolve_dynamic_postbase
      Src: /src/h2o/lib/http3/qpack.c:715,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http3/qpack.c:718,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:720,1
    - Dst: resolve_dynamic_postbase
      Src: /src/h2o/lib/http3/qpack.c:725,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http3/qpack.c:728,1
    - Dst: decode_header_value_literal
      Src: /src/h2o/lib/http3/qpack.c:731,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/qpack.c:735,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 100
    argCount: 7
    argNames:
    - pool
    - _ctx
    - name
    - value
    - src
    - src_end
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - void*
    - h2o_iovec_t**
    - h2o_iovec_t*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 752
    functionName: decode_header
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 3
    functionsReached:
    - decode_header_value_literal
    - decode_header_name_literal
    - h2o_mem_link_shared
    - resolve_static
    - resolve_dynamic
    - resolve_dynamic_postbase
    - h2o_fatal
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int decode_header(h2o_mem_pool_t *pool, void *_ctx, h2o_iovec_t **name,
      h2o_iovec_t *value, const uint8_t **src,\n                         const uint8_t
      *src_end, const char **err_desc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:760,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:787,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - qpack
    - ctx
    - src
    - src_end
    argTypes:
    - h2o_qpack_decoder_t*
    - struct st_h2o_qpack_decode_header_ctx_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 799
    functionName: parse_decode_context
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 4
    functionsReached:
    - decode_int
    linkageType: ''
    returnType: int
    signature: "int parse_decode_context(h2o_qpack_decoder_t *qpack, struct st_h2o_qpack_decode_header_ctx_t
      *ctx, const uint8_t **src,\n                                const uint8_t *src_end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:804,1
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:807,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - qpack
    - ctx
    - num_blocked
    - blocked_ref
    argTypes:
    - h2o_qpack_decoder_t*
    - struct st_h2o_qpack_decode_header_ctx_t*
    - uint64_t
    - uint64_t*
    assertStmts:
    - condition: "(blocked_ref != NULL || qpack->max_blocked == 0 ||\n           !\"blocked_ref
        may be NULL only when the decoder permits no blocked sections\")"
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 820
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 820
    functionName: check_decode_context_blocked
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - assert
    - qpack_table_total_inserts
    linkageType: ''
    returnType: int
    signature: "int check_decode_context_blocked(h2o_qpack_decoder_t *qpack, struct
      st_h2o_qpack_decode_header_ctx_t *ctx,\n                                        uint64_t
      num_blocked, uint64_t *blocked_ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 828
    functionName: normalize_error_code
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int normalize_error_code(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_decode_context
      Src: /src/h2o/lib/http3/qpack.c:841,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/lib/http3/qpack.c:843,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/lib/http3/qpack.c:848,1
    - Dst: normalize_error_code
      Src: /src/h2o/lib/http3/qpack.c:853,1
    - Dst: send_header_ack
      Src: /src/h2o/lib/http3/qpack.c:856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 22
    argNames:
    - pool
    - qpack
    - stream_id
    - method
    - scheme
    - authority
    - path
    - protocol
    - headers
    - pseudo_header_exists_map
    - content_length
    - expect
    - digests
    - datagram_flow_id
    - num_blocked
    - blocked_ref
    - stats_updated
    - outbuf
    - outbufsize
    - _src
    - len
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - h2o_qpack_decoder_t*
    - int64_t
    - h2o_iovec_t*
    - h2o_url_scheme_t**
    - h2o_iovec_t*
    - h2o_iovec_t*
    - h2o_iovec_t*
    - h2o_headers_t*
    - int*
    - size_t*
    - h2o_iovec_t*
    - h2o_cache_digests_t**
    - h2o_iovec_t*
    - uint64_t
    - uint64_t*
    - h2o_qpack_section_stats_t*
    - uint8_t*
    - size_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 858
    functionName: h2o_qpack_parse_request
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 3
    functionsReached:
    - send_header_ack
    - h2o_hpack_parse_request
    - check_decode_context_blocked
    - normalize_error_code
    - parse_decode_context
    linkageType: ''
    returnType: int
    signature: "int h2o_qpack_parse_request(h2o_mem_pool_t *pool, h2o_qpack_decoder_t
      *qpack, int64_t stream_id, h2o_iovec_t *method,\n                            const
      h2o_url_scheme_t **scheme, h2o_iovec_t *authority, h2o_iovec_t *path, h2o_iovec_t
      *protocol,\n                            h2o_headers_t *headers, int *pseudo_header_exists_map,
      size_t *content_length, h2o_iovec_t *expect,\n                            h2o_cache_digests_t
      **digests, h2o_iovec_t *datagram_flow_id, uint64_t num_blocked,\n                            uint64_t
      *blocked_ref, h2o_qpack_section_stats_t *stats_updated, uint8_t *outbuf, size_t
      *outbufsize,\n                            const uint8_t *_src, size_t len, const
      char **err_desc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_decode_context
      Src: /src/h2o/lib/http3/qpack.c:869,1
    - Dst: check_decode_context_blocked
      Src: /src/h2o/lib/http3/qpack.c:871,1
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/lib/http3/qpack.c:876,1
    - Dst: normalize_error_code
      Src: /src/h2o/lib/http3/qpack.c:878,1
    - Dst: send_header_ack
      Src: /src/h2o/lib/http3/qpack.c:880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 14
    argNames:
    - pool
    - qpack
    - stream_id
    - status
    - headers
    - datagram_flow_id
    - num_blocked
    - blocked_ref
    - stats_updated
    - outbuf
    - outbufsize
    - _src
    - len
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - h2o_qpack_decoder_t*
    - int64_t
    - int*
    - h2o_headers_t*
    - h2o_iovec_t*
    - uint64_t
    - uint64_t*
    - h2o_qpack_section_stats_t*
    - uint8_t*
    - size_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 882
    functionName: h2o_qpack_parse_response
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - send_header_ack
    - h2o_hpack_parse_response
    - check_decode_context_blocked
    - normalize_error_code
    - parse_decode_context
    linkageType: ''
    returnType: int
    signature: "int h2o_qpack_parse_response(h2o_mem_pool_t *pool, h2o_qpack_decoder_t
      *qpack, int64_t stream_id, int *status,\n                             h2o_headers_t
      *headers, h2o_iovec_t *datagram_flow_id, uint64_t num_blocked, uint64_t *blocked_ref,\n
      \                            h2o_qpack_section_stats_t *stats_updated, uint8_t
      *outbuf, size_t *outbufsize, const uint8_t *_src,\n                             size_t
      len, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/qpack.c:886,1
    - Dst: header_table_init
      Src: /src/h2o/lib/http3/qpack.c:887,1
    - Dst: memset
      Src: /src/h2o/lib/http3/qpack.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - header_table_size
    - max_blocked
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 893
    functionName: h2o_qpack_create_encoder
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 3
    functionsReached:
    - h2o_mem_alloc
    - memset
    - header_table_init
    linkageType: ''
    returnType: h2o_qpack_encoder_t
    signature: h2o_qpack_encoder_t *h2o_qpack_create_encoder(uint32_t header_table_size,
      uint64_t max_blocked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: header_table_dispose
      Src: /src/h2o/lib/http3/qpack.c:897,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:898,1
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - qpack
    argTypes:
    - h2o_qpack_encoder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 900
    functionName: h2o_qpack_destroy_encoder
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 2
    functionsReached:
    - free
    - header_table_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_qpack_destroy_encoder(h2o_qpack_encoder_t *qpack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - qpack
    - insert_count
    - err_desc
    argTypes:
    - h2o_qpack_encoder_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 916
    functionName: handle_table_state_synchronize
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - qpack_table_total_inserts
    linkageType: ''
    returnType: int
    signature: int handle_table_state_synchronize(h2o_qpack_encoder_t *qpack, int64_t
      insert_count, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/http3/qpack.c:925,1
    - Dst: memset
      Src: /src/h2o/lib/http3/qpack.c:926,1
    - Dst: memmove
      Src: /src/h2o/lib/http3/qpack.c:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - qpack
    - index
    argTypes:
    - h2o_qpack_encoder_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 930
    functionName: evict_inflight_by_index
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    - memmove
    linkageType: ''
    returnType: void
    signature: void evict_inflight_by_index(h2o_qpack_encoder_t *qpack, size_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evict_inflight_by_index
      Src: /src/h2o/lib/http3/qpack.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - qpack
    - stream_id
    - err_desc
    argTypes:
    - h2o_qpack_encoder_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 953
    functionName: handle_header_ack
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - evict_inflight_by_index
    linkageType: ''
    returnType: int
    signature: int handle_header_ack(h2o_qpack_encoder_t *qpack, int64_t stream_id,
      const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evict_inflight_by_index
      Src: /src/h2o/lib/http3/qpack.c:962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - qpack
    - stream_id
    - err_desc
    argTypes:
    - h2o_qpack_encoder_t*
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 955
    functionDepth: 3
    functionLinenumber: 955
    functionLinenumberEnd: 970
    functionName: handle_stream_cancellation
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - evict_inflight_by_index
    linkageType: ''
    returnType: int
    signature: int handle_stream_cancellation(h2o_qpack_encoder_t *qpack, int64_t
      stream_id, const char **err_desc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:981,1
    - Dst: handle_table_state_synchronize
      Src: /src/h2o/lib/http3/qpack.c:983,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:987,1
    - Dst: handle_header_ack
      Src: /src/h2o/lib/http3/qpack.c:989,1
    - Dst: decode_int
      Src: /src/h2o/lib/http3/qpack.c:993,1
    - Dst: handle_stream_cancellation
      Src: /src/h2o/lib/http3/qpack.c:995,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - qpack
    - _src
    - src_end
    - err_desc
    argTypes:
    - h2o_qpack_encoder_t*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 1005
    functionName: h2o_qpack_encoder_handle_input
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 2
    functionsReached:
    - handle_header_ack
    - handle_stream_cancellation
    - handle_table_state_synchronize
    - decode_int
    linkageType: ''
    returnType: int
    signature: int h2o_qpack_encoder_handle_input(h2o_qpack_encoder_t *qpack, const
      uint8_t **_src, const uint8_t *src_end, const char **err_desc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:1012,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http3/qpack.c:1016,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/qpack.c:1020,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/qpack.c:1024,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - qpack
    - name
    - value
    - acked_only
    - is_exact
    argTypes:
    - h2o_qpack_encoder_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1034
    functionName: lookup_dynamic
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_iovec_is_token
    - qpack_table_total_inserts
    linkageType: ''
    returnType: int64_t
    signature: int64_t lookup_dynamic(h2o_qpack_encoder_t *qpack, const h2o_iovec_t
      *name, h2o_iovec_t value, int acked_only, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - value
    - prefix_bits
    argTypes:
    - h2o_byte_vector_t*
    - int64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1040
    functionName: flatten_int
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: void
    signature: void flatten_int(h2o_byte_vector_t *buf, int64_t value, unsigned prefix_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_huffman
      Src: /src/h2o/lib/http3/qpack.c:1046,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1049,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:1050,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:1057,1
    - Dst: memmove
      Src: /src/h2o/lib/http3/qpack.c:1061,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:1062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - buf
    - src
    - len
    - prefix_bits
    - dont_compress
    argTypes:
    - h2o_byte_vector_t*
    - char*
    - size_t
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1066
    functionName: flatten_string
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - h2o_hpack_encode_huffman
    - flatten_int
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: void
    signature: void flatten_string(h2o_byte_vector_t *buf, const char *src, size_t
      len, unsigned prefix_bits, int dont_compress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1071,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1073,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - qpack
    - pool
    - buf
    - is_static
    - index
    - value
    argTypes:
    - h2o_qpack_encoder_t*
    - h2o_mem_pool_t*
    - h2o_byte_vector_t*
    - int
    - int64_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1075
    functionName: emit_insert_with_nameref
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_string
    - flatten_int
    linkageType: ''
    returnType: void
    signature: "void emit_insert_with_nameref(h2o_qpack_encoder_t *qpack, h2o_mem_pool_t
      *pool, h2o_byte_vector_t *buf, int is_static,\n                                     int64_t
      index, h2o_iovec_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1080,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1082,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - qpack
    - pool
    - buf
    - name
    - value
    argTypes:
    - h2o_qpack_encoder_t*
    - h2o_mem_pool_t*
    - h2o_byte_vector_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1084
    functionName: emit_insert_without_nameref
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_string
    linkageType: ''
    returnType: void
    signature: "void emit_insert_without_nameref(h2o_qpack_encoder_t *qpack, h2o_mem_pool_t
      *pool, h2o_byte_vector_t *buf,\n                                        const
      h2o_iovec_t *name, h2o_iovec_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1091,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1094
    functionName: flatten_static_indexed
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_int
    linkageType: ''
    returnType: void
    signature: void flatten_static_indexed(struct st_h2o_qpack_flatten_context_t *ctx,
      int32_t index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1098,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1106,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1112
    functionName: flatten_dynamic_indexed
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_int
    linkageType: ''
    returnType: void
    signature: void flatten_dynamic_indexed(struct st_h2o_qpack_flatten_context_t
      *ctx, int64_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1116,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1118,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - index
    - value
    - dont_compress
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - int32_t
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1120
    functionName: flatten_static_nameref
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_string
    - flatten_int
    linkageType: ''
    returnType: void
    signature: void flatten_static_nameref(struct st_h2o_qpack_flatten_context_t *ctx,
      int32_t index, h2o_iovec_t value, int dont_compress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1127,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1130,1
    - Dst: flatten_int
      Src: /src/h2o/lib/http3/qpack.c:1133,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - index
    - value
    - dont_compress
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - int64_t
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1136
    functionName: flatten_dynamic_nameref
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_string
    - flatten_int
    linkageType: ''
    returnType: void
    signature: void flatten_dynamic_nameref(struct st_h2o_qpack_flatten_context_t
      *ctx, int64_t index, h2o_iovec_t value, int dont_compress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1141,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1144,1
    - Dst: flatten_string
      Src: /src/h2o/lib/http3/qpack.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - name
    - value
    - dont_compress
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1138
    functionDepth: 3
    functionLinenumber: 1138
    functionLinenumberEnd: 1146
    functionName: flatten_without_nameref
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - flatten_string
    linkageType: ''
    returnType: void
    signature: "void flatten_without_nameref(struct st_h2o_qpack_flatten_context_t
      *ctx, const h2o_iovec_t *name, h2o_iovec_t value,\n                                    int
      dont_compress)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: flatten_static_indexed
      Src: /src/h2o/lib/http3/qpack.c:1154,1
    - Dst: lookup_dynamic
      Src: /src/h2o/lib/http3/qpack.c:1164,1
    - Dst: flatten_dynamic_indexed
      Src: /src/h2o/lib/http3/qpack.c:1165,1
    - Dst: emit_insert_with_nameref
      Src: /src/h2o/lib/http3/qpack.c:1175,1
    - Dst: emit_insert_with_nameref
      Src: /src/h2o/lib/http3/qpack.c:1177,1
    - Dst: emit_insert_without_nameref
      Src: /src/h2o/lib/http3/qpack.c:1179,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http3/qpack.c:1183,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/http3/qpack.c:1184,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/http3/qpack.c:1188,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:1190,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:1191,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:1195,1
    - Dst: header_table_insert
      Src: /src/h2o/lib/http3/qpack.c:1197,1
    - Dst: flatten_dynamic_indexed
      Src: /src/h2o/lib/http3/qpack.c:1199,1
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:1199,1
    - Dst: flatten_static_nameref
      Src: /src/h2o/lib/http3/qpack.c:1207,1
    - Dst: flatten_dynamic_nameref
      Src: /src/h2o/lib/http3/qpack.c:1209,1
    - Dst: flatten_without_nameref
      Src: /src/h2o/lib/http3/qpack.c:1211,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 7
    argNames:
    - ctx
    - static_index
    - is_exact
    - likely_to_repeat
    - name
    - value
    - flags
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - int32_t
    - int
    - int
    - h2o_iovec_t*
    - h2o_iovec_t
    - h2o_header_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1213
    functionName: do_flatten_header
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - emit_insert_without_nameref
    - header_table_insert
    - flatten_dynamic_indexed
    - flatten_without_nameref
    - qpack_table_total_inserts
    - memcpy
    - lookup_dynamic
    - h2o_mem_alloc_shared
    - flatten_dynamic_nameref
    - flatten_static_nameref
    - emit_insert_with_nameref
    - flatten_static_indexed
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void do_flatten_header(struct st_h2o_qpack_flatten_context_t *ctx,
      int32_t static_index, int is_exact, int likely_to_repeat,\n                              const
      h2o_iovec_t *name, h2o_iovec_t value, h2o_header_flags_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http3/qpack.c:1221,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/qpack.c:1222,1
    - Dst: do_flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - header
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - h2o_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1215
    functionDepth: 5
    functionLinenumber: 1215
    functionLinenumberEnd: 1228
    functionName: flatten_header
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_is_token
    - H2O_STRUCT_FROM_MEMBER
    - do_flatten_header
    linkageType: ''
    returnType: void
    signature: void flatten_header(struct st_h2o_qpack_flatten_context_t *ctx, const
      h2o_header_t *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_cb
      Src: /src/h2o/lib/http3/qpack.c:1235,1
    - Dst: do_flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - lookup_cb
    - name
    - value
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - h2o_qpack_lookup_static_cb
    - h2o_token_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1238
    functionName: flatten_known_header_with_static_lookup
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - lookup_cb
    - do_flatten_header
    linkageType: ''
    returnType: void
    signature: "void flatten_known_header_with_static_lookup(struct st_h2o_qpack_flatten_context_t
      *ctx,\n                                                    h2o_qpack_lookup_static_cb
      lookup_cb, const h2o_token_t *name,\n                                                    h2o_iovec_t
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qpack_table_total_inserts
      Src: /src/h2o/lib/http3/qpack.c:1252,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - qpack
    - pool
    - stream_id
    - encoder_buf
    - stats_updated
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - h2o_qpack_encoder_t*
    - h2o_mem_pool_t*
    - int64_t
    - h2o_byte_vector_t*
    - h2o_qpack_section_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1259
    functionName: prepare_flatten
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - qpack_table_total_inserts
    linkageType: ''
    returnType: void
    signature: "void prepare_flatten(struct st_h2o_qpack_flatten_context_t *ctx, h2o_qpack_encoder_t
      *qpack, h2o_mem_pool_t *pool,\n                            int64_t stream_id,
      h2o_byte_vector_t *encoder_buf, h2o_qpack_section_stats_t *stats_updated)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/qpack.c:1271,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/qpack.c:1276,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:1287,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:1291,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http3/qpack.c:1294,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/qpack.c:1296,1
    - Dst: quicly_encodev_capacity
      Src: /src/h2o/lib/http3/qpack.c:1304,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/qpack.c:1305,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:1309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - serialized_header_len
    argTypes:
    - struct st_h2o_qpack_flatten_context_t*
    - size_t*
    assertStmts:
    - condition: (ctx->qpack->num_blocked < ctx->qpack->max_blocked)
      pos:
        line_end: 1270
        line_start: 1270
        source_file: /src/h2o/lib/http3/qpack.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1310
    functionName: finalize_flatten
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - quicly_encodev
    - quicly_encodev_capacity
    - h2o_iovec_init
    - memcpy
    - h2o_vector_reserve
    - assert
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t finalize_flatten(struct st_h2o_qpack_flatten_context_t
      *ctx, size_t *serialized_header_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prepare_flatten
      Src: /src/h2o/lib/http3/qpack.c:1319,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1322,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/qpack.c:1324,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/qpack.c:1324,1
    - Dst: flatten_static_indexed
      Src: /src/h2o/lib/http3/qpack.c:1327,1
    - Dst: flatten_static_indexed
      Src: /src/h2o/lib/http3/qpack.c:1329,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1331,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1334,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1336,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1338,1
    - Dst: flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1343,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1346,1
    - Dst: finalize_flatten
      Src: /src/h2o/lib/http3/qpack.c:1349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 13
    argNames:
    - _qpack
    - _pool
    - _stream_id
    - _encoder_buf
    - method
    - scheme
    - authority
    - path
    - protocol
    - headers
    - num_headers
    - datagram_flow_id
    - stats_updated
    argTypes:
    - h2o_qpack_encoder_t*
    - h2o_mem_pool_t*
    - int64_t
    - h2o_byte_vector_t*
    - h2o_iovec_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    - h2o_iovec_t
    - h2o_qpack_section_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1312
    functionDepth: 6
    functionLinenumber: 1312
    functionLinenumberEnd: 1350
    functionName: h2o_qpack_flatten_request
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached:
    - flatten_header
    - H2O_STRLIT
    - flatten_known_header_with_static_lookup
    - finalize_flatten
    - prepare_flatten
    - h2o_memis
    - flatten_static_indexed
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t h2o_qpack_flatten_request(h2o_qpack_encoder_t *_qpack,
      h2o_mem_pool_t *_pool, int64_t _stream_id,\n                                      h2o_byte_vector_t
      *_encoder_buf, h2o_iovec_t method, const h2o_url_scheme_t *scheme,\n                                      h2o_iovec_t
      authority, h2o_iovec_t path, h2o_iovec_t protocol, const h2o_header_t *headers,\n
      \                                     size_t num_headers, h2o_iovec_t datagram_flow_id,
      h2o_qpack_section_stats_t *stats_updated)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepare_flatten
      Src: /src/h2o/lib/http3/qpack.c:1359,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1367,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1368,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1369,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1370,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1371,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1372,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1373,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1374,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1375,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1376,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1377,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1378,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1379,1
    - Dst: INDEXED_STATUS
      Src: /src/h2o/lib/http3/qpack.c:1380,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/qpack.c:1384,1
    - Dst: do_flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1385,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:1386,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/qpack.c:1386,1
    - Dst: do_flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1392,1
    - Dst: flatten_static_indexed
      Src: /src/h2o/lib/http3/qpack.c:1398,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/qpack.c:1401,1
    - Dst: do_flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1402,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/qpack.c:1403,1
    - Dst: flatten_header
      Src: /src/h2o/lib/http3/qpack.c:1410,1
    - Dst: flatten_known_header_with_static_lookup
      Src: /src/h2o/lib/http3/qpack.c:1413,1
    - Dst: finalize_flatten
      Src: /src/h2o/lib/http3/qpack.c:1416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 12
    argNames:
    - _qpack
    - _pool
    - _stream_id
    - _encoder_buf
    - status
    - headers
    - num_headers
    - server_name
    - content_length
    - datagram_flow_id
    - stats_updated
    - serialized_header_len
    argTypes:
    - h2o_qpack_encoder_t*
    - h2o_mem_pool_t*
    - int64_t
    - h2o_byte_vector_t*
    - int
    - h2o_header_t*
    - size_t
    - h2o_iovec_t*
    - size_t
    - h2o_iovec_t
    - h2o_qpack_section_stats_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1352
    functionDepth: 6
    functionLinenumber: 1352
    functionLinenumberEnd: 1417
    functionName: h2o_qpack_flatten_response
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 0
    functionsReached:
    - INDEXED_STATUS
    - flatten_static_indexed
    - sprintf
    - flatten_known_header_with_static_lookup
    - finalize_flatten
    - prepare_flatten
    - do_flatten_header
    - flatten_header
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t h2o_qpack_flatten_response(h2o_qpack_encoder_t *_qpack,
      h2o_mem_pool_t *_pool, int64_t _stream_id,\n                                       h2o_byte_vector_t
      *_encoder_buf, int status, const h2o_header_t *headers, size_t num_headers,\n
      \                                      const h2o_iovec_t *server_name, size_t
      content_length, h2o_iovec_t datagram_flow_id,\n                                       h2o_qpack_section_stats_t
      *stats_updated, size_t *serialized_header_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    functionName: INDEXED_STATUS
    functionSourceFile: /src/h2o/lib/http3/qpack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INDEXED_STATUS(cp, st)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: sendvec_size_is_for_recycle
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sendvec_size_is_for_recycle(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sendvec_size_is_for_recycle
      Src: /src/h2o/lib/http3/server.c:329,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/http3/server.c:330,1
    - Dst: free
      Src: /src/h2o/lib/http3/server.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - struct st_h2o_http3_server_sendvec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: dispose_sendvec
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_mem_free_recycle
    - free
    - sendvec_size_is_for_recycle
    linkageType: ''
    returnType: void
    signature: void dispose_sendvec(struct st_h2o_http3_server_sendvec_t *vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:342,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:343,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sched
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: req_scheduler_init
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_init_anchor
    linkageType: ''
    returnType: void
    signature: void req_scheduler_init(struct st_h2o_http3_req_scheduler_t *sched)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:353,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:354,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:361,1
    - Dst: comp
      Src: /src/h2o/lib/http3/server.c:362,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:365,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - sched
    - node
    - comp
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    - h2o_http3_req_scheduler_compare_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 374
    functionName: req_scheduler_activate
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - comp
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: "void req_scheduler_activate(struct st_h2o_http3_req_scheduler_t *sched,
      struct st_h2o_http3_req_scheduler_node_t *node,\n                                   h2o_http3_req_scheduler_compare_cb
      comp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:383,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - sched
    - changed
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 389
    functionName: req_scheduler_update_smallest_urgency_post_removal
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    linkageType: ''
    returnType: void
    signature: void req_scheduler_update_smallest_urgency_post_removal(struct st_h2o_http3_req_scheduler_t
      *sched, size_t changed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:393,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:394,1
    - Dst: req_scheduler_update_smallest_urgency_post_removal
      Src: /src/h2o/lib/http3/server.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sched
    - node
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: req_scheduler_deactivate
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - req_scheduler_update_smallest_urgency_post_removal
    - h2o_linklist_is_linked
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void req_scheduler_deactivate(struct st_h2o_http3_req_scheduler_t *sched,
      struct st_h2o_http3_req_scheduler_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:402,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:402,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/lib/http3/server.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sched
    - node
    - comp
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    - h2o_http3_req_scheduler_compare_cb
    assertStmts:
    - condition: (h2o_linklist_is_linked(&node->link))
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 407
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 407
    functionName: req_scheduler_setup_for_next
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_linked
    - assert
    - req_scheduler_activate
    linkageType: ''
    returnType: void
    signature: "void req_scheduler_setup_for_next(struct st_h2o_http3_req_scheduler_t
      *sched, struct st_h2o_http3_req_scheduler_node_t *node,\n                                         h2o_http3_req_scheduler_compare_cb
      comp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:411,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:412,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:414,1
    - Dst: req_scheduler_update_smallest_urgency_post_removal
      Src: /src/h2o/lib/http3/server.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sched
    - node
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 417
    functionName: req_scheduler_conn_blocked
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - req_scheduler_update_smallest_urgency_post_removal
    - h2o_linklist_insert
    - h2o_linklist_is_linked
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void req_scheduler_conn_blocked(struct st_h2o_http3_req_scheduler_t
      *sched, struct st_h2o_http3_req_scheduler_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:421,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:423,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/lib/http3/server.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sched
    - comp
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - h2o_http3_req_scheduler_compare_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: req_scheduler_unblock_conn_blocked
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - req_scheduler_activate
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void req_scheduler_unblock_conn_blocked(struct st_h2o_http3_req_scheduler_t
      *sched, h2o_http3_req_scheduler_compare_cb comp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:432,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sched
    - x
    - y
    argTypes:
    - struct st_h2o_http3_req_scheduler_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    - struct st_h2o_http3_req_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: req_scheduler_compare_stream_id
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: "int req_scheduler_compare_stream_id(struct st_h2o_http3_req_scheduler_t
      *sched,\n                                           const struct st_h2o_http3_req_scheduler_node_t
      *x,\n                                           const struct st_h2o_http3_req_scheduler_node_t
      *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: get_conn
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_h2o_http3_server_conn_t
    signature: struct st_h2o_http3_server_conn_t *get_conn(struct st_h2o_http3_server_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - state
    argTypes:
    - struct st_h2o_http3_server_conn_t*
    - enum h2o_http3_server_stream_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: get_state_counter
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *get_state_counter(struct st_h2o_http3_server_conn_t *conn,
      enum h2o_http3_server_stream_state state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:457,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/lib/http3/server.c:458,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:458,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/lib/http3/server.c:464,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/lib/http3/server.c:467,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - stream
    - value
    - len
    - base
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - char*
    - size_t
    - h2o_absprio_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 468
    functionName: handle_priority_change
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - req_scheduler_activate
    - h2o_linklist_is_linked
    - h2o_absprio_parse_priority
    - req_scheduler_deactivate
    - get_conn
    linkageType: ''
    returnType: void
    signature: void handle_priority_change(struct st_h2o_http3_server_stream_t *stream,
      const char *value, size_t len, h2o_absprio_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:472,1
    - Dst: h2o_http3_send_h3_datagrams
      Src: /src/h2o/lib/http3/server.c:473,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _req
    - datagrams
    - num_datagrams
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: tunnel_on_udp_read
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_conn
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http3_send_h3_datagrams
    linkageType: ''
    returnType: void
    signature: void tunnel_on_udp_read(h2o_req_t *_req, h2o_iovec_t *datagrams, size_t
      num_datagrams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http3/server.c:478,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http3/server.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http3_server_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: request_run_delayed
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void request_run_delayed(struct st_h2o_http3_server_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:486,1
    - Dst: request_run_delayed
      Src: /src/h2o/lib/http3/server.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http3_server_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 488
    functionName: check_run_blocked
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - request_run_delayed
    - h2o_linklist_is_empty
    linkageType: ''
    returnType: void
    signature: void check_run_blocked(struct st_h2o_http3_server_conn_t *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:492,1
    - Dst: dispose_sendvec
      Src: /src/h2o/lib/http3/server.c:497,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http3/server.c:501,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:505,1
    - Dst: check_run_blocked
      Src: /src/h2o/lib/http3/server.c:508,1
    - Dst: kh_get
      Src: /src/h2o/lib/http3/server.c:513,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/server.c:515,1
    - Dst: kh_del
      Src: /src/h2o/lib/http3/server.c:516,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts:
    - condition: (conn->num_streams_req_streaming != 0)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 521
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 521
    functionName: pre_dispose_request
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - kh_del
    - dispose_sendvec
    - kh_end
    - h2o_buffer_dispose
    - check_run_blocked
    - kh_get
    - get_conn
    - assert
    linkageType: ''
    returnType: void
    signature: void pre_dispose_request(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:525,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http3/server.c:528,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:530,1
    - Dst: get_state_counter
      Src: /src/h2o/lib/http3/server.c:532,1
    - Dst: get_state_counter
      Src: /src/h2o/lib/http3/server.c:534,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:538,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:541,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:542,1
    - Dst: pre_dispose_request
      Src: /src/h2o/lib/http3/server.c:543,1
    - Dst: record_stream_stats
      Src: /src/h2o/lib/http3/server.c:545,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/http3/server.c:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - stream
    - state
    - in_generator
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - enum h2o_http3_server_stream_state
    - int
    assertStmts:
    - condition: (stream->qpack_blocked_ref == 0 && "QPACK-blocked streams must be
        unblocked or cancelled before changing stream state")
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->delayed_streams.recv_body_blocked.prev == &stream->link ||
        !"stream is not registered to the recv_body list?")
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 560
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 560
    functionName: set_state
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 4
    functionsReached:
    - get_conn
    - get_state_counter
    - record_stream_stats
    - H2O_PROBE_CONN
    - h2o_dispose_request
    - pre_dispose_request
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void set_state(struct st_h2o_http3_server_stream_t *stream, enum h2o_http3_server_stream_state
      state, int in_generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:564,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:566,1
    - Dst: h2o_http3_qpack_cancel_stream
      Src: /src/h2o/lib/http3/server.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts:
    - condition: (conn->num_qpack_blocked > 0)
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: cancel_qpack_decoder
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_http3_qpack_cancel_stream
    - get_conn
    - assert
    linkageType: ''
    returnType: void
    signature: void cancel_qpack_decoder(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:581,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/lib/http3/server.c:582,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:585,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/http3/server.c:586,1
    - Dst: cancel_qpack_decoder
      Src: /src/h2o/lib/http3/server.c:587,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:588,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:589,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/lib/http3/server.c:591,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/http3/server.c:592,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:594,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/lib/http3/server.c:596,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:597,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/lib/http3/server.c:598,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 5
    argNames:
    - stream
    - stop_sending_code
    - reset_code
    - in_generator
    - reset_only_if_open
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - quicly_error_t
    - quicly_error_t
    - int
    - int
    assertStmts:
    - condition: (stream->state < H2O_HTTP3_SERVER_STREAM_STATE_CLOSE_WAIT)
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 5
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: shutdown_stream
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - set_state
    - quicly_reset_stream
    - quicly_recvstate_transfer_complete
    - quicly_sendstate_transfer_complete
    - quicly_sendstate_is_open
    - h2o_linklist_is_linked
    - quicly_stream_has_receive_side
    - h2o_linklist_unlink
    - quicly_request_stop
    - cancel_qpack_decoder
    - assert
    - quicly_stream_has_send_side
    linkageType: ''
    returnType: void
    signature: "void shutdown_stream(struct st_h2o_http3_server_stream_t *stream,
      quicly_error_t stop_sending_code,\n                            quicly_error_t
      reset_code, int in_generator, int reset_only_if_open)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_sockname
      Src: /src/h2o/lib/http3/server.c:606,1
    - Dst: quicly_get_socklen
      Src: /src/h2o/lib/http3/server.c:607,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/server.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: get_sockname
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 2
    functionsReached:
    - memcpy
    - quicly_get_sockname
    - quicly_get_socklen
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_peername
      Src: /src/h2o/lib/http3/server.c:615,1
    - Dst: quicly_get_socklen
      Src: /src/h2o/lib/http3/server.c:616,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/server.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: get_peername
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 4
    functionsReached:
    - memcpy
    - quicly_get_peername
    - quicly_get_socklen
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: get_ptls
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 2
    functionsReached:
    - quicly_get_tls
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *get_ptls(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ptls
      Src: /src/h2o/lib/http3/server.c:629,1
    - Dst: ptls_get_server_name
      Src: /src/h2o/lib/http3/server.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: get_ssl_server_name
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 3
    functionsReached:
    - get_ptls
    - ptls_get_server_name
    linkageType: ''
    returnType: char
    signature: char *get_ssl_server_name(h2o_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ptls
      Src: /src/h2o/lib/http3/server.c:635,1
    - Dst: ptls_get_log_state
      Src: /src/h2o/lib/http3/server.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: log_state
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 11
    functionsReached:
    - get_ptls
    - ptls_get_log_state
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *log_state(h2o_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: get_req_id
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_req_id(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_num_streams_by_group
      Src: /src/h2o/lib/http3/server.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 649
    functionName: num_reqs_inflight
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_num_streams_by_group
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t num_reqs_inflight(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tracer
      Src: /src/h2o/lib/http3/server.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: get_tracer
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - quicly_get_tracer
    linkageType: ''
    returnType: quicly_tracer_t
    signature: quicly_tracer_t *get_tracer(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:659,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:660,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:662,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 664
    functionName: log_extensible_priorities
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_extensible_priorities(h2o_req_t *_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - fmt
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    functionName: DEFINE_NUMERIC_LOGGER
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_NUMERIC_LOGGER(name, fmt, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stats
      Src: /src/h2o/lib/http3/server.c:685,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:686,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/server.c:686,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: log_cc_name
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_get_stats
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_cc_name(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_delivery_rate
      Src: /src/h2o/lib/http3/server.c:695,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:696,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:697,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:698,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: log_delivery_rate
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_get_delivery_rate
    - sprintf
    - h2o_mem_alloc_pool
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_delivery_rate(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:706,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: log_tls_protocol_version
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_tls_protocol_version(h2o_req_t *_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:712,1
    - Dst: ptls_is_psk_handshake
      Src: /src/h2o/lib/http3/server.c:713,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:713,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:713,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:713,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: log_session_reused
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - H2O_STRLIT
    - ptls_is_psk_handshake
    - quicly_get_tls
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_session_reused(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:719,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/http3/server.c:720,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:721,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/server.c:721,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: log_cipher
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - strlen
    - h2o_iovec_init
    - quicly_get_tls
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_cipher(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:727,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/http3/server.c:728,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:730,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:732,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:733,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 734
    functionName: log_cipher_bits
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - h2o_mem_alloc_pool
    - quicly_get_tls
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_cipher_bits(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: log_session_id
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_session_id(h2o_req_t *_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:745,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/lib/http3/server.c:746,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:747,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/server.c:747,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: log_negotiated_protocol
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - ptls_get_negotiated_protocol
    - strlen
    - quicly_get_tls
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_negotiated_protocol(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:753,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/http3/server.c:756,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:757,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:758,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:759,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 763
    functionName: log_ech_config_id
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - ptls_is_ech_handshake
    - quicly_get_tls
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_ech_config_id(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:768,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/http3/server.c:771,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:772,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/server.c:772,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: log_ech_kem
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - ptls_is_ech_handshake
    - strlen
    - quicly_get_tls
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_ech_kem(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:781,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/http3/server.c:784,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:785,1
    - Dst: strlen
      Src: /src/h2o/lib/http3/server.c:785,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 789
    functionName: log_ech_cipher
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - ptls_is_ech_handshake
    - strlen
    - quicly_get_tls
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_ech_cipher(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/http3/server.c:794,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/http3/server.c:797,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:799,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:800,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:801,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 805
    functionName: log_ech_cipher_bits
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - ptls_is_ech_handshake
    - quicly_get_tls
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_ech_cipher_bits(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:811,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:812,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:812,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:812,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: log_qpack_blocked
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_qpack_blocked(h2o_req_t *_req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_stats
      Src: /src/h2o/lib/http3/server.c:829,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:830,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:830,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:837,1
    - Dst: QUICLY_STATS_FOREACH
      Src: /src/h2o/lib/http3/server.c:840,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 845
    functionName: log_quic_stats
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - quicly_get_stats
    - h2o_mem_alloc_pool
    - QUICLY_STATS_FOREACH
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_quic_stats(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: PUSH_FIELD
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_FIELD(field, name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 860
    functionName: get_request_stream_size
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_recvstate_transfer_complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_request_stream_size(struct st_h2o_http3_server_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:869,1
    - Dst: get_request_stream_size
      Src: /src/h2o/lib/http3/server.c:870,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http3/server.c:884,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http3/server.c:889,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:890,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:891,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:892,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:893,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:894,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:895,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:896,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:897,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:898,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:899,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 902
    functionName: record_stream_stats
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - H2O_PROBE_CONN
    - H2O_LOG_CONN
    - get_request_stream_size
    - get_conn
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: void
    signature: void record_stream_stats(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:907,1
    - Dst: get_state_counter
      Src: /src/h2o/lib/http3/server.c:913,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/lib/http3/server.c:915,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:917,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:918,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:920,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:923,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:924,1
    - Dst: pre_dispose_request
      Src: /src/h2o/lib/http3/server.c:926,1
    - Dst: record_stream_stats
      Src: /src/h2o/lib/http3/server.c:928,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/http3/server.c:929,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http3/server.c:932,1
    - Dst: free
      Src: /src/h2o/lib/http3/server.c:934,1
    - Dst: quicly_num_streams_by_group
      Src: /src/h2o/lib/http3/server.c:936,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:937,1
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http3/server.c:940,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts:
    - condition: (conn->num_qpack_blocked > 0)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/h2o/lib/http3/server.c
    - condition: "(num_req_streams_incl_self > 0 &&\n           \"during the invocation
        of the destroy callback, stream count should include the number of the stream
        being destroyed\")"
      pos:
        line_end: 937
        line_start: 936
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 941
      start: 904
    functionDepth: 4
    functionLinenumber: 904
    functionLinenumberEnd: 941
    functionName: on_stream_destroy
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_conn
    - get_state_counter
    - record_stream_stats
    - free
    - h2o_buffer_dispose
    - h2o_dispose_request
    - pre_dispose_request
    - quicly_num_streams_by_group
    - h2o_linklist_unlink
    - req_scheduler_deactivate
    - h2o_linklist_is_linked
    - assert
    - h2o_conn_set_state
    linkageType: ''
    returnType: void
    signature: void on_stream_destroy(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:951,1
    - Dst: sendvec_size_is_for_recycle
      Src: /src/h2o/lib/http3/server.c:955,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/http3/server.c:955,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/server.c:956,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/server.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts:
    - condition: (vec->vec.callbacks->read_ == h2o_sendvec_read_raw)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 965
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 965
    functionName: retain_sendvecs
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_recycle
    - sendvec_size_is_for_recycle
    - memcpy
    - h2o_mem_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: int retain_sendvecs(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:969,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http3/server.c:977,1
    - Dst: PTLS_LOG_ELEMENT_UNSAFESTR
      Src: /src/h2o/lib/http3/server.c:978,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:979,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:980,1
    - Dst: h2o_timeval_subtract
      Src: /src/h2o/lib/http3/server.c:981,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/lib/http3/server.c:984,1
    - Dst: quicly_get_stats
      Src: /src/h2o/lib/http3/server.c:986,1
    - Dst: QUICLY_STATS_FOREACH
      Src: /src/h2o/lib/http3/server.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 992
    functionName: collect_quic_performance_metrics
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_timeval_subtract
    - quicly_get_stats
    - h2o_gettimeofday
    - H2O_LOG_CONN
    - QUICLY_STATS_FOREACH
    - PTLS_LOG_ELEMENT_SIGNED
    - PTLS_LOG_ELEMENT_UNSAFESTR
    - get_conn
    - PTLS_LOG_ELEMENT_UNSIGNED
    linkageType: ''
    returnType: void
    signature: void collect_quic_performance_metrics(struct st_h2o_http3_server_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 977
    functionName: EMIT_STATS_FIELD
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_STATS_FIELD(fld, lit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:999,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1001,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1002,1
    - Dst: dispose_sendvec
      Src: /src/h2o/lib/http3/server.c:1011,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1014,1
    - Dst: dispose_sendvec
      Src: /src/h2o/lib/http3/server.c:1020,1
    - Dst: memmove
      Src: /src/h2o/lib/http3/server.c:1022,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/http3/server.c:1032,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1033,1
    - Dst: collect_quic_performance_metrics
      Src: /src/h2o/lib/http3/server.c:1037,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/lib/http3/server.c:1038,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/http3/server.c:1039,1
    - Dst: cancel_qpack_decoder
      Src: /src/h2o/lib/http3/server.c:1040,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1042,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - qs
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts:
    - condition: "(H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BEFORE_BLOCK <= stream->state
        &&\n           stream->state <= H2O_HTTP3_SERVER_STREAM_STATE_SEND_BODY)"
      pos:
        line_end: 999
        line_start: 998
        source_file: /src/h2o/lib/http3/server.c
    - condition: (delta != 0)
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->sendbuf.vecs.size != 0)
      pos:
        line_end: 1001
        line_start: 1001
        source_file: /src/h2o/lib/http3/server.c
    - condition: (i < stream->sendbuf.vecs.size)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/h2o/lib/http3/server.c
    - condition: "((H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BEFORE_BLOCK <= stream->state
        &&\n                    stream->state <= H2O_HTTP3_SERVER_STREAM_STATE_SEND_HEADERS)
        ||\n                   stream->proceed_requested)"
      pos:
        line_end: 1034
        line_start: 1032
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1045
      start: 994
    functionDepth: 5
    functionLinenumber: 994
    functionLinenumberEnd: 1045
    functionName: on_send_shift
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - collect_quic_performance_metrics
    - set_state
    - dispose_sendvec
    - quicly_sendstate_is_open
    - quicly_stream_has_receive_side
    - memmove
    - quicly_request_stop
    - cancel_qpack_decoder
    - assert
    linkageType: ''
    returnType: void
    signature: void on_send_shift(quicly_stream_t *qs, size_t delta)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1051,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1060,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1066,1
    - Dst: sendvec_size_is_for_recycle
      Src: /src/h2o/lib/http3/server.c:1078,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/http3/server.c:1078,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/server.c:1079,1
    - Dst: struct st_h2o_http3_server_sendvec_t*::vec::callbacks::read_
      Src: /src/h2o/lib/http3/server.c:1080,1
    - Dst: free
      Src: /src/h2o/lib/http3/server.c:1081,1
    - Dst: memcpy
      Src: /src/h2o/lib/http3/server.c:1087,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/http3/server.c:1108,1
    - Dst: retain_sendvecs
      Src: /src/h2o/lib/http3/server.c:1109,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1119,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 5
    argNames:
    - qs
    - 'off'
    - _dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts:
    - condition: "(H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BEFORE_BLOCK <= stream->state
        &&\n           stream->state <= H2O_HTTP3_SERVER_STREAM_STATE_SEND_BODY)"
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/h2o/lib/http3/server.c
    - condition: (vec_index < stream->sendbuf.vecs.size)
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/h2o/lib/http3/server.c
    - condition: (vec_index < stream->sendbuf.vecs.size)
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1047
    functionDepth: 6
    functionLinenumber: 1047
    functionLinenumberEnd: 1120
    functionName: on_send_emit
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc_recycle
    - free
    - sendvec_size_is_for_recycle
    - quicly_sendstate_is_open
    - h2o_mem_alloc
    - memcpy
    - shutdown_stream
    - retain_sendvecs
    - struct st_h2o_http3_server_sendvec_t*::vec::callbacks::read_
    - assert
    linkageType: ''
    returnType: void
    signature: void on_send_emit(quicly_stream_t *qs, size_t off, void *_dst, size_t
      *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 6
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: on_send_stop
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - shutdown_stream
    linkageType: ''
    returnType: void
    signature: void on_send_stop(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1131,1
    - Dst: quicly_recvstate_bytes_available
      Src: /src/h2o/lib/http3/server.c:1142,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1143,1
    - Dst: struct st_h2o_http3_server_stream_t*::recvbuf::handle_input
      Src: /src/h2o/lib/http3/server.c:1149,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:1151,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/server.c:1156,1
    - Dst: quicly_stop_requested
      Src: /src/h2o/lib/http3/server.c:1162,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http3/server.c:1165,1
    - Dst: quicly_stream_sync_recvbuf
      Src: /src/h2o/lib/http3/server.c:1166,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:1172,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1178,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:1185,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1186,1
    - Dst: request_run_delayed
      Src: /src/h2o/lib/http3/server.c:1187,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1196,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1199,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1200,1
    - Dst: request_run_delayed
      Src: /src/h2o/lib/http3/server.c:1201,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1206,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1213,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1214,1
    - Dst: check_run_blocked
      Src: /src/h2o/lib/http3/server.c:1215,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:1218,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1219,1
    - Dst: request_run_delayed
      Src: /src/h2o/lib/http3/server.c:1220,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 69
    argCount: 2
    argNames:
    - stream
    - in_generator
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - int
    assertStmts:
    - condition: (bytes_available <= stream->recvbuf.buf->size)
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!"unexpected state")
      pos:
        line_end: 1195
        line_start: 1195
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1223
      start: 1129
    functionDepth: 6
    functionLinenumber: 1129
    functionLinenumberEnd: 1223
    functionName: handle_buffered_input
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_conn
    - request_run_delayed
    - quicly_stream_sync_recvbuf
    - set_state
    - quicly_recvstate_transfer_complete
    - check_run_blocked
    - shutdown_stream
    - h2o_linklist_is_linked
    - h2o_quic_close_connection
    - h2o_buffer_consume
    - struct st_h2o_http3_server_stream_t*::recvbuf::handle_input
    - quicly_stop_requested
    - quicly_recvstate_bytes_available
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void handle_buffered_input(struct st_h2o_http3_server_stream_t *stream,
      int in_generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_update_recvbuf
      Src: /src/h2o/lib/http3/server.c:1230,1
    - Dst: quicly_stop_requested
      Src: /src/h2o/lib/http3/server.c:1232,1
    - Dst: handle_buffered_input
      Src: /src/h2o/lib/http3/server.c:1236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - qs
    - 'off'
    - input
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1225
    functionDepth: 7
    functionLinenumber: 1225
    functionLinenumberEnd: 1237
    functionName: on_receive
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_http3_update_recvbuf
    - quicly_stop_requested
    - handle_buffered_input
    linkageType: ''
    returnType: void
    signature: void on_receive(quicly_stream_t *qs, size_t off, const void *input,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1239
    functionDepth: 6
    functionLinenumber: 1239
    functionLinenumberEnd: 1247
    functionName: on_receive_reset
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - shutdown_stream
    linkageType: ''
    returnType: void
    signature: void on_receive_reset(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1257,1
    - Dst: check_run_blocked
      Src: /src/h2o/lib/http3/server.c:1258,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1259
    functionName: close_request_streaming
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - check_run_blocked
    - get_conn
    linkageType: ''
    returnType: void
    signature: void close_request_streaming(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1263,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1264,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1266,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1267,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:1267,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1268,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:1270,1
    - Dst: close_request_streaming
      Src: /src/h2o/lib/http3/server.c:1272,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1273,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1278,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http3/server.c:1279,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1280,1
    - Dst: close_request_streaming
      Src: /src/h2o/lib/http3/server.c:1286,1
    - Dst: handle_buffered_input
      Src: /src/h2o/lib/http3/server.c:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - _req
    - errstr
    argTypes:
    - h2o_req_t*
    - char*
    assertStmts:
    - condition: (stream->req_body != NULL)
      pos:
        line_end: 1265
        line_start: 1265
        source_file: /src/h2o/lib/http3/server.c
    - condition: (errstr != NULL || !h2o_linklist_is_linked(&stream->link))
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams_req_streaming != 0 || stream->req.is_tunnel_req)
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req.entity.len == stream->req_body->size)
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1292
      start: 1261
    functionDepth: 7
    functionLinenumber: 1261
    functionLinenumberEnd: 1292
    functionName: proceed_request_streaming
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_conn
    - H2O_STRUCT_FROM_MEMBER
    - quicly_recvstate_transfer_complete
    - handle_buffered_input
    - shutdown_stream
    - close_request_streaming
    - h2o_buffer_consume
    - h2o_linklist_is_linked
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void proceed_request_streaming(h2o_req_t *_req, const char *errstr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1296,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:1305,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1307,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1308,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1309,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:1310,1
    - Dst: quicly_stream_set_receive_window
      Src: /src/h2o/lib/http3/server.c:1312,1
    - Dst: h2o_req_can_stream_request
      Src: /src/h2o/lib/http3/server.c:1313,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1318,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http3/server.c:1319,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1323,1
    - Dst: handle_buffered_input
      Src: /src/h2o/lib/http3/server.c:1324,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/server.c:1325,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:1331,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1333,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:1334,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1335,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1336,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1337,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1338,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1339,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:1340,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1345,1
    - Dst: struct st_h2o_http3_server_stream_t*::req::write_req::cb
      Src: /src/h2o/lib/http3/server.c:1347,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1348,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:1352,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1354,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1355,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1356,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1357,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:1358,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1360,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http3/server.c:1361,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: "(stream->req.entity.len == stream->req_body->size &&\n                   (stream->req.entity.len
        == 0 || stream->req.entity.base == stream->req_body->bytes))"
      pos:
        line_end: 1345
        line_start: 1344
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->state == H2O_HTTP3_SERVER_STREAM_STATE_REQ_PENDING)
      pos:
        line_end: 1354
        line_start: 1354
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!stream->read_blocked)
      pos:
        line_end: 1356
        line_start: 1356
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!stream->req.process_called)
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->state == H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BLOCKED)
      pos:
        line_end: 1307
        line_start: 1307
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req_body != NULL)
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req.write_req.cb != NULL)
      pos:
        line_end: 1335
        line_start: 1335
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!stream->read_blocked)
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req.process_called)
      pos:
        line_end: 1334
        line_start: 1334
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req_body->size != 0 || is_end_stream)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->read_blocked)
      pos:
        line_end: 1308
        line_start: 1308
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1365
      start: 1294
    functionDepth: 7
    functionLinenumber: 1294
    functionLinenumberEnd: 1365
    functionName: run_delayed
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 2
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_req_can_stream_request
    - H2O_STRUCT_FROM_MEMBER
    - set_state
    - h2o_process_request
    - quicly_recvstate_transfer_complete
    - handle_buffered_input
    - quicly_get_state
    - struct st_h2o_http3_server_stream_t*::req::write_req::cb
    - shutdown_stream
    - h2o_linklist_unlink
    - assert
    - quicly_stream_set_receive_window
    linkageType: ''
    returnType: void
    signature: void run_delayed(h2o_timer_t *timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/http3/server.c:1374,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - stream
    - src
    - src_end
    - in_generator
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - uint8_t**
    - uint8_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1386
    functionName: handle_input_post_trailers
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - get_conn
    - h2o_http3_read_frame
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_post_trailers(struct st_h2o_http3_server_stream_t
      *stream, const uint8_t **src, const uint8_t *src_end,\n                                          int
      in_generator, const char **err_desc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http3/server.c:1397,1
    - Dst: h2o_buffer_try_append
      Src: /src/h2o/lib/http3/server.c:1398,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - stream
    - src
    - src_end
    - in_generator
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - uint8_t**
    - uint8_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1388
    functionDepth: 3
    functionLinenumber: 1388
    functionLinenumberEnd: 1409
    functionName: handle_input_expect_data_payload
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - h2o_buffer_try_append
    - h2o_iovec_init
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_expect_data_payload(struct st_h2o_http3_server_stream_t
      *stream, const uint8_t **src,\n                                                       const
      uint8_t *src_end, int in_generator, const char **err_desc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/http3/server.c:1418,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1418,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1436,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http3/server.c:1446,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:1447,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1447,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - stream
    - src
    - src_end
    - in_generator
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - uint8_t**
    - uint8_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1411
    functionDepth: 6
    functionLinenumber: 1411
    functionLinenumberEnd: 1453
    functionName: handle_input_expect_data
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_http3_read_frame
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - shutdown_stream
    - get_conn
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_expect_data(struct st_h2o_http3_server_stream_t
      *stream, const uint8_t **src, const uint8_t *src_end,\n                                        int
      in_generator, const char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/http3/server.c:1459,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/http3/server.c:1460,1
    - Dst: cancel_qpack_decoder
      Src: /src/h2o/lib/http3/server.c:1461,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1464,1
    - Dst: sendfn
      Src: /src/h2o/lib/http3/server.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - stream
    - reason
    - body
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1455
    functionDepth: 5
    functionLinenumber: 1455
    functionLinenumberEnd: 1469
    functionName: handle_input_expect_headers_send_http_error
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - set_state
    - quicly_recvstate_transfer_complete
    - sendfn
    - quicly_request_stop
    - cancel_qpack_decoder
    linkageType: ''
    returnType: int
    signature: "int handle_input_expect_headers_send_http_error(struct st_h2o_http3_server_stream_t
      *stream,\n                                                       void (*sendfn)(h2o_req_t
      *, const char *, const char *, int),\n                                                       const
      char *reason, const char *body, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http3/server.c:1474,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1475,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1478,1
    - Dst: quicly_stream_set_receive_window
      Src: /src/h2o/lib/http3/server.c:1479,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1479,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http3/server.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - stream
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1471
    functionDepth: 5
    functionLinenumber: 1471
    functionLinenumberEnd: 1483
    functionName: handle_input_expect_headers_process_request_immediately
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - set_state
    - h2o_buffer_init
    - h2o_process_request
    - h2o_iovec_init
    - get_conn
    - quicly_stream_set_receive_window
    linkageType: ''
    returnType: int
    signature: "int handle_input_expect_headers_process_request_immediately(struct
      st_h2o_http3_server_stream_t *stream,\n                                                                   const
      char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_input_expect_headers_send_http_error
      Src: /src/h2o/lib/http3/server.c:1489,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1494,1
    - Dst: handle_input_expect_headers_process_request_immediately
      Src: /src/h2o/lib/http3/server.c:1496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - stream
    - datagram_flow_id
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1485
    functionDepth: 6
    functionLinenumber: 1485
    functionLinenumberEnd: 1497
    functionName: handle_input_expect_headers_process_connect
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - handle_input_expect_headers_send_http_error
    - get_conn
    - handle_input_expect_headers_process_request_immediately
    linkageType: ''
    returnType: int
    signature: "int handle_input_expect_headers_process_connect(struct st_h2o_http3_server_stream_t
      *stream, uint64_t datagram_flow_id,\n                                                       const
      char **err_desc)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1502,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1504,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1507,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http3/server.c:1514,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:1515,1
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/http3/server.c:1519,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1519,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1522,1
    - Dst: h2o_qpack_parse_request
      Src: /src/h2o/lib/http3/server.c:1540,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1540,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1554,1
    - Dst: h2o_http3_send_qpack_header_ack
      Src: /src/h2o/lib/http3/server.c:1562,1
    - Dst: h2o_probe_log_request
      Src: /src/h2o/lib/http3/server.c:1564,1
    - Dst: quicly_get_context
      Src: /src/h2o/lib/http3/server.c:1571,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1571,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/server.c:1572,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:1572,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/server.c:1583,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:1583,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http3/server.c:1588,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:1588,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1589,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1604,1
    - Dst: shutdown_stream
      Src: /src/h2o/lib/http3/server.c:1619,1
    - Dst: handle_input_expect_headers_send_http_error
      Src: /src/h2o/lib/http3/server.c:1625,1
    - Dst: h2o_req_validate_pseudo_headers
      Src: /src/h2o/lib/http3/server.c:1628,1
    - Dst: handle_input_expect_headers_send_http_error
      Src: /src/h2o/lib/http3/server.c:1635,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1639,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http3/server.c:1639,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http3/server.c:1642,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/lib/http3/server.c:1644,1
    - Dst: handle_input_expect_headers_process_connect
      Src: /src/h2o/lib/http3/server.c:1652,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1655,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http3/server.c:1659,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http3/server.c:1659,1
    - Dst: handle_input_expect_headers_send_http_error
      Src: /src/h2o/lib/http3/server.c:1660,1
    - Dst: h2o_req_should_forward_expect
      Src: /src/h2o/lib/http3/server.c:1663,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http3/server.c:1664,1
    - Dst: handle_input_expect_headers_process_request_immediately
      Src: /src/h2o/lib/http3/server.c:1667,1
    - Dst: h2o_send_informational
      Src: /src/h2o/lib/http3/server.c:1670,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 113
    argCount: 5
    argNames:
    - stream
    - src
    - src_end
    - in_generator
    - err_desc
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - uint8_t**
    - uint8_t*
    - int
    - char**
    assertStmts:
    - condition: (!in_generator)
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->req.upgrade.base == NULL)
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!h2o_linklist_is_linked(&stream->scheduler.link))
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1675
      start: 1499
    functionDepth: 7
    functionLinenumber: 1499
    functionLinenumberEnd: 1675
    functionName: handle_input_expect_headers
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_req_should_forward_expect
    - h2o_probe_log_request
    - h2o_linklist_is_linked
    - assert
    - h2o_iovec_init
    - handle_input_expect_headers_send_http_error
    - H2O_STRLIT
    - set_state
    - handle_input_expect_headers_process_request_immediately
    - quicly_get_context
    - h2o_lcstris
    - h2o_req_validate_pseudo_headers
    - h2o_add_header
    - h2o_find_header
    - h2o_linklist_insert
    - h2o_gettimeofday
    - h2o_send_informational
    - h2o_qpack_parse_request
    - h2o_http3_send_qpack_header_ack
    - h2o_http3_read_frame
    - handle_input_expect_headers_process_connect
    - h2o_timeval_is_null
    - shutdown_stream
    - h2o_absprio_parse_priority
    - h2o_memis
    - get_conn
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_expect_headers(struct st_h2o_http3_server_stream_t
      *stream, const uint8_t **src,\n                                                  const
      uint8_t *src_end, int in_generator, const char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_qpack_flatten_response
      Src: /src/h2o/lib/http3/server.c:1680,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1681,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1682,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/server.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - stream
    - datagram_flow_id
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1677
    functionDepth: 7
    functionLinenumber: 1677
    functionLinenumberEnd: 1692
    functionName: write_response
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_qpack_flatten_response
    - h2o_vector_reserve
    - get_conn
    linkageType: ''
    returnType: void
    signature: void write_response(struct st_h2o_http3_server_stream_t *stream, h2o_iovec_t
      datagram_flow_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/lib/http3/server.c:1702,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/http3/server.c:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - stream
    - dst
    - payload_size
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - struct st_h2o_http3_server_sendvec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1709
    functionName: flatten_data_frame_header
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - quicly_encodev
    linkageType: ''
    returnType: size_t
    signature: "size_t flatten_data_frame_header(struct st_h2o_http3_server_stream_t
      *stream, struct st_h2o_http3_server_sendvec_t *dst,\n                                        size_t
      payload_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_shutdown
      Src: /src/h2o/lib/http3/server.c:1713,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/lib/http3/server.c:1715,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/http3/server.c:1716,1
    - Dst: cancel_qpack_decoder
      Src: /src/h2o/lib/http3/server.c:1717,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1721
    functionName: shutdown_by_generator
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - set_state
    - quicly_sendstate_shutdown
    - quicly_stream_has_receive_side
    - quicly_request_stop
    - cancel_qpack_decoder
    linkageType: ''
    returnType: void
    signature: void shutdown_by_generator(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1729,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1746,1
    - Dst: kh_put
      Src: /src/h2o/lib/http3/server.c:1748,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1749,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/server.c:1749,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/server.c:1750,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1760,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/http3/server.c:1761,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http3/server.c:1762,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http3/server.c:1770,1
    - Dst: sprintf
      Src: /src/h2o/lib/http3/server.c:1771,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - stream
    - send_state
    - datagram_flow_id
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    - h2o_send_state_t
    - h2o_iovec_t*
    assertStmts:
    - condition: (iter != kh_end(conn->datagram_flows))
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1777
      start: 1726
    functionDepth: 2
    functionLinenumber: 1726
    functionLinenumberEnd: 1777
    functionName: finalize_do_send_setup_udp_tunnel
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_end
    - h2o_mem_alloc_pool
    - kh_put
    - sprintf
    - h2o_http3_has_received_settings
    - h2o_linklist_insert
    - get_conn
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int finalize_do_send_setup_udp_tunnel(struct st_h2o_http3_server_stream_t
      *stream, h2o_send_state_t send_state,\n                                             h2o_iovec_t
      *datagram_flow_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/http3/server.c:1781,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/http3/server.c:1783,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http3_server_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1779
    functionDepth: 2
    functionLinenumber: 1779
    functionLinenumberEnd: 1784
    functionName: finalize_do_send
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_stream_sync_sendbuf
    - get_conn
    - h2o_quic_schedule_timer
    linkageType: ''
    returnType: void
    signature: void finalize_do_send(struct st_h2o_http3_server_stream_t *stream)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1788,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1792,1
    - Dst: h2o_add_server_timing_header
      Src: /src/h2o/lib/http3/server.c:1801,1
    - Dst: finalize_do_send_setup_udp_tunnel
      Src: /src/h2o/lib/http3/server.c:1803,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:1805,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:1805,1
    - Dst: write_response
      Src: /src/h2o/lib/http3/server.c:1806,1
    - Dst: h2o_probe_log_response
      Src: /src/h2o/lib/http3/server.c:1807,1
    - Dst: set_state
      Src: /src/h2o/lib/http3/server.c:1808,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http3/server.c:1809,1
    - Dst: handle_priority_change
      Src: /src/h2o/lib/http3/server.c:1811,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1818,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/http3/server.c:1818,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http3/server.c:1826,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http3/server.c:1832,1
    - Dst: flatten_data_frame_header
      Src: /src/h2o/lib/http3/server.c:1847,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1853,1
    - Dst: shutdown_by_generator
      Src: /src/h2o/lib/http3/server.c:1862,1
    - Dst: finalize_do_send
      Src: /src/h2o/lib/http3/server.c:1866,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 5
    argNames:
    - _ostr
    - _req
    - bufs
    - bufcnt
    - send_state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (&stream->req == _req)
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/h2o/lib/http3/server.c
    - condition: (quicly_sendstate_is_open(&stream->quic->sendstate))
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/h2o/lib/http3/server.c
    - condition: (empty_payload_allowed || !"h2o_data must only be called when there
        is progress")
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1867
      start: 1786
    functionDepth: 8
    functionLinenumber: 1786
    functionLinenumberEnd: 1867
    functionName: do_send
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 9
    functionsReached:
    - write_response
    - set_state
    - H2O_STRUCT_FROM_MEMBER
    - handle_priority_change
    - finalize_do_send
    - finalize_do_send_setup_udp_tunnel
    - h2o_gettimeofday
    - quicly_sendstate_is_open
    - flatten_data_frame_header
    - h2o_fatal
    - h2o_find_header
    - shutdown_by_generator
    - h2o_vector_reserve
    - h2o_add_server_timing_header
    - h2o_probe_log_response
    - get_conn
    - assert
    linkageType: ''
    returnType: void
    signature: void do_send(h2o_ostream_t *_ostr, h2o_req_t *_req, h2o_sendvec_t *bufs,
      size_t bufcnt, h2o_send_state_t send_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1871,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1872,1
    - Dst: write_response
      Src: /src/h2o/lib/http3/server.c:1874,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http3/server.c:1874,1
    - Dst: finalize_do_send
      Src: /src/h2o/lib/http3/server.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _ostr
    - _req
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    assertStmts:
    - condition: (&stream->req == _req)
      pos:
        line_end: 1871
        line_start: 1871
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1877
      start: 1869
    functionDepth: 8
    functionLinenumber: 1869
    functionLinenumberEnd: 1877
    functionName: do_send_informational
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 2
    functionsReached:
    - write_response
    - H2O_STRUCT_FROM_MEMBER
    - finalize_do_send
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void do_send_informational(h2o_ostream_t *_ostr, h2o_req_t *_req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_or_open_stream
      Src: /src/h2o/lib/http3/server.c:1887,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1894,1
    - Dst: handle_priority_change
      Src: /src/h2o/lib/http3/server.c:1897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - frame
    argTypes:
    - struct st_h2o_http3_server_conn_t*
    - h2o_http3_priority_update_frame_t*
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1879
    functionDepth: 4
    functionLinenumber: 1879
    functionLinenumberEnd: 1901
    functionName: handle_priority_update_frame
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_get_or_open_stream
    - assert
    - handle_priority_change
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_priority_update_frame(struct st_h2o_http3_server_conn_t
      *conn,\n                                                   const h2o_http3_priority_update_frame_t
      *frame)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1905,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/http3/server.c:1909,1
    - Dst: h2o_http3_handle_settings_frame
      Src: /src/h2o/lib/http3/server.c:1914,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1916,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/http3/server.c:1916,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:1917,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1918,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:1920,1
    - Dst: do_send
      Src: /src/h2o/lib/http3/server.c:1921,1
    - Dst: h2o_http3_decode_priority_update_frame
      Src: /src/h2o/lib/http3/server.c:1932,1
    - Dst: handle_priority_update_frame
      Src: /src/h2o/lib/http3/server.c:1935,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/server.c:1947,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - _conn
    - type
    - payload
    - len
    argTypes:
    - h2o_http3_conn_t*
    - uint64_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (h2o_http3_has_received_settings(&conn->h3))
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1948
      start: 1903
    functionDepth: 5
    functionLinenumber: 1903
    functionLinenumberEnd: 1948
    functionName: handle_control_stream_frame
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - handle_priority_update_frame
    - h2o_linklist_is_empty
    - h2o_http3_handle_settings_frame
    - H2O_STRUCT_FROM_MEMBER
    - do_send
    - h2o_quic_close_connection
    - h2o_http3_decode_priority_update_frame
    - h2o_http3_has_received_settings
    - h2o_linklist_unlink
    - assert
    linkageType: ''
    returnType: void
    signature: void handle_control_stream_frame(h2o_http3_conn_t *_conn, uint64_t
      type, const uint8_t *payload, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1952,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1956,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http3/server.c:1960,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1962,1
    - Dst: handle_buffered_input
      Src: /src/h2o/lib/http3/server.c:1964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - _conn
    - insert_count
    argTypes:
    - h2o_http3_conn_t*
    - uint64_t
    assertStmts:
    - condition: (conn->num_qpack_blocked > 0)
      pos:
        line_end: 1961
        line_start: 1961
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 1966
      start: 1950
    functionDepth: 7
    functionLinenumber: 1950
    functionLinenumberEnd: 1966
    functionName: qpack_unblock_streams
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - handle_buffered_input
    - assert
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void qpack_unblock_streams(h2o_http3_conn_t *_conn, uint64_t insert_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/http3/server.c:1974,1
    - Dst: h2o_http3_on_create_unidirectional_stream
      Src: /src/h2o/lib/http3/server.c:1975,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:1979,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/http3/server.c:1979,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:1982,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:1982,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http3/server.c:1985,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http3/server.c:1987,1
    - Dst: memset
      Src: /src/h2o/lib/http3/server.c:1989,1
    - Dst: memset
      Src: /src/h2o/lib/http3/server.c:2010,1
    - Dst: h2o_init_request
      Src: /src/h2o/lib/http3/server.c:2012,1
    - Dst: get_state_counter
      Src: /src/h2o/lib/http3/server.c:2019,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:2019,1
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http3/server.c:2020,1
    - Dst: get_conn
      Src: /src/h2o/lib/http3/server.c:2020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - self
    - qs
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts:
    - condition: (quicly_stream_is_client_initiated(qs->stream_id))
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2023
      start: 1968
    functionDepth: 4
    functionLinenumber: 1968
    functionLinenumberEnd: 2023
    functionName: stream_open_cb
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - get_state_counter
    - H2O_STRUCT_FROM_MEMBER
    - h2o_buffer_init
    - h2o_mem_alloc
    - h2o_http3_on_create_unidirectional_stream
    - quicly_get_data
    - quicly_stream_is_unidirectional
    - h2o_init_request
    - memset
    - get_conn
    - assert
    - h2o_conn_set_state
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t stream_open_cb(quicly_stream_open_t *self, quicly_stream_t
      *qs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: req_scheduler_unblock_conn_blocked
      Src: /src/h2o/lib/http3/server.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http3_server_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2027
    functionDepth: 4
    functionLinenumber: 2027
    functionLinenumberEnd: 2032
    functionName: unblock_conn_blocked_streams
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - req_scheduler_unblock_conn_blocked
    linkageType: ''
    returnType: void
    signature: void unblock_conn_blocked_streams(struct st_h2o_http3_server_conn_t
      *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2036,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:2036,1
    - Dst: unblock_conn_blocked_streams
      Src: /src/h2o/lib/http3/server.c:2040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sched
    - qc
    - conn_is_saturated
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2034
    functionDepth: 5
    functionLinenumber: 2034
    functionLinenumberEnd: 2052
    functionName: scheduler_can_send
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 3
    functionsReached:
    - unblock_conn_blocked_streams
    - quicly_get_data
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: int
    signature: int scheduler_can_send(quicly_stream_scheduler_t *sched, quicly_conn_t
      *qc, int conn_is_saturated)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2059,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:2059,1
    - Dst: HAS_DATA_TO_SEND
      Src: /src/h2o/lib/http3/server.c:2060,1
    - Dst: quicly_can_send_data
      Src: /src/h2o/lib/http3/server.c:2063,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2084,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/lib/http3/server.c:2086,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2086,1
    - Dst: quicly_send_stream
      Src: /src/h2o/lib/http3/server.c:2092,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2096,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/lib/http3/server.c:2098,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2098,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2105,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2107,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2107,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2110,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/lib/http3/server.c:2112,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2112,1
    - Dst: req_scheduler_conn_blocked
      Src: /src/h2o/lib/http3/server.c:2113,1
    - Dst: quicly_send_stream
      Src: /src/h2o/lib/http3/server.c:2117,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http3/server.c:2121,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:2122,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http3/server.c:2123,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2130,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/lib/http3/server.c:2131,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2135,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/lib/http3/server.c:2136,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2136,1
    - Dst: req_scheduler_conn_blocked
      Src: /src/h2o/lib/http3/server.c:2138,1
    - Dst: req_scheduler_setup_for_next
      Src: /src/h2o/lib/http3/server.c:2141,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/lib/http3/server.c:2145,1
    - Dst: HAS_DATA_TO_SEND
      Src: /src/h2o/lib/http3/server.c:2156,1
    - Dst: quicly_get_max_data
      Src: /src/h2o/lib/http3/server.c:2158,1
    - Dst: quicly_send_resumption_token
      Src: /src/h2o/lib/http3/server.c:2160,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 71
    argCount: 3
    argNames:
    - sched
    - qc
    - s
    argTypes:
    - quicly_stream_scheduler_t*
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (i != sizeof(stream_offsets) / sizeof(stream_offsets[0]) && "we should
        have found one stream")
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/h2o/lib/http3/server.c
    - condition: (!h2o_linklist_is_empty(anchor))
      pos:
        line_end: 2106
        line_start: 2106
        source_file: /src/h2o/lib/http3/server.c
    - condition: (stream->proceed_requested)
      pos:
        line_end: 2129
        line_start: 2129
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2168
      start: 2054
    functionDepth: 4
    functionLinenumber: 2054
    functionLinenumberEnd: 2168
    functionName: scheduler_do_send
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_is_blocked
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - quicly_send_stream
    - quicly_get_max_data
    - HAS_DATA_TO_SEND
    - h2o_proceed_response
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - quicly_stream_can_send
    - quicly_get_data
    - quicly_send_resumption_token
    - quicly_can_send_data
    - req_scheduler_conn_blocked
    - req_scheduler_deactivate
    - assert
    - req_scheduler_setup_for_next
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t scheduler_do_send(quicly_stream_scheduler_t *sched,
      quicly_conn_t *qc, quicly_send_context_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2058
    functionName: HAS_DATA_TO_SEND
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_DATA_TO_SEND()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2173,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:2173,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2176,1
    - Dst: quicly_is_blocked
      Src: /src/h2o/lib/http3/server.c:2177,1
    - Dst: quicly_stream_can_send
      Src: /src/h2o/lib/http3/server.c:2177,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/http3/server.c:2186,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2187,1
    - Dst: req_scheduler_deactivate
      Src: /src/h2o/lib/http3/server.c:2209,1
    - Dst: req_scheduler_activate
      Src: /src/h2o/lib/http3/server.c:2212,1
    - Dst: req_scheduler_conn_blocked
      Src: /src/h2o/lib/http3/server.c:2215,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - sched
    - qs
    argTypes:
    - struct st_quicly_stream_scheduler_t*
    - quicly_stream_t*
    assertStmts:
    - condition: (qs->stream_id < sizeof(uint16_t) * 8)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2219
      start: 2170
    functionDepth: 3
    functionLinenumber: 2170
    functionLinenumberEnd: 2219
    functionName: scheduler_update_state
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_is_blocked
    - H2O_STRUCT_FROM_MEMBER
    - req_scheduler_activate
    - quicly_stream_can_send
    - quicly_get_data
    - quicly_stream_is_unidirectional
    - req_scheduler_conn_blocked
    - req_scheduler_deactivate
    - assert
    linkageType: ''
    returnType: void
    signature: void scheduler_update_state(struct st_quicly_stream_scheduler_t *sched,
      quicly_stream_t *qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2225,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:2225,1
    - Dst: h2o_http3_decode_h3_datagram
      Src: /src/h2o/lib/http3/server.c:2230,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/server.c:2231,1
    - Dst: kh_get
      Src: /src/h2o/lib/http3/server.c:2236,1
    - Dst: kh_end
      Src: /src/h2o/lib/http3/server.c:2237,1
    - Dst: kh_val
      Src: /src/h2o/lib/http3/server.c:2239,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2240,1
    - Dst: struct st_h2o_http3_server_stream_t*::req::forward_datagram::write_
      Src: /src/h2o/lib/http3/server.c:2247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - quic
    - datagram
    argTypes:
    - quicly_receive_datagram_frame_t*
    - quicly_conn_t*
    - ptls_iovec_t
    assertStmts:
    - condition: (stream->req.forward_datagram.write_ != NULL)
      pos:
        line_end: 2239
        line_start: 2239
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2248
      start: 2223
    functionDepth: 3
    functionLinenumber: 2223
    functionLinenumberEnd: 2248
    functionName: datagram_frame_receive_cb
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - kh_val
    - assert
    - h2o_http3_decode_h3_datagram
    - H2O_STRUCT_FROM_MEMBER
    - kh_end
    - struct st_h2o_http3_server_stream_t*::req::forward_datagram::write_
    - quicly_get_data
    - h2o_quic_close_connection
    - kh_get
    linkageType: ''
    returnType: void
    signature: void datagram_frame_receive_cb(quicly_receive_datagram_frame_t *self,
      quicly_conn_t *quic, ptls_iovec_t datagram)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2255,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http3/server.c:2259,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http3/server.c:2263,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2264,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2265,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2266,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2267,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2268,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2269,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2270,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2271,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2272,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2273,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2274,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2275,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2276,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2277,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2278,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2279,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/http3/server.c:2280,1
    - Dst: quicly_get_stats
      Src: /src/h2o/lib/http3/server.c:2283,1
    - Dst: QUICLY_STATS_FOREACH_COUNTERS
      Src: /src/h2o/lib/http3/server.c:2285,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http3/server.c:2292,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http3/server.c:2293,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http3/server.c:2294,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http3/server.c:2295,1
    - Dst: h2o_http3_dispose_conn
      Src: /src/h2o/lib/http3/server.c:2296,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/http3/server.c:2297,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2300,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2301,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2302,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2303,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2304,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2305,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2306,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2307,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2307,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2308,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2308,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2309,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2309,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2310,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2310,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2311,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2312,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2312,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2313,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2314,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http3/server.c:2314,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/lib/http3/server.c:2317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - h3_
    argTypes:
    - h2o_quic_conn_t*
    assertStmts:
    - condition: (conn->num_streams.recv_headers == 0)
      pos:
        line_end: 2299
        line_start: 2299
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams_tunnelling == 0)
      pos:
        line_end: 2305
        line_start: 2305
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->delayed_streams.recv_body_blocked))
      pos:
        line_end: 2306
        line_start: 2306
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_qpack_blocked == 0)
      pos:
        line_end: 2310
        line_start: 2310
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams.req_pending == 0)
      pos:
        line_end: 2300
        line_start: 2300
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams.send_body == 0)
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->delayed_streams.req_streaming))
      pos:
        line_end: 2307
        line_start: 2307
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->delayed_streams.qpack_blocked))
      pos:
        line_end: 2309
        line_start: 2309
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->streams_resp_settings_blocked))
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->delayed_streams.pending))
      pos:
        line_end: 2308
        line_start: 2308
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams.send_headers == 0)
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams.close_wait == 0)
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/h2o/lib/http3/server.c
    - condition: (h2o_linklist_is_empty(&conn->scheduler.reqs.conn_blocked))
      pos:
        line_end: 2313
        line_start: 2313
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->num_streams_req_streaming == 0)
      pos:
        line_end: 2304
        line_start: 2304
        source_file: /src/h2o/lib/http3/server.c
    - condition: (conn->scheduler.reqs.active.smallest_urgency >= H2O_ABSPRIO_NUM_URGENCY_LEVELS)
      pos:
        line_end: 2312
        line_start: 2312
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2318
      start: 2252
    functionDepth: 3
    functionLinenumber: 2252
    functionLinenumberEnd: 2318
    functionName: on_h3_destroy
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_linklist_is_empty
    - quicly_get_stats
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timer_unlink
    - h2o_http3_dispose_conn
    - H2O_PROBE_CONN
    - H2O_LOG_CONN
    - QUICLY_STATS_FOREACH_COUNTERS
    - h2o_destroy_connection
    - h2o_timer_is_linked
    - PTLS_LOG_ELEMENT_UNSIGNED
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void on_h3_destroy(h2o_quic_conn_t *h3_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - _unused
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2284
    functionDepth: 0
    functionLinenumber: 2284
    functionLinenumberEnd: 2285
    functionName: ACC
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACC(fld, _unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_quic_init_context
      Src: /src/h2o/lib/http3/server.c:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - h2o
    - ctx
    - loop
    - sock
    - sock_alt_family
    - quic
    - next_cid
    - acceptor
    - notify_conn_update
    - use_gso
    argTypes:
    - h2o_context_t*
    - h2o_quic_ctx_t*
    - h2o_loop_t*
    - h2o_socket_t*
    - h2o_socket_t*
    - quicly_context_t*
    - quicly_cid_plaintext_t*
    - h2o_quic_accept_cb
    - h2o_quic_notify_connection_update_cb
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2320
    functionDepth: 3
    functionLinenumber: 2320
    functionLinenumberEnd: 2327
    functionName: h2o_http3_server_init_context
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_quic_init_context
    linkageType: ''
    returnType: void
    signature: "void h2o_http3_server_init_context(h2o_context_t *h2o, h2o_quic_ctx_t
      *ctx, h2o_loop_t *loop, h2o_socket_t *sock,\n                                   h2o_socket_t
      *sock_alt_family, quicly_context_t *quic, quicly_cid_plaintext_t *next_cid,\n
      \                                  h2o_quic_accept_cb acceptor, h2o_quic_notify_connection_update_cb
      notify_conn_update,\n                                   uint8_t use_gso)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_connection
      Src: /src/h2o/lib/http3/server.c:2383,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http3/server.c:2384,1
    - Dst: memset
      Src: /src/h2o/lib/http3/server.c:2385,1
    - Dst: h2o_http3_init_conn
      Src: /src/h2o/lib/http3/server.c:2387,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:2389,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:2390,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:2391,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:2392,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http3/server.c:2393,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/http3/server.c:2394,1
    - Dst: memset
      Src: /src/h2o/lib/http3/server.c:2395,1
    - Dst: req_scheduler_init
      Src: /src/h2o/lib/http3/server.c:2398,1
    - Dst: kh_init
      Src: /src/h2o/lib/http3/server.c:2401,1
    - Dst: quicly_cc_calc_initial_cwnd
      Src: /src/h2o/lib/http3/server.c:2403,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2406,1
    - Dst: ptls_log_init_conn_state
      Src: /src/h2o/lib/http3/server.c:2410,1
    - Dst: quicly_accept
      Src: /src/h2o/lib/http3/server.c:2413,1
    - Dst: h2o_http3_dispose_conn
      Src: /src/h2o/lib/http3/server.c:2422,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/http3/server.c:2423,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/lib/http3/server.c:2424,1
    - Dst: h2o_http3_setup
      Src: /src/h2o/lib/http3/server.c:2431,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http3/server.c:2433,1
    - Dst: h2o_conn_get_uuid
      Src: /src/h2o/lib/http3/server.c:2433,1
    - Dst: H2O_LOG_CONN
      Src: /src/h2o/lib/http3/server.c:2434,1
    - Dst: PTLS_LOG_ELEMENT_PTR
      Src: /src/h2o/lib/http3/server.c:2435,1
    - Dst: PTLS_LOG_ELEMENT_PTR
      Src: /src/h2o/lib/http3/server.c:2436,1
    - Dst: PTLS_LOG_ELEMENT_SAFESTR
      Src: /src/h2o/lib/http3/server.c:2437,1
    - Dst: h2o_conn_get_uuid
      Src: /src/h2o/lib/http3/server.c:2437,1
    - Dst: h2o_quic_send
      Src: /src/h2o/lib/http3/server.c:2440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 6
    argNames:
    - ctx
    - destaddr
    - srcaddr
    - packet
    - address_token
    - h3_callbacks
    argTypes:
    - h2o_http3_server_ctx_t*
    - quicly_address_t*
    - quicly_address_t*
    - quicly_decoded_packet_t*
    - quicly_address_token_plaintext_t*
    - h2o_http3_conn_callbacks_t*
    assertStmts:
    - condition: (ctx->super.next_cid != NULL && "to set next_cid, h2o_quic_set_context_identifier
        must be called")
      pos:
        line_end: 2405
        line_start: 2405
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2446
      start: 2329
    functionDepth: 5
    functionLinenumber: 2329
    functionLinenumberEnd: 2446
    functionName: h2o_http3_server_accept
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - req_scheduler_init
    - h2o_http3_dispose_conn
    - H2O_PROBE_CONN
    - ptls_log_init_conn_state
    - h2o_create_connection
    - assert
    - h2o_http3_init_conn
    - PTLS_LOG_ELEMENT_SAFESTR
    - memset
    - h2o_http3_setup
    - quicly_accept
    - h2o_gettimeofday
    - h2o_linklist_init_anchor
    - H2O_LOG_CONN
    - kh_init
    - h2o_quic_send
    - quicly_cc_calc_initial_cwnd
    - PTLS_LOG_ELEMENT_PTR
    - h2o_timer_init
    - h2o_destroy_connection
    - h2o_conn_get_uuid
    - kh_destroy
    linkageType: ''
    returnType: h2o_http3_conn_t
    signature: "h2o_http3_conn_t *h2o_http3_server_accept(h2o_http3_server_ctx_t *ctx,
      quicly_address_t *destaddr, quicly_address_t *srcaddr,\n                                          quicly_decoded_packet_t
      *packet, quicly_address_token_plaintext_t *address_token,\n                                          const
      h2o_http3_conn_callbacks_t *h3_callbacks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_calc_min_flow_control_size
      Src: /src/h2o/lib/http3/server.c:2453,1
    - Dst: h2o_http3_calc_min_flow_control_size
      Src: /src/h2o/lib/http3/server.c:2454,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - conf
    - quic
    argTypes:
    - h2o_globalconf_t*
    - quicly_context_t*
    assertStmts:
    - condition: "(quic->tls->cipher_suites[i]->aead->ctr_cipher != NULL &&\n               \"for
        header protection, QUIC ciphers MUST provide CTR mode\")"
      pos:
        line_end: 2465
        line_start: 2464
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2467
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2467
    functionName: h2o_http3_server_amend_quicly_context
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_http3_calc_min_flow_control_size
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http3_server_amend_quicly_context(h2o_globalconf_t *conf,
      quicly_context_t *quic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2471,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/http3/server.c:2471,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - quic
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (conn->h3.super.quic == NULL || conn->h3.super.quic == quic)
      pos:
        line_end: 2473
        line_start: 2473
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2477
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2477
    functionName: h2o_http3_get_connection
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_get_data
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: h2o_conn_t
    signature: h2o_conn_t *h2o_http3_get_connection(quicly_conn_t *quic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2482,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/http3/server.c:2485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2479
    functionDepth: 2
    functionLinenumber: 2479
    functionLinenumberEnd: 2488
    functionName: graceful_shutdown_close_straggler
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - h2o_quic_close_connection
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void graceful_shutdown_close_straggler(h2o_timer_t *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http3/server.c:2493,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/http3/server.c:2500,1
    - Dst: quicly_get_remote_next_stream_id
      Src: /src/h2o/lib/http3/server.c:2501,1
    - Dst: h2o_http3_send_goaway_frame
      Src: /src/h2o/lib/http3/server.c:2504,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http3/server.c:2510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2490
    functionDepth: 3
    functionLinenumber: 2490
    functionLinenumberEnd: 2516
    functionName: graceful_shutdown_resend_goaway
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timer_link
    - h2o_http3_send_goaway_frame
    - quicly_get_remote_next_stream_id
    - quicly_get_state
    linkageType: ''
    returnType: void
    signature: void graceful_shutdown_resend_goaway(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initiate_graceful_shutdown
      Src: /src/h2o/lib/http3/server.c:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2521
    functionName: close_idle_connection
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 2
    functionsReached:
    - initiate_graceful_shutdown
    linkageType: ''
    returnType: void
    signature: void close_idle_connection(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http3/server.c:2525,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2528,1
    - Dst: h2o_http3_send_shutdown_goaway_frame
      Src: /src/h2o/lib/http3/server.c:2531,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http3/server.c:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->_graceful_shutdown_timeout.cb == NULL)
      pos:
        line_end: 2527
        line_start: 2527
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2534
      start: 2523
    functionDepth: 4
    functionLinenumber: 2523
    functionLinenumberEnd: 2534
    functionName: initiate_graceful_shutdown
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 1
    functionsReached:
    - h2o_http3_send_shutdown_goaway_frame
    - h2o_conn_set_state
    - assert
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void initiate_graceful_shutdown(h2o_conn_t *_conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/http3/server.c:2546,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/http3/server.c:2546,1
    - Dst: assert
      Src: /src/h2o/lib/http3/server.c:2550,1
    - Dst: struct foreach_request_ctx*::cb
      Src: /src/h2o/lib/http3/server.c:2554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - _ctx
    - qs
    argTypes:
    - void*
    - quicly_stream_t*
    assertStmts:
    - condition: (stream->quic == qs)
      pos:
        line_end: 2549
        line_start: 2549
        source_file: /src/h2o/lib/http3/server.c
    constantsTouched: []
    func_position:
      end: 2555
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2555
    functionName: foreach_request_per_conn
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_stream_is_unidirectional
    - assert
    - struct foreach_request_ctx*::cb
    linkageType: ''
    returnType: int64_t
    signature: int64_t foreach_request_per_conn(void *_ctx, quicly_stream_t *qs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_foreach_stream
      Src: /src/h2o/lib/http3/server.c:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _conn
    - cbdata
    argTypes:
    - h2o_conn_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2557
    functionDepth: 0
    functionLinenumber: 2557
    functionLinenumberEnd: 2564
    functionName: foreach_request
    functionSourceFile: /src/h2o/lib/http3/server.c
    functionUses: 0
    functionsReached:
    - quicly_foreach_stream
    linkageType: ''
    returnType: int
    signature: int foreach_request(h2o_conn_t *_conn, int (*cb)(h2o_req_t *req, void
      *cbdata), void *cbdata)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/h2o/lib/common/file.c:39,1
    - Dst: fstat
      Src: /src/h2o/lib/common/file.c:41,1
    - Dst: malloc
      Src: /src/h2o/lib/common/file.c:48,1
    - Dst: read
      Src: /src/h2o/lib/common/file.c:53,1
    - Dst: close
      Src: /src/h2o/lib/common/file.c:60,1
    - Dst: close
      Src: /src/h2o/lib/common/file.c:65,1
    - Dst: free
      Src: /src/h2o/lib/common/file.c:66,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: h2o_file_read
    functionSourceFile: /src/h2o/lib/common/file.c
    functionUses: 2
    functionsReached:
    - close
    - malloc
    - read
    - free
    - fstat
    - open
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_file_read(const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/lib/common/file.c:73,1
    - Dst: strlen
      Src: /src/h2o/lib/common/file.c:73,1
    - Dst: strcpy
      Src: /src/h2o/lib/common/file.c:74,1
    - Dst: mkstemp
      Src: /src/h2o/lib/common/file.c:75,1
    - Dst: unlink
      Src: /src/h2o/lib/common/file.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fn_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: h2o_file_mktemp
    functionSourceFile: /src/h2o/lib/common/file.c
    functionUses: 1
    functionsReached:
    - mkstemp
    - unlink
    - alloca
    - strlen
    - strcpy
    linkageType: ''
    returnType: int
    signature: int h2o_file_mktemp(const char *fn_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:49,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:51,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/multithread.c:53,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/multithread.c:56,1
    - Dst: h2o_linklist_insert_list
      Src: /src/h2o/lib/common/multithread.c:57,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/multithread.c:59,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/multithread.c:60,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:63,1
    - Dst: h2o_multithread_receiver_t*::cb
      Src: /src/h2o/lib/common/multithread.c:64,1
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:65,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:65,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:66,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_multithread_queue_t*
    assertStmts:
    - condition: (h2o_linklist_is_empty(&messages))
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: queue_cb
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - pthread_mutex_lock
    - h2o_linklist_insert_list
    - h2o_multithread_receiver_t*::cb
    - h2o_linklist_init_anchor
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void queue_cb(h2o_multithread_queue_t *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/multithread.c:86,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/multithread.c:89,1
    - Dst: queue_cb
      Src: /src/h2o/lib/common/multithread.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: on_read
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 5
    functionsReached:
    - h2o_fatal
    - queue_cb
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/h2o/lib/common/multithread.c:103,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/multithread.c:105,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/multithread.c:105,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/multithread.c:108,1
    - Dst: cloexec_pipe
      Src: /src/h2o/lib/common/multithread.c:113,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/multithread.c:114,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/multithread.c:114,1
    - Dst: fcntl
      Src: /src/h2o/lib/common/multithread.c:116,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/multithread.c:118,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/multithread.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - queue
    - loop
    argTypes:
    - h2o_multithread_queue_t*
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: init_async
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - h2o_strerror_r
    - eventfd
    - fcntl
    - cloexec_pipe
    - h2o_fatal
    - h2o_socket_read_start
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: void
    signature: void init_async(h2o_multithread_queue_t *queue, h2o_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/multithread.c:128,1
    - Dst: memset
      Src: /src/h2o/lib/common/multithread.c:129,1
    - Dst: uv_async_init
      Src: /src/h2o/lib/common/multithread.c:132,1
    - Dst: init_async
      Src: /src/h2o/lib/common/multithread.c:134,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/multithread.c:136,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/multithread.c:137,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/multithread.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: h2o_multithread_create_queue
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 3
    functionsReached:
    - init_async
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - pthread_mutex_init
    - memset
    - uv_async_init
    linkageType: ''
    returnType: h2o_multithread_queue_t
    signature: h2o_multithread_queue_t *h2o_multithread_create_queue(h2o_loop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/multithread.c:146,1
    - Dst: free
      Src: /src/h2o/lib/common/multithread.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: libuv_destroy_delayed
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - free
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void libuv_destroy_delayed(uv_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:153,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:153,1
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:154,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:154,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/multithread.c:155,1
    - Dst: uv_close
      Src: /src/h2o/lib/common/multithread.c:158,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/multithread.c:160,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/multithread.c:161,1
    - Dst: close
      Src: /src/h2o/lib/common/multithread.c:164,1
    - Dst: free
      Src: /src/h2o/lib/common/multithread.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_multithread_queue_t*
    assertStmts:
    - condition: (h2o_linklist_is_empty(&queue->receivers.active))
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/h2o/lib/common/multithread.c
    - condition: (h2o_linklist_is_empty(&queue->receivers.inactive))
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: h2o_multithread_destroy_queue
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 2
    functionsReached:
    - close
    - h2o_socket_read_stop
    - assert
    - h2o_linklist_is_empty
    - h2o_socket_close
    - free
    - pthread_mutex_destroy
    - uv_close
    linkageType: ''
    returnType: void
    signature: void h2o_multithread_destroy_queue(h2o_multithread_queue_t *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/multithread.c:175,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:178,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/multithread.c:179,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - queue
    - receiver
    - cb
    argTypes:
    - h2o_multithread_queue_t*
    - h2o_multithread_receiver_t*
    - h2o_multithread_receiver_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: h2o_multithread_register_receiver
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 4
    functionsReached:
    - h2o_linklist_init_anchor
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: "void h2o_multithread_register_receiver(h2o_multithread_queue_t *queue,
      h2o_multithread_receiver_t *receiver,\n                                       h2o_multithread_receiver_cb
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:185,1
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:186,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:186,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:187,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/multithread.c:188,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - queue
    - receiver
    argTypes:
    - h2o_multithread_queue_t*
    - h2o_multithread_receiver_t*
    assertStmts:
    - condition: (queue == receiver->queue)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/h2o/lib/common/multithread.c
    - condition: (h2o_linklist_is_empty(&receiver->_messages))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: h2o_multithread_unregister_receiver
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 2
    functionsReached:
    - h2o_linklist_is_empty
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_multithread_unregister_receiver(h2o_multithread_queue_t *queue,
      h2o_multithread_receiver_t *receiver)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:196,1
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:198,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/multithread.c:198,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:199,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/multithread.c:200,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/multithread.c:201,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/multithread.c:204,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/multithread.c:206,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:209,1
    - Dst: uv_async_send
      Src: /src/h2o/lib/common/multithread.c:213,1
    - Dst: write
      Src: /src/h2o/lib/common/multithread.c:217,1
    - Dst: write
      Src: /src/h2o/lib/common/multithread.c:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - receiver
    - message
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_multithread_message_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&message->link))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 224
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 224
    functionName: h2o_multithread_send_message
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 2
    functionsReached:
    - write
    - h2o_linklist_is_empty
    - pthread_mutex_lock
    - uv_async_send
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void h2o_multithread_send_message(h2o_multithread_receiver_t *receiver,
      h2o_multithread_message_t *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/h2o/lib/common/multithread.c:229,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/multithread.c:231,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/multithread.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - tid
    - attr
    - (*func)(void *)
    - arg
    argTypes:
    - pthread_t*
    - pthread_attr_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: h2o_multithread_create_thread
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 4
    functionsReached:
    - pthread_create
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void h2o_multithread_create_thread(pthread_t *tid, const pthread_attr_t
      *attr, void *(*func)(void *), void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_handle_get_loop
      Src: /src/h2o/lib/common/multithread.c:241,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/multithread.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_multithread_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: h2o_multithread_get_loop
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - uv_handle_get_loop
    - h2o_socket_get_loop
    linkageType: ''
    returnType: h2o_loop_t
    signature: h2o_loop_t *h2o_multithread_get_loop(h2o_multithread_queue_t *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/multithread.c:252,1
    - Dst: pthread_cond_init
      Src: /src/h2o/lib/common/multithread.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sem
    - capacity
    argTypes:
    - h2o_sem_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: h2o_sem_init
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - pthread_cond_init
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void h2o_sem_init(h2o_sem_t *sem, ssize_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:260,1
    - Dst: pthread_cond_destroy
      Src: /src/h2o/lib/common/multithread.c:261,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/multithread.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sem
    argTypes:
    - h2o_sem_t*
    assertStmts:
    - condition: (sem->_cur == sem->_capacity)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: h2o_sem_destroy
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - assert
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: void h2o_sem_destroy(h2o_sem_t *sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:267,1
    - Dst: pthread_cond_wait
      Src: /src/h2o/lib/common/multithread.c:269,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sem
    argTypes:
    - h2o_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: h2o_sem_wait
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void h2o_sem_wait(h2o_sem_t *sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:276,1
    - Dst: pthread_cond_signal
      Src: /src/h2o/lib/common/multithread.c:278,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sem
    argTypes:
    - h2o_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: h2o_sem_post
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_signal
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void h2o_sem_post(h2o_sem_t *sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:284,1
    - Dst: pthread_cond_broadcast
      Src: /src/h2o/lib/common/multithread.c:287,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sem
    - new_capacity
    argTypes:
    - h2o_sem_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: h2o_sem_set_capacity
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - pthread_cond_broadcast
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void h2o_sem_set_capacity(h2o_sem_t *sem, ssize_t new_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/multithread.c:295,1
    - Dst: pthread_cond_init
      Src: /src/h2o/lib/common/multithread.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - barrier
    - count
    argTypes:
    - h2o_barrier_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: h2o_barrier_init
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - pthread_cond_init
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void h2o_barrier_init(h2o_barrier_t *barrier, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:303,1
    - Dst: pthread_cond_broadcast
      Src: /src/h2o/lib/common/multithread.c:306,1
    - Dst: pthread_cond_wait
      Src: /src/h2o/lib/common/multithread.c:309,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:311,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/multithread.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - barrier
    argTypes:
    - h2o_barrier_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 315
    functionName: h2o_barrier_wait
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 2
    functionsReached:
    - pthread_cond_broadcast
    - __sync_sub_and_fetch
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void h2o_barrier_wait(h2o_barrier_t *barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/multithread.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - barrier
    argTypes:
    - h2o_barrier_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: h2o_barrier_done
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: int
    signature: int h2o_barrier_done(h2o_barrier_t *barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/multithread.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - barrier
    - delta
    argTypes:
    - h2o_barrier_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: h2o_barrier_add
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: void
    signature: void h2o_barrier_add(h2o_barrier_t *barrier, size_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/multithread.c:329,1
    - Dst: sched_yield
      Src: /src/h2o/lib/common/multithread.c:330,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/multithread.c:332,1
    - Dst: pthread_cond_destroy
      Src: /src/h2o/lib/common/multithread.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - barrier
    argTypes:
    - h2o_barrier_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: h2o_barrier_dispose
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_destroy
    - __sync_add_and_fetch
    - pthread_mutex_destroy
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void h2o_barrier_dispose(h2o_barrier_t *barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/multithread.c:338,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:340,1
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/lib/common/multithread.c:342,1
    - Dst: h2o_error_reporter_t*::_report_errors
      Src: /src/h2o/lib/common/multithread.c:345,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: h2o_error_reporter__on_timeout
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    - h2o_error_reporter_t*::_report_errors
    - H2O_STRUCT_FROM_MEMBER
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void h2o_error_reporter__on_timeout(h2o_timer_t *_timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/multithread.c:358,1
    - Dst: __sync_fetch_and_add_8
      Src: /src/h2o/lib/common/multithread.c:361,1
    - Dst: assert
      Src: /src/h2o/lib/common/multithread.c:362,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/multithread.c:362,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/multithread.c:363,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/multithread.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - loop
    - reporter
    - delay_ticks
    - new_data
    argTypes:
    - h2o_loop_t*
    - h2o_error_reporter_t*
    - uint64_t
    - uintptr_t
    assertStmts:
    - condition: (!h2o_timer_is_linked(&reporter->_timer))
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/h2o/lib/common/multithread.c
    constantsTouched: []
    func_position:
      end: 372
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 372
    functionName: h2o_error_reporter_record_error
    functionSourceFile: /src/h2o/lib/common/multithread.c
    functionUses: 1
    functionsReached:
    - __sync_fetch_and_add_8
    - h2o_timer_link
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - h2o_timer_is_linked
    - assert
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t h2o_error_reporter_record_error(h2o_loop_t *loop, h2o_error_reporter_t
      *reporter, uint64_t delay_ticks,\n                                          uintptr_t
      new_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_key
      Src: /src/h2o/lib/common/filecache.c:41,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/filecache.c:42,1
    - Dst: kh_del
      Src: /src/h2o/lib/common/filecache.c:45,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/filecache.c:46,1
    - Dst: h2o_filecache_close_file
      Src: /src/h2o/lib/common/filecache.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - iter
    argTypes:
    - h2o_filecache_t*
    - khiter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: release_from_cache
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - kh_key
    - h2o_filecache_close_file
    - h2o_linklist_unlink
    - kh_del
    linkageType: ''
    returnType: void
    signature: void release_from_cache(h2o_filecache_t *cache, khiter_t iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/filecache.c:54,1
    - Dst: kh_init
      Src: /src/h2o/lib/common/filecache.c:56,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/filecache.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: h2o_filecache_create
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - kh_init
    linkageType: ''
    returnType: h2o_filecache_t
    signature: h2o_filecache_t *h2o_filecache_create(size_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_filecache_clear
      Src: /src/h2o/lib/common/filecache.c:65,1
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:66,1
    - Dst: kh_size
      Src: /src/h2o/lib/common/filecache.c:66,1
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:67,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/filecache.c:67,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/common/filecache.c:68,1
    - Dst: free
      Src: /src/h2o/lib/common/filecache.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_filecache_t*
    assertStmts:
    - condition: (kh_size(cache->hash) == 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/lib/common/filecache.c
    - condition: (h2o_linklist_is_empty(&cache->lru))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: h2o_filecache_destroy
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_empty
    - free
    - kh_size
    - h2o_filecache_clear
    - assert
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void h2o_filecache_destroy(h2o_filecache_t *cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_begin
      Src: /src/h2o/lib/common/filecache.c:75,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/filecache.c:75,1
    - Dst: kh_exist
      Src: /src/h2o/lib/common/filecache.c:76,1
    - Dst: release_from_cache
      Src: /src/h2o/lib/common/filecache.c:78,1
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:80,1
    - Dst: kh_size
      Src: /src/h2o/lib/common/filecache.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_filecache_t*
    assertStmts:
    - condition: (kh_size(cache->hash) == 0)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: h2o_filecache_clear
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 2
    functionsReached:
    - kh_end
    - release_from_cache
    - kh_size
    - kh_begin
    - kh_exist
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_filecache_clear(h2o_filecache_t *cache)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/common/filecache.c:85,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/filecache.c:90,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/filecache.c:91,1
    - Dst: kh_key
      Src: /src/h2o/lib/common/filecache.c:91,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/filecache.c:97,1
    - Dst: strlen
      Src: /src/h2o/lib/common/filecache.c:97,1
    - Dst: strcpy
      Src: /src/h2o/lib/common/filecache.c:100,1
    - Dst: kh_size
      Src: /src/h2o/lib/common/filecache.c:105,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/filecache.c:106,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/filecache.c:107,1
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:108,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/filecache.c:108,1
    - Dst: release_from_cache
      Src: /src/h2o/lib/common/filecache.c:109,1
    - Dst: kh_put
      Src: /src/h2o/lib/common/filecache.c:113,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/filecache.c:114,1
    - Dst: open
      Src: /src/h2o/lib/common/filecache.c:118,1
    - Dst: fstat
      Src: /src/h2o/lib/common/filecache.c:118,1
    - Dst: close
      Src: /src/h2o/lib/common/filecache.c:124,1
    - Dst: h2o_filecache_close_file
      Src: /src/h2o/lib/common/filecache.c:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - cache
    - path
    - oflag
    argTypes:
    - h2o_filecache_t*
    - char*
    - int
    assertStmts:
    - condition: (purge_iter != kh_end(cache->hash))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 137
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 137
    functionName: h2o_filecache_open_file
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 0
    functionsReached:
    - close
    - assert
    - H2O_STRUCT_FROM_MEMBER
    - kh_end
    - open
    - kh_key
    - release_from_cache
    - kh_size
    - h2o_filecache_close_file
    - h2o_mem_alloc
    - kh_put
    - fstat
    - h2o_linklist_insert
    - kh_get
    - strlen
    - strcpy
    linkageType: ''
    returnType: h2o_filecache_ref_t
    signature: h2o_filecache_ref_t *h2o_filecache_open_file(h2o_filecache_t *cache,
      const char *path, int oflag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:143,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/filecache.c:143,1
    - Dst: close
      Src: /src/h2o/lib/common/filecache.c:145,1
    - Dst: free
      Src: /src/h2o/lib/common/filecache.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_filecache_ref_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&ref->_lru))
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: h2o_filecache_close_file
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 2
    functionsReached:
    - close
    - free
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_filecache_close_file(h2o_filecache_ref_t *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:153,1
    - Dst: gmtime_r
      Src: /src/h2o/lib/common/filecache.c:155,1
    - Dst: h2o_time2str_rfc1123
      Src: /src/h2o/lib/common/filecache.c:156,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/filecache.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - outbuf
    argTypes:
    - h2o_filecache_ref_t*
    - char*
    assertStmts:
    - condition: (ref->fd != -1)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: h2o_filecache_get_last_modified
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - gmtime_r
    - h2o_time2str_rfc1123
    - assert
    linkageType: ''
    returnType: struct tm
    signature: struct tm *h2o_filecache_get_last_modified(h2o_filecache_ref_t *ref,
      char *outbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/filecache.c:165,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/filecache.c:167,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/filecache.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - outbuf
    argTypes:
    - h2o_filecache_ref_t*
    - char*
    assertStmts:
    - condition: (ref->fd != -1)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/h2o/lib/common/filecache.c
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: h2o_filecache_get_etag
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sprintf
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_filecache_get_etag(h2o_filecache_ref_t *ref, char *outbuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/filecache.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - tag1
    - tag1_len
    - tag2
    - tag2_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: h2o_filecache_compare_etag_strong
    functionSourceFile: /src/h2o/lib/common/filecache.c
    functionUses: 1
    functionsReached:
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int h2o_filecache_compare_etag_strong(const char *tag1, size_t tag1_len,
      const char *tag2, size_t tag2_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: h2o_iovec_is_token
    functionSourceFile: /src/h2o/lib/common/token.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_iovec_is_token(const h2o_iovec_t *buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http1client.c:102,1
    - Dst: h2o_socketpool_return
      Src: /src/h2o/lib/common/http1client.c:103,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/http1client.c:105,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http1client.c:108,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:109,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http1client.c:111,1
    - Dst: free
      Src: /src/h2o/lib/common/http1client.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct st_h2o_http1client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: close_client
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_socket_close
    - free
    - h2o_socketpool_return
    - h2o_buffer_dispose
    - h2o_buffer_consume
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void close_client(struct st_h2o_http1client_t *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:118,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:120,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/http1client.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct st_h2o_http1client_t*
    assertStmts:
    - condition: (client->state.res == STREAM_STATE_CLOSED)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: close_response
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - close_client
    - assert
    linkageType: ''
    returnType: void
    signature: void close_response(struct st_h2o_http1client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:128,1
    - Dst: struct st_h2o_http1client_t*::super::_cb::on_head
      Src: /src/h2o/lib/common/http1client.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - client
    - errstr
    - args
    argTypes:
    - struct st_h2o_http1client_t*
    - char*
    - h2o_httpclient_on_head_t*
    assertStmts:
    - condition: (!client->_delay_free)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: call_on_head
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http1client_t*::super::_cb::on_head
    - assert
    linkageType: ''
    returnType: h2o_httpclient_body_cb
    signature: h2o_httpclient_body_cb call_on_head(struct st_h2o_http1client_t *client,
      const char *errstr, h2o_httpclient_on_head_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - struct st_h2o_http1client_t*
    - char*
    assertStmts:
    - condition: (!client->_delay_free)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: call_on_body
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int call_on_body(struct st_h2o_http1client_t *client, const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:147,1
    - Dst: struct st_h2o_http1client_t*::proceed_req
      Src: /src/h2o/lib/common/http1client.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - struct st_h2o_http1client_t*
    - char*
    assertStmts:
    - condition: (!client->_delay_free)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: call_proceed_req
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - assert
    - struct st_h2o_http1client_t*::proceed_req
    linkageType: ''
    returnType: void
    signature: void call_proceed_req(struct st_h2o_http1client_t *client, const char
      *errstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_on_head
      Src: /src/h2o/lib/common/http1client.c:157,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:160,1
    - Dst: call_proceed_req
      Src: /src/h2o/lib/common/http1client.c:164,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - struct st_h2o_http1client_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: on_error
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 9
    functionsReached:
    - call_proceed_req
    - call_on_head
    - close_client
    - call_on_body
    linkageType: ''
    returnType: void
    signature: void on_error(struct st_h2o_http1client_t *client, const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http1client.c:172,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: on_body_timeout
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_body_timeout(h2o_timer_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:180,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:184,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:185,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:186,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:196,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:197,1
    - Dst: update_read_state
      Src: /src/h2o/lib/common/http1client.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: on_body_until_close
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - close_client
    - h2o_gettimeofday
    - update_read_state
    - close_response
    - call_on_body
    linkageType: ''
    returnType: void
    signature: void on_body_until_close(h2o_socket_t *sock, const char *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:208,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:211,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:230,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:234,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:236,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:240,1
    - Dst: h2o_socket_dont_read
      Src: /src/h2o/lib/common/http1client.c:247,1
    - Dst: update_read_state
      Src: /src/h2o/lib/common/http1client.c:251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 252
    functionName: on_body_content_length
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - on_error
    - close_client
    - h2o_gettimeofday
    - update_read_state
    - close_response
    - call_on_body
    - h2o_socket_dont_read
    linkageType: ''
    returnType: void
    signature: void on_body_content_length(h2o_socket_t *sock, const char *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:259,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/http1client.c:260,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:263,1
    - Dst: splice
      Src: /src/h2o/lib/common/http1client.c:272,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/http1client.c:272,1
    - Dst: update_read_state
      Src: /src/h2o/lib/common/http1client.c:277,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:281,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:293,1
    - Dst: h2o_socket_dont_read
      Src: /src/h2o/lib/common/http1client.c:294,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:297,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:300,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:303,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/http1client.c:306,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 308
    functionName: on_body_to_pipe
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - h2o_socket_get_fd
    - h2o_timer_unlink
    - splice
    - on_error
    - close_client
    - update_read_state
    - h2o_gettimeofday
    - close_response
    - call_on_body
    - h2o_socket_dont_read
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void on_body_to_pipe(h2o_socket_t *_sock, const char *err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:315,1
    - Dst: phr_decode_chunked_is_in_data
      Src: /src/h2o/lib/common/http1client.c:318,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:327,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:328,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:329,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:331,1
    - Dst: phr_decode_chunked
      Src: /src/h2o/lib/common/http1client.c:347,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:362,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http1client.c:368,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:370,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:373,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:377,1
    - Dst: update_read_state
      Src: /src/h2o/lib/common/http1client.c:380,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 382
    functionName: on_body_chunked
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - on_error
    - close_client
    - phr_decode_chunked_is_in_data
    - h2o_gettimeofday
    - update_read_state
    - close_response
    - call_on_body
    - phr_decode_chunked
    linkageType: ''
    returnType: void
    signature: void on_body_chunked(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http1client.c:386,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: on_head_timeout
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_head_timeout(h2o_timer_t *entry)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:401,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:404,1
    - Dst: h2o_evloop_socket_set_max_read_size
      Src: /src/h2o/lib/common/http1client.c:411,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/http1client.c:416,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/http1client.c:417,1
    - Dst: phr_parse_response
      Src: /src/h2o/lib/common/http1client.c:424,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:428,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:431,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:444,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/http1client.c:448,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/common/http1client.c:449,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/common/http1client.c:450,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:454,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:457,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:465,1
    - Dst: req_body_send
      Src: /src/h2o/lib/common/http1client.c:474,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:479,1
    - Dst: struct st_h2o_http1client_t*::super::informational_cb
      Src: /src/h2o/lib/common/http1client.c:481,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:481,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:483,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http1client.c:487,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http1client.c:489,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:490,1
    - Dst: h2o_httpclient__tunnel_is_ready
      Src: /src/h2o/lib/common/http1client.c:498,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/common/http1client.c:502,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http1client.c:502,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http1client.c:508,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http1client.c:508,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http1client.c:512,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http1client.c:512,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:515,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/common/http1client.c:519,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:521,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:531,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:536,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:546,1
    - Dst: call_on_head
      Src: /src/h2o/lib/common/http1client.c:562,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http1client.c:565,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:569,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http1client.c:573,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/http1client.c:577,1
    - Dst: reader
      Src: /src/h2o/lib/common/http1client.c:578,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 128
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (http_status <= 199)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 581
      start: 390
    functionDepth: 6
    functionLinenumber: 390
    functionLinenumberEnd: 581
    functionName: on_head
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 3
    functionsReached:
    - h2o_timer_link
    - h2o_mem_alloc_pool
    - h2o_contains_token
    - close_response
    - assert
    - h2o_socket_read_start
    - h2o_iovec_init
    - h2o_strtosize
    - h2o_evloop_socket_set_max_read_size
    - h2o_strdup
    - H2O_STRLIT
    - close_client
    - h2o_buffer_consume
    - reader
    - h2o_httpclient__tunnel_is_ready
    - h2o_lookup_token
    - on_error
    - call_on_head
    - h2o_gettimeofday
    - h2o_timer_is_linked
    - h2o_strtolower
    - h2o_timer_unlink
    - phr_parse_response
    - struct st_h2o_http1client_t*::super::informational_cb
    - req_body_send
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: void on_head(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http1client.c:585,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: on_head_first_byte_timeout
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_head_first_byte_timeout(h2o_timer_t *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:593,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:596,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:601,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:605,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:610,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:615,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 619
    functionName: on_whole_request_sent
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_timer_link
    - on_error
    - close_client
    - h2o_gettimeofday
    linkageType: ''
    returnType: void
    signature: void on_whole_request_sent(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:625,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:628,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 636
    functionName: on_header_sent_wait_100
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_error
    - h2o_timer_unlink
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void on_header_sent_wait_100(h2o_socket_t *sock, const char *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http1client.c:642,1
    - Dst: on_whole_request_sent
      Src: /src/h2o/lib/common/http1client.c:645,1
    - Dst: call_proceed_req
      Src: /src/h2o/lib/common/http1client.c:652,1
    - Dst: on_whole_request_sent
      Src: /src/h2o/lib/common/http1client.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 657
    functionName: req_body_send_complete
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - call_proceed_req
    - on_whole_request_sent
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void req_body_send_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/lib/common/http1client.c:672,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:676,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:679,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http1client.c:683,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - client
    - bufs
    - bytes
    argTypes:
    - struct st_h2o_http1client_t*
    - h2o_iovec_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 693
    functionName: req_body_send_prepare
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - snprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: size_t
    signature: size_t req_body_send_prepare(struct st_h2o_http1client_t *client, h2o_iovec_t
      *bufs, size_t *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: req_body_send_prepare
      Src: /src/h2o/lib/common/http1client.c:698,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:700,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:702,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct st_h2o_http1client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 707
    functionName: req_body_send
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 1
    functionsReached:
    - req_body_send_prepare
    - h2o_timer_unlink
    - h2o_socket_write
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void req_body_send(struct st_h2o_http1client_t *client)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:713,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:714,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/http1client.c:714,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:715,1
    - Dst: h2o_buffer_try_append
      Src: /src/h2o/lib/common/http1client.c:719,1
    - Dst: req_body_send
      Src: /src/h2o/lib/common/http1client.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - _client
    - chunk
    - is_end_stream
    argTypes:
    - h2o_httpclient_t*
    - h2o_iovec_t
    - int
    assertStmts:
    - condition: (chunk.len != 0 || is_end_stream)
      pos:
        line_end: 712
        line_start: 712
        source_file: /src/h2o/lib/common/http1client.c
    - condition: (!h2o_socket_is_writing(client->sock))
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/h2o/lib/common/http1client.c
    - condition: (client->body_buf.buf->size == 0)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 731
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 731
    functionName: do_write_req
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - req_body_send
    - h2o_socket_is_writing
    - h2o_buffer_try_append
    - assert
    linkageType: ''
    returnType: int
    signature: int do_write_req(h2o_httpclient_t *_client, h2o_iovec_t chunk, int
      is_end_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http1client.c:735,1
    - Dst: on_error
      Src: /src/h2o/lib/common/http1client.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: on_send_timeout
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_send_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/http1client.c:746,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/http1client.c:755,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/http1client.c:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - client
    - method
    - url
    - connection
    - headers
    - num_headers
    argTypes:
    - struct st_h2o_http1client_t*
    - h2o_iovec_t
    - h2o_url_t*
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 759
    functionName: build_request
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 2
    functionsReached:
    - memcpy
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t build_request(struct st_h2o_http1client_t *client, h2o_iovec_t
      method, const h2o_url_t *url,\n                                 h2o_iovec_t
      connection, const h2o_header_t *headers, size_t num_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 750
    functionName: RESERVE
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESERVE(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 765
    functionName: APPEND
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: APPEND_STRLIT
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STRLIT(lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 776
    functionName: APPEND_HEADER
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_HEADER(h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: build_request
      Src: /src/h2o/lib/common/http1client.c:843,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http1client.c:848,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http1client.c:848,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:850,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/http1client.c:850,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http1client.c:852,1
    - Dst: h2o_buffer_try_append
      Src: /src/h2o/lib/common/http1client.c:853,1
    - Dst: on_whole_request_sent
      Src: /src/h2o/lib/common/http1client.c:854,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:858,1
    - Dst: req_body_send_prepare
      Src: /src/h2o/lib/common/http1client.c:861,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:863,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:866,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http1client.c:868,1
    - Dst: h2o_buffer_try_append
      Src: /src/h2o/lib/common/http1client.c:870,1
    - Dst: on_whole_request_sent
      Src: /src/h2o/lib/common/http1client.c:871,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:874,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:878,1
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:881,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http1client.c:882,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:889,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http1client.c:892,1
    - Dst: h2o_evloop_socket_set_max_read_size
      Src: /src/h2o/lib/common/http1client.c:900,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/http1client.c:903,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 7
    argNames:
    - client
    - method
    - url
    - headers
    - num_headers
    - body
    - props
    argTypes:
    - struct st_h2o_http1client_t*
    - h2o_iovec_t
    - h2o_url_t*
    - h2o_header_t*
    - size_t
    - h2o_iovec_t
    - h2o_httpclient_properties_t*
    assertStmts:
    - condition: (!client->_is_chunked)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/h2o/lib/common/http1client.c
    - condition: (PTLS_ELEMENTSOF(reqbufs) - reqbufcnt >= 4)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/h2o/lib/common/http1client.c
    - condition: (!client->_is_chunked)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 904
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 904
    functionName: start_request
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 2
    functionsReached:
    - req_body_send_prepare
    - PTLS_ELEMENTSOF
    - build_request
    - H2O_STRLIT
    - on_whole_request_sent
    - h2o_evloop_socket_set_max_read_size
    - h2o_timer_link
    - h2o_buffer_init
    - h2o_gettimeofday
    - h2o_socket_write
    - h2o_memis
    - h2o_buffer_try_append
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: "void start_request(struct st_h2o_http1client_t *client, h2o_iovec_t
      method, const h2o_url_t *url,\n                          const h2o_header_t
      *headers, size_t num_headers, h2o_iovec_t body,\n                          const
      h2o_httpclient_properties_t *props)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:908,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http1client.c:910,1
    - Dst: struct st_h2o_http1client_t*::super::_cb::on_connect
      Src: /src/h2o/lib/common/http1client.c:922,1
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:927,1
    - Dst: start_request
      Src: /src/h2o/lib/common/http1client.c:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct st_h2o_http1client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 932
    functionName: on_connection_ready
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http1client_t*::super::_cb::on_connect
    - start_request
    - close_client
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_connection_ready(struct st_h2o_http1client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_client
      Src: /src/h2o/lib/common/http1client.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: do_cancel
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - close_client
    linkageType: ''
    returnType: void
    signature: void do_cancel(h2o_httpclient_t *_client)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:945,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/http1client.c:951,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/http1client.c:955,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/http1client.c:957,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/http1client.c:960,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/http1client.c:961,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/http1client.c:966,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http1client.c:967,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:968,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http1client.c:969,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http1client.c:971,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http1client.c:972,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct st_h2o_http1client_t*
    assertStmts:
    - condition: ((client->pipe_reader.on_body_piped != NULL) == (client->reader ==
        on_body_to_pipe))
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 974
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 974
    functionName: update_read_state
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 4
    functionsReached:
    - h2o_socket_read_stop
    - h2o_timer_unlink
    - h2o_timer_link
    - h2o_socket_is_reading
    - h2o_timer_is_linked
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void update_read_state(struct st_h2o_http1client_t *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_body_to_pipe
      Src: /src/h2o/lib/common/http1client.c:985,1
    - Dst: update_read_state
      Src: /src/h2o/lib/common/http1client.c:989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _client
    argTypes:
    - struct st_h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 990
    functionName: do_update_window
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - update_read_state
    - on_body_to_pipe
    linkageType: ''
    returnType: void
    signature: void do_update_window(struct st_h2o_httpclient_t *_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_httpclient_set_conn_properties_of_socket
      Src: /src/h2o/lib/common/http1client.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _client
    - properties
    argTypes:
    - h2o_httpclient_t*
    - h2o_httpclient_conn_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: do_get_conn_properties
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - h2o_httpclient_set_conn_properties_of_socket
    linkageType: ''
    returnType: void
    signature: void do_get_conn_properties(h2o_httpclient_t *_client, h2o_httpclient_conn_properties_t
      *properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/common/http1client.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - client
    - sock
    - origin
    argTypes:
    - struct st_h2o_http1client_t*
    - h2o_socket_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1009
    functionName: setup_client
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void setup_client(struct st_h2o_http1client_t *client, h2o_socket_t
      *sock, h2o_url_t *origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http1client.c:1015,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http1client.c:1015,1
    - Dst: setup_client
      Src: /src/h2o/lib/common/http1client.c:1017,1
    - Dst: on_connection_ready
      Src: /src/h2o/lib/common/http1client.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _client
    - sock
    - origin
    argTypes:
    - h2o_httpclient_t*
    - h2o_socket_t*
    - h2o_url_t*
    assertStmts:
    - condition: (!h2o_timer_is_linked(&client->super._timeout))
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/h2o/lib/common/http1client.c
    constantsTouched: []
    func_position:
      end: 1019
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1019
    functionName: h2o_httpclient__h1_on_connect
    functionSourceFile: /src/h2o/lib/common/http1client.c
    functionUses: 0
    functionsReached:
    - on_connection_ready
    - h2o_timer_is_linked
    - setup_client
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_httpclient__h1_on_connect(h2o_httpclient_t *_client, h2o_socket_t
      *sock, h2o_url_t *origin)
  - BBCount: 184
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:280,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:288,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:292,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:300,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:304,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:308,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:312,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:316,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:320,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:328,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:332,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:336,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:344,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:348,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:352,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:356,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:358,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:366,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:370,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:374,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:376,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:378,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:382,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:386,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:390,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:392,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:400,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:404,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:408,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:412,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:420,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:424,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:428,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:432,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:440,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:444,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:446,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:450,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:454,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:458,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:466,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:474,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:478,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:482,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:490,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:494,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:498,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:502,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:504,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:508,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:512,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:520,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:524,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:526,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:530,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:538,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:542,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:546,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:550,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:554,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:562,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:566,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:568,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:572,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:576,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:578,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:580,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:588,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:592,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:600,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:608,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:612,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:614,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:616,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:624,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:632,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:640,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:644,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:652,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:660,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:662,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:670,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:674,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:682,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/token_table.h:690,1
    CyclomaticComplexity: 210
    EdgeCount: 210
    ICount: 422
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 698
    functionName: h2o_lookup_token
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 7
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: h2o_token_t
    signature: h2o_token_t *h2o_lookup_token(const char *name, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:702,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: h2o_qpack_lookup_authority
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_authority(h2o_iovec_t value, int *is_exact)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:712,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:712,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:716,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:716,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:720,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:720,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:724,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:724,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:728,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:728,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:732,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:732,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:736,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:736,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 742
    functionName: h2o_qpack_lookup_method
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_method(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:746,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 752
    functionName: h2o_qpack_lookup_path
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_path(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 758
    functionName: h2o_qpack_lookup_protocol
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_protocol(h2o_iovec_t value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:762,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:762,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:766,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: h2o_qpack_lookup_scheme
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_scheme(h2o_iovec_t value, int *is_exact)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:776,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:776,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:780,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:780,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:784,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:784,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:788,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:788,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:792,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:792,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:796,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:796,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:800,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:800,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:804,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:804,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:808,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:808,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:812,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:812,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:816,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:816,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:820,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:820,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:824,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:824,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:828,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:828,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 834
    functionName: h2o_qpack_lookup_status
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_status(h2o_iovec_t value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:838,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:838,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:842,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 848
    functionName: h2o_qpack_lookup_accept
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_accept(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: h2o_qpack_lookup_accept_charset
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_accept_charset(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:858,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 864
    functionName: h2o_qpack_lookup_accept_encoding
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_accept_encoding(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:868,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 874
    functionName: h2o_qpack_lookup_accept_language
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_accept_language(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:878,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: h2o_qpack_lookup_accept_ranges
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_accept_ranges(h2o_iovec_t value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:888,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:888,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:892,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 898
    functionName: h2o_qpack_lookup_access_control_allow_credentials
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_allow_credentials(h2o_iovec_t
      value, int *is_exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:902,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:902,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:906,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:906,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:910,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 916
    functionName: h2o_qpack_lookup_access_control_allow_headers
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_allow_headers(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:920,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:920,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:924,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:924,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:928,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 934
    functionName: h2o_qpack_lookup_access_control_allow_methods
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_allow_methods(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:938,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 944
    functionName: h2o_qpack_lookup_access_control_allow_origin
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_allow_origin(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:948,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 954
    functionName: h2o_qpack_lookup_access_control_expose_headers
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_expose_headers(h2o_iovec_t
      value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:958,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 964
    functionName: h2o_qpack_lookup_access_control_request_headers
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_request_headers(h2o_iovec_t
      value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:968,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:968,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:972,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 978
    functionName: h2o_qpack_lookup_access_control_request_method
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_access_control_request_method(h2o_iovec_t
      value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:982,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 988
    functionName: h2o_qpack_lookup_age
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_age(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 994
    functionName: h2o_qpack_lookup_allow
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_allow(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:998,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1004
    functionName: h2o_qpack_lookup_alt_svc
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_alt_svc(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1008,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: h2o_qpack_lookup_authorization
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_authorization(h2o_iovec_t value, int *is_exact)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1018,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1018,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1022,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1022,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1026,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1026,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1030,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1030,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1034,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1034,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1038,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1038,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1044
    functionName: h2o_qpack_lookup_cache_control
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_cache_control(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1050
    functionName: h2o_qpack_lookup_cache_digest
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_cache_digest(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: h2o_qpack_lookup_connection
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_connection(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1060,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1066
    functionName: h2o_qpack_lookup_content_disposition
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_disposition(h2o_iovec_t value, int
      *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1070,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1070,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1074,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1080
    functionName: h2o_qpack_lookup_content_encoding
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_encoding(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: h2o_qpack_lookup_content_language
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_language(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1090,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1096
    functionName: h2o_qpack_lookup_content_length
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_length(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1102
    functionName: h2o_qpack_lookup_content_location
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_location(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: h2o_qpack_lookup_content_range
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_range(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1112,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1118
    functionName: h2o_qpack_lookup_content_security_policy
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_security_policy(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1122,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1126,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1126,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1130,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1130,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1134,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1134,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1138,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1138,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1142,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1142,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1146,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1146,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1150,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1150,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1154,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1154,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1158,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1158,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1162,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1168
    functionName: h2o_qpack_lookup_content_type
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_content_type(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1172,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1178
    functionName: h2o_qpack_lookup_cookie
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_cookie(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1184
    functionName: h2o_qpack_lookup_datagram_flow_id
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_datagram_flow_id(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1188,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1194
    functionName: h2o_qpack_lookup_date
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_date(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1198,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1204
    functionName: h2o_qpack_lookup_early_data
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_early_data(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1208,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1214
    functionName: h2o_qpack_lookup_etag
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_etag(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1220
    functionName: h2o_qpack_lookup_expect
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_expect(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1224,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1230
    functionName: h2o_qpack_lookup_expect_ct
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_expect_ct(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: h2o_qpack_lookup_expires
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_expires(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1240,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1246
    functionName: h2o_qpack_lookup_forwarded
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_forwarded(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1252
    functionName: h2o_qpack_lookup_from
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_from(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1258
    functionName: h2o_qpack_lookup_host
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_host(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1264
    functionName: h2o_qpack_lookup_http2_settings
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_http2_settings(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1270
    functionName: h2o_qpack_lookup_if_match
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_if_match(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1274,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1280
    functionName: h2o_qpack_lookup_if_modified_since
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_if_modified_since(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1284,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1290
    functionName: h2o_qpack_lookup_if_none_match
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_if_none_match(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1294,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1300
    functionName: h2o_qpack_lookup_if_range
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_if_range(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: h2o_qpack_lookup_if_unmodified_since
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_if_unmodified_since(h2o_iovec_t value, int
      *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1312
    functionName: h2o_qpack_lookup_keep_alive
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_keep_alive(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1316,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1322
    functionName: h2o_qpack_lookup_last_modified
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_last_modified(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1326,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1332
    functionName: h2o_qpack_lookup_link
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_link(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1336,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1342
    functionName: h2o_qpack_lookup_location
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_location(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1348
    functionName: h2o_qpack_lookup_max_forwards
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_max_forwards(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1354
    functionName: h2o_qpack_lookup_no_early_hints
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_no_early_hints(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1358,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: h2o_qpack_lookup_origin
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_origin(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1370
    functionName: h2o_qpack_lookup_priority
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_priority(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1376
    functionName: h2o_qpack_lookup_proxy_authenticate
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_proxy_authenticate(h2o_iovec_t value, int
      *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1382
    functionName: h2o_qpack_lookup_proxy_authorization
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_proxy_authorization(h2o_iovec_t value, int
      *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1388
    functionName: h2o_qpack_lookup_proxy_connection
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_proxy_connection(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1392,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1398
    functionName: h2o_qpack_lookup_purpose
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_purpose(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1402,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1408
    functionName: h2o_qpack_lookup_range
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_range(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1412,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1418
    functionName: h2o_qpack_lookup_referer
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_referer(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1424
    functionName: h2o_qpack_lookup_refresh
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_refresh(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1430
    functionName: h2o_qpack_lookup_retry_after
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_retry_after(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1434,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1440
    functionName: h2o_qpack_lookup_server
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_server(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1444,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1450
    functionName: h2o_qpack_lookup_set_cookie
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_set_cookie(h2o_iovec_t value, int *is_exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1454,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1454,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1458,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1458,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1462,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1468
    functionName: h2o_qpack_lookup_strict_transport_security
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_strict_transport_security(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1474
    functionName: h2o_qpack_lookup_te
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_te(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1478,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1484
    functionName: h2o_qpack_lookup_timing_allow_origin
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_timing_allow_origin(h2o_iovec_t value, int
      *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1490
    functionName: h2o_qpack_lookup_transfer_encoding
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_transfer_encoding(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1496
    functionName: h2o_qpack_lookup_upgrade
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_upgrade(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1500,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1506
    functionName: h2o_qpack_lookup_upgrade_insecure_requests
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_upgrade_insecure_requests(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1510,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1516
    functionName: h2o_qpack_lookup_user_agent
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_user_agent(h2o_iovec_t value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1520,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1520,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1524,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1530
    functionName: h2o_qpack_lookup_vary
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_vary(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: h2o_qpack_lookup_via
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_via(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1542
    functionName: h2o_qpack_lookup_www_authenticate
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_www_authenticate(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1548
    functionName: h2o_qpack_lookup_x_compress_hint
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_compress_hint(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1552,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1558
    functionName: h2o_qpack_lookup_x_content_type_options
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_content_type_options(h2o_iovec_t value,
      int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1562,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1568
    functionName: h2o_qpack_lookup_x_forwarded_for
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_forwarded_for(h2o_iovec_t value, int *is_exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1572,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1572,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1576,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1582
    functionName: h2o_qpack_lookup_x_frame_options
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_frame_options(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1588
    functionName: h2o_qpack_lookup_x_reproxy_url
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_reproxy_url(h2o_iovec_t value, int *is_exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1594
    functionName: h2o_qpack_lookup_x_traffic
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_traffic(h2o_iovec_t value, int *is_exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/token_table.h:1598,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/token_table.h:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - is_exact
    argTypes:
    - h2o_iovec_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1604
    functionName: h2o_qpack_lookup_x_xss_protection
    functionSourceFile: /src/h2o/lib/common/token_table.h
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_qpack_lookup_x_xss_protection(h2o_iovec_t value, int *is_exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: decode_hex
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_hex(int ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - path
    - 'off'
    - last_slash
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: handle_special_paths
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t handle_special_paths(const char *path, size_t off, size_t last_slash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/lib/common/url.c:71,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/url.c:80,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/url.c:81,1
    - Dst: decode_hex
      Src: /src/h2o/lib/common/url.c:95,1
    - Dst: decode_hex
      Src: /src/h2o/lib/common/url.c:96,1
    - Dst: handle_special_paths
      Src: /src/h2o/lib/common/url.c:103,1
    - Dst: handle_special_paths
      Src: /src/h2o/lib/common/url.c:117,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 6
    argNames:
    - pool
    - src
    - src_len
    - query_at
    - norm_indexes
    - null_char_found
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - size_t*
    - size_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 121
    functionName: rebuild_path
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - decode_hex
    - handle_special_paths
    - memchr
    - h2o_mem_alloc_pool
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t rebuild_path(h2o_mem_pool_t *pool, const char *src, size_t
      src_len, size_t *query_at, size_t **norm_indexes,\n                                int
      *null_char_found)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:133,1
    - Dst: rebuild_path
      Src: /src/h2o/lib/common/url.c:166,1
    - Dst: h2o_strstr
      Src: /src/h2o/lib/common/url.c:171,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/url.c:171,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/url.c:173,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/url.c:177,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:178,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 6
    argNames:
    - pool
    - path
    - len
    - query_at
    - norm_indexes
    - null_char_found
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - size_t*
    - size_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 180
    functionName: h2o_url_normalize_path
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 5
    functionsReached:
    - H2O_STRLIT
    - h2o_error_printf
    - memcmp
    - h2o_strstr
    - rebuild_path
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t h2o_url_normalize_path(h2o_mem_pool_t *pool, const char
      *path, size_t len, size_t *query_at, size_t **norm_indexes,\n                                   int
      *null_char_found)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/url.c:184,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/url.c:187,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/url.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - s
    - end
    - scheme
    argTypes:
    - char*
    - char*
    - h2o_url_scheme_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 195
    functionName: parse_scheme
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *parse_scheme(const char *s, const char *end, const h2o_url_scheme_t
      **scheme)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/lib/common/url.c:209,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:211,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:217,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 4
    argNames:
    - s
    - len
    - host
    - port
    argTypes:
    - char*
    - size_t
    - h2o_iovec_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 241
    functionName: h2o_url_parse_hostport
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 5
    functionsReached:
    - memchr
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: char *h2o_url_parse_hostport(const char *s, size_t len, h2o_iovec_t
      *host, uint16_t *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/lib/common/url.c:245,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:248,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:250,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/url.c:250,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:252,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/common/url.c:254,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:254,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/url.c:254,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pool
    - src
    - url_end
    - parsed
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - char*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: parse_authority_and_path
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_url_parse_hostport
    - h2o_concat
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int parse_authority_and_path(h2o_mem_pool_t *pool, const char *src,
      const char *url_end, h2o_url_t *parsed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/url.c:266,1
    - Dst: parse_scheme
      Src: /src/h2o/lib/common/url.c:270,1
    - Dst: parse_authority_and_path
      Src: /src/h2o/lib/common/url.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - pool
    - url
    - url_len
    - parsed
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 279
    functionName: h2o_url_parse
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 7
    functionsReached:
    - parse_authority_and_path
    - parse_scheme
    - strlen
    linkageType: ''
    returnType: int
    signature: int h2o_url_parse(h2o_mem_pool_t *pool, const char *url, size_t url_len,
      h2o_url_t *parsed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/url.c:286,1
    - Dst: parse_scheme
      Src: /src/h2o/lib/common/url.c:290,1
    - Dst: parse_authority_and_path
      Src: /src/h2o/lib/common/url.c:297,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pool
    - url
    - url_len
    - parsed
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 306
    functionName: h2o_url_parse_relative
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 5
    functionsReached:
    - parse_authority_and_path
    - parse_scheme
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int h2o_url_parse_relative(h2o_mem_pool_t *pool, const char *url, size_t
      url_len, h2o_url_t *parsed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:312,1
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:313,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:319,1
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:328,1
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:333,1
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:334,1
    - Dst: h2o_url_resolve_path
      Src: /src/h2o/lib/common/url.c:344,1
    - Dst: assert
      Src: /src/h2o/lib/common/url.c:346,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/common/url.c:352,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:352,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/url.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - pool
    - base
    - relative
    - dest
    argTypes:
    - h2o_mem_pool_t*
    - h2o_url_t*
    - h2o_url_t*
    - h2o_url_t*
    assertStmts:
    - condition: (base->path.len != 0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/h2o/lib/common/url.c
    - condition: (relative->host.base != NULL)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/h2o/lib/common/url.c
    - condition: (relative->host.base == NULL)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/h2o/lib/common/url.c
    - condition: (base->path.base[0] == '/')
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/h2o/lib/common/url.c
    - condition: (relative->_port == 65535)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/h2o/lib/common/url.c
    - condition: (relative->path.len == 0)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/h2o/lib/common/url.c
    constantsTouched: []
    func_position:
      end: 362
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 362
    functionName: h2o_url_resolve
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 4
    functionsReached:
    - H2O_STRLIT
    - h2o_concat
    - h2o_url_resolve_path
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_url_resolve(h2o_mem_pool_t *pool, const h2o_url_t *base,
      const h2o_url_t *relative, h2o_url_t *dest)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:399,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 2
    argNames:
    - base
    - relative
    argTypes:
    - h2o_iovec_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 400
    functionName: h2o_url_resolve_path
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 2
    functionsReached:
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_url_resolve_path(h2o_iovec_t *base, h2o_iovec_t *relative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/url.c:405,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/url.c:406,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/url.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - dest
    - src
    argTypes:
    - h2o_mem_pool_t*
    - h2o_url_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: h2o_url_copy
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    linkageType: ''
    returnType: void
    signature: void h2o_url_copy(h2o_mem_pool_t *pool, h2o_url_t *dest, const h2o_url_t
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/url.c:415,1
    - Dst: memset
      Src: /src/h2o/lib/common/url.c:421,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - host
    - sa
    argTypes:
    - h2o_iovec_t
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: h2o_url_host_to_sun
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *h2o_url_host_to_sun(h2o_iovec_t host, struct sockaddr_un *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/url.c:439,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/url.c:444,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/url.c:449,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/url.c:449,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:450,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:451,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:452,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - url
    - pool
    - scheme
    - host
    - port
    - path
    argTypes:
    - h2o_url_t*
    - h2o_mem_pool_t*
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - uint16_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 457
    functionName: h2o_url_init_with_hostport
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_mem_alloc_pool
    - h2o_mem_alloc
    - sprintf
    - memcpy
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int h2o_url_init_with_hostport(h2o_url_t *url, h2o_mem_pool_t *pool,
      const h2o_url_scheme_t *scheme, h2o_iovec_t host,\n                               uint16_t
      port, h2o_iovec_t path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/url.c:468,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/url.c:469,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/url.c:469,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:470,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:471,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/url.c:472,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/url.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - url
    - pool
    - scheme
    - sun_path
    - path
    argTypes:
    - h2o_url_t*
    - h2o_mem_pool_t*
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 479
    functionName: h2o_url_init_with_sun_path
    functionSourceFile: /src/h2o/lib/common/url.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - memcpy
    - h2o_mem_alloc
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int h2o_url_init_with_sun_path(h2o_url_t *url, h2o_mem_pool_t *pool,
      const h2o_url_scheme_t *scheme, h2o_iovec_t sun_path,\n                               h2o_iovec_t
      path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/httpclient.c:50,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/httpclient.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - connpool
    - sockpool
    argTypes:
    - h2o_httpclient_connection_pool_t*
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: h2o_httpclient_connection_pool_init
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_init_anchor
    linkageType: ''
    returnType: void
    signature: void h2o_httpclient_connection_pool_init(h2o_httpclient_connection_pool_t
      *connpool, h2o_socketpool_t *sockpool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_cancel_connect
      Src: /src/h2o/lib/common/httpclient.c:57,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/httpclient.c:61,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/httpclient.c:62,1
    - Dst: free
      Src: /src/h2o/lib/common/httpclient.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: close_client
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 10
    functionsReached:
    - free
    - h2o_socketpool_cancel_connect
    - h2o_timer_is_linked
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void close_client(h2o_httpclient_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/httpclient.c:69,1
    - Dst: h2o_httpclient_t*::_cb::on_connect
      Src: /src/h2o/lib/common/httpclient.c:70,1
    - Dst: close_client
      Src: /src/h2o/lib/common/httpclient.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_httpclient_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/h2o/lib/common/httpclient.c
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: on_connect_error
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - close_client
    - assert
    - h2o_httpclient_t*::_cb::on_connect
    linkageType: ''
    returnType: void
    signature: void on_connect_error(h2o_httpclient_t *client, const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/httpclient.c:76,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/common/httpclient.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: on_connect_timeout
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - on_connect_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_connect_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_client
      Src: /src/h2o/lib/common/httpclient.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: do_cancel
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - close_client
    linkageType: ''
    returnType: void
    signature: void do_cancel(h2o_httpclient_t *_client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SZ_MAX
      Src: /src/h2o/lib/common/httpclient.c:91,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/httpclient.c:93,1
    - Dst: memset
      Src: /src/h2o/lib/common/httpclient.c:94,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/httpclient.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - _client
    - pool
    - data
    - ctx
    - connpool
    - upgrade_to
    - on_connect
    argTypes:
    - h2o_httpclient_t**
    - h2o_mem_pool_t*
    - void*
    - h2o_httpclient_ctx_t*
    - h2o_httpclient_connection_pool_t*
    - char*
    - h2o_httpclient_connect_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: create_client
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 1
    functionsReached:
    - h2o_gettimeofday
    - h2o_mem_alloc
    - memset
    - SZ_MAX
    linkageType: ''
    returnType: h2o_httpclient_t
    signature: "h2o_httpclient_t *create_client(h2o_httpclient_t **_client, h2o_mem_pool_t
      *pool, void *data, h2o_httpclient_ctx_t *ctx,\n                                       h2o_httpclient_connection_pool_t
      *connpool, const char *upgrade_to,\n                                       h2o_httpclient_connect_cb
      on_connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: SZ_MAX
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SZ_MAX(x, y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/httpclient.c:115,1
    - Dst: assert
      Src: /src/h2o/lib/common/httpclient.c:120,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/common/httpclient.c:121,1
    - Dst: h2o_socket_ssl_get_selected_protocol
      Src: /src/h2o/lib/common/httpclient.c:132,1
    - Dst: h2o_httpclient__h1_on_connect
      Src: /src/h2o/lib/common/httpclient.c:133,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/httpclient.c:135,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/httpclient.c:135,1
    - Dst: h2o_socketpool_detach
      Src: /src/h2o/lib/common/httpclient.c:138,1
    - Dst: h2o_httpclient__h2_on_connect
      Src: /src/h2o/lib/common/httpclient.c:139,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/httpclient.c:140,1
    - Dst: h2o_httpclient__h1_on_connect
      Src: /src/h2o/lib/common/httpclient.c:141,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/common/httpclient.c:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - sock
    - errstr
    - data
    - origin
    argTypes:
    - h2o_socket_t*
    - char*
    - void*
    - h2o_url_t*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/h2o/lib/common/httpclient.c
    constantsTouched: []
    func_position:
      end: 146
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 146
    functionName: on_pool_connect
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_socket_ssl_get_selected_protocol
    - h2o_socketpool_detach
    - H2O_STRLIT
    - h2o_timer_unlink
    - memcmp
    - h2o_httpclient__h2_on_connect
    - on_connect_error
    - h2o_memis
    - h2o_httpclient__h1_on_connect
    - assert
    linkageType: ''
    returnType: void
    signature: void on_pool_connect(h2o_socket_t *sock, const char *errstr, void *data,
      h2o_url_t *origin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/lib/common/httpclient.c:173,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/httpclient.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - selector
    argTypes:
    - struct st_h2o_httpclient_protocol_selector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 195
    functionName: select_protocol
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 1
    functionsReached:
    - H2O_BUILD_ASSERT
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: size_t
    signature: size_t select_protocol(struct st_h2o_httpclient_protocol_selector_t
      *selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/httpclient.c:199,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/httpclient.c:202,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/httpclient.c:204,1
    - Dst: h2o_httpclient__h2_get_max_concurrent_streams
      Src: /src/h2o/lib/common/httpclient.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - target
    argTypes:
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: find_h2conn
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_socketpool_is_global
    - h2o_httpclient__h2_get_max_concurrent_streams
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: struct st_h2o_httpclient__h2_conn_t
    signature: struct st_h2o_httpclient__h2_conn_t *find_h2conn(h2o_httpclient_connection_pool_t
      *pool, h2o_url_t *target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_client
      Src: /src/h2o/lib/common/httpclient.c:219,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/httpclient.c:220,1
    - Dst: h2o_socketpool_connect
      Src: /src/h2o/lib/common/httpclient.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - _client
    - pool
    - data
    - ctx
    - connpool
    - origin
    - upgrade_to
    - on_connect
    - alpn_protos
    argTypes:
    - h2o_httpclient_t**
    - h2o_mem_pool_t*
    - void*
    - h2o_httpclient_ctx_t*
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    - char*
    - h2o_httpclient_connect_cb
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: connect_using_socket_pool
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - create_client
    - h2o_socketpool_connect
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: "void connect_using_socket_pool(h2o_httpclient_t **_client, h2o_mem_pool_t
      *pool, void *data, h2o_httpclient_ctx_t *ctx,\n                                      h2o_httpclient_connection_pool_t
      *connpool, h2o_url_t *origin, const char *upgrade_to,\n                                      h2o_httpclient_connect_cb
      on_connect, h2o_iovec_t alpn_protos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_client
      Src: /src/h2o/lib/common/httpclient.c:229,1
    - Dst: h2o_httpclient__h2_on_connect
      Src: /src/h2o/lib/common/httpclient.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - _client
    - pool
    - data
    - conn
    - connpool
    - upgrade_to
    - on_connect
    argTypes:
    - h2o_httpclient_t**
    - h2o_mem_pool_t*
    - void*
    - struct st_h2o_httpclient__h2_conn_t*
    - h2o_httpclient_connection_pool_t*
    - char*
    - h2o_httpclient_connect_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: connect_using_h2conn
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 0
    functionsReached:
    - create_client
    - h2o_httpclient__h2_on_connect
    linkageType: ''
    returnType: void
    signature: "void connect_using_h2conn(h2o_httpclient_t **_client, h2o_mem_pool_t
      *pool, void *data,\n                                 struct st_h2o_httpclient__h2_conn_t
      *conn, h2o_httpclient_connection_pool_t *connpool,\n                                 const
      char *upgrade_to, h2o_httpclient_connect_cb on_connect)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/httpclient.c:237,1
    - Dst: assert
      Src: /src/h2o/lib/common/httpclient.c:241,1
    - Dst: select_protocol
      Src: /src/h2o/lib/common/httpclient.c:243,1
    - Dst: strcmp
      Src: /src/h2o/lib/common/httpclient.c:249,1
    - Dst: connect_using_socket_pool
      Src: /src/h2o/lib/common/httpclient.c:256,1
    - Dst: find_h2conn
      Src: /src/h2o/lib/common/httpclient.c:260,1
    - Dst: connect_using_h2conn
      Src: /src/h2o/lib/common/httpclient.c:262,1
    - Dst: connect_using_socket_pool
      Src: /src/h2o/lib/common/httpclient.c:264,1
    - Dst: h2o_httpclient__connect_h3
      Src: /src/h2o/lib/common/httpclient.c:268,1
    - Dst: find_h2conn
      Src: /src/h2o/lib/common/httpclient.c:272,1
    - Dst: h2o_httpclient__h2_get_max_concurrent_streams
      Src: /src/h2o/lib/common/httpclient.c:277,1
    - Dst: connect_using_h2conn
      Src: /src/h2o/lib/common/httpclient.c:279,1
    - Dst: connect_using_socket_pool
      Src: /src/h2o/lib/common/httpclient.c:281,1
    - Dst: connect_using_h2conn
      Src: /src/h2o/lib/common/httpclient.c:285,1
    - Dst: connect_using_socket_pool
      Src: /src/h2o/lib/common/httpclient.c:288,1
    - Dst: connect_using_socket_pool
      Src: /src/h2o/lib/common/httpclient.c:291,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 8
    argNames:
    - _client
    - pool
    - data
    - ctx
    - connpool
    - origin
    - upgrade_to
    - on_connect
    argTypes:
    - h2o_httpclient_t**
    - h2o_mem_pool_t*
    - void*
    - h2o_httpclient_ctx_t*
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    - char*
    - h2o_httpclient_connect_cb
    assertStmts:
    - condition: (connpool != NULL)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/h2o/lib/common/httpclient.c
    constantsTouched: []
    func_position:
      end: 295
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 295
    functionName: h2o_httpclient_connect
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - connect_using_h2conn
    - find_h2conn
    - h2o_httpclient__h2_get_max_concurrent_streams
    - connect_using_socket_pool
    - strcmp
    - select_protocol
    - assert
    - h2o_httpclient__connect_h3
    linkageType: ''
    returnType: void
    signature: "void h2o_httpclient_connect(h2o_httpclient_t **_client, h2o_mem_pool_t
      *pool, void *data, h2o_httpclient_ctx_t *ctx,\n                            h2o_httpclient_connection_pool_t
      *connpool, h2o_url_t *origin, const char *upgrade_to,\n                            h2o_httpclient_connect_cb
      on_connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_protocol_version
      Src: /src/h2o/lib/common/httpclient.c:299,1
    - Dst: h2o_socket_get_ssl_session_reused
      Src: /src/h2o/lib/common/httpclient.c:300,1
    - Dst: h2o_socket_get_ssl_cipher
      Src: /src/h2o/lib/common/httpclient.c:301,1
    - Dst: h2o_socket_get_ssl_cipher_bits
      Src: /src/h2o/lib/common/httpclient.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - properties
    argTypes:
    - h2o_socket_t*
    - h2o_httpclient_conn_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: h2o_httpclient_set_conn_properties_of_socket
    functionSourceFile: /src/h2o/lib/common/httpclient.c
    functionUses: 1
    functionsReached:
    - h2o_socket_get_ssl_cipher
    - h2o_socket_get_ssl_cipher_bits
    - h2o_socket_get_ssl_protocol_version
    - h2o_socket_get_ssl_session_reused
    linkageType: ''
    returnType: void
    signature: void h2o_httpclient_set_conn_properties_of_socket(h2o_socket_t *sock,
      h2o_httpclient_conn_properties_t *properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - sock
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: SOCKET_PROBE
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKET_PROBE(label, sock, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/h2o/lib/common/socket.c:227,1
    - Dst: BIO_set_retry_read
      Src: /src/h2o/lib/common/socket.c:233,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:247,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/socket.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - b
    - out
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 251
    functionName: read_bio
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_get_data
    - BIO_set_retry_read
    - h2o_buffer_consume
    linkageType: ''
    returnType: int
    signature: int read_bio(BIO *b, char *out, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/socket.c:257,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - sock
    - bufs
    - bufcnt
    - first_buf_written
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 272
    functionName: init_write_buf
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - PTLS_ELEMENTSOF
    linkageType: ''
    returnType: void
    signature: void init_write_buf(h2o_socket_t *sock, h2o_iovec_t *bufs, size_t bufcnt,
      size_t first_buf_written)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:281,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: dispose_write_buf
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_free_recycle
    - free
    linkageType: ''
    returnType: void
    signature: void dispose_write_buf(h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:294,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/socket.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - zerocopy
    argTypes:
    - struct st_h2o_socket_ssl_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: init_ssl_output_buffer
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_recycle
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void init_ssl_output_buffer(struct st_h2o_socket_ssl_t *ssl, int zerocopy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:308,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket.c:314,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct st_h2o_socket_ssl_t*
    assertStmts:
    - condition: (ssl->output.buf.is_allocated)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: dispose_ssl_output_buffer
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_free_recycle
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void dispose_ssl_output_buffer(struct st_h2o_socket_ssl_t *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct st_h2o_socket_ssl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: has_pending_ssl_bytes
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_pending_ssl_bytes(struct st_h2o_socket_ssl_t *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:337,1
    - Dst: init_ssl_output_buffer
      Src: /src/h2o/lib/common/socket.c:338,1
    - Dst: ptls_buffer_reserve
      Src: /src/h2o/lib/common/socket.c:339,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:340,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sock
    - in
    - len
    argTypes:
    - h2o_socket_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: write_ssl_bytes
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - has_pending_ssl_bytes
    - ptls_buffer_reserve
    - memcpy
    - init_ssl_output_buffer
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void write_ssl_bytes(h2o_socket_t *sock, const void *in, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/h2o/lib/common/socket.c:348,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/socket.c:359,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/socket.c:359,1
    - Dst: quicly_decode64
      Src: /src/h2o/lib/common/socket.c:361,1
    - Dst: write_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - in
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 368
    functionName: write_bio
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - write_ssl_bytes
    - H2O_STRLIT
    - memcmp
    - quicly_decode64
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int write_bio(BIO *b, const char *in, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_bio
      Src: /src/h2o/lib/common/socket.c:372,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: puts_bio
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - strlen
    - write_bio
    linkageType: ''
    returnType: int
    signature: int puts_bio(BIO *b, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_shutdown
      Src: /src/h2o/lib/common/socket.c:379,1
    - Dst: BIO_set_shutdown
      Src: /src/h2o/lib/common/socket.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: ctrl_bio
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_shutdown
    linkageType: ''
    returnType: long
    signature: long ctrl_bio(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/lib/common/socket.c:393,1
    - Dst: BIO_meth_new
      Src: /src/h2o/lib/common/socket.c:394,1
    - Dst: BIO_meth_set_write
      Src: /src/h2o/lib/common/socket.c:395,1
    - Dst: BIO_meth_set_read
      Src: /src/h2o/lib/common/socket.c:396,1
    - Dst: BIO_meth_set_puts
      Src: /src/h2o/lib/common/socket.c:397,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/h2o/lib/common/socket.c:398,1
    - Dst: BIO_new
      Src: /src/h2o/lib/common/socket.c:401,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:403,1
    - Dst: BIO_set_data
      Src: /src/h2o/lib/common/socket.c:404,1
    - Dst: BIO_set_init
      Src: /src/h2o/lib/common/socket.c:405,1
    - Dst: SSL_set_bio
      Src: /src/h2o/lib/common/socket.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 407
    functionName: setup_bio
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_puts
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_set_data
    - BIO_new
    - H2O_MULTITHREAD_ONCE
    - BIO_set_init
    - SSL_set_bio
    - h2o_fatal
    - BIO_meth_set_read
    - BIO_meth_set_write
    linkageType: ''
    returnType: void
    signature: void setup_bio(h2o_socket_t *sock)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:411,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:412,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/socket.c:420,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:422,1
    - Dst: ptls_receive
      Src: /src/h2o/lib/common/socket.c:425,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/socket.c:429,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/socket.c:431,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:433,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:435,1
    - Dst: SSL_pending
      Src: /src/h2o/lib/common/socket.c:445,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/socket.c:447,1
    - Dst: ERR_clear_error
      Src: /src/h2o/lib/common/socket.c:453,1
    - Dst: SSL_read
      Src: /src/h2o/lib/common/socket.c:454,1
    - Dst: SSL_get_error
      Src: /src/h2o/lib/common/socket.c:460,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts:
    - condition: (sock->ssl != NULL)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl->handshake.cb == NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 472
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 472
    functionName: decode_ssl_input
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_buffer_try_reserve
    - ptls_buffer_dispose
    - SSL_pending
    - SSL_get_error
    - memcpy
    - SSL_read
    - ERR_clear_error
    - h2o_buffer_consume
    - ptls_receive
    - ptls_buffer_init
    linkageType: ''
    returnType: char
    signature: char *decode_ssl_input(h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_write
      Src: /src/h2o/lib/common/socket.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_socket_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: flush_pending_ssl
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - do_write
    linkageType: ''
    returnType: void
    signature: void flush_pending_ssl(h2o_socket_t *sock, h2o_socket_cb cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:482,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:483,1
    - Dst: ptls_free
      Src: /src/h2o/lib/common/socket.c:486,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:490,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:491,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:492,1
    - Dst: SSL_free
      Src: /src/h2o/lib/common/socket.c:494,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:497,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:498,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket.c:499,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct st_h2o_socket_ssl_t*
    assertStmts:
    - condition: (!ssl->async.inflight)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/h2o/lib/common/socket.c
    - condition: (ssl->async.ptls_wbuf.base == NULL)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: destroy_ssl
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - has_pending_ssl_bytes
    - free
    - h2o_buffer_dispose
    - ptls_free
    - SSL_free
    - dispose_ssl_output_buffer
    - SSL_is_server
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_ssl(struct st_h2o_socket_ssl_t *ssl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: destroy_ssl
      Src: /src/h2o/lib/common/socket.c:509,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:512,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:514,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:518,1
    - Dst: do_dispose_socket
      Src: /src/h2o/lib/common/socket.c:525,1
    - Dst: close_cb
      Src: /src/h2o/lib/common/socket.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: dispose_socket
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - do_dispose_socket
    - close_cb
    - free
    - destroy_ssl
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void dispose_socket(h2o_socket_t *sock, const char *err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:551,1
    - Dst: ptls_send_alert
      Src: /src/h2o/lib/common/socket.c:552,1
    - Dst: write_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:554,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:555,1
    - Dst: ERR_clear_error
      Src: /src/h2o/lib/common/socket.c:557,1
    - Dst: SSL_shutdown
      Src: /src/h2o/lib/common/socket.c:558,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:564,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:565,1
    - Dst: flush_pending_ssl
      Src: /src/h2o/lib/common/socket.c:566,1
    - Dst: dispose_socket
      Src: /src/h2o/lib/common/socket.c:571,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 572
    functionName: shutdown_ssl
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - ptls_send_alert
    - write_ssl_bytes
    - has_pending_ssl_bytes
    - SSL_shutdown
    - flush_pending_ssl
    - dispose_socket
    - ERR_clear_error
    - ptls_buffer_init
    - ptls_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void shutdown_ssl(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:576,1
    - Dst: destroy_ssl
      Src: /src/h2o/lib/common/socket.c:578,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:581,1
    - Dst: close
      Src: /src/h2o/lib/common/socket.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - h2o_socket_export_t*
    assertStmts:
    - condition: (info->fd != -1)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: h2o_socket_dispose_export
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - close
    - destroy_ssl
    - assert
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_socket_dispose_export(h2o_socket_export_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:590,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:591,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/socket.c:591,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:592,1
    - Dst: do_export
      Src: /src/h2o/lib/common/socket.c:594,1
    - Dst: h2o_buffer_set_prototype
      Src: /src/h2o/lib/common/socket.c:599,1
    - Dst: h2o_buffer_set_prototype
      Src: /src/h2o/lib/common/socket.c:602,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/socket.c:603,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socket.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - sock
    - info
    argTypes:
    - h2o_socket_t*
    - h2o_socket_export_t*
    assertStmts:
    - condition: (sock->_zerocopy == NULL)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl == NULL || !sock->ssl->async.inflight)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/h2o/lib/common/socket.c
    - condition: (!h2o_socket_is_writing(sock))
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 608
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 608
    functionName: h2o_socket_export
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_is_writing
    - h2o_socket_close
    - h2o_buffer_init
    - h2o_buffer_set_prototype
    - do_export
    - assert
    linkageType: ''
    returnType: int
    signature: int h2o_socket_export(h2o_socket_t *sock, h2o_socket_export_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:614,1
    - Dst: do_import
      Src: /src/h2o/lib/common/socket.c:616,1
    - Dst: setup_bio
      Src: /src/h2o/lib/common/socket.c:619,1
    - Dst: h2o_buffer_set_prototype
      Src: /src/h2o/lib/common/socket.c:620,1
    - Dst: h2o_buffer_set_prototype
      Src: /src/h2o/lib/common/socket.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - loop
    - info
    argTypes:
    - h2o_loop_t*
    - h2o_socket_export_t*
    assertStmts:
    - condition: (info->fd != -1)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 625
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 625
    functionName: h2o_socket_import
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_set_prototype
    - do_import
    - setup_bio
    - assert
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_socket_import(h2o_loop_t *loop, h2o_socket_export_t
      *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispose_socket
      Src: /src/h2o/lib/common/socket.c:630,1
    - Dst: shutdown_ssl
      Src: /src/h2o/lib/common/socket.c:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 627
    functionDepth: 6
    functionLinenumber: 627
    functionLinenumberEnd: 638
    functionName: h2o_socket_close
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 10
    functionsReached:
    - dispose_socket
    - shutdown_ssl
    linkageType: ''
    returnType: void
    signature: void h2o_socket_close(h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - sock
    - suggested_tls_record_size
    argTypes:
    - h2o_socket_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: calc_suggested_tls_payload_size
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t calc_suggested_tls_payload_size(h2o_socket_t *sock, uint16_t
      suggested_tls_record_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: adjust_notsent_lowat
      Src: /src/h2o/lib/common/socket.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: disable_latency_optimized_write
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - adjust_notsent_lowat
    linkageType: ''
    returnType: void
    signature: void disable_latency_optimized_write(h2o_socket_t *sock, int (*adjust_notsent_lowat)(h2o_socket_t
      *, unsigned))
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: adjust_notsent_lowat
      Src: /src/h2o/lib/common/socket.c:679,1
    - Dst: calc_suggested_tls_payload_size
      Src: /src/h2o/lib/common/socket.c:683,1
    - Dst: adjust_notsent_lowat
      Src: /src/h2o/lib/common/socket.c:688,1
    - Dst: disable_latency_optimized_write
      Src: /src/h2o/lib/common/socket.c:698,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 7
    argNames:
    - sock
    - conditions
    - rtt
    - mss
    - cwnd_size
    - cwnd_avail
    - loop_time
    argTypes:
    - h2o_socket_t*
    - h2o_socket_latency_optimization_conditions_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 699
    functionName: prepare_for_latency_optimized_write
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 3
    functionsReached:
    - disable_latency_optimized_write
    - adjust_notsent_lowat
    - calc_suggested_tls_payload_size
    linkageType: ''
    returnType: void
    signature: "void prepare_for_latency_optimized_write(h2o_socket_t *sock,\n                                                       const
      h2o_socket_latency_optimization_conditions_t *conditions, uint32_t rtt,\n                                                       uint32_t
      mss, uint32_t cwnd_size, uint32_t cwnd_avail, uint64_t loop_time,\n                                                       int
      (*adjust_notsent_lowat)(h2o_socket_t *, unsigned))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/h2o/lib/common/socket.c:718,1
    - Dst: getsockopt
      Src: /src/h2o/lib/common/socket.c:730,1
    - Dst: CALC_CWND_PAIR_FROM_BYTE_UNITS
      Src: /src/h2o/lib/common/socket.c:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - fd
    - rtt
    - mss
    - cwnd_size
    - cwnd_avail
    argTypes:
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 746
    functionName: obtain_tcp_info
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - CALC_CWND_PAIR_FROM_BYTE_UNITS
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int obtain_tcp_info(int fd, uint32_t *rtt, uint32_t *mss, uint32_t
      *cwnd_size, uint32_t *cwnd_avail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cwnd_bytes
    - ','
    - inflight_bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 713
    functionName: CALC_CWND_PAIR_FROM_BYTE_UNITS
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_CWND_PAIR_FROM_BYTE_UNITS(cwnd_bytes, inflight_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/lib/common/socket.c:751,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - notsent_lowat
    argTypes:
    - h2o_socket_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: adjust_notsent_lowat
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - h2o_socket_get_fd
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int adjust_notsent_lowat(h2o_socket_t *sock, unsigned notsent_lowat)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop_get_execution_time_millisec
      Src: /src/h2o/lib/common/socket.c:774,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socket.c:774,1
    - Dst: obtain_tcp_info
      Src: /src/h2o/lib/common/socket.c:778,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:778,1
    - Dst: prepare_for_latency_optimized_write
      Src: /src/h2o/lib/common/socket.c:783,1
    - Dst: disable_latency_optimized_write
      Src: /src/h2o/lib/common/socket.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sock
    - conditions
    argTypes:
    - h2o_socket_t*
    - h2o_socket_latency_optimization_conditions_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 791
    functionName: h2o_socket_do_prepare_for_latency_optimized_write
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - prepare_for_latency_optimized_write
    - h2o_socket_get_fd
    - h2o_evloop_get_execution_time_millisec
    - h2o_socket_get_loop
    - obtain_tcp_info
    - disable_latency_optimized_write
    linkageType: ''
    returnType: size_t
    signature: "size_t h2o_socket_do_prepare_for_latency_optimized_write(h2o_socket_t
      *sock,\n                                                         const h2o_socket_latency_optimization_conditions_t
      *conditions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calc_suggested_tls_payload_size
      Src: /src/h2o/lib/common/socket.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sock
    - bufsize
    argTypes:
    - h2o_socket_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 813
    functionName: calc_tls_write_size
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - calc_suggested_tls_payload_size
    linkageType: ''
    returnType: size_t
    signature: size_t calc_tls_write_size(h2o_socket_t *sock, size_t bufsize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calc_tls_write_size
      Src: /src/h2o/lib/common/socket.c:823,1
    - Dst: ptls_send
      Src: /src/h2o/lib/common/socket.c:843,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:844,1
    - Dst: SSL_write
      Src: /src/h2o/lib/common/socket.c:846,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:851,1
    - Dst: SOCKET_PROBE
      Src: /src/h2o/lib/common/socket.c:854,1
    - Dst: H2O_LOG_SOCK
      Src: /src/h2o/lib/common/socket.c:855,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/common/socket.c:856,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/common/socket.c:857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - sock
    - input
    - inlen
    argTypes:
    - h2o_socket_t*
    - void*
    - size_t
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 843
        line_start: 843
        source_file: /src/h2o/lib/common/socket.c
    - condition: (ret == tls_write_size)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 860
      start: 819
    functionDepth: 7
    functionLinenumber: 819
    functionLinenumberEnd: 860
    functionName: generate_tls_records_from_one_vec
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_send
    - PTLS_LOG_ELEMENT_UNSIGNED
    - SSL_write
    - calc_tls_write_size
    - SOCKET_PROBE
    - H2O_LOG_SOCK
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t generate_tls_records_from_one_vec(h2o_socket_t *sock, const
      void *input, size_t inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:868,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:868,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:876,1
    - Dst: init_ssl_output_buffer
      Src: /src/h2o/lib/common/socket.c:877,1
    - Dst: generate_tls_records_from_one_vec
      Src: /src/h2o/lib/common/socket.c:879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - sock
    - bufs
    - bufcnt
    - first_buf_written
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t**
    - size_t*
    - size_t
    assertStmts:
    - condition: (!has_pending_ssl_bytes(sock->ssl) && "we are filling encrypted bytes
        from the front, with no existing buffer, always")
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 894
      start: 866
    functionDepth: 8
    functionLinenumber: 866
    functionLinenumberEnd: 894
    functionName: generate_tls_records
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - generate_tls_records_from_one_vec
    - init_ssl_output_buffer
    - has_pending_ssl_bytes
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t generate_tls_records(h2o_socket_t *sock, h2o_iovec_t **bufs,
      size_t *bufcnt, size_t first_buf_written)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:898,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/socket.c:899,1
    - Dst: h2o_sendvec_t*::callbacks::read_
      Src: /src/h2o/lib/common/socket.c:902,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - sendvec
    argTypes:
    - h2o_socket_t*
    - h2o_sendvec_t*
    assertStmts:
    - condition: (h2o_socket_ssl_buffer_allocator.conf->memsize >= H2O_PULL_SENDVEC_MAX_SIZE)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 909
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 909
    functionName: flatten_sendvec
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_free_recycle
    - h2o_mem_alloc_recycle
    - assert
    - h2o_sendvec_t*::callbacks::read_
    linkageType: ''
    returnType: size_t
    signature: size_t flatten_sendvec(h2o_socket_t *sock, h2o_sendvec_t *sendvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SOCKET_PROBE
      Src: /src/h2o/lib/common/socket.c:913,1
    - Dst: H2O_LOG_SOCK
      Src: /src/h2o/lib/common/socket.c:914,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/common/socket.c:918,1
    - Dst: PTLS_LOG_ELEMENT_UNSIGNED
      Src: /src/h2o/lib/common/socket.c:919,1
    - Dst: PTLS_LOG_ELEMENT_PTR
      Src: /src/h2o/lib/common/socket.c:920,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:923,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:924,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket.c:930,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:930,1
    - Dst: h2o_dump_memory
      Src: /src/h2o/lib/common/socket.c:931,1
    - Dst: do_write
      Src: /src/h2o/lib/common/socket.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - sock
    - bufs
    - bufcnt
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t*
    - size_t
    - h2o_socket_cb
    assertStmts:
    - condition: (sock->_cb.write == NULL)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->_cb.write_flags == 0)
      pos:
        line_end: 923
        line_start: 923
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 936
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 936
    functionName: h2o_socket_write
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 8
    functionsReached:
    - h2o_dump_memory
    - do_write
    - h2o_error_printf
    - h2o_socket_get_fd
    - PTLS_LOG_ELEMENT_UNSIGNED
    - PTLS_LOG_ELEMENT_PTR
    - SOCKET_PROBE
    - H2O_LOG_SOCK
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_socket_write(h2o_socket_t *sock, h2o_iovec_t *bufs, size_t
      bufcnt, h2o_socket_cb cb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:940,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:941,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:942,1
    - Dst: do_write
      Src: /src/h2o/lib/common/socket.c:948,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:957,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:959,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:960,1
    - Dst: do_write_with_sendvec
      Src: /src/h2o/lib/common/socket.c:970,1
    - Dst: flatten_sendvec
      Src: /src/h2o/lib/common/socket.c:974,1
    - Dst: report_early_write_error
      Src: /src/h2o/lib/common/socket.c:976,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:979,1
    - Dst: do_write
      Src: /src/h2o/lib/common/socket.c:982,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - sock
    - vecs
    - cnt
    - flags
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_sendvec_t*
    - size_t
    - unsigned
    - h2o_socket_cb
    assertStmts:
    - condition: (sock->_cb.write == NULL)
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->_cb.write_flags == 0)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->_write_buf.flattened == NULL)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/h2o/lib/common/socket.c
    - condition: (pull_index == SIZE_MAX || !"h2o_socket_sendvec can only handle one
        pull vector at a time")
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/h2o/lib/common/socket.c
    - condition: (vecs[i].len <= H2O_PULL_SENDVEC_MAX_SIZE)
      pos:
        line_end: 959
        line_start: 959
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 983
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 983
    functionName: h2o_socket_sendvec
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - do_write
    - flatten_sendvec
    - do_write_with_sendvec
    - report_early_write_error
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_socket_sendvec(h2o_socket_t *sock, h2o_sendvec_t *vecs, size_t
      cnt, unsigned flags, h2o_socket_cb cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:989,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket.c:990,1
    - Dst: cb
      Src: /src/h2o/lib/common/socket.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 996
    functionName: on_write_complete
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - cb
    - has_pending_ssl_bytes
    - dispose_ssl_output_buffer
    linkageType: ''
    returnType: void
    signature: void on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_read_start
      Src: /src/h2o/lib/common/socket.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_socket_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    functionName: h2o_socket_read_start
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 15
    functionsReached:
    - do_read_start
    linkageType: ''
    returnType: void
    signature: void h2o_socket_read_start(h2o_socket_t *sock, h2o_socket_cb cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_read_stop
      Src: /src/h2o/lib/common/socket.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1008
    functionName: h2o_socket_read_stop
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 15
    functionsReached:
    - do_read_stop
    linkageType: ''
    returnType: void
    signature: void h2o_socket_read_stop(h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:1012,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1013,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sock
    - sa
    - len
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1016
    functionName: h2o_socket_setpeername
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_socket_setpeername(h2o_socket_t *sock, struct sockaddr *sa,
      socklen_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1022,1
    - Dst: get_peername_uncached
      Src: /src/h2o/lib/common/socket.c:1026,1
    - Dst: h2o_socket_setpeername
      Src: /src/h2o/lib/common/socket.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1029
    functionName: h2o_socket_getpeername
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - memcpy
    - get_peername_uncached
    - h2o_socket_setpeername
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t h2o_socket_getpeername(h2o_socket_t *sock, struct sockaddr
      *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1035,1
    - Dst: get_sockname_uncached
      Src: /src/h2o/lib/common/socket.c:1039,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1040,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1044
    functionName: h2o_socket_getsockname
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc
    - memcpy
    - get_sockname_uncached
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t h2o_socket_getsockname(h2o_socket_t *sock, struct sockaddr
      *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: h2o_socket_get_ptls
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *h2o_socket_get_ptls(h2o_socket_t *sock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_protocol_version
      Src: /src/h2o/lib/common/socket.c:1055,1
    - Dst: SSL_get_version
      Src: /src/h2o/lib/common/socket.c:1065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1068
    functionName: h2o_socket_get_ssl_protocol_version
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - SSL_get_version
    - ptls_get_protocol_version
    linkageType: ''
    returnType: char
    signature: char *h2o_socket_get_ssl_protocol_version(h2o_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_psk_handshake
      Src: /src/h2o/lib/common/socket.c:1074,1
    - Dst: SSL_session_reused
      Src: /src/h2o/lib/common/socket.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1079
    functionName: h2o_socket_get_ssl_session_reused
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 3
    functionsReached:
    - SSL_session_reused
    - ptls_is_psk_handshake
    linkageType: ''
    returnType: int
    signature: int h2o_socket_get_ssl_session_reused(h2o_socket_t *sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/socket.c:1085,1
    - Dst: SSL_get_cipher_name
      Src: /src/h2o/lib/common/socket.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1093
    functionName: h2o_socket_get_ssl_cipher
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - ptls_get_cipher
    - SSL_get_cipher_name
    linkageType: ''
    returnType: char
    signature: char *h2o_socket_get_ssl_cipher(h2o_socket_t *sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/socket.c:1099,1
    - Dst: SSL_get_cipher_bits
      Src: /src/h2o/lib/common/socket.c:1104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1108
    functionName: h2o_socket_get_ssl_cipher_bits
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - ptls_get_cipher
    - SSL_get_cipher_bits
    linkageType: ''
    returnType: int
    signature: int h2o_socket_get_ssl_cipher_bits(h2o_socket_t *sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_session
      Src: /src/h2o/lib/common/socket.c:1118,1
    - Dst: SSL_SESSION_get_id
      Src: /src/h2o/lib/common/socket.c:1120,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1121,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1127
    functionName: h2o_socket_get_ssl_session_id
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_get_session
    - SSL_SESSION_get_id
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_get_ssl_session_id(h2o_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_server_name
      Src: /src/h2o/lib/common/socket.c:1133,1
    - Dst: SSL_get_servername
      Src: /src/h2o/lib/common/socket.c:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1139
    functionName: h2o_socket_get_ssl_server_name
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - SSL_get_servername
    - ptls_get_server_name
    linkageType: ''
    returnType: char
    signature: char *h2o_socket_get_ssl_server_name(const h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: can_tls_offload
      Src: /src/h2o/lib/common/socket.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1151
    functionName: h2o_socket_can_tls_offload
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - can_tls_offload
    linkageType: ''
    returnType: int
    signature: int h2o_socket_can_tls_offload(h2o_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:1157,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1160,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1160,1
    - Dst: getsockopt
      Src: /src/h2o/lib/common/socket.c:1161,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1165,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:1165,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:1168,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1173
    functionName: h2o_socket_log_tcp_congestion_controller
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_get_fd
    - h2o_mem_alloc_pool
    - free
    - h2o_mem_alloc
    - strlen
    - getsockopt
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_tcp_congestion_controller(h2o_socket_t *sock,
      h2o_mem_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:1179,1
    - Dst: getsockopt
      Src: /src/h2o/lib/common/socket.c:1239,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1240,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1241,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:1242,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1243,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1248
    functionName: h2o_socket_log_tcp_delivery_rate
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_get_fd
    - h2o_mem_alloc_pool
    - h2o_mem_alloc
    - sprintf
    - getsockopt
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_tcp_delivery_rate(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_session_id
      Src: /src/h2o/lib/common/socket.c:1252,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1255,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1257,1
    - Dst: h2o_base64_encode_capacity
      Src: /src/h2o/lib/common/socket.c:1257,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1258,1
    - Dst: h2o_base64_encode_capacity
      Src: /src/h2o/lib/common/socket.c:1258,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/common/socket.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1261
    functionName: h2o_socket_log_ssl_session_id
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_base64_encode_capacity
    - h2o_mem_alloc_pool
    - h2o_socket_get_ssl_session_id
    - h2o_mem_alloc
    - h2o_base64_encode
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_session_id(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_get_ssl_cipher_bits
      Src: /src/h2o/lib/common/socket.c:1265,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1267,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1268,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:1269,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1270,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1274
    functionName: h2o_socket_log_ssl_cipher_bits
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - h2o_mem_alloc
    - h2o_socket_get_ssl_cipher_bits
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_cipher_bits(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/common/socket.c:1280,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1281,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1282,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:1283,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1284,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1288
    functionName: h2o_socket_log_ssl_ech_config_id
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - ptls_is_ech_handshake
    - h2o_mem_alloc
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_ech_config_id(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/common/socket.c:1294,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1295,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:1295,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1299
    functionName: h2o_socket_log_ssl_ech_kem
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_is_ech_handshake
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_ech_kem(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/common/socket.c:1305,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1306,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:1306,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1310
    functionName: h2o_socket_log_ssl_ech_cipher
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_is_ech_handshake
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_ech_cipher(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/common/socket.c:1316,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/socket.c:1318,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1319,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:1320,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1321,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1325
    functionName: h2o_socket_log_ssl_ech_cipher_bits
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - ptls_is_ech_handshake
    - h2o_mem_alloc
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_ech_cipher_bits(h2o_socket_t *sock,
      h2o_mem_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1330,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/socket.c:1330,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1332,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/socket.c:1332,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - pool
    argTypes:
    - h2o_socket_t*
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1334
    functionName: h2o_socket_log_ssl_backend
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_log_ssl_backend(h2o_socket_t *sock, h2o_mem_pool_t
      *pool)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/h2o/lib/common/socket.c:1344,1
    - Dst: strcmp
      Src: /src/h2o/lib/common/socket.c:1348,1
    - Dst: CMP
      Src: /src/h2o/lib/common/socket.c:1353,1
    - Dst: ntohl
      Src: /src/h2o/lib/common/socket.c:1353,1
    - Dst: ntohl
      Src: /src/h2o/lib/common/socket.c:1353,1
    - Dst: CMP
      Src: /src/h2o/lib/common/socket.c:1355,1
    - Dst: ntohs
      Src: /src/h2o/lib/common/socket.c:1355,1
    - Dst: ntohs
      Src: /src/h2o/lib/common/socket.c:1355,1
    - Dst: memcmp
      Src: /src/h2o/lib/common/socket.c:1358,1
    - Dst: CMP
      Src: /src/h2o/lib/common/socket.c:1362,1
    - Dst: ntohs
      Src: /src/h2o/lib/common/socket.c:1362,1
    - Dst: ntohs
      Src: /src/h2o/lib/common/socket.c:1362,1
    - Dst: CMP
      Src: /src/h2o/lib/common/socket.c:1363,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - x
    - y
    - check_port
    argTypes:
    - struct sockaddr*
    - struct sockaddr*
    - int
    assertStmts:
    - condition: (!"unknown sa_family")
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1370
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1370
    functionName: h2o_socket_compare_address
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 4
    functionsReached:
    - assert
    - memcmp
    - ntohl
    - strcmp
    - CMP
    - ntohs
    linkageType: ''
    returnType: int
    signature: int h2o_socket_compare_address(struct sockaddr *x, struct sockaddr
      *y, int check_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1343
    functionName: CMP
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/h2o/lib/common/socket.c:1378,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:1379,1
    - Dst: getnameinfo
      Src: /src/h2o/lib/common/socket.c:1382,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:1384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sa
    - salen
    - buf
    argTypes:
    - struct sockaddr*
    - socklen_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1385
    functionName: h2o_socket_getnumerichost
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 3
    functionsReached:
    - htonl
    - getnameinfo
    - strlen
    - sprintf
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_socket_getnumerichost(const struct sockaddr *sa, socklen_t
      salen, char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/h2o/lib/common/socket.c:1391,1
    - Dst: htons
      Src: /src/h2o/lib/common/socket.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1397
    functionName: h2o_socket_getport
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - htons
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2o_socket_getport(const struct sockaddr *sa)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - errnum
    - default_err
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1413
    functionName: h2o_socket_get_error_string
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h2o_socket_get_error_string(int errnum, const char *default_err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/h2o/lib/common/socket.c:1417,1
    - Dst: SSL_set_accept_state
      Src: /src/h2o/lib/common/socket.c:1420,1
    - Dst: SSL_set_connect_state
      Src: /src/h2o/lib/common/socket.c:1422,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1425,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1425,1
    - Dst: SSL_set_app_data
      Src: /src/h2o/lib/common/socket.c:1428,1
    - Dst: setup_bio
      Src: /src/h2o/lib/common/socket.c:1429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - is_server
    argTypes:
    - h2o_socket_t*
    - int
    assertStmts:
    - condition: (SSL_is_server(sock->ssl->ossl) == !!is_server)
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1430
      start: 1415
    functionDepth: 3
    functionLinenumber: 1415
    functionLinenumberEnd: 1430
    functionName: create_ossl
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_set_app_data
    - SSL_set_connect_state
    - SSL_new
    - SSL_is_server
    - SSL_set_accept_state
    - setup_bio
    - assert
    linkageType: ''
    returnType: void
    signature: void create_ossl(h2o_socket_t *sock, int is_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/h2o/lib/common/socket.c:1461,1
    - Dst: SSL_get_rbio
      Src: /src/h2o/lib/common/socket.c:1461,1
    - Dst: SSL_client_hello_get0_session_id
      Src: /src/h2o/lib/common/socket.c:1466,1
    - Dst: resumption_get_async
      Src: /src/h2o/lib/common/socket.c:1468,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1473
    functionName: on_async_resumption_client_hello
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - resumption_get_async
    - BIO_get_data
    - SSL_client_hello_get0_session_id
    - SSL_get_rbio
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_async_resumption_client_hello(SSL *ssl, int *al, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_app_data
      Src: /src/h2o/lib/common/socket.c:1478,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1479,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1480,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1482,1
    - Dst: defined
      Src: /src/h2o/lib/common/socket.c:1483,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/h2o/lib/common/socket.c:1484,1
    - Dst: h2o_cache_set
      Src: /src/h2o/lib/common/socket.c:1487,1
    - Dst: h2o_now
      Src: /src/h2o/lib/common/socket.c:1487,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socket.c:1487,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - s
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts:
    - condition: (sock != NULL)
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl != NULL)
      pos:
        line_end: 1479
        line_start: 1479
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: h2o_socket_ssl_new_session_cb
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_cache_set
    - h2o_now
    - h2o_socket_get_loop
    - SSL_SESSION_is_resumable
    - SSL_get_app_data
    - defined
    - SSL_is_server
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int h2o_socket_ssl_new_session_cb(SSL *s, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/h2o/lib/common/socket.c:1498,1
    - Dst: SSL_get_rbio
      Src: /src/h2o/lib/common/socket.c:1498,1
    - Dst: i2d_SSL_SESSION
      Src: /src/h2o/lib/common/socket.c:1506,1
    - Dst: alloca
      Src: /src/h2o/lib/common/socket.c:1507,1
    - Dst: i2d_SSL_SESSION
      Src: /src/h2o/lib/common/socket.c:1509,1
    - Dst: SSL_SESSION_get_id
      Src: /src/h2o/lib/common/socket.c:1511,1
    - Dst: resumption_new
      Src: /src/h2o/lib/common/socket.c:1512,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1514
    functionName: on_async_resumption_new
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - i2d_SSL_SESSION
    - BIO_get_data
    - SSL_get_rbio
    - resumption_new
    - alloca
    - SSL_SESSION_get_id
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_async_resumption_new(SSL *ssl, SSL_SESSION *session)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_version
      Src: /src/h2o/lib/common/socket.c:1532,1
    - Dst: h2o_socket_ssl_get_picotls_context
      Src: /src/h2o/lib/common/socket.c:1535,1
    - Dst: ptls_find_cipher_suite
      Src: /src/h2o/lib/common/socket.c:1540,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:1558,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/h2o/lib/common/socket.c:1561,1
    - Dst: SSL_get_session
      Src: /src/h2o/lib/common/socket.c:1561,1
    - Dst: SSL_get_server_random
      Src: /src/h2o/lib/common/socket.c:1563,1
    - Dst: SSL_get_client_random
      Src: /src/h2o/lib/common/socket.c:1565,1
    - Dst: h2o_socket_ssl_get_selected_protocol
      Src: /src/h2o/lib/common/socket.c:1570,1
    - Dst: ptls_build_tls12_export_params
      Src: /src/h2o/lib/common/socket.c:1571,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1571,1
    - Dst: SSL_session_reused
      Src: /src/h2o/lib/common/socket.c:1571,1
    - Dst: h2o_socket_get_ssl_server_name
      Src: /src/h2o/lib/common/socket.c:1573,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/lib/common/socket.c:1574,1
    - Dst: ptls_import
      Src: /src/h2o/lib/common/socket.c:1577,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/lib/common/socket.c:1577,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1578,1
    - Dst: SSL_set_shutdown
      Src: /src/h2o/lib/common/socket.c:1582,1
    - Dst: SSL_free
      Src: /src/h2o/lib/common/socket.c:1583,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/lib/common/socket.c:1588,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:1589,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 2
    argNames:
    - sock
    - csid
    argTypes:
    - h2o_socket_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1519
    functionDepth: 6
    functionLinenumber: 1519
    functionLinenumberEnd: 1591
    functionName: switch_to_picotls
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_build_tls12_export_params
    - h2o_socket_ssl_get_picotls_context
    - ptls_import
    - SSL_set_shutdown
    - ptls_iovec_init
    - ptls_find_cipher_suite
    - SSL_is_server
    - ptls_clear_memory
    - h2o_socket_ssl_get_selected_protocol
    - SSL_get_client_random
    - SSL_session_reused
    - h2o_socket_get_ssl_server_name
    - SSL_SESSION_get_master_key
    - SSL_get_session
    - h2o_fatal
    - ptls_buffer_init
    - ptls_buffer_dispose
    - SSL_free
    - SSL_get_server_random
    - SSL_version
    linkageType: ''
    returnType: void
    signature: void switch_to_picotls(h2o_socket_t *sock, uint16_t csid)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1595,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1597,1
    - Dst: shutdown_ssl
      Src: /src/h2o/lib/common/socket.c:1599,1
    - Dst: SSL_get_current_cipher
      Src: /src/h2o/lib/common/socket.c:1605,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/h2o/lib/common/socket.c:1606,1
    - Dst: switch_to_picotls
      Src: /src/h2o/lib/common/socket.c:1635,1
    - Dst: ptls_get_record_overhead
      Src: /src/h2o/lib/common/socket.c:1638,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1640,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/socket.c:1641,1
    - Dst: setsockopt
      Src: /src/h2o/lib/common/socket.c:1644,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/common/socket.c:1644,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:1645,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1651,1
    - Dst: decode_ssl_input
      Src: /src/h2o/lib/common/socket.c:1659,1
    - Dst: handshake_cb
      Src: /src/h2o/lib/common/socket.c:1660,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (sock->ssl->handshake.cb != NULL)
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/h2o/lib/common/socket.c
    - condition: (!sock->ssl->async.inflight)
      pos:
        line_end: 1596
        line_start: 1596
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->_zerocopy == NULL)
      pos:
        line_end: 1639
        line_start: 1639
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl->ossl != NULL)
      pos:
        line_end: 1650
        line_start: 1650
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1661
      start: 1593
    functionDepth: 7
    functionLinenumber: 1593
    functionLinenumberEnd: 1661
    functionName: on_handshake_complete
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - decode_ssl_input
    - h2o_socket_get_fd
    - SSL_get_current_cipher
    - setsockopt
    - ptls_get_record_overhead
    - switch_to_picotls
    - handshake_cb
    - h2o_mem_alloc
    - SSL_CIPHER_get_id
    - shutdown_ssl
    - assert
    linkageType: ''
    returnType: void
    signature: void on_handshake_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_verify_result
      Src: /src/h2o/lib/common/socket.c:1667,1
    - Dst: X509_verify_cert_error_string
      Src: /src/h2o/lib/common/socket.c:1669,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct st_h2o_socket_ssl_t*
    assertStmts:
    - condition: (err != NULL)
      pos:
        line_end: 1669
        line_start: 1669
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1674
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1674
    functionName: get_handshake_error
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_get_verify_result
    - assert
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: char
    signature: char *get_handshake_error(struct st_h2o_socket_ssl_t *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_handshake_complete
      Src: /src/h2o/lib/common/socket.c:1678,1
    - Dst: get_handshake_error
      Src: /src/h2o/lib/common/socket.c:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1679
    functionName: on_handshake_fail_complete
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - get_handshake_error
    - on_handshake_complete
    linkageType: ''
    returnType: void
    signature: void on_handshake_fail_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/h2o/lib/common/socket.c:1688,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1690,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/socket.c:1690,1
    - Dst: h2o_uv__poll_create
      Src: /src/h2o/lib/common/socket.c:1695,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/socket.c:1697,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/socket.c:1700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - loop
    - async_fd
    - data
    - cb
    argTypes:
    - h2o_loop_t*
    - int
    - void*
    - h2o_socket_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1701
    functionName: h2o_socket_start_async_handshake
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_strerror_r
    - h2o_uv__poll_create
    - dup
    - h2o_fatal
    - h2o_socket_read_start
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: void
    signature: void h2o_socket_start_async_handshake(h2o_loop_t *loop, int async_fd,
      void *data, h2o_socket_cb cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1706,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1713,1
    - Dst: dispose_socket
      Src: /src/h2o/lib/common/socket.c:1714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - async_sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1703
    functionDepth: 5
    functionLinenumber: 1703
    functionLinenumberEnd: 1717
    functionName: h2o_socket_async_handshake_on_notify
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - dispose_socket
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void *h2o_socket_async_handshake_on_notify(h2o_socket_t *async_sock,
      const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_async_handshake_on_notify
      Src: /src/h2o/lib/common/socket.c:1721,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1723,1
    - Dst: proceed_handshake
      Src: /src/h2o/lib/common/socket.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - async_sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (sock->ssl->async.inflight)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1727
      start: 1719
    functionDepth: 6
    functionLinenumber: 1719
    functionLinenumberEnd: 1727
    functionName: on_async_proceed_handshake
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_async_handshake_on_notify
    - proceed_handshake
    - assert
    linkageType: ''
    returnType: void
    signature: void on_async_proceed_handshake(h2o_socket_t *async_sock, const char
      *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1735,1
    - Dst: proceed_handshake
      Src: /src/h2o/lib/common/socket.c:1738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - void*
    assertStmts:
    - condition: (sock->ssl->async.inflight)
      pos:
        line_end: 1734
        line_start: 1734
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1739
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1739
    functionName: on_async_job_complete
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - proceed_handshake
    - assert
    linkageType: ''
    returnType: void
    signature: void on_async_job_complete(void *_sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1743,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1745,1
    - Dst: ptls_get_async_job
      Src: /src/h2o/lib/common/socket.c:1751,1
    - Dst: ptls_async_job_t*::set_completion_callback
      Src: /src/h2o/lib/common/socket.c:1754,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1757,1
    - Dst: ptls_async_job_t*::get_fd
      Src: /src/h2o/lib/common/socket.c:1758,1
    - Dst: h2o_socket_start_async_handshake
      Src: /src/h2o/lib/common/socket.c:1759,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socket.c:1759,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1761,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1766,1
    - Dst: SSL_get_all_async_fds
      Src: /src/h2o/lib/common/socket.c:1769,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1770,1
    - Dst: SSL_get_all_async_fds
      Src: /src/h2o/lib/common/socket.c:1771,1
    - Dst: h2o_socket_start_async_handshake
      Src: /src/h2o/lib/common/socket.c:1772,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socket.c:1772,1
    - Dst: SSL_get_ex_data
      Src: /src/h2o/lib/common/socket.c:1774,1
    - Dst: h2o_socket_boringssl_get_async_job_index
      Src: /src/h2o/lib/common/socket.c:1774,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1775,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1776,1
    - Dst: ptls_async_job_t*::set_completion_callback
      Src: /src/h2o/lib/common/socket.c:1777,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - sock
    - ptls_wbuf
    argTypes:
    - h2o_socket_t*
    - ptls_buffer_t*
    assertStmts:
    - condition: (numfds == 1)
      pos:
        line_end: 1769
        line_start: 1769
        source_file: /src/h2o/lib/common/socket.c
    - condition: (job != NULL)
      pos:
        line_end: 1774
        line_start: 1774
        source_file: /src/h2o/lib/common/socket.c
    - condition: (!sock->ssl->async.inflight)
      pos:
        line_end: 1742
        line_start: 1742
        source_file: /src/h2o/lib/common/socket.c
    - condition: (job->get_fd != NULL)
      pos:
        line_end: 1756
        line_start: 1756
        source_file: /src/h2o/lib/common/socket.c
    - condition: (ptls_wbuf == NULL)
      pos:
        line_end: 1765
        line_start: 1765
        source_file: /src/h2o/lib/common/socket.c
    - condition: (job->set_completion_callback != NULL)
      pos:
        line_end: 1775
        line_start: 1775
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1782
      start: 1741
    functionDepth: 2
    functionLinenumber: 1741
    functionLinenumberEnd: 1782
    functionName: do_proceed_handshake_async
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - ptls_get_async_job
    - h2o_socket_get_loop
    - SSL_get_all_async_fds
    - h2o_socket_start_async_handshake
    - ptls_async_job_t*::get_fd
    - ptls_async_job_t*::set_completion_callback
    - h2o_fatal
    - h2o_socket_boringssl_get_async_job_index
    - SSL_get_ex_data
    - assert
    linkageType: ''
    returnType: void
    signature: void do_proceed_handshake_async(h2o_socket_t *sock, ptls_buffer_t *ptls_wbuf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:1793,1
    - Dst: ptls_handshake
      Src: /src/h2o/lib/common/socket.c:1796,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/socket.c:1797,1
    - Dst: do_proceed_handshake_async
      Src: /src/h2o/lib/common/socket.c:1800,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1821,1
    - Dst: write_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:1822,1
    - Dst: flush_pending_ssl
      Src: /src/h2o/lib/common/socket.c:1823,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/socket.c:1825,1
    - Dst: next_cb
      Src: /src/h2o/lib/common/socket.c:1827,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:1830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1784
    functionDepth: 10
    functionLinenumber: 1784
    functionLinenumberEnd: 1831
    functionName: proceed_handshake_picotls
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - write_ssl_bytes
    - ptls_handshake
    - ptls_buffer_dispose
    - next_cb
    - flush_pending_ssl
    - h2o_buffer_consume
    - do_proceed_handshake_async
    - h2o_socket_read_start
    - ptls_buffer_init
    linkageType: ''
    returnType: void
    signature: void proceed_handshake_picotls(h2o_socket_t *sock)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1839,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1841,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:1844,1
    - Dst: alloca
      Src: /src/h2o/lib/common/socket.c:1844,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1845,1
    - Dst: ERR_clear_error
      Src: /src/h2o/lib/common/socket.c:1852,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1853,1
    - Dst: SSL_accept
      Src: /src/h2o/lib/common/socket.c:1854,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1864,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1866,1
    - Dst: SSL_get_error
      Src: /src/h2o/lib/common/socket.c:1866,1
    - Dst: SSL_free
      Src: /src/h2o/lib/common/socket.c:1869,1
    - Dst: create_ossl
      Src: /src/h2o/lib/common/socket.c:1870,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:1871,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket.c:1872,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/socket.c:1873,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/socket.c:1874,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:1875,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1877,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1881,1
    - Dst: SSL_connect
      Src: /src/h2o/lib/common/socket.c:1885,1
    - Dst: SSL_get_error
      Src: /src/h2o/lib/common/socket.c:1889,1
    - Dst: SSL_get_error
      Src: /src/h2o/lib/common/socket.c:1892,1
    - Dst: SSL_get_error
      Src: /src/h2o/lib/common/socket.c:1894,1
    - Dst: do_proceed_handshake_async
      Src: /src/h2o/lib/common/socket.c:1897,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:1903,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1904,1
    - Dst: flush_pending_ssl
      Src: /src/h2o/lib/common/socket.c:1905,1
    - Dst: get_handshake_error
      Src: /src/h2o/lib/common/socket.c:1908,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:1912,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1913,1
    - Dst: flush_pending_ssl
      Src: /src/h2o/lib/common/socket.c:1914,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:1917,1
    - Dst: SSL_get_peer_certificate
      Src: /src/h2o/lib/common/socket.c:1918,1
    - Dst: validate_hostname
      Src: /src/h2o/lib/common/socket.c:1920,1
    - Dst: X509_free
      Src: /src/h2o/lib/common/socket.c:1931,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/socket.c:1941,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1946,1
    - Dst: on_handshake_complete
      Src: /src/h2o/lib/common/socket.c:1947,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 94
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts:
    - condition: (ret < 0)
      pos:
        line_end: 1863
        line_start: 1863
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl->ossl != NULL)
      pos:
        line_end: 1838
        line_start: 1838
        source_file: /src/h2o/lib/common/socket.c
    - condition: "(SSL_get_error(sock->ssl->ossl, ret) != SSL_ERROR_WANT_ASYNC &&\n
        \                  \"async operation should start only after resumption state
        is obtained and OpenSSL decides not to resume\")"
      pos:
        line_end: 1866
        line_start: 1865
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 1948
      start: 1833
    functionDepth: 5
    functionLinenumber: 1833
    functionLinenumberEnd: 1948
    functionName: proceed_handshake_openssl
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - validate_hostname
    - do_proceed_handshake_async
    - assert
    - h2o_socket_read_start
    - h2o_iovec_init
    - SSL_get_peer_certificate
    - has_pending_ssl_bytes
    - SSL_connect
    - SSL_is_server
    - h2o_buffer_consume
    - SSL_accept
    - SSL_get_error
    - create_ossl
    - memcpy
    - ERR_clear_error
    - on_handshake_complete
    - alloca
    - h2o_fatal
    - h2o_socket_read_stop
    - h2o_buffer_reserve
    - dispose_ssl_output_buffer
    - SSL_free
    - flush_pending_ssl
    - get_handshake_error
    - X509_free
    linkageType: ''
    returnType: void
    signature: void proceed_handshake_openssl(h2o_socket_t *sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1957,1
    - Dst: h2o_socket_ssl_get_picotls_context
      Src: /src/h2o/lib/common/socket.c:1959,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:1960,1
    - Dst: ptls_buffer_init
      Src: /src/h2o/lib/common/socket.c:1964,1
    - Dst: ptls_new
      Src: /src/h2o/lib/common/socket.c:1967,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket.c:1970,1
    - Dst: ptls_get_data_ptr
      Src: /src/h2o/lib/common/socket.c:1971,1
    - Dst: ptls_handshake
      Src: /src/h2o/lib/common/socket.c:1972,1
    - Dst: ptls_free
      Src: /src/h2o/lib/common/socket.c:1976,1
    - Dst: ptls_free
      Src: /src/h2o/lib/common/socket.c:1979,1
    - Dst: create_ossl
      Src: /src/h2o/lib/common/socket.c:1980,1
    - Dst: proceed_handshake_openssl
      Src: /src/h2o/lib/common/socket.c:1981,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/socket.c:1986,1
    - Dst: do_proceed_handshake_async
      Src: /src/h2o/lib/common/socket.c:1988,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:1992,1
    - Dst: write_ssl_bytes
      Src: /src/h2o/lib/common/socket.c:1993,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2003,1
    - Dst: flush_pending_ssl
      Src: /src/h2o/lib/common/socket.c:2007,1
    - Dst: ptls_buffer_dispose
      Src: /src/h2o/lib/common/socket.c:2009,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts:
    - condition: (ret != PTLS_ERROR_STATELESS_RETRY && "stateless retry is never turned
        on by us for TCP")
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/h2o/lib/common/socket.c
    - condition: (ptls_ctx != NULL)
      pos:
        line_end: 1959
        line_start: 1959
        source_file: /src/h2o/lib/common/socket.c
    - condition: (sock->ssl->ossl == NULL && sock->ssl->ptls == NULL)
      pos:
        line_end: 1956
        line_start: 1956
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2010
      start: 1955
    functionDepth: 10
    functionLinenumber: 1955
    functionLinenumberEnd: 2010
    functionName: proceed_handshake_undetermined
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_socket_read_stop
    - write_ssl_bytes
    - h2o_socket_ssl_get_picotls_context
    - ptls_handshake
    - ptls_buffer_dispose
    - ptls_get_data_ptr
    - ptls_free
    - create_ossl
    - flush_pending_ssl
    - proceed_handshake_openssl
    - h2o_buffer_consume
    - do_proceed_handshake_async
    - h2o_fatal
    - ptls_buffer_init
    - ptls_new
    linkageType: ''
    returnType: void
    signature: void proceed_handshake_undetermined(h2o_socket_t *sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2014,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/socket.c:2019,1
    - Dst: on_handshake_complete
      Src: /src/h2o/lib/common/socket.c:2020,1
    - Dst: proceed_handshake_picotls
      Src: /src/h2o/lib/common/socket.c:2025,1
    - Dst: proceed_handshake_openssl
      Src: /src/h2o/lib/common/socket.c:2027,1
    - Dst: h2o_socket_ssl_get_picotls_context
      Src: /src/h2o/lib/common/socket.c:2028,1
    - Dst: create_ossl
      Src: /src/h2o/lib/common/socket.c:2029,1
    - Dst: proceed_handshake_openssl
      Src: /src/h2o/lib/common/socket.c:2030,1
    - Dst: proceed_handshake_undetermined
      Src: /src/h2o/lib/common/socket.c:2032,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (!sock->ssl->async.inflight && "while async operation is inflight,
        the socket should be neither reading nor writing")
      pos:
        line_end: 2013
        line_start: 2013
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2034
      start: 2012
    functionDepth: 11
    functionLinenumber: 2012
    functionLinenumberEnd: 2034
    functionName: proceed_handshake
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - h2o_socket_read_stop
    - h2o_socket_ssl_get_picotls_context
    - proceed_handshake_picotls
    - create_ossl
    - on_handshake_complete
    - proceed_handshake_openssl
    - proceed_handshake_undetermined
    - assert
    linkageType: ''
    returnType: void
    signature: void proceed_handshake(h2o_socket_t *sock, const char *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:2039,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/socket.c:2049,1
    - Dst: SSL_CTX_sess_get_get_cb
      Src: /src/h2o/lib/common/socket.c:2058,1
    - Dst: proceed_handshake
      Src: /src/h2o/lib/common/socket.c:2061,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/socket.c:2063,1
    - Dst: create_ossl
      Src: /src/h2o/lib/common/socket.c:2065,1
    - Dst: SSL_set_alpn_protos
      Src: /src/h2o/lib/common/socket.c:2067,1
    - Dst: h2o_socket_ssl_get_session_cache
      Src: /src/h2o/lib/common/socket.c:2068,1
    - Dst: h2o_socket_getpeername
      Src: /src/h2o/lib/common/socket.c:2072,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/common/socket.c:2073,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:2076,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:2076,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socket.c:2077,1
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/common/socket.c:2081,1
    - Dst: h2o_cache_fetch
      Src: /src/h2o/lib/common/socket.c:2084,1
    - Dst: h2o_now
      Src: /src/h2o/lib/common/socket.c:2084,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socket.c:2084,1
    - Dst: SSL_set_session
      Src: /src/h2o/lib/common/socket.c:2088,1
    - Dst: h2o_cache_release
      Src: /src/h2o/lib/common/socket.c:2089,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/socket.c:2093,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/h2o/lib/common/socket.c:2094,1
    - Dst: proceed_handshake
      Src: /src/h2o/lib/common/socket.c:2095,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - sock
    - ssl_ctx
    - server_name
    - alpn_protos
    - handshake_cb
    argTypes:
    - h2o_socket_t*
    - SSL_CTX*
    - char*
    - h2o_iovec_t
    - h2o_socket_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2036
    functionDepth: 12
    functionLinenumber: 2036
    functionLinenumberEnd: 2097
    functionName: h2o_socket_ssl_handshake
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - h2o_now
    - sprintf
    - h2o_cache_release
    - h2o_socket_read_start
    - h2o_socket_getport
    - h2o_strdup
    - SSL_CTX_sess_get_get_cb
    - h2o_buffer_init
    - h2o_socket_ssl_get_session_cache
    - SSL_set_alpn_protos
    - h2o_socket_get_loop
    - proceed_handshake
    - create_ossl
    - h2o_mem_alloc
    - h2o_cache_fetch
    - SSL_set_session
    - strlen
    - h2o_socket_getpeername
    - SSL_set_tlsext_host_name
    - h2o_cache_calchash
    linkageType: ''
    returnType: void
    signature: "void h2o_socket_ssl_handshake(h2o_socket_t *sock, SSL_CTX *ssl_ctx,
      const char *server_name, h2o_iovec_t alpn_protos,\n                              h2o_socket_cb
      handshake_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d2i_SSL_SESSION
      Src: /src/h2o/lib/common/socket.c:2103,1
    - Dst: proceed_handshake
      Src: /src/h2o/lib/common/socket.c:2108,1
    - Dst: SSL_SESSION_free
      Src: /src/h2o/lib/common/socket.c:2111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - session_data
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2099
    functionDepth: 12
    functionLinenumber: 2099
    functionLinenumberEnd: 2114
    functionName: h2o_socket_ssl_resume_server_handshake
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 3
    functionsReached:
    - d2i_SSL_SESSION
    - proceed_handshake
    - SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: void h2o_socket_ssl_resume_server_handshake(h2o_socket_t *sock, h2o_iovec_t
      session_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - get_async_cb
    - new_cb
    argTypes:
    - h2o_socket_ssl_resumption_get_async_cb
    - h2o_socket_ssl_resumption_new_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2116
    functionDepth: 0
    functionLinenumber: 2116
    functionLinenumberEnd: 2121
    functionName: h2o_socket_ssl_async_resumption_init
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void h2o_socket_ssl_async_resumption_init(h2o_socket_ssl_resumption_get_async_cb
      get_async_cb,\n                                          h2o_socket_ssl_resumption_new_cb
      new_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/h2o/lib/common/socket.c:2140,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/h2o/lib/common/socket.c:2141,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/h2o/lib/common/socket.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2147
    functionName: h2o_socket_ssl_async_resumption_setup_ctx
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_sess_set_get_cb
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_sess_set_new_cb
    linkageType: ''
    returnType: void
    signature: void h2o_socket_ssl_async_resumption_setup_ctx(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/lib/common/socket.c:2152,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/h2o/lib/common/socket.c:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2154
    functionName: get_ptls_index
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_new_index
    - H2O_MULTITHREAD_ONCE
    linkageType: ''
    returnType: int
    signature: int get_ptls_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/lib/common/socket.c:2158,1
    - Dst: get_ptls_index
      Src: /src/h2o/lib/common/socket.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ossl
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2159
    functionName: h2o_socket_ssl_get_picotls_context
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 3
    functionsReached:
    - SSL_CTX_get_ex_data
    - get_ptls_index
    linkageType: ''
    returnType: ptls_context_t
    signature: ptls_context_t *h2o_socket_ssl_get_picotls_context(SSL_CTX *ossl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ex_data
      Src: /src/h2o/lib/common/socket.c:2163,1
    - Dst: get_ptls_index
      Src: /src/h2o/lib/common/socket.c:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ossl
    - ptls
    argTypes:
    - SSL_CTX*
    - ptls_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2164
    functionName: h2o_socket_ssl_set_picotls_context
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_ex_data
    - get_ptls_index
    linkageType: ''
    returnType: void
    signature: void h2o_socket_ssl_set_picotls_context(SSL_CTX *ossl, ptls_context_t
      *ptls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_destroy
      Src: /src/h2o/lib/common/socket.c:2170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2171
    functionName: on_dispose_ssl_ctx_session_cache
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - h2o_cache_destroy
    linkageType: ''
    returnType: void
    signature: void on_dispose_ssl_ctx_session_cache(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/lib/common/socket.c:2176,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/h2o/lib/common/socket.c:2176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2178
    functionName: get_ssl_session_cache_index
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_ex_new_index
    - H2O_MULTITHREAD_ONCE
    linkageType: ''
    returnType: int
    signature: int get_ssl_session_cache_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_ex_data
      Src: /src/h2o/lib/common/socket.c:2182,1
    - Dst: get_ssl_session_cache_index
      Src: /src/h2o/lib/common/socket.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2180
    functionDepth: 2
    functionLinenumber: 2180
    functionLinenumberEnd: 2183
    functionName: h2o_socket_ssl_get_session_cache
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_get_ex_data
    - get_ssl_session_cache_index
    linkageType: ''
    returnType: h2o_cache_t
    signature: h2o_cache_t *h2o_socket_ssl_get_session_cache(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ex_data
      Src: /src/h2o/lib/common/socket.c:2187,1
    - Dst: get_ssl_session_cache_index
      Src: /src/h2o/lib/common/socket.c:2187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cache
    argTypes:
    - SSL_CTX*
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2185
    functionDepth: 2
    functionLinenumber: 2185
    functionLinenumberEnd: 2188
    functionName: h2o_socket_ssl_set_session_cache
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ex_data
    - get_ssl_session_cache_index
    linkageType: ''
    returnType: void
    signature: void h2o_socket_ssl_set_session_cache(SSL_CTX *ctx, h2o_cache_t *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_free
      Src: /src/h2o/lib/common/socket.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2190
    functionDepth: 0
    functionLinenumber: 2190
    functionLinenumberEnd: 2194
    functionName: h2o_socket_ssl_destroy_session_cache_entry
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: void h2o_socket_ssl_destroy_session_cache_entry(h2o_iovec_t value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:2202,1
    - Dst: ptls_get_negotiated_protocol
      Src: /src/h2o/lib/common/socket.c:2205,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:2206,1
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:2206,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:2206,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/h2o/lib/common/socket.c:2211,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/h2o/lib/common/socket.c:2215,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket.c:2218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2219
    functionName: h2o_socket_ssl_get_selected_protocol
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 4
    functionsReached:
    - SSL_get0_next_proto_negotiated
    - ptls_get_negotiated_protocol
    - SSL_get0_alpn_selected
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_socket_ssl_get_selected_protocol(h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2223,1
    - Dst: ptls_handshake_is_complete
      Src: /src/h2o/lib/common/socket.c:2225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts:
    - condition: (sock->ssl != NULL)
      pos:
        line_end: 2222
        line_start: 2222
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2228
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2228
    functionName: h2o_socket_ssl_is_early_data
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - ptls_handshake_is_complete
    - assert
    linkageType: ''
    returnType: int
    signature: int h2o_socket_ssl_is_early_data(h2o_socket_t *sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/socket.c:2244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - _in
    - inlen
    - _protocols
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2257
    functionName: on_alpn_select
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int on_alpn_select(SSL *ssl, const unsigned char **out, unsigned char
      *outlen, const unsigned char *_in, unsigned int inlen,\n                          void
      *_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/h2o/lib/common/socket.c:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - protocols
    argTypes:
    - SSL_CTX*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2264
    functionName: h2o_ssl_register_alpn_protocols
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_alpn_select_cb
    linkageType: ''
    returnType: void
    signature: void h2o_ssl_register_alpn_protocols(SSL_CTX *ctx, const h2o_iovec_t
      *protocols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/socket.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ssl
    - out
    - outlen
    - protocols
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2275
    functionName: on_npn_advertise
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int on_npn_advertise(SSL *ssl, const unsigned char **out, unsigned
      *outlen, void *protocols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/h2o/lib/common/socket.c:2279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - protocols
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2277
    functionDepth: 0
    functionLinenumber: 2277
    functionLinenumberEnd: 2280
    functionName: h2o_ssl_register_npn_protocols
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_next_protos_advertised_cb
    linkageType: ''
    returnType: void
    signature: void h2o_ssl_register_npn_protocols(SSL_CTX *ctx, const char *protocols)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SETSOCKOPT
      Src: /src/h2o/lib/common/socket.c:2299,1
    - Dst: SETSOCKOPT
      Src: /src/h2o/lib/common/socket.c:2301,1
    - Dst: SETSOCKOPT
      Src: /src/h2o/lib/common/socket.c:2306,1
    - Dst: SETSOCKOPT
      Src: /src/h2o/lib/common/socket.c:2308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - domain
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2318
    functionName: h2o_socket_set_df_bit
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - SETSOCKOPT
    linkageType: ''
    returnType: int
    signature: int h2o_socket_set_df_bit(int fd, int domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ip
    - ','
    - optname
    - ','
    - _optvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2286
    functionDepth: 0
    functionLinenumber: 2286
    functionLinenumberEnd: 2295
    functionName: SETSOCKOPT
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETSOCKOPT(ip, optname, _optvar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - counter
    - now
    argTypes:
    - h2o_sliding_counter_t*
    - uint64_t
    assertStmts:
    - condition: (counter->cur.start_at != 0)
      pos:
        line_end: 2323
        line_start: 2323
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2342
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2342
    functionName: h2o_sliding_counter_stop
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_sliding_counter_stop(h2o_sliding_counter_t *counter, uint64_t
      now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - vec
    - base
    - len
    argTypes:
    - h2o_sendvec_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2350
    functionName: h2o_sendvec_init_raw
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_sendvec_init_raw(h2o_sendvec_t *vec, const void *base, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2354,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket.c:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - src
    - dst
    - len
    argTypes:
    - h2o_sendvec_t*
    - void*
    - size_t
    assertStmts:
    - condition: (len <= src->len)
      pos:
        line_end: 2353
        line_start: 2353
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2359
      start: 2352
    functionDepth: 1
    functionLinenumber: 2352
    functionLinenumberEnd: 2359
    functionName: h2o_sendvec_read_raw
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int h2o_sendvec_read_raw(h2o_sendvec_t *src, void *dst, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffers
    argTypes:
    - struct st_h2o_socket_zerocopy_buffers_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2361
    functionDepth: 0
    functionLinenumber: 2361
    functionLinenumberEnd: 2364
    functionName: zerocopy_buffers_is_empty
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zerocopy_buffers_is_empty(struct st_h2o_socket_zerocopy_buffers_t
      *buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2368,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/lib/common/socket.c:2368,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:2370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffers
    argTypes:
    - struct st_h2o_socket_zerocopy_buffers_t*
    assertStmts:
    - condition: (zerocopy_buffers_is_empty(buffers))
      pos:
        line_end: 2367
        line_start: 2367
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2371
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2371
    functionName: zerocopy_buffers_dispose
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - free
    - zerocopy_buffers_is_empty
    - assert
    linkageType: ''
    returnType: void
    signature: void zerocopy_buffers_dispose(struct st_h2o_socket_zerocopy_buffers_t
      *buffers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2376,1
    - Dst: memmove
      Src: /src/h2o/lib/common/socket.c:2381,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket.c:2383,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/common/socket.c:2384,1
    - Dst: free
      Src: /src/h2o/lib/common/socket.c:2385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - buffers
    - p
    argTypes:
    - struct st_h2o_socket_zerocopy_buffers_t*
    - void*
    assertStmts:
    - condition: (buffers->last == buffers->capacity)
      pos:
        line_end: 2375
        line_start: 2375
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2393
      start: 2373
    functionDepth: 2
    functionLinenumber: 2373
    functionLinenumberEnd: 2393
    functionName: zerocopy_buffers_push
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - free
    - h2o_memcpy
    - h2o_mem_alloc
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void zerocopy_buffers_push(struct st_h2o_socket_zerocopy_buffers_t
      *buffers, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2397,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2400,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket.c:2404,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 2
    argNames:
    - buffers
    - counter
    argTypes:
    - struct st_h2o_socket_zerocopy_buffers_t*
    - uint64_t
    assertStmts:
    - condition: (buffers->first_counter <= counter)
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/h2o/lib/common/socket.c
    - condition: (free_ptr != NULL)
      pos:
        line_end: 2403
        line_start: 2403
        source_file: /src/h2o/lib/common/socket.c
    - condition: (free_slot < buffers->last)
      pos:
        line_end: 2399
        line_start: 2399
        source_file: /src/h2o/lib/common/socket.c
    constantsTouched: []
    func_position:
      end: 2447
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2447
    functionName: zerocopy_buffers_release
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *zerocopy_buffers_release(struct st_h2o_socket_zerocopy_buffers_t
      *buffers, uint64_t counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_clear_recycle
      Src: /src/h2o/lib/common/socket.c:2451,1
    - Dst: h2o_mem_clear_recycle
      Src: /src/h2o/lib/common/socket.c:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - full
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2453
    functionName: h2o_socket_clear_recycle
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - h2o_mem_clear_recycle
    linkageType: ''
    returnType: void
    signature: void h2o_socket_clear_recycle(int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_recycle_is_empty
      Src: /src/h2o/lib/common/socket.c:2457,1
    - Dst: h2o_mem_recycle_is_empty
      Src: /src/h2o/lib/common/socket.c:2458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2459
    functionName: h2o_socket_recycle_is_empty
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 1
    functionsReached:
    - h2o_mem_recycle_is_empty
    linkageType: ''
    returnType: int
    signature: int h2o_socket_recycle_is_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MULTITHREAD_ONCE
      Src: /src/h2o/lib/common/socket.c:2466,1
    - Dst: SSL_get_ex_new_index
      Src: /src/h2o/lib/common/socket.c:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2468
    functionName: h2o_socket_boringssl_get_async_job_index
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 4
    functionsReached:
    - SSL_get_ex_new_index
    - H2O_MULTITHREAD_ONCE
    linkageType: ''
    returnType: int
    signature: int h2o_socket_boringssl_get_async_job_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/h2o/lib/common/socket.c:2472,1
    - Dst: SSL_get_rbio
      Src: /src/h2o/lib/common/socket.c:2472,1
    - Dst: SSL_is_server
      Src: /src/h2o/lib/common/socket.c:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2474
    functionName: h2o_socket_boringssl_async_resumption_in_flight
    functionSourceFile: /src/h2o/lib/common/socket.c
    functionUses: 2
    functionsReached:
    - SSL_get_rbio
    - BIO_get_data
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: int h2o_socket_boringssl_async_resumption_in_flight(SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memcached.c:81,1
    - Dst: memset
      Src: /src/h2o/lib/common/memcached.c:87,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memcached.c:89,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/common/memcached.c:92,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memcached.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - type
    - key
    - encode_key
    argTypes:
    - h2o_memcached_context_t*
    - enum en_h2o_memcached_req_type_t
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: create_req
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - memset
    - h2o_base64_encode
    linkageType: ''
    returnType: h2o_memcached_req_t
    signature: "h2o_memcached_req_t *create_req(h2o_memcached_context_t *ctx, enum
      en_h2o_memcached_req_type_t type, h2o_iovec_t key,\n                                       int
      encode_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/memcached.c:102,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:105,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/memcached.c:105,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:108,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/memcached.c:108,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/lib/common/memcached.c:109,1
    - Dst: free
      Src: /src/h2o/lib/common/memcached.c:110,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/lib/common/memcached.c:113,1
    - Dst: free
      Src: /src/h2o/lib/common/memcached.c:114,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:119,1
    - Dst: free
      Src: /src/h2o/lib/common/memcached.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_memcached_req_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&req->pending))
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/h2o/lib/common/memcached.c
    - condition: (!h2o_linklist_is_linked(&req->data.get.message.link))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/h2o/lib/common/memcached.c
    - condition: (!"FIXME")
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/h2o/lib/common/memcached.c
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: free_req
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - __sync_sub_and_fetch
    - free
    - h2o_mem_set_secure
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void free_req(h2o_memcached_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/memcached.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_memcached_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: retain_req
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: void
    signature: void retain_req(h2o_memcached_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/common/memcached.c:134,1
    - Dst: free_req
      Src: /src/h2o/lib/common/memcached.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_memcached_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: discard_req
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - h2o_multithread_send_message
    - free_req
    linkageType: ''
    returnType: void
    signature: void discard_req(h2o_memcached_req_t *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:146,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/memcached.c:150,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:151,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:152,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:160,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:161,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:168,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:172,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - conn
    - serial
    argTypes:
    - struct st_h2o_memcached_conn_t*
    - uint32_t
    assertStmts:
    - condition: (req->type == REQ_TYPE_GET)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/h2o/lib/common/memcached.c
    - condition: (req->type == REQ_TYPE_GET)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/h2o/lib/common/memcached.c
    constantsTouched: []
    func_position:
      end: 175
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 175
    functionName: pop_inflight
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - assert
    linkageType: ''
    returnType: h2o_memcached_req_t
    signature: h2o_memcached_req_t *pop_inflight(struct st_h2o_memcached_conn_t *conn,
      uint32_t serial)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:182,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/memcached.c:184,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/memcached.c:185,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:186,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:187,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:188,1
    - Dst: retain_req
      Src: /src/h2o/lib/common/memcached.c:192,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:193,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/memcached.c:194,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:195,1
    - Dst: yrmcds_get
      Src: /src/h2o/lib/common/memcached.c:196,1
    - Dst: yrmcds_set
      Src: /src/h2o/lib/common/memcached.c:199,1
    - Dst: yrmcds_remove
      Src: /src/h2o/lib/common/memcached.c:203,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:206,1
    - Dst: free_req
      Src: /src/h2o/lib/common/memcached.c:210,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:214,1
    - Dst: pthread_cond_wait
      Src: /src/h2o/lib/common/memcached.c:216,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:219,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:223,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/lib/common/memcached.c:223,1
    - Dst: yrmcds_shutdown
      Src: /src/h2o/lib/common/memcached.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 228
    functionName: writer_main
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - __sync_add_and_fetch
    - H2O_STRUCT_FROM_MEMBER
    - yrmcds_get
    - h2o_error_printf
    - pthread_cond_wait
    - yrmcds_remove
    - pthread_mutex_lock
    - free_req
    - yrmcds_shutdown
    - retain_req
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - yrmcds_set
    - yrmcds_strerror
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void *writer_main(void *_conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yrmcds_connect
      Src: /src/h2o/lib/common/memcached.c:235,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:237,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/lib/common/memcached.c:238,1
    - Dst: usleep
      Src: /src/h2o/lib/common/memcached.c:241,1
    - Dst: h2o_rand
      Src: /src/h2o/lib/common/memcached.c:241,1
    - Dst: yrmcds_text_mode
      Src: /src/h2o/lib/common/memcached.c:245,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - yrmcds
    argTypes:
    - h2o_memcached_context_t*
    - yrmcds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: connect_to_server
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 2
    functionsReached:
    - yrmcds_connect
    - h2o_error_printf
    - yrmcds_text_mode
    - h2o_rand
    - usleep
    - yrmcds_strerror
    linkageType: ''
    returnType: void
    signature: void connect_to_server(h2o_memcached_context_t *ctx, yrmcds *yrmcds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: connect_to_server
      Src: /src/h2o/lib/common/memcached.c:258,1
    - Dst: pthread_create
      Src: /src/h2o/lib/common/memcached.c:259,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/memcached.c:261,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/memcached.c:261,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:264,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:266,1
    - Dst: yrmcds_recv
      Src: /src/h2o/lib/common/memcached.c:270,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:271,1
    - Dst: yrmcds_strerror
      Src: /src/h2o/lib/common/memcached.c:271,1
    - Dst: pop_inflight
      Src: /src/h2o/lib/common/memcached.c:274,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memcached.c:278,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/memcached.c:282,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memcached.c:282,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memcached.c:283,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/lib/common/memcached.c:284,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/common/memcached.c:286,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:290,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/memcached.c:291,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:292,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:293,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:294,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/common/memcached.c:295,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:297,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/memcached.c:300,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:301,1
    - Dst: pthread_cond_broadcast
      Src: /src/h2o/lib/common/memcached.c:302,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:303,1
    - Dst: pthread_join
      Src: /src/h2o/lib/common/memcached.c:304,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:307,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/memcached.c:309,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:310,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:311,1
    - Dst: discard_req
      Src: /src/h2o/lib/common/memcached.c:312,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:315,1
    - Dst: yrmcds_close
      Src: /src/h2o/lib/common/memcached.c:318,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_memcached_context_t*
    assertStmts:
    - condition: (req->type == REQ_TYPE_GET)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/h2o/lib/common/memcached.c
    constantsTouched: []
    func_position:
      end: 319
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 319
    functionName: reader_main
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - pthread_cond_broadcast
    - yrmcds_recv
    - discard_req
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - yrmcds_strerror
    - assert
    - h2o_iovec_init
    - h2o_strerror_r
    - yrmcds_close
    - h2o_linklist_is_empty
    - __sync_add_and_fetch
    - H2O_STRUCT_FROM_MEMBER
    - pthread_mutex_lock
    - h2o_mem_set_secure
    - h2o_error_printf
    - pthread_join
    - connect_to_server
    - h2o_mem_alloc
    - memcpy
    - h2o_fatal
    - h2o_multithread_send_message
    - pop_inflight
    linkageType: ''
    returnType: void
    signature: void reader_main(h2o_memcached_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reader_main
      Src: /src/h2o/lib/common/memcached.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: thread_main
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - reader_main
    linkageType: ''
    returnType: void
    signature: void *thread_main(void *_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:332,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/memcached.c:335,1
    - Dst: pthread_cond_signal
      Src: /src/h2o/lib/common/memcached.c:336,1
    - Dst: discard_req
      Src: /src/h2o/lib/common/memcached.c:338,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - req
    argTypes:
    - h2o_memcached_context_t*
    - h2o_memcached_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: dispatch
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 12
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_signal
    - discard_req
    - pthread_mutex_unlock
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void dispatch(h2o_memcached_context_t *ctx, h2o_memcached_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/memcached.c:346,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memcached.c:347,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:348,1
    - Dst: assert
      Src: /src/h2o/lib/common/memcached.c:349,1
    - Dst: h2o_decode_base64url
      Src: /src/h2o/lib/common/memcached.c:352,1
    - Dst: h2o_mem_set_secure
      Src: /src/h2o/lib/common/memcached.c:353,1
    - Dst: free
      Src: /src/h2o/lib/common/memcached.c:354,1
    - Dst: h2o_memcached_req_t*::data::get::cb
      Src: /src/h2o/lib/common/memcached.c:357,1
    - Dst: free_req
      Src: /src/h2o/lib/common/memcached.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - receiver
    - messages
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts:
    - condition: (req->type == REQ_TYPE_GET)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/h2o/lib/common/memcached.c
    constantsTouched: []
    func_position:
      end: 361
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 361
    functionName: h2o_memcached_receiver
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - free
    - h2o_memcached_req_t*::data::get::cb
    - free_req
    - h2o_decode_base64url
    - h2o_linklist_unlink
    - h2o_mem_set_secure
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_memcached_receiver(h2o_multithread_receiver_t *receiver, h2o_linklist_t
      *messages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_req
      Src: /src/h2o/lib/common/memcached.c:366,1
    - Dst: dispatch
      Src: /src/h2o/lib/common/memcached.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - receiver
    - key
    - cb
    - cb_data
    - flags
    argTypes:
    - h2o_memcached_context_t*
    - h2o_multithread_receiver_t*
    - h2o_iovec_t
    - h2o_memcached_get_cb
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: h2o_memcached_get
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 1
    functionsReached:
    - create_req
    - dispatch
    linkageType: ''
    returnType: h2o_memcached_req_t
    signature: "h2o_memcached_req_t *h2o_memcached_get(h2o_memcached_context_t *ctx,
      h2o_multithread_receiver_t *receiver, h2o_iovec_t key,\n                                       h2o_memcached_get_cb
      cb, void *cb_data, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/memcached.c:379,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/memcached.c:381,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/memcached.c:382,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/memcached.c:385,1
    - Dst: free_req
      Src: /src/h2o/lib/common/memcached.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - req
    argTypes:
    - h2o_memcached_context_t*
    - h2o_memcached_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: h2o_memcached_cancel_get
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - free_req
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: void
    signature: void h2o_memcached_cancel_get(h2o_memcached_context_t *ctx, h2o_memcached_req_t
      *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_req
      Src: /src/h2o/lib/common/memcached.c:393,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memcached.c:395,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/common/memcached.c:396,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/memcached.c:398,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memcached.c:398,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memcached.c:399,1
    - Dst: dispatch
      Src: /src/h2o/lib/common/memcached.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - key
    - value
    - expiration
    - flags
    argTypes:
    - h2o_memcached_context_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: h2o_memcached_set
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 1
    functionsReached:
    - dispatch
    - memcpy
    - h2o_mem_alloc
    - create_req
    - h2o_base64_encode
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_memcached_set(h2o_memcached_context_t *ctx, h2o_iovec_t key,
      h2o_iovec_t value, uint32_t expiration, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_req
      Src: /src/h2o/lib/common/memcached.c:407,1
    - Dst: dispatch
      Src: /src/h2o/lib/common/memcached.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - flags
    argTypes:
    - h2o_memcached_context_t*
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: h2o_memcached_delete
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 0
    functionsReached:
    - create_req
    - dispatch
    linkageType: ''
    returnType: void
    signature: void h2o_memcached_delete(h2o_memcached_context_t *ctx, h2o_iovec_t
      key, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memcached.c:414,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/memcached.c:416,1
    - Dst: pthread_cond_init
      Src: /src/h2o/lib/common/memcached.c:417,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/memcached.c:418,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/memcached.c:420,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/memcached.c:423,1
    - Dst: pthread_attr_init
      Src: /src/h2o/lib/common/memcached.c:429,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/h2o/lib/common/memcached.c:430,1
    - Dst: h2o_multithread_create_thread
      Src: /src/h2o/lib/common/memcached.c:432,1
    - Dst: pthread_attr_destroy
      Src: /src/h2o/lib/common/memcached.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - host
    - port
    - text_protocol
    - num_threads
    - prefix
    argTypes:
    - char*
    - uint16_t
    - int
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 437
    functionName: h2o_memcached_create_context
    functionSourceFile: /src/h2o/lib/common/memcached.c
    functionUses: 1
    functionsReached:
    - pthread_cond_init
    - pthread_attr_destroy
    - h2o_strdup
    - pthread_attr_init
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - pthread_attr_setdetachstate
    - pthread_mutex_init
    - h2o_multithread_create_thread
    linkageType: ''
    returnType: h2o_memcached_context_t
    signature: "h2o_memcached_context_t *h2o_memcached_create_context(const char *host,
      uint16_t port, int text_protocol, size_t num_threads,\n                                                      const
      char *prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/lib/common/string.c:32,1
    - Dst: strlen
      Src: /src/h2o/lib/common/string.c:37,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:40,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:42,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/common/string.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - s
    - slen
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: h2o_strdup
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 42
    functionsReached:
    - h2o_mem_alloc_pool
    - h2o_memcpy
    - h2o_mem_alloc
    - H2O_BUILD_ASSERT
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_strdup(h2o_mem_pool_t *pool, const char *s, size_t
      slen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/string.c:55,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/common/string.c:57,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/string.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pool
    - s
    - slen
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: h2o_strdup_shared
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 2
    functionsReached:
    - memcpy
    - h2o_mem_alloc_shared
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_strdup_shared(h2o_mem_pool_t *pool, const char *s,
      size_t slen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/string.c:68,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:69,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:69,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/string.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pool
    - src
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: h2o_strdup_slashed
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - h2o_mem_alloc_pool
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_strdup_slashed(h2o_mem_pool_t *pool, const char *src,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_tolower
      Src: /src/h2o/lib/common/string.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - target
    - test
    - test_len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: h2o__lcstris_core
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - h2o_tolower
    linkageType: ''
    returnType: int
    signature: int h2o__lcstris_core(const char *target, const char *test, size_t
      test_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 113
    functionName: h2o_strtosize
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_strtosize(const char *s, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 151
    functionName: h2o_strtosizefwd
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_strtosizefwd(char **s, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: decode_base64url_quad
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t decode_base64url_quad(const char *src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:194,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:194,1
    - Dst: decode_base64url_quad
      Src: /src/h2o/lib/common/string.c:198,1
    - Dst: decode_base64url_quad
      Src: /src/h2o/lib/common/string.c:216,1
    - Dst: decode_base64url_quad
      Src: /src/h2o/lib/common/string.c:225,1
    - Dst: assert
      Src: /src/h2o/lib/common/string.c:232,1
    - Dst: free
      Src: /src/h2o/lib/common/string.c:239,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:240,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - pool
    - src
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts:
    - condition: ((char *)dst - decoded.base == decoded.len)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/h2o/lib/common/string.c
    constantsTouched: []
    func_position:
      end: 241
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 241
    functionName: h2o_decode_base64url
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 3
    functionsReached:
    - free
    - h2o_mem_alloc_pool
    - decode_base64url_quad
    - h2o_mem_alloc
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_decode_base64url(h2o_mem_pool_t *pool, const char *src,
      size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - _dst
    - _src
    - len
    - url_encoded
    argTypes:
    - char*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 284
    functionName: h2o_base64_encode
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_base64_encode(char *_dst, const void *_src, size_t len,
      int url_encoded)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: decode_hex
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_hex(int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_hex
      Src: /src/h2o/lib/common/string.c:305,1
    - Dst: decode_hex
      Src: /src/h2o/lib/common/string.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - _dst
    - src
    - src_len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: h2o_hex_decode
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - decode_hex
    linkageType: ''
    returnType: int
    signature: int h2o_hex_decode(void *_dst, const char *src, size_t src_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - _src
    - src_len
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: h2o_hex_encode
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_hex_encode(char *dst, const void *_src, size_t src_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:327,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:327,1
    - Dst: strchr
      Src: /src/h2o/lib/common/string.c:342,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 14
    argCount: 4
    argNames:
    - pool
    - s
    - l
    - preserve_chars
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 353
    functionName: h2o_uri_escape
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - strchr
    - h2o_mem_alloc
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_uri_escape(h2o_mem_pool_t *pool, const char *s, size_t
      l, const char *preserve_chars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:359,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:359,1
    - Dst: decode_hex
      Src: /src/h2o/lib/common/string.c:366,1
    - Dst: decode_hex
      Src: /src/h2o/lib/common/string.c:367,1
    - Dst: free
      Src: /src/h2o/lib/common/string.c:381,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - pool
    - str
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 383
    functionName: h2o_uri_unescape
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached:
    - decode_hex
    - free
    - h2o_mem_alloc_pool
    - h2o_mem_alloc
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_uri_unescape(h2o_mem_pool_t *pool, const char *str,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:391,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: h2o_get_filext
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_get_filext(const char *path, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: is_ws
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_ws(int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_ws
      Src: /src/h2o/lib/common/string.c:409,1
    - Dst: is_ws
      Src: /src/h2o/lib/common/string.c:414,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: h2o_str_stripws
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_init
    - is_ws
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_str_stripws(const char *s, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/string.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - haysack
    - haysack_len
    - needle
    - needle_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: h2o_strstr
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_strstr(const char *haysack, size_t haysack_len, const char
      *needle, size_t needle_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:474,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:481,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/common/string.c:483,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/string.c:485,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/string.c:485,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 5
    argNames:
    - iter
    - inner
    - outer
    - element_len
    - value
    argTypes:
    - h2o_iovec_t*
    - int
    - int
    - size_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 491
    functionName: h2o_next_token
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 6
    functionsReached:
    - h2o_memis
    - h2o_next_token
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: char *h2o_next_token(h2o_iovec_t *iter, int inner, int outer, size_t
      *element_len, h2o_iovec_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:495,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/common/string.c:499,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/common/string.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - haysack
    - haysack_len
    - needle
    - needle_len
    - separator
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 505
    functionName: h2o_contains_token
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 3
    functionsReached:
    - h2o_next_token
    - h2o_lcstris
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int h2o_contains_token(const char *haysack, size_t haysack_len, const
      char *needle, size_t needle_len, int separator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENTITY_MAP
      Src: /src/h2o/lib/common/string.c:526,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:535,1
    - Dst: ENTITY_MAP
      Src: /src/h2o/lib/common/string.c:544,1
    - Dst: assert
      Src: /src/h2o/lib/common/string.c:551,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - src
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts:
    - condition: (escaped.len == len + add_size)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/h2o/lib/common/string.c
    constantsTouched: []
    func_position:
      end: 561
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 561
    functionName: h2o_htmlescape
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_init
    - ENTITY_MAP
    - assert
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_htmlescape(h2o_mem_pool_t *pool, const char *src, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: ENTITY_MAP
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTITY_MAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - quoted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: ENTITY
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTITY(code, quoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - quoted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: ENTITY
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTITY(code, quoted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:575,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:577,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/common/string.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pool
    - list
    - count
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 588
    functionName: h2o_concat_list
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc
    - h2o_mem_alloc_pool
    - h2o_memcpy
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_concat_list(h2o_mem_pool_t *pool, h2o_iovec_t *list,
      size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/string.c:593,1
    - Dst: alloca
      Src: /src/h2o/lib/common/string.c:597,1
    - Dst: h2o_concat_list
      Src: /src/h2o/lib/common/string.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pool
    - list
    - count
    - delimiter
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t*
    - size_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 607
    functionName: h2o_join_list
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 2
    functionsReached:
    - alloca
    - h2o_concat_list
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_join_list(h2o_mem_pool_t *pool, h2o_iovec_t *list,
      size_t count, h2o_iovec_t delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/lib/common/string.c:613,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/string.c:614,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/string.c:615,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/string.c:618,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/string.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pool
    - list
    - str
    - needle
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_vector_t*
    - h2o_iovec_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: h2o_split
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - memchr
    - h2o_strdup
    linkageType: ''
    returnType: void
    signature: void h2o_split(h2o_mem_pool_t *pool, h2o_iovec_vector_t *list, h2o_iovec_t
      str, const char needle)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - buf
    - src
    - src_len
    - lineno
    - column
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 659
    functionName: h2o_str_at_position
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_str_at_position(char *buf, const char *src, size_t src_len,
      int lineno, int column)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/common/string.c:664,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/string.c:676,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/string.c:678,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - s
    - slen
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 690
    functionName: h2o_encode_sf_string
    functionSourceFile: /src/h2o/lib/common/string.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_mem_alloc_pool
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_encode_sf_string(h2o_mem_pool_t *pool, const char *s,
      size_t slen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_encodev
      Src: /src/h2o/lib/common/http3client.c:131,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http3client.c:133,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http3client.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - req
    - payload
    argTypes:
    - struct st_h2o_http3client_req_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: emit_data
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_append
    - quicly_encodev
    linkageType: ''
    returnType: size_t
    signature: size_t emit_data(struct st_h2o_http3client_req_t *req, h2o_iovec_t
      payload)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:145,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http3client.c:147,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http3client.c:148,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http3client.c:149,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http3client.c:150,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http3client.c:151,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http3client.c:152,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http3client.c:153,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct st_h2o_http3client_req_t*
    assertStmts:
    - condition: (req->quic == NULL)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: destroy_request
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - free
    - h2o_buffer_dispose
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_request(struct st_h2o_http3client_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct st_h2o_http3client_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: detach_stream
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void detach_stream(struct st_h2o_http3client_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:167,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/lib/common/http3client.c:168,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:169,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/common/http3client.c:170,1
    - Dst: detach_stream
      Src: /src/h2o/lib/common/http3client.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - req
    - err
    argTypes:
    - struct st_h2o_http3client_req_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: close_stream
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - quicly_reset_stream
    - quicly_recvstate_transfer_complete
    - quicly_sendstate_transfer_complete
    - quicly_request_stop
    - detach_stream
    linkageType: ''
    returnType: void
    signature: void close_stream(struct st_h2o_http3client_req_t *req, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:176,1
    - Dst: h2o_http3_send_h3_datagrams
      Src: /src/h2o/lib/common/http3client.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _client
    - datagrams
    - num_datagrams
    argTypes:
    - h2o_httpclient_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: write_datagrams
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http3_send_h3_datagrams
    linkageType: ''
    returnType: void
    signature: void write_datagrams(h2o_httpclient_t *_client, h2o_iovec_t *datagrams,
      size_t num_datagrams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/http3client.c:182,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:189,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http3client.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - origin
    argTypes:
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: find_connection
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_socketpool_is_global
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: struct st_h2o_httpclient__h3_conn_t
    signature: struct st_h2o_httpclient__h3_conn_t *find_connection(h2o_httpclient_connection_pool_t
      *pool, h2o_url_t *origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http3client.c:202,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:204,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http3client.c:205,1
    - Dst: start_request
      Src: /src/h2o/lib/common/http3client.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_httpclient__h3_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: start_pending_requests
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - start_request
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void start_pending_requests(struct st_h2o_httpclient__h3_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct st_h2o_http3client_req_t*::proceed_req::cb
      Src: /src/h2o/lib/common/http3client.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - struct st_h2o_http3client_req_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: call_proceed_req
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 2
    functionsReached:
    - struct st_h2o_http3client_req_t*::proceed_req::cb
    linkageType: ''
    returnType: void
    signature: void call_proceed_req(struct st_h2o_http3client_req_t *req, const char
      *errstr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_state
      Src: /src/h2o/lib/common/http3client.c:218,1
    - Dst: quicly_get_close_reason
      Src: /src/h2o/lib/common/http3client.c:219,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/lib/common/http3client.c:220,1
    - Dst: PTLS_ERROR_GET_CLASS
      Src: /src/h2o/lib/common/http3client.c:220,1
    - Dst: PTLS_ERROR_TO_ALERT
      Src: /src/h2o/lib/common/http3client.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: get_connection_close_error
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - PTLS_ERROR_GET_CLASS
    - PTLS_ERROR_TO_ALERT
    - quicly_get_close_reason
    - quicly_get_state
    linkageType: ''
    returnType: char
    signature: char *get_connection_close_error(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:242,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http3client.c:243,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http3client.c:244,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http3client.c:245,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:247,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http3client.c:248,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_connect
      Src: /src/h2o/lib/common/http3client.c:249,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:250,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:252,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http3client.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - errstr
    argTypes:
    - struct st_h2o_httpclient__h3_conn_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (h2o_linklist_is_empty(&conn->pending_requests))
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: report_pending_requests_error
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http3client_req_t*::super::_cb::on_connect
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - destroy_request
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void report_pending_requests_error(struct st_h2o_httpclient__h3_conn_t
      *conn, const char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:257,1
    - Dst: report_pending_requests_error
      Src: /src/h2o/lib/common/http3client.c:258,1
    - Dst: h2o_hostinfo_getaddr_cancel
      Src: /src/h2o/lib/common/http3client.c:260,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http3client.c:261,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:262,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:263,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:264,1
    - Dst: h2o_http3_dispose_conn
      Src: /src/h2o/lib/common/http3client.c:265,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - errstr
    argTypes:
    - struct st_h2o_httpclient__h3_conn_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 267
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 267
    functionName: destroy_connection
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 8
    functionsReached:
    - report_pending_requests_error
    - h2o_timer_unlink
    - h2o_hostinfo_getaddr_cancel
    - free
    - h2o_http3_dispose_conn
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_connection(struct st_h2o_httpclient__h3_conn_t *conn,
      const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_connection
      Src: /src/h2o/lib/common/http3client.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: destroy_connection_on_transport_close
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - destroy_connection
    linkageType: ''
    returnType: void
    signature: void destroy_connection_on_transport_close(h2o_quic_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:277,1
    - Dst: destroy_connection
      Src: /src/h2o/lib/common/http3client.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: on_connect_timeout
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - destroy_connection
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_connect_timeout(h2o_timer_t *timeout)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptls_iovec_init
      Src: /src/h2o/lib/common/http3client.c:284,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:288,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:289,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:290,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http3client.c:290,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:291,1
    - Dst: struct st_h2o_httpclient__h3_conn_t*::ctx::http3::load_session
      Src: /src/h2o/lib/common/http3client.c:295,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:299,1
    - Dst: quicly_connect
      Src: /src/h2o/lib/common/http3client.c:300,1
    - Dst: h2o_http3_setup
      Src: /src/h2o/lib/common/http3client.c:307,1
    - Dst: quicly_connection_is_ready
      Src: /src/h2o/lib/common/http3client.c:310,1
    - Dst: start_pending_requests
      Src: /src/h2o/lib/common/http3client.c:311,1
    - Dst: h2o_quic_send
      Src: /src/h2o/lib/common/http3client.c:313,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:315,1
    - Dst: free
      Src: /src/h2o/lib/common/http3client.c:318,1
    - Dst: destroy_connection
      Src: /src/h2o/lib/common/http3client.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - conn
    - sa
    argTypes:
    - struct st_h2o_httpclient__h3_conn_t*
    - struct sockaddr*
    assertStmts:
    - condition: (h2o_timer_is_linked(&conn->timeout))
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (conn->super.super.quic == NULL)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (conn->getaddr_req == NULL)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (conn->timeout.cb == on_connect_timeout)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (conn->ctx->http3->h3.next_cid != NULL && "to identify connections,
        next_cid must be set")
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 320
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 320
    functionName: start_connect
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - ptls_iovec_init
    - h2o_http3_setup
    - h2o_quic_send
    - quicly_connection_is_ready
    - free
    - destroy_connection
    - h2o_timer_is_linked
    - start_pending_requests
    - assert
    - struct st_h2o_httpclient__h3_conn_t*::ctx::http3::load_session
    - quicly_connect
    linkageType: ''
    returnType: void
    signature: void start_connect(struct st_h2o_httpclient__h3_conn_t *conn, struct
      sockaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:326,1
    - Dst: destroy_connection
      Src: /src/h2o/lib/common/http3client.c:330,1
    - Dst: h2o_hostinfo_select_one
      Src: /src/h2o/lib/common/http3client.c:335,1
    - Dst: start_connect
      Src: /src/h2o/lib/common/http3client.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - getaddr_req
    - errstr
    - res
    - _conn
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    - char*
    - struct addrinfo*
    - void*
    assertStmts:
    - condition: (getaddr_req == conn->getaddr_req)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 337
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 337
    functionName: on_getaddr
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_hostinfo_select_one
    - start_connect
    - assert
    - destroy_connection
    linkageType: ''
    returnType: void
    signature: void on_getaddr(h2o_hostinfo_getaddr_req_t *getaddr_req, const char
      *errstr, struct addrinfo *res, void *_conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/common/http3client.c:345,1
    - Dst: h2o_http3_handle_settings_frame
      Src: /src/h2o/lib/common/http3client.c:350,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:352,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/common/http3client.c:352,1
    - Dst: start_pending_requests
      Src: /src/h2o/lib/common/http3client.c:354,1
    - Dst: h2o_http3_decode_goaway_frame
      Src: /src/h2o/lib/common/http3client.c:363,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/common/http3client.c:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - _conn
    - type
    - payload
    - len
    argTypes:
    - h2o_http3_conn_t*
    - uint64_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (h2o_http3_has_received_settings(&conn->super))
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 376
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 376
    functionName: handle_control_stream_frame
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_http3_handle_settings_frame
    - h2o_quic_close_connection
    - h2o_http3_has_received_settings
    - start_pending_requests
    - assert
    - h2o_http3_decode_goaway_frame
    linkageType: ''
    returnType: void
    signature: void handle_control_stream_frame(h2o_http3_conn_t *_conn, uint64_t
      type, const uint8_t *payload, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/http3client.c:383,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/http3client.c:388,1
    - Dst: h2o_http3_init_conn
      Src: /src/h2o/lib/common/http3client.c:390,1
    - Dst: memset
      Src: /src/h2o/lib/common/http3client.c:391,1
    - Dst: h2o_url_copy
      Src: /src/h2o/lib/common/http3client.c:393,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/http3client.c:394,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/common/http3client.c:394,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http3client.c:397,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/http3client.c:398,1
    - Dst: h2o_hostinfo_getaddr
      Src: /src/h2o/lib/common/http3client.c:400,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http3client.c:401,1
    - Dst: strlen
      Src: /src/h2o/lib/common/http3client.c:401,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http3client.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - pool
    - origin
    argTypes:
    - h2o_httpclient_ctx_t*
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 408
    functionName: create_connection
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 6
    functionsReached:
    - h2o_url_get_port
    - h2o_timer_link
    - h2o_url_copy
    - h2o_iovec_init
    - h2o_mem_alloc
    - sprintf
    - h2o_linklist_init_anchor
    - h2o_hostinfo_getaddr
    - h2o_socketpool_is_global
    - memset
    - h2o_http3_init_conn
    - strlen
    - h2o_linklist_insert
    linkageType: ''
    returnType: struct st_h2o_httpclient__h3_conn_t
    signature: "struct st_h2o_httpclient__h3_conn_t *create_connection(h2o_httpclient_ctx_t
      *ctx, h2o_httpclient_connection_pool_t *pool,\n                                                       h2o_url_t
      *origin)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:412,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_head
      Src: /src/h2o/lib/common/http3client.c:416,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_body
      Src: /src/h2o/lib/common/http3client.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - struct st_h2o_http3client_req_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: notify_response_error
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http3client_req_t*::super::_cb::on_head
    - assert
    - struct st_h2o_http3client_req_t*::super::_cb::on_body
    linkageType: ''
    returnType: void
    signature: void notify_response_error(struct st_h2o_http3client_req_t *req, const
      char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:429,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_body
      Src: /src/h2o/lib/common/http3client.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - struct st_h2o_http3client_req_t*
    - char*
    assertStmts:
    - condition: (req->response_state == H2O_HTTP3CLIENT_RESPONSE_STATE_BODY)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 436
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 436
    functionName: call_on_body
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 5
    functionsReached:
    - assert
    - struct st_h2o_http3client_req_t*::super::_cb::on_body
    linkageType: ''
    returnType: int
    signature: int call_on_body(struct st_h2o_http3client_req_t *req, const char *errstr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http3client.c:446,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http3client.c:459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - req
    - src
    - src_end
    - err
    - err_desc
    argTypes:
    - struct st_h2o_http3client_req_t*
    - uint8_t**
    - uint8_t*
    - quicly_error_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 463
    functionName: handle_input_data_payload
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_append
    - call_on_body
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_data_payload(struct st_h2o_http3client_req_t
      *req, const uint8_t **src, const uint8_t *src_end,\n                                                quicly_error_t
      err, const char **err_desc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:468,1
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/common/http3client.c:478,1
    - Dst: call_on_body
      Src: /src/h2o/lib/common/http3client.c:483,1
    - Dst: handle_input_data_payload
      Src: /src/h2o/lib/common/http3client.c:503,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - req
    - src
    - src_end
    - err
    - err_desc
    argTypes:
    - struct st_h2o_http3client_req_t*
    - uint8_t**
    - uint8_t*
    - quicly_error_t
    - char**
    assertStmts:
    - condition: (req->bytes_left_in_data_frame == 0)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 504
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 504
    functionName: handle_input_expect_data_frame
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - handle_input_data_payload
    - call_on_body
    - h2o_http3_read_frame
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_expect_data_frame(struct st_h2o_http3client_req_t
      *req, const uint8_t **src, const uint8_t *src_end,\n                                              quicly_error_t
      err, const char **err_desc)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http3_read_frame
      Src: /src/h2o/lib/common/http3client.c:519,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:523,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:528,1
    - Dst: h2o_qpack_parse_response
      Src: /src/h2o/lib/common/http3client.c:542,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:552,1
    - Dst: h2o_http3_send_qpack_header_ack
      Src: /src/h2o/lib/common/http3client.c:556,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:570,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:574,1
    - Dst: struct st_h2o_http3client_req_t*::super::informational_cb
      Src: /src/h2o/lib/common/http3client.c:578,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http3client.c:578,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http3client.c:586,1
    - Dst: h2o_httpclient__tunnel_is_ready
      Src: /src/h2o/lib/common/http3client.c:590,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_head
      Src: /src/h2o/lib/common/http3client.c:594,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 5
    argNames:
    - req
    - src
    - src_end
    - err
    - err_desc
    argTypes:
    - struct st_h2o_http3client_req_t*
    - uint8_t**
    - uint8_t*
    - quicly_error_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 506
    functionDepth: 4
    functionLinenumber: 506
    functionLinenumberEnd: 602
    functionName: handle_input_expect_headers
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - h2o_http3_send_qpack_header_ack
    - h2o_qpack_parse_response
    - h2o_http3_read_frame
    - struct st_h2o_http3client_req_t*::super::informational_cb
    - struct st_h2o_http3client_req_t*::super::_cb::on_head
    - notify_response_error
    - h2o_httpclient__tunnel_is_ready
    - h2o_iovec_init
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t handle_input_expect_headers(struct st_h2o_http3client_req_t
      *req, const uint8_t **src, const uint8_t *src_end,\n                                                  quicly_error_t
      err, const char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:610,1
    - Dst: get_connection_close_error
      Src: /src/h2o/lib/common/http3client.c:610,1
    - Dst: detach_stream
      Src: /src/h2o/lib/common/http3client.c:611,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: on_stream_destroy
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - destroy_request
    - detach_stream
    - get_connection_close_error
    - notify_response_error
    linkageType: ''
    returnType: void
    signature: void on_stream_destroy(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:619,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http3client.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - qs
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts:
    - condition: (req != NULL)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: on_send_shift
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - assert
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void on_send_shift(quicly_stream_t *qs, size_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/http3client.c:633,1
    - Dst: call_proceed_req
      Src: /src/h2o/lib/common/http3client.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - qs
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: on_send_emit
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - memcpy
    - call_proceed_req
    linkageType: ''
    returnType: void
    signature: void on_send_emit(quicly_stream_t *qs, size_t off, void *dst, size_t
      *len, int *wrote_all)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:646,1
    - Dst: quicly_reset_stream
      Src: /src/h2o/lib/common/http3client.c:647,1
    - Dst: call_proceed_req
      Src: /src/h2o/lib/common/http3client.c:650,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:652,1
    - Dst: quicly_request_stop
      Src: /src/h2o/lib/common/http3client.c:653,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:654,1
    - Dst: detach_stream
      Src: /src/h2o/lib/common/http3client.c:656,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 658
    functionName: on_send_stop
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - call_proceed_req
    - quicly_reset_stream
    - quicly_recvstate_transfer_complete
    - quicly_sendstate_transfer_complete
    - notify_response_error
    - quicly_request_stop
    - detach_stream
    - destroy_request
    linkageType: ''
    returnType: void
    signature: void on_send_stop(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:663,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:664,1
    - Dst: struct st_h2o_http3client_req_t*::handle_input
      Src: /src/h2o/lib/common/http3client.c:668,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - req
    - src
    - src_end
    - err_desc
    argTypes:
    - struct st_h2o_http3client_req_t*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts:
    - condition: (is_eos || *src != src_end)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 676
      start: 660
    functionDepth: 4
    functionLinenumber: 660
    functionLinenumberEnd: 676
    functionName: on_receive_process_bytes
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http3client_req_t*::handle_input
    - quicly_recvstate_transfer_complete
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t on_receive_process_bytes(struct st_h2o_http3client_req_t
      *req, const uint8_t **src, const uint8_t *src_end,\n                                               const
      char **err_desc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: on_receive_process_bytes
      Src: /src/h2o/lib/common/http3client.c:690,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http3client.c:693,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http3client.c:698,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/http3client.c:701,1
    - Dst: quicly_recvstate_bytes_available
      Src: /src/h2o/lib/common/http3client.c:704,1
    - Dst: on_receive_process_bytes
      Src: /src/h2o/lib/common/http3client.c:710,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http3client.c:712,1
    - Dst: quicly_stream_sync_recvbuf
      Src: /src/h2o/lib/common/http3client.c:717,1
    - Dst: quicly_recvstate_bytes_available
      Src: /src/h2o/lib/common/http3client.c:718,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:721,1
    - Dst: quicly_sendstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:723,1
    - Dst: detach_stream
      Src: /src/h2o/lib/common/http3client.c:724,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:725,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:728,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/common/http3client.c:729,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http3client.c:730,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:733,1
    - Dst: call_proceed_req
      Src: /src/h2o/lib/common/http3client.c:735,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:736,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - qs
    - 'off'
    - input
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 741
    functionName: on_receive
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - call_proceed_req
    - on_receive_process_bytes
    - quicly_stream_sync_recvbuf
    - notify_response_error
    - h2o_buffer_reserve
    - quicly_recvstate_transfer_complete
    - quicly_sendstate_transfer_complete
    - quicly_sendstate_is_open
    - memcpy
    - detach_stream
    - h2o_buffer_consume
    - close_stream
    - h2o_buffer_append
    - quicly_recvstate_bytes_available
    - destroy_request
    linkageType: ''
    returnType: void
    signature: void on_receive(quicly_stream_t *qs, size_t off, const void *input,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:747,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http3client.c:748,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - qs
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 750
    functionName: on_receive_reset
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - close_stream
    - destroy_request
    - notify_response_error
    linkageType: ''
    returnType: void
    signature: void on_receive_reset(quicly_stream_t *qs, quicly_error_t err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:763,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:764,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http3client.c:764,1
    - Dst: struct st_h2o_http3client_req_t*::super::_cb::on_connect
      Src: /src/h2o/lib/common/http3client.c:766,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:768,1
    - Dst: quicly_open_stream
      Src: /src/h2o/lib/common/http3client.c:772,1
    - Dst: notify_response_error
      Src: /src/h2o/lib/common/http3client.c:773,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:774,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http3client.c:783,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http3client.c:783,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/http3client.c:784,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http3client.c:788,1
    - Dst: strlen
      Src: /src/h2o/lib/common/http3client.c:788,1
    - Dst: h2o_qpack_flatten_request
      Src: /src/h2o/lib/common/http3client.c:792,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http3client.c:794,1
    - Dst: emit_data
      Src: /src/h2o/lib/common/http3client.c:796,1
    - Dst: quicly_sendstate_shutdown
      Src: /src/h2o/lib/common/http3client.c:802,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/common/http3client.c:803,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct st_h2o_http3client_req_t*
    assertStmts:
    - condition: (req->quic == NULL)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (!h2o_linklist_is_linked(&req->link))
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 806
      start: 752
    functionDepth: 7
    functionLinenumber: 752
    functionLinenumberEnd: 806
    functionName: start_request
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 4
    functionsReached:
    - struct st_h2o_http3client_req_t*::super::_cb::on_connect
    - quicly_open_stream
    - assert
    - emit_data
    - H2O_STRLIT
    - quicly_stream_sync_sendbuf
    - quicly_sendstate_shutdown
    - sprintf
    - h2o_qpack_flatten_request
    - notify_response_error
    - h2o_memis
    - h2o_buffer_append
    - h2o_linklist_is_linked
    - destroy_request
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void start_request(struct st_h2o_http3client_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_stream
      Src: /src/h2o/lib/common/http3client.c:812,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 814
    functionName: cancel_request
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - close_stream
    - destroy_request
    linkageType: ''
    returnType: void
    signature: void cancel_request(h2o_httpclient_t *_client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_get_tls
      Src: /src/h2o/lib/common/http3client.c:822,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/http3client.c:822,1
    - Dst: ptls_is_psk_handshake
      Src: /src/h2o/lib/common/http3client.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - _client
    - properties
    argTypes:
    - h2o_httpclient_t*
    - h2o_httpclient_conn_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 834
    functionName: do_get_conn_properties
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - ptls_is_psk_handshake
    - quicly_get_tls
    linkageType: ''
    returnType: void
    signature: void do_get_conn_properties(h2o_httpclient_t *_client, h2o_httpclient_conn_properties_t
      *properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: do_update_window
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_update_window(h2o_httpclient_t *_client)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:846,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/common/http3client.c:850,1
    - Dst: quicly_recvstate_transfer_complete
      Src: /src/h2o/lib/common/http3client.c:851,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http3client.c:852,1
    - Dst: destroy_request
      Src: /src/h2o/lib/common/http3client.c:854,1
    - Dst: emit_data
      Src: /src/h2o/lib/common/http3client.c:859,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:863,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/lib/common/http3client.c:863,1
    - Dst: quicly_sendstate_shutdown
      Src: /src/h2o/lib/common/http3client.c:864,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:866,1
    - Dst: quicly_stream_sync_sendbuf
      Src: /src/h2o/lib/common/http3client.c:870,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/common/http3client.c:871,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - _client
    - chunk
    - is_end_stream
    argTypes:
    - h2o_httpclient_t*
    - h2o_iovec_t
    - int
    assertStmts:
    - condition: (req->proceed_req.bytes_inflight == SIZE_MAX)
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (quicly_sendstate_is_open(&req->quic->sendstate))
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/h2o/lib/common/http3client.c
    - condition: (chunk.len != 0)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 873
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 873
    functionName: do_write_req
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - emit_data
    - assert
    - quicly_stream_sync_sendbuf
    - quicly_sendstate_shutdown
    - quicly_recvstate_transfer_complete
    - h2o_quic_schedule_timer
    - quicly_sendstate_is_open
    - close_stream
    - destroy_request
    linkageType: ''
    returnType: int
    signature: int do_write_req(h2o_httpclient_t *_client, h2o_iovec_t chunk, int
      is_end_stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_connection
      Src: /src/h2o/lib/common/http3client.c:882,1
    - Dst: create_connection
      Src: /src/h2o/lib/common/http3client.c:883,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/http3client.c:885,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/common/http3client.c:893,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http3client.c:904,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http3client.c:905,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http3client.c:906,1
    - Dst: h2o_http3_has_received_settings
      Src: /src/h2o/lib/common/http3client.c:911,1
    - Dst: start_request
      Src: /src/h2o/lib/common/http3client.c:912,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/lib/common/http3client.c:913,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http3client.c:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 8
    argNames:
    - _client
    - pool
    - data
    - ctx
    - connpool
    - target
    - upgrade_to
    - cb
    argTypes:
    - h2o_httpclient_t**
    - h2o_mem_pool_t*
    - void*
    - h2o_httpclient_ctx_t*
    - h2o_httpclient_connection_pool_t*
    - h2o_url_t*
    - char*
    - h2o_httpclient_connect_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 917
    functionName: h2o_httpclient__connect_h3
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 1
    functionsReached:
    - h2o_buffer_init
    - h2o_quic_schedule_timer
    - h2o_gettimeofday
    - h2o_mem_alloc
    - find_connection
    - h2o_http3_has_received_settings
    - h2o_linklist_insert
    - create_connection
    - start_request
    linkageType: ''
    returnType: void
    signature: "void h2o_httpclient__connect_h3(h2o_httpclient_t **_client, h2o_mem_pool_t
      *pool, void *data, h2o_httpclient_ctx_t *ctx,\n                                h2o_httpclient_connection_pool_t
      *connpool, h2o_url_t *target, const char *upgrade_to,\n                                h2o_httpclient_connect_cb
      cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http3client.c:923,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http3client.c:925,1
    - Dst: quicly_get_state
      Src: /src/h2o/lib/common/http3client.c:930,1
    - Dst: report_pending_requests_error
      Src: /src/h2o/lib/common/http3client.c:932,1
    - Dst: get_connection_close_error
      Src: /src/h2o/lib/common/http3client.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - _conn
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 934
    functionName: h2o_httpclient_http3_notify_connection_update
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - report_pending_requests_error
    - h2o_timer_unlink
    - get_connection_close_error
    - quicly_get_state
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void h2o_httpclient_http3_notify_connection_update(h2o_quic_ctx_t *ctx,
      h2o_quic_conn_t *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/common/http3client.c:938,1
    - Dst: h2o_http3_on_create_unidirectional_stream
      Src: /src/h2o/lib/common/http3client.c:939,1
    - Dst: assert
      Src: /src/h2o/lib/common/http3client.c:943,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/common/http3client.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - qs
    argTypes:
    - quicly_stream_open_t*
    - quicly_stream_t*
    assertStmts:
    - condition: (quicly_stream_is_client_initiated(qs->stream_id))
      pos:
        line_end: 942
        line_start: 942
        source_file: /src/h2o/lib/common/http3client.c
    constantsTouched: []
    func_position:
      end: 947
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 947
    functionName: stream_open_cb
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - h2o_http3_on_create_unidirectional_stream
    - quicly_stream_is_unidirectional
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t stream_open_cb(quicly_stream_open_t *self, quicly_stream_t
      *qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http3client.c:954,1
    - Dst: quicly_get_data
      Src: /src/h2o/lib/common/http3client.c:954,1
    - Dst: h2o_http3_decode_h3_datagram
      Src: /src/h2o/lib/common/http3client.c:960,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/lib/common/http3client.c:961,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/lib/common/http3client.c:961,1
    - Dst: h2o_quic_close_connection
      Src: /src/h2o/lib/common/http3client.c:962,1
    - Dst: quicly_get_stream
      Src: /src/h2o/lib/common/http3client.c:965,1
    - Dst: struct st_h2o_http3client_req_t*::on_read_datagrams
      Src: /src/h2o/lib/common/http3client.c:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - self
    - qc
    - datagram
    argTypes:
    - quicly_receive_datagram_frame_t*
    - quicly_conn_t*
    - ptls_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 971
    functionName: on_receive_datagram_frame
    functionSourceFile: /src/h2o/lib/common/http3client.c
    functionUses: 0
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_get_stream
    - h2o_http3_decode_h3_datagram
    - H2O_STRUCT_FROM_MEMBER
    - quicly_get_data
    - quicly_stream_is_unidirectional
    - h2o_quic_close_connection
    - struct st_h2o_http3client_req_t*::on_read_datagrams
    linkageType: ''
    returnType: void
    signature: void on_receive_datagram_frame(quicly_receive_datagram_frame_t *self,
      quicly_conn_t *qc, ptls_iovec_t datagram)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - e
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: REPORT_CORRUPT_TIMER
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPORT_CORRUPT_TIMER(ctx, e, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - t
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: ABORT_CORRUPT_TIMER
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABORT_CORRUPT_TIMER(ctx, t, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/timerwheel.c:68,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/timerwheel.c:73,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/timerwheel.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_timerwheel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: h2o_timerwheel_dump
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 1
    functionsReached:
    - h2o_error_printf
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_dump(h2o_timerwheel_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/lib/common/timerwheel.c:83,1
    - Dst: __builtin_clzll
      Src: /src/h2o/lib/common/timerwheel.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - num_wheels
    - delta
    argTypes:
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: timer_wheel
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 1
    functionsReached:
    - __builtin_clzll
    - H2O_BUILD_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t timer_wheel(size_t num_wheels, uint64_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wheel
    - expire
    argTypes:
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: timer_slot
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t timer_slot(size_t wheel, uint64_t expire)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SPAN
      Src: /src/h2o/lib/common/timerwheel.c:106,1
    - Dst: SPAN
      Src: /src/h2o/lib/common/timerwheel.c:106,1
    - Dst: SPAN
      Src: /src/h2o/lib/common/timerwheel.c:116,1
    - Dst: SPAN
      Src: /src/h2o/lib/common/timerwheel.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - num_wheels
    - last_run
    - wheel
    - slot
    - at_min
    - at_max
    argTypes:
    - size_t
    - uint64_t
    - size_t
    - size_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: calc_expire_for_slot
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 1
    functionsReached:
    - SPAN
    linkageType: ''
    returnType: void
    signature: "void calc_expire_for_slot(size_t num_wheels, uint64_t last_run, size_t
      wheel, size_t slot, uint64_t *at_min,\n                                 uint64_t
      *at_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: SPAN
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPAN(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_expire_for_slot
      Src: /src/h2o/lib/common/timerwheel.c:133,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/timerwheel.c:136,1
    - Dst: REPORT_CORRUPT_TIMER
      Src: /src/h2o/lib/common/timerwheel.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - wheel
    - slot
    argTypes:
    - h2o_timerwheel_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: validate_slot
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - calc_expire_for_slot
    - REPORT_CORRUPT_TIMER
    linkageType: ''
    returnType: int
    signature: int validate_slot(h2o_timerwheel_t *ctx, size_t wheel, size_t slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_slot
      Src: /src/h2o/lib/common/timerwheel.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_timerwheel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: h2o_timerwheel_validate
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - validate_slot
    linkageType: ''
    returnType: int
    signature: int h2o_timerwheel_validate(h2o_timerwheel_t *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: timer_slot
      Src: /src/h2o/lib/common/timerwheel.c:167,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:170,1
    - Dst: timer_slot
      Src: /src/h2o/lib/common/timerwheel.c:179,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:180,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:190,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_timerwheel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 203
    functionName: h2o_timerwheel_get_wake_at
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 6
    functionsReached:
    - h2o_linklist_is_empty
    - timer_slot
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_timerwheel_get_wake_at(h2o_timerwheel_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: timer_wheel
      Src: /src/h2o/lib/common/timerwheel.c:213,1
    - Dst: timer_slot
      Src: /src/h2o/lib/common/timerwheel.c:214,1
    - Dst: calc_expire_for_slot
      Src: /src/h2o/lib/common/timerwheel.c:218,1
    - Dst: ABORT_CORRUPT_TIMER
      Src: /src/h2o/lib/common/timerwheel.c:220,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/timerwheel.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - h2o_timerwheel_t*
    - h2o_timerwheel_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: link_timer
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - timer_wheel
    - ABORT_CORRUPT_TIMER
    - calc_expire_for_slot
    - timer_slot
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void link_timer(h2o_timerwheel_t *ctx, h2o_timerwheel_entry_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/timerwheel.c:234,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/timerwheel.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - num_wheels
    - now
    argTypes:
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 246
    functionName: h2o_timerwheel_create
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 12
    functionsReached:
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    linkageType: ''
    returnType: h2o_timerwheel_t
    signature: h2o_timerwheel_t *h2o_timerwheel_create(size_t num_wheels, uint64_t
      now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:254,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/timerwheel.c:255,1
    - Dst: h2o_timerwheel_unlink
      Src: /src/h2o/lib/common/timerwheel.c:256,1
    - Dst: free
      Src: /src/h2o/lib/common/timerwheel.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_timerwheel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: h2o_timerwheel_destroy
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 11
    functionsReached:
    - h2o_timerwheel_unlink
    - free
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_destroy(h2o_timerwheel_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/timerwheel.c:270,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:274,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/timerwheel.c:275,1
    - Dst: ABORT_CORRUPT_TIMER
      Src: /src/h2o/lib/common/timerwheel.c:277,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/timerwheel.c:278,1
    - Dst: link_timer
      Src: /src/h2o/lib/common/timerwheel.c:279,1
    - Dst: assert
      Src: /src/h2o/lib/common/timerwheel.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - wheel
    - slot
    argTypes:
    - h2o_timerwheel_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (wheel > 0)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/h2o/lib/common/timerwheel.c
    - condition: (&entry->_link != s->prev)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/h2o/lib/common/timerwheel.c
    constantsTouched: []
    func_position:
      end: 282
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 282
    functionName: cascade_one
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - ABORT_CORRUPT_TIMER
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    - assert
    - link_timer
    linkageType: ''
    returnType: void
    signature: void cascade_one(h2o_timerwheel_t *ctx, size_t wheel, size_t slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_slot
      Src: /src/h2o/lib/common/timerwheel.c:289,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:290,1
    - Dst: cascade_one
      Src: /src/h2o/lib/common/timerwheel.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - wheel
    argTypes:
    - h2o_timerwheel_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: cascade_all
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - cascade_one
    - timer_slot
    linkageType: ''
    returnType: int
    signature: int cascade_all(h2o_timerwheel_t *ctx, size_t wheel)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/timerwheel.c:306,1
    - Dst: timer_slot
      Src: /src/h2o/lib/common/timerwheel.c:312,1
    - Dst: h2o_linklist_insert_list
      Src: /src/h2o/lib/common/timerwheel.c:315,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:320,1
    - Dst: cascade_one
      Src: /src/h2o/lib/common/timerwheel.c:321,1
    - Dst: assert
      Src: /src/h2o/lib/common/timerwheel.c:322,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:322,1
    - Dst: cascade_all
      Src: /src/h2o/lib/common/timerwheel.c:334,1
    - Dst: assert
      Src: /src/h2o/lib/common/timerwheel.c:345,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - ctx
    - now
    - expired
    argTypes:
    - h2o_timerwheel_t*
    - uint64_t
    - h2o_linklist_t*
    assertStmts:
    - condition: (h2o_linklist_is_empty(&ctx->wheels[wheel][slot]))
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/h2o/lib/common/timerwheel.c
    - condition: (ctx->last_run == now)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/h2o/lib/common/timerwheel.c
    constantsTouched: []
    func_position:
      end: 346
      start: 300
    functionDepth: 5
    functionLinenumber: 300
    functionLinenumberEnd: 346
    functionName: h2o_timerwheel_get_expired
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_error_printf
    - cascade_one
    - h2o_linklist_insert_list
    - cascade_all
    - assert
    - timer_slot
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_get_expired(h2o_timerwheel_t *ctx, uint64_t now,
      h2o_linklist_t *expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/timerwheel.c:353,1
    - Dst: h2o_timerwheel_get_expired
      Src: /src/h2o/lib/common/timerwheel.c:354,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/timerwheel.c:355,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/timerwheel.c:356,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/timerwheel.c:357,1
    - Dst: h2o_timerwheel_entry_t*::cb
      Src: /src/h2o/lib/common/timerwheel.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - now
    argTypes:
    - h2o_timerwheel_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 348
    functionDepth: 6
    functionLinenumber: 348
    functionLinenumberEnd: 363
    functionName: h2o_timerwheel_run
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 12
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timerwheel_get_expired
    - h2o_linklist_init_anchor
    - h2o_timerwheel_entry_t*::cb
    - h2o_linklist_unlink
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_timerwheel_run(h2o_timerwheel_t *ctx, uint64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: link_timer
      Src: /src/h2o/lib/common/timerwheel.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - entry
    - at
    argTypes:
    - h2o_timerwheel_t*
    - h2o_timerwheel_entry_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: h2o_timerwheel_link_abs
    functionSourceFile: /src/h2o/lib/common/timerwheel.c
    functionUses: 13
    functionsReached:
    - link_timer
    linkageType: ''
    returnType: void
    signature: void h2o_timerwheel_link_abs(h2o_timerwheel_t *ctx, h2o_timerwheel_entry_t
      *entry, uint64_t at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_dispose_export
      Src: /src/h2o/lib/common/socketpool.c:76,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct pool_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: destroy_detached
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_socket_dispose_export
    linkageType: ''
    returnType: void
    signature: void destroy_detached(struct pool_entry_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/socketpool.c:82,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/socketpool.c:83,1
    - Dst: destroy_detached
      Src: /src/h2o/lib/common/socketpool.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct pool_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: destroy_attached
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - destroy_detached
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void destroy_attached(struct pool_entry_t *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_now
      Src: /src/h2o/lib/common/socketpool.c:91,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/socketpool.c:93,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socketpool.c:94,1
    - Dst: destroy_attached
      Src: /src/h2o/lib/common/socketpool.c:98,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:99,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: destroy_expired_locked
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - destroy_attached
    - __sync_sub_and_fetch
    - h2o_linklist_is_empty
    - h2o_now
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t destroy_expired_locked(h2o_socketpool_t *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy_expired_locked
      Src: /src/h2o/lib/common/socketpool.c:109,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/socketpool.c:111,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/socketpool.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - this_loop
    argTypes:
    - h2o_socketpool_t*
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 8
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: check_pool_expired_locked
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - destroy_expired_locked
    - h2o_timer_is_linked
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void check_pool_expired_locked(h2o_socketpool_t *pool, h2o_loop_t *this_loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socketpool.c:124,1
    - Dst: pthread_mutex_trylock
      Src: /src/h2o/lib/common/socketpool.c:126,1
    - Dst: check_pool_expired_locked
      Src: /src/h2o/lib/common/socketpool.c:127,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socketpool.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 9
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: on_timeout
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 2
    functionsReached:
    - check_pool_expired_locked
    - pthread_mutex_trylock
    - pthread_mutex_unlock
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_timeout(h2o_timer_t *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/common/socketpool.c:135,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/socketpool.c:140,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/socketpool.c:141,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/socketpool.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - pool
    - targets
    - num_targets
    - capacity
    - balancer
    argTypes:
    - h2o_socketpool_t*
    - h2o_socketpool_target_t**
    - size_t
    - size_t
    - h2o_balancer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: common_init
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_linklist_init_anchor
    - memset
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: "void common_init(h2o_socketpool_t *pool, h2o_socketpool_target_t **targets,
      size_t num_targets, size_t capacity,\n                        h2o_balancer_t
      *balancer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/common/socketpool.c:153,1
    - Dst: h2o_url_host_to_sun
      Src: /src/h2o/lib/common/socketpool.c:154,1
    - Dst: h2o_hostinfo_aton
      Src: /src/h2o/lib/common/socketpool.c:160,1
    - Dst: htons
      Src: /src/h2o/lib/common/socketpool.c:161,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/common/socketpool.c:161,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - url
    - sa
    - salen
    argTypes:
    - h2o_url_t*
    - struct sockaddr_storage*
    - socklen_t*
    assertStmts:
    - condition: (to_sun_err == NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: detect_target_type
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - h2o_url_get_port
    - h2o_hostinfo_aton
    - htons
    - memset
    - assert
    - h2o_url_host_to_sun
    linkageType: ''
    returnType: h2o_socketpool_target_type_t
    signature: h2o_socketpool_target_type_t detect_target_type(h2o_url_t *url, struct
      sockaddr_storage *sa, socklen_t *salen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:178,1
    - Dst: h2o_url_copy
      Src: /src/h2o/lib/common/socketpool.c:179,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:180,1
    - Dst: detect_target_type
      Src: /src/h2o/lib/common/socketpool.c:181,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/common/socketpool.c:183,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/common/socketpool.c:184,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:189,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/socketpool.c:190,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/common/socketpool.c:190,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:193,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socketpool.c:194,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/socketpool.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - origin
    - lb_target_conf
    argTypes:
    - h2o_url_t*
    - h2o_socketpool_target_conf_t*
    assertStmts:
    - condition: (target->url.host.base[target->url.host.len] == '\0')
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/h2o/lib/common/socketpool.c
    - condition: (salen <= sizeof(target->peer.sockaddr.bytes))
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 207
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 207
    functionName: h2o_socketpool_create_target
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - h2o_url_get_port
    - h2o_url_copy
    - h2o_mem_alloc
    - detect_target_type
    - sprintf
    - memcpy
    - h2o_linklist_init_anchor
    - h2o_strtolower
    - assert
    linkageType: ''
    returnType: h2o_socketpool_target_t
    signature: h2o_socketpool_target_t *h2o_socketpool_create_target(h2o_url_t *origin,
      h2o_socketpool_target_conf_t *lb_target_conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_balancer_create_rr
      Src: /src/h2o/lib/common/socketpool.c:213,1
    - Dst: common_init
      Src: /src/h2o/lib/common/socketpool.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pool
    - capacity
    - targets
    - num_targets
    - balancer
    argTypes:
    - h2o_socketpool_t*
    - size_t
    - h2o_socketpool_target_t**
    - size_t
    - h2o_balancer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: h2o_socketpool_init_specific
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - h2o_balancer_create_rr
    - common_init
    linkageType: ''
    returnType: void
    signature: "void h2o_socketpool_init_specific(h2o_socketpool_t *pool, size_t capacity,
      h2o_socketpool_target_t **targets, size_t num_targets,\n                                  h2o_balancer_t
      *balancer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: h2o_socketpool_is_global
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socketpool_is_global(h2o_socketpool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_init
      Src: /src/h2o/lib/common/socketpool.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - capacity
    argTypes:
    - h2o_socketpool_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: h2o_socketpool_init_global
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - common_init
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_init_global(h2o_socketpool_t *pool, size_t capacity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:231,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:236,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:237,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:238,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - target
    argTypes:
    - h2o_socketpool_target_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: h2o_socketpool_destroy_target
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_destroy_target(h2o_socketpool_target_t *target)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/socketpool.c:246,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/socketpool.c:247,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socketpool.c:248,1
    - Dst: destroy_attached
      Src: /src/h2o/lib/common/socketpool.c:249,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:250,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:251,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socketpool.c:253,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/socketpool.c:254,1
    - Dst: h2o_socketpool_t*::balancer::callbacks::destroy
      Src: /src/h2o/lib/common/socketpool.c:257,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/lib/common/socketpool.c:261,1
    - Dst: h2o_socketpool_unregister_loop
      Src: /src/h2o/lib/common/socketpool.c:264,1
    - Dst: h2o_socketpool_destroy_target
      Src: /src/h2o/lib/common/socketpool.c:267,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 270
    functionName: h2o_socketpool_dispose
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - destroy_attached
    - __sync_sub_and_fetch
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - free
    - pthread_mutex_lock
    - h2o_socketpool_destroy_target
    - pthread_mutex_unlock
    - h2o_socketpool_t*::balancer::callbacks::destroy
    - SSL_CTX_free
    - h2o_socketpool_unregister_loop
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_dispose(h2o_socketpool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/h2o/lib/common/socketpool.c:275,1
    - Dst: SSL_CTX_up_ref
      Src: /src/h2o/lib/common/socketpool.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - ssl_ctx
    argTypes:
    - h2o_socketpool_t*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: h2o_socketpool_set_ssl_ctx
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_up_ref
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_set_ssl_ctx(h2o_socketpool_t *pool, SSL_CTX *ssl_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/common/socketpool.c:287,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/socketpool.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - loop
    argTypes:
    - h2o_socketpool_t*
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: h2o_socketpool_register_loop
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 2
    functionsReached:
    - h2o_timer_init
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_register_loop(h2o_socketpool_t *pool, h2o_loop_t
      *loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/socketpool.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - loop
    argTypes:
    - h2o_socketpool_t*
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: h2o_socketpool_unregister_loop
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 2
    functionsReached:
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_unregister_loop(h2o_socketpool_t *pool, h2o_loop_t
      *loop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:307,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:310,1
    - Dst: cb
      Src: /src/h2o/lib/common/socketpool.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - h2o_socketpool_connect_request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: call_connect_cb
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - free
    - cb
    linkageType: ''
    returnType: void
    signature: void call_connect_cb(h2o_socketpool_connect_request_t *req, const char
      *errstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_connect_request_t*::pool::balancer::callbacks::select_
      Src: /src/h2o/lib/common/socketpool.c:325,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:326,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:333,1
    - Dst: h2o_hostinfo_getaddr
      Src: /src/h2o/lib/common/socketpool.c:339,1
    - Dst: start_connect
      Src: /src/h2o/lib/common/socketpool.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_socketpool_connect_request_t*
    assertStmts:
    - condition: (!req->lb.tried[req->selected_target])
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 347
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 347
    functionName: try_connect
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - assert
    - __sync_add_and_fetch
    - h2o_socketpool_connect_request_t*::pool::balancer::callbacks::select_
    - start_connect
    - h2o_hostinfo_getaddr
    linkageType: ''
    returnType: void
    signature: void try_connect(h2o_socketpool_connect_request_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:353,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/h2o/lib/common/socketpool.c:355,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socketpool.c:358,1
    - Dst: call_connect_cb
      Src: /src/h2o/lib/common/socketpool.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (req->sock == sock)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 7
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: on_handshake_complete
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 3
    functionsReached:
    - call_connect_cb
    - h2o_socket_close
    - SSL_CTX_get_verify_mode
    - assert
    linkageType: ''
    returnType: void
    signature: void on_handshake_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:369,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:372,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socketpool.c:373,1
    - Dst: try_connect
      Src: /src/h2o/lib/common/socketpool.c:375,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:378,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:383,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/lib/common/socketpool.c:384,1
    - Dst: call_connect_cb
      Src: /src/h2o/lib/common/socketpool.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (req->sock == sock)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/h2o/lib/common/socketpool.c
    - condition: (req->pool->_ssl_ctx != NULL && "h2o_socketpool_set_ssl_ctx must
        be called for a pool that contains SSL target")
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 13
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 6
    functionsReached:
    - __sync_sub_and_fetch
    - try_connect
    - h2o_socket_close
    - h2o_socket_ssl_handshake
    - call_connect_cb
    - assert
    linkageType: ''
    returnType: void
    signature: void on_connect(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:396,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:397,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: on_close
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 8
    functionsReached:
    - free
    - __sync_sub_and_fetch
    linkageType: ''
    returnType: void
    signature: void on_close(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_connect
      Src: /src/h2o/lib/common/socketpool.c:405,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:407,1
    - Dst: try_connect
      Src: /src/h2o/lib/common/socketpool.c:409,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:412,1
    - Dst: call_connect_cb
      Src: /src/h2o/lib/common/socketpool.c:413,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - req
    - addr
    - addrlen
    argTypes:
    - h2o_socketpool_connect_request_t*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 422
    functionName: start_connect
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 2
    functionsReached:
    - __sync_sub_and_fetch
    - try_connect
    - h2o_socket_connect
    - h2o_mem_alloc
    - call_connect_cb
    linkageType: ''
    returnType: void
    signature: void start_connect(h2o_socketpool_connect_request_t *req, struct sockaddr
      *addr, socklen_t addrlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:428,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:432,1
    - Dst: try_connect
      Src: /src/h2o/lib/common/socketpool.c:434,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:437,1
    - Dst: call_connect_cb
      Src: /src/h2o/lib/common/socketpool.c:438,1
    - Dst: h2o_hostinfo_select_one
      Src: /src/h2o/lib/common/socketpool.c:442,1
    - Dst: start_connect
      Src: /src/h2o/lib/common/socketpool.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - getaddr_req
    - errstr
    - res
    - _req
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    - char*
    - struct addrinfo*
    - void*
    assertStmts:
    - condition: (getaddr_req == req->getaddr_req)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 444
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 444
    functionName: on_getaddr
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - __sync_sub_and_fetch
    - try_connect
    - h2o_hostinfo_select_one
    - call_connect_cb
    - start_connect
    - assert
    linkageType: ''
    returnType: void
    signature: void on_getaddr(h2o_hostinfo_getaddr_req_t *getaddr_req, const char
      *errstr, struct addrinfo *res, void *_req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/common/socketpool.c:448,1
    - Dst: h2o_url_get_port
      Src: /src/h2o/lib/common/socketpool.c:454,1
    - Dst: h2o_url_hosts_are_equal
      Src: /src/h2o/lib/common/socketpool.c:456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - url
    argTypes:
    - h2o_socketpool_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: lookup_target
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 0
    functionsReached:
    - h2o_url_hosts_are_equal
    - h2o_url_get_port
    linkageType: ''
    returnType: size_t
    signature: size_t lookup_target(h2o_socketpool_t *pool, h2o_url_t *url)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/socketpool.c:479,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/socketpool.c:483,1
    - Dst: check_pool_expired_locked
      Src: /src/h2o/lib/common/socketpool.c:484,1
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/socketpool.c:487,1
    - Dst: lookup_target
      Src: /src/h2o/lib/common/socketpool.c:488,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/socketpool.c:490,1
    - Dst: h2o_socketpool_create_target
      Src: /src/h2o/lib/common/socketpool.c:491,1
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:498,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/socketpool.c:500,1
    - Dst: h2o_socketpool_is_global
      Src: /src/h2o/lib/common/socketpool.c:501,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socketpool.c:502,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socketpool.c:504,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/socketpool.c:506,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/socketpool.c:507,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socketpool.c:508,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:510,1
    - Dst: recv
      Src: /src/h2o/lib/common/socketpool.c:514,1
    - Dst: h2o_socket_import
      Src: /src/h2o/lib/common/socketpool.c:518,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:519,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:520,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:525,1
    - Dst: cb
      Src: /src/h2o/lib/common/socketpool.c:526,1
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/lib/common/socketpool.c:533,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socketpool.c:534,1
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/lib/common/socketpool.c:537,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socketpool.c:538,1
    - Dst: destroy_detached
      Src: /src/h2o/lib/common/socketpool.c:540,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/socketpool.c:541,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socketpool.c:543,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:547,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:550,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:560,1
    - Dst: memset
      Src: /src/h2o/lib/common/socketpool.c:561,1
    - Dst: try_connect
      Src: /src/h2o/lib/common/socketpool.c:566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 8
    argNames:
    - _req
    - pool
    - url
    - loop
    - getaddr_receiver
    - alpn_protos
    - cb
    - data
    argTypes:
    - h2o_socketpool_connect_request_t**
    - h2o_socketpool_t*
    - h2o_url_t*
    - h2o_loop_t*
    - h2o_multithread_receiver_t*
    - h2o_iovec_t
    - h2o_socketpool_connect_cb
    - void*
    assertStmts:
    - condition: (pool->targets.size != 0)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 567
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 567
    functionName: h2o_socketpool_connect
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - __sync_sub_and_fetch
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - check_pool_expired_locked
    - h2o_socketpool_create_target
    - assert
    - h2o_linklist_is_empty
    - __sync_add_and_fetch
    - H2O_STRUCT_FROM_MEMBER
    - free
    - pthread_mutex_lock
    - recv
    - memset
    - h2o_error_printf
    - try_connect
    - h2o_mem_alloc
    - h2o_vector_reserve
    - h2o_socket_import
    - __sync_fetch_and_add
    - cb
    - destroy_detached
    - h2o_socketpool_is_global
    - lookup_target
    linkageType: ''
    returnType: void
    signature: "void h2o_socketpool_connect(h2o_socketpool_connect_request_t **_req,
      h2o_socketpool_t *pool, h2o_url_t *url, h2o_loop_t *loop,\n                            h2o_multithread_receiver_t
      *getaddr_receiver, h2o_iovec_t alpn_protos, h2o_socketpool_connect_cb cb,\n
      \                           void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hostinfo_getaddr_cancel
      Src: /src/h2o/lib/common/socketpool.c:572,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socketpool.c:576,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:578,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:579,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_socketpool_connect_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 7
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: h2o_socketpool_cancel_connect
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - h2o_socket_close
    - free
    - __sync_sub_and_fetch
    - h2o_hostinfo_getaddr_cancel
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_cancel_connect(h2o_socketpool_connect_request_t
      *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:593,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:594,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:595,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socketpool.c:599,1
    - Dst: h2o_socket_export
      Src: /src/h2o/lib/common/socketpool.c:600,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:601,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:602,1
    - Dst: memset
      Src: /src/h2o/lib/common/socketpool.c:605,1
    - Dst: memset
      Src: /src/h2o/lib/common/socketpool.c:606,1
    - Dst: h2o_now
      Src: /src/h2o/lib/common/socketpool.c:607,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socketpool.c:607,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:610,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/socketpool.c:612,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/socketpool.c:613,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/socketpool.c:614,1
    - Dst: check_pool_expired_locked
      Src: /src/h2o/lib/common/socketpool.c:615,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/socketpool.c:615,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socketpool.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - pool
    - sock
    argTypes:
    - h2o_socketpool_t*
    - h2o_socket_t*
    assertStmts:
    - condition: (close_data->pool == pool)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 618
      start: 584
    functionDepth: 9
    functionLinenumber: 584
    functionLinenumberEnd: 618
    functionName: h2o_socketpool_return
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - __sync_sub_and_fetch
    - __sync_add_and_fetch
    - h2o_now
    - free
    - h2o_socket_export
    - h2o_socket_get_loop
    - pthread_mutex_lock
    - h2o_mem_alloc
    - pthread_mutex_unlock
    - check_pool_expired_locked
    - memset
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: int h2o_socketpool_return(h2o_socketpool_t *pool, h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socketpool.c:623,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:625,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/common/socketpool.c:626,1
    - Dst: free
      Src: /src/h2o/lib/common/socketpool.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - sock
    argTypes:
    - h2o_socketpool_t*
    - h2o_socket_t*
    assertStmts:
    - condition: (close_data->pool == pool)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/h2o/lib/common/socketpool.c
    constantsTouched: []
    func_position:
      end: 631
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 631
    functionName: h2o_socketpool_detach
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached:
    - free
    - __sync_sub_and_fetch
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_socketpool_detach(h2o_socketpool_t *pool, h2o_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_socketpool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: h2o_socketpool_can_keepalive
    functionSourceFile: /src/h2o/lib/common/socketpool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socketpool_can_keepalive(h2o_socketpool_t *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/lib/common/rand.c:38,1
    - Dst: rand_r
      Src: /src/h2o/lib/common/rand.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: h2o_rand
    functionSourceFile: /src/h2o/lib/common/rand.c
    functionUses: 2
    functionsReached:
    - rand_r
    - ptls_openssl_random_bytes
    linkageType: ''
    returnType: int
    signature: int h2o_rand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:72,1
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:74,1
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:76,1
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:78,1
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:79,1
    - Dst: UUID_ENC_PART
      Src: /src/h2o/lib/common/rand.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dst
    - octets
    - version
    argTypes:
    - char*
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: format_uuid_rfc4122
    functionSourceFile: /src/h2o/lib/common/rand.c
    functionUses: 1
    functionsReached:
    - UUID_ENC_PART
    linkageType: ''
    returnType: void
    signature: void format_uuid_rfc4122(char *dst, uint8_t *octets, uint8_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - first
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: UUID_ENC_PART
    functionSourceFile: /src/h2o/lib/common/rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UUID_ENC_PART(first, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptls_openssl_random_bytes
      Src: /src/h2o/lib/common/rand.c:94,1
    - Dst: format_uuid_rfc4122
      Src: /src/h2o/lib/common/rand.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dst
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: h2o_generate_uuidv4
    functionSourceFile: /src/h2o/lib/common/rand.c
    functionUses: 1
    functionsReached:
    - ptls_openssl_random_bytes
    - format_uuid_rfc4122
    linkageType: ''
    returnType: void
    signature: void h2o_generate_uuidv4(char *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/http2client.c:116,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:116,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: request_write
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_socket_is_writing
    - h2o_timer_is_linked
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void request_write(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:123,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:124,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:125,1
    - Dst: h2o_http2_encode_window_update_frame
      Src: /src/h2o/lib/common/http2client.c:126,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:127,1
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/common/http2client.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - stream_id
    - window
    - desired
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint32_t
    - h2o_http2_window_t*
    - size_t
    assertStmts:
    - condition: (desired <= INT32_MAX)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: enqueue_window_update
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_http2_encode_window_update_frame
    - request_write
    - h2o_http2_window_update
    - assert
    linkageType: ''
    returnType: void
    signature: "void enqueue_window_update(struct st_h2o_http2client_conn_t *conn,
      uint32_t stream_id, h2o_http2_window_t *window,\n                                  size_t
      desired)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:134,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:135,1
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/common/http2client.c:137,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - stream_id
    - errnum
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint32_t
    - int
    assertStmts:
    - condition: (stream_id != 0)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (conn->state != H2O_HTTP2CLIENT_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: stream_send_error
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_encode_rst_stream_frame
    - assert
    - request_write
    linkageType: ''
    returnType: void
    signature: void stream_send_error(struct st_h2o_http2client_conn_t *conn, uint32_t
      stream_id, int errnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/common/http2client.c:143,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/http2client.c:144,1
    - Dst: kh_val
      Src: /src/h2o/lib/common/http2client.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: get_stream
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 27
    functionsReached:
    - kh_val
    - kh_end
    - kh_get
    linkageType: ''
    returnType: struct st_h2o_http2client_stream_t
    signature: struct st_h2o_http2client_stream_t *get_stream(struct st_h2o_http2client_conn_t
      *conn, uint32_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_httpclient_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: get_max_buffer_size
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_max_buffer_size(h2o_httpclient_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_httpclient__h2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: h2o_httpclient__h2_get_max_concurrent_streams
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h2o_httpclient__h2_get_max_concurrent_streams(h2o_httpclient__h2_conn_t
      *_conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:168,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:168,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:171,1
    - Dst: h2o_httpclient__h2_get_max_concurrent_streams
      Src: /src/h2o/lib/common/http2client.c:174,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:179,1
    - Dst: h2o_httpclient__h2_get_max_concurrent_streams
      Src: /src/h2o/lib/common/http2client.c:180,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:194,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - connpool
    - conn
    - forward
    argTypes:
    - h2o_httpclient_connection_pool_t*
    - struct st_h2o_http2client_conn_t*
    - int
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&conn->super.link))
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 196
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 196
    functionName: adjust_conn_linkedlist
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_httpclient__h2_get_max_concurrent_streams
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void adjust_conn_linkedlist(h2o_httpclient_connection_pool_t *connpool,
      struct st_h2o_http2client_conn_t *conn, int forward)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:200,1
    - Dst: kh_put
      Src: /src/h2o/lib/common/http2client.c:208,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:209,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/http2client.c:209,1
    - Dst: kh_val
      Src: /src/h2o/lib/common/http2client.c:210,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:214,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:215,1
    - Dst: adjust_conn_linkedlist
      Src: /src/h2o/lib/common/http2client.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - stream
    - conn
    argTypes:
    - struct st_h2o_http2client_stream_t*
    - struct st_h2o_http2client_conn_t*
    assertStmts:
    - condition: (stream->stream_id == 0)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: register_stream
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - kh_val
    - assert
    - h2o_timer_unlink
    - kh_end
    - adjust_conn_linkedlist
    - h2o_timer_is_linked
    - kh_put
    linkageType: ''
    returnType: void
    signature: void register_stream(struct st_h2o_http2client_stream_t *stream, struct
      st_h2o_http2client_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/common/http2client.c:222,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:223,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/http2client.c:223,1
    - Dst: kh_del
      Src: /src/h2o/lib/common/http2client.c:224,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:229,1
    - Dst: adjust_conn_linkedlist
      Src: /src/h2o/lib/common/http2client.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts:
    - condition: (iter != kh_end(stream->conn->streams))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: unregister_stream
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - kh_del
    - h2o_timer_link
    - kh_end
    - adjust_conn_linkedlist
    - kh_get
    - assert
    linkageType: ''
    returnType: void
    signature: void unregister_stream(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unregister_stream
      Src: /src/h2o/lib/common/http2client.c:237,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:240,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:241,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:242,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:243,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:246,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:247,1
    - Dst: free
      Src: /src/h2o/lib/common/http2client.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 253
    functionName: close_stream
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 4
    functionsReached:
    - h2o_timer_unlink
    - unregister_stream
    - free
    - h2o_buffer_dispose
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: void
    signature: void close_stream(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:257,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts:
    - condition: (stream->state.res != STREAM_STATE_CLOSED)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: close_response
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 5
    functionsReached:
    - close_stream
    - assert
    linkageType: ''
    returnType: void
    signature: void close_response(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:266,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_head
      Src: /src/h2o/lib/common/http2client.c:270,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_body
      Src: /src/h2o/lib/common/http2client.c:273,1
    - Dst: cb
      Src: /src/h2o/lib/common/http2client.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - stream
    - errstr
    argTypes:
    - struct st_h2o_http2client_stream_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: call_callback_with_error
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http2client_stream_t*::super::_cb::on_body
    - cb
    - assert
    - struct st_h2o_http2client_stream_t*::super::_cb::on_head
    linkageType: ''
    returnType: void
    signature: void call_callback_with_error(struct st_h2o_http2client_stream_t *stream,
      const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/common/http2client.c:289,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - errstr
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: call_stream_callbacks_with_error
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - call_callback_with_error
    - kh_foreach_value
    linkageType: ''
    returnType: void
    signature: void call_stream_callbacks_with_error(struct st_h2o_http2client_conn_t
      *conn, const char *errstr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/common/http2client.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - headers
    - content_length
    - err_desc
    argTypes:
    - h2o_headers_t*
    - size_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: extract_content_length
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_strtosize
    linkageType: ''
    returnType: int
    signature: int extract_content_length(const h2o_headers_t *headers, size_t *content_length,
      const char **err_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/lib/common/http2client.c:332,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:352,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:353,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:354,1
    - Dst: struct st_h2o_http2client_stream_t*::super::informational_cb
      Src: /src/h2o/lib/common/http2client.c:360,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http2client.c:360,1
    - Dst: extract_content_length
      Src: /src/h2o/lib/common/http2client.c:373,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http2client.c:380,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_head
      Src: /src/h2o/lib/common/http2client.c:384,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http2client.c:387,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:406,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:407,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:409,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:410,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 6
    argNames:
    - conn
    - stream
    - src
    - len
    - err_desc
    - is_end_stream
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - struct st_h2o_http2client_stream_t*
    - uint8_t*
    - size_t
    - char**
    - int
    assertStmts:
    - condition: (ret == H2O_HTTP2_ERROR_PROTOCOL)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 412
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 412
    functionName: on_head
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 7
    functionsReached:
    - extract_content_length
    - h2o_hpack_parse_response
    - stream_send_error
    - h2o_iovec_init
    - call_callback_with_error
    - close_response
    - struct st_h2o_http2client_stream_t*::super::informational_cb
    - request_write
    - close_stream
    - struct st_h2o_http2client_stream_t*::super::_cb::on_head
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: "int on_head(struct st_h2o_http2client_conn_t *conn, struct st_h2o_http2client_stream_t
      *stream, const uint8_t *src,\n                   size_t len, const char **err_desc,
      int is_end_stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:419,1
    - Dst: h2o_hpack_parse_response
      Src: /src/h2o/lib/common/http2client.c:421,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_body
      Src: /src/h2o/lib/common/http2client.c:430,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http2client.c:435,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:439,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:440,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:442,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - len
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - struct st_h2o_http2client_stream_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts:
    - condition: (stream->state.res == STREAM_STATE_BODY)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (ret == H2O_HTTP2_ERROR_PROTOCOL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 445
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 445
    functionName: on_trailers
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_http2client_stream_t*::super::_cb::on_body
    - h2o_hpack_parse_response
    - stream_send_error
    - call_callback_with_error
    - close_response
    - close_stream
    - assert
    linkageType: ''
    returnType: int
    signature: "int on_trailers(struct st_h2o_http2client_conn_t *conn, struct st_h2o_http2client_stream_t
      *stream, const uint8_t *src,\n                       size_t len, const char
      **err_desc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/lib/common/http2client.c:456,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:463,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http2client.c:469,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/http2client.c:470,1
    - Dst: on_trailers
      Src: /src/h2o/lib/common/http2client.c:477,1
    - Dst: on_head
      Src: /src/h2o/lib/common/http2client.c:480,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - conn
    - src
    - len
    - err_desc
    - headers_had_end_stream
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint8_t*
    - size_t
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 491
    functionName: expect_continuation_of_headers
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - on_trailers
    - on_head
    - get_stream
    - h2o_http2_decode_frame
    - h2o_buffer_reserve
    - h2o_buffer_dispose
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t expect_continuation_of_headers(struct st_h2o_http2client_conn_t
      *conn, const uint8_t *src, size_t len,\n                                              const
      char **err_desc, int headers_had_end_stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_continuation_of_headers
      Src: /src/h2o/lib/common/http2client.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: expect_continuation_of_headers_eos
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - expect_continuation_of_headers
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t expect_continuation_of_headers_eos(struct st_h2o_http2client_conn_t
      *conn, const uint8_t *src, size_t len,\n                                                  const
      char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_continuation_of_headers
      Src: /src/h2o/lib/common/http2client.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: expect_continuation_of_headers_no_eos
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - expect_continuation_of_headers
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t expect_continuation_of_headers_no_eos(struct st_h2o_http2client_conn_t
      *conn, const uint8_t *src, size_t len,\n                                                     const
      char **err_desc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_data_payload
      Src: /src/h2o/lib/common/http2client.c:512,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:516,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/common/http2client.c:518,1
    - Dst: enqueue_window_update
      Src: /src/h2o/lib/common/http2client.c:519,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:528,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:529,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:530,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:553,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:554,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:555,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:567,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:568,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:569,1
    - Dst: get_max_buffer_size
      Src: /src/h2o/lib/common/http2client.c:575,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:577,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:578,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:579,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http2client.c:583,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/common/http2client.c:585,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/common/http2client.c:586,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_body
      Src: /src/h2o/lib/common/http2client.c:589,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:590,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:591,1
    - Dst: close_response
      Src: /src/h2o/lib/common/http2client.c:596,1
    - Dst: enqueue_window_update
      Src: /src/h2o/lib/common/http2client.c:599,1
    - Dst: do_update_window
      Src: /src/h2o/lib/common/http2client.c:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 605
    functionName: handle_data_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - get_stream
    - h2o_http2_decode_data_payload
    - h2o_http2_window_consume_window
    - struct st_h2o_http2client_stream_t*::super::_cb::on_body
    - stream_send_error
    - do_update_window
    - enqueue_window_update
    - call_callback_with_error
    - close_response
    - get_max_buffer_size
    - close_stream
    - h2o_buffer_append
    linkageType: ''
    returnType: int
    signature: int handle_data_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_headers_payload
      Src: /src/h2o/lib/common/http2client.c:614,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:626,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:636,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:647,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http2client.c:648,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/http2client.c:649,1
    - Dst: on_trailers
      Src: /src/h2o/lib/common/http2client.c:656,1
    - Dst: on_head
      Src: /src/h2o/lib/common/http2client.c:658,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 660
    functionName: handle_headers_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - on_trailers
    - on_head
    - h2o_timer_unlink
    - get_stream
    - h2o_buffer_init
    - h2o_buffer_reserve
    - memcpy
    - h2o_http2_decode_headers_payload
    linkageType: ''
    returnType: int
    signature: int handle_headers_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_priority_payload
      Src: /src/h2o/lib/common/http2client.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 676
    functionName: handle_priority_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_priority_payload
    linkageType: ''
    returnType: int
    signature: int handle_priority_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_rst_stream_payload
      Src: /src/h2o/lib/common/http2client.c:684,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:691,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:705,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 710
    functionName: handle_rst_stream_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - get_stream
    - call_callback_with_error
    - close_stream
    - h2o_http2_decode_rst_stream_payload
    linkageType: ''
    returnType: int
    signature: int handle_rst_stream_frame(struct st_h2o_http2client_conn_t *conn,
      h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/common/http2client.c:714,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:716,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:718,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - struct st_h2o_http2client_stream_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 721
    functionName: update_stream_output_window
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_linked
    - h2o_http2_window_update
    - h2o_http2_window_get_avail
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: int update_stream_output_window(struct st_h2o_http2client_stream_t
      *stream, ssize_t delta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_prepare_for_latency_optimized_write
      Src: /src/h2o/lib/common/http2client.c:729,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: conn_get_buffer_window
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_socket_prepare_for_latency_optimized_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t conn_get_buffer_window(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_update_peer_settings
      Src: /src/h2o/lib/common/http2client.c:760,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http2client.c:764,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/common/http2client.c:765,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:767,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/common/http2client.c:773,1
    - Dst: update_stream_output_window
      Src: /src/h2o/lib/common/http2client.c:773,1
    - Dst: conn_get_buffer_window
      Src: /src/h2o/lib/common/http2client.c:775,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 781
    functionName: handle_settings_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 2
    functionsReached:
    - h2o_http2_update_peer_settings
    - update_stream_output_window
    - conn_get_buffer_window
    - h2o_buffer_reserve
    - h2o_http2_encode_frame_header
    - request_write
    - kh_foreach_value
    linkageType: ''
    returnType: int
    signature: int handle_settings_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: handle_push_promise_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int handle_push_promise_frame(struct st_h2o_http2client_conn_t *conn,
      h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_ping_payload
      Src: /src/h2o/lib/common/http2client.c:794,1
    - Dst: h2o_http2_encode_ping_frame
      Src: /src/h2o/lib/common/http2client.c:798,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 803
    functionName: handle_ping_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - request_write
    - h2o_http2_encode_ping_frame
    - h2o_http2_decode_ping_payload
    linkageType: ''
    returnType: int
    signature: int handle_ping_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_goaway_payload
      Src: /src/h2o/lib/common/http2client.c:810,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/common/http2client.c:814,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:816,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:817,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:822,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 826
    functionName: handle_goaway_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_goaway_payload
    - close_stream
    - call_callback_with_error
    - h2o_linklist_unlink
    - kh_foreach_value
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: int
    signature: int handle_goaway_frame(struct st_h2o_http2client_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_window_update_payload
      Src: /src/h2o/lib/common/http2client.c:833,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:835,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:836,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:838,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:839,1
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/common/http2client.c:848,1
    - Dst: get_stream
      Src: /src/h2o/lib/common/http2client.c:853,1
    - Dst: update_stream_output_window
      Src: /src/h2o/lib/common/http2client.c:855,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:856,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:857,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:858,1
    - Dst: conn_get_buffer_window
      Src: /src/h2o/lib/common/http2client.c:867,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:868,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 871
    functionName: handle_window_update_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - get_stream
    - update_stream_output_window
    - conn_get_buffer_window
    - stream_send_error
    - call_callback_with_error
    - h2o_http2_window_update
    - request_write
    - close_stream
    - h2o_http2_decode_window_update_payload
    linkageType: ''
    returnType: int
    signature: int handle_window_update_frame(struct st_h2o_http2client_conn_t *conn,
      h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 878
    functionName: handle_invalid_continuation_frame
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handle_invalid_continuation_frame(struct st_h2o_http2client_conn_t
      *conn, h2o_http2_frame_t *frame,\n                                             const
      char **err_desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:882,1
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/lib/common/http2client.c:899,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/http2client.c:907,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts:
    - condition: (conn->state != H2O_HTTP2CLIENT_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 911
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 911
    functionName: expect_default
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_frame
    - h2o_error_printf
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t expect_default(struct st_h2o_http2client_conn_t *conn, const
      uint8_t *src, size_t len, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:915,1
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/lib/common/http2client.c:920,1
    - Dst: handle_settings_frame
      Src: /src/h2o/lib/common/http2client.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts:
    - condition: (conn->state != H2O_HTTP2CLIENT_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 932
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 932
    functionName: expect_settings
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_frame
    - assert
    - handle_settings_frame
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t expect_settings(struct st_h2o_http2client_conn_t *conn, const
      uint8_t *src, size_t len, const char **err_desc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/http2client.c:936,1
    - Dst: free
      Src: /src/h2o/lib/common/http2client.c:937,1
    - Dst: free
      Src: /src/h2o/lib/common/http2client.c:938,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/http2client.c:940,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/common/http2client.c:943,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:943,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/common/http2client.c:944,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:946,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:947,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:949,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:950,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:951,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:952,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/lib/common/http2client.c:955,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:956,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:958,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:959,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:960,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:961,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http2client.c:961,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:962,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http2client.c:962,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/lib/common/http2client.c:965,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:967,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/common/http2client.c:969,1
    - Dst: free
      Src: /src/h2o/lib/common/http2client.c:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts:
    - condition: (h2o_linklist_is_empty(&conn->output.sent_streams))
      pos:
        line_end: 961
        line_start: 961
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (h2o_linklist_is_empty(&conn->output.sending_streams))
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 971
      start: 934
    functionDepth: 7
    functionLinenumber: 934
    functionLinenumberEnd: 971
    functionName: close_connection_now
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_hpack_dispose_header_table
    - h2o_linklist_is_empty
    - kh_foreach_value
    - h2o_timer_unlink
    - h2o_socket_close
    - free
    - h2o_buffer_dispose
    - h2o_timer_is_linked
    - h2o_linklist_unlink
    - close_stream
    - h2o_linklist_is_linked
    - assert
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void close_connection_now(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_connection_now
      Src: /src/h2o/lib/common/http2client.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 982
    functionName: close_connection_if_necessary
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - close_connection_now
    linkageType: ''
    returnType: int
    signature: int close_connection_if_necessary(struct st_h2o_http2client_conn_t
      *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/http2client.c:987,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:989,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/common/http2client.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 996
    functionName: close_connection
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 20
    functionsReached:
    - h2o_socket_read_stop
    - h2o_timer_is_linked
    - close_connection_now
    linkageType: ''
    returnType: int
    signature: int close_connection(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_encode_goaway_frame
      Src: /src/h2o/lib/common/http2client.c:1003,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:1004,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:1008,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - errnum
    - additional_data
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - int
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1010
    functionName: enqueue_goaway
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - request_write
    - h2o_http2_encode_goaway_frame
    - h2o_linklist_is_linked
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void enqueue_goaway(struct st_h2o_http2client_conn_t *conn, int errnum,
      h2o_iovec_t additional_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1014,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_connect
      Src: /src/h2o/lib/common/http2client.c:1015,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - errstr
    argTypes:
    - struct st_h2o_http2client_stream_t*
    - char*
    assertStmts:
    - condition: (errstr != NULL)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: on_connect_error
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 2
    functionsReached:
    - close_stream
    - assert
    - struct st_h2o_http2client_stream_t*::super::_cb::on_connect
    linkageType: ''
    returnType: void
    signature: void on_connect_error(struct st_h2o_http2client_stream_t *stream, const
      char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_connect_error
      Src: /src/h2o/lib/common/http2client.c:1022,1
    - Dst: call_callback_with_error
      Src: /src/h2o/lib/common/http2client.c:1027,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: do_stream_timeout
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - call_callback_with_error
    - close_stream
    - on_connect_error
    linkageType: ''
    returnType: void
    signature: void do_stream_timeout(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1033,1
    - Dst: do_stream_timeout
      Src: /src/h2o/lib/common/http2client.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: on_stream_timeout
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - do_stream_timeout
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_stream_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1039,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/common/http2client.c:1041,1
    - Dst: do_stream_timeout
      Src: /src/h2o/lib/common/http2client.c:1041,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/common/http2client.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1043
    functionName: on_io_timeout
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - kh_foreach_value
    - do_stream_timeout
    - H2O_STRUCT_FROM_MEMBER
    - close_connection_now
    linkageType: ''
    returnType: void
    signature: void on_io_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1047,1
    - Dst: enqueue_goaway
      Src: /src/h2o/lib/common/http2client.c:1048,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http2client.c:1048,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:1049,1
    - Dst: close_connection
      Src: /src/h2o/lib/common/http2client.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: on_keepalive_timeout
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - enqueue_goaway
    - request_write
    - close_connection
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_keepalive_timeout(h2o_timer_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct st_h2o_http2client_conn_t*::input::read_frame
      Src: /src/h2o/lib/common/http2client.c:1060,1
    - Dst: enqueue_goaway
      Src: /src/h2o/lib/common/http2client.c:1065,1
    - Dst: strlen
      Src: /src/h2o/lib/common/http2client.c:1066,1
    - Dst: call_stream_callbacks_with_error
      Src: /src/h2o/lib/common/http2client.c:1068,1
    - Dst: close_connection
      Src: /src/h2o/lib/common/http2client.c:1069,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http2client.c:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1075
    functionName: parse_input
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_consume
    - struct st_h2o_http2client_conn_t*::input::read_frame
    - enqueue_goaway
    - call_stream_callbacks_with_error
    - close_connection
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_input(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:1081,1
    - Dst: call_stream_callbacks_with_error
      Src: /src/h2o/lib/common/http2client.c:1084,1
    - Dst: close_connection
      Src: /src/h2o/lib/common/http2client.c:1085,1
    - Dst: parse_input
      Src: /src/h2o/lib/common/http2client.c:1089,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1093,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:1094,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/common/http2client.c:1095,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1098,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1077
    functionDepth: 2
    functionLinenumber: 1077
    functionLinenumberEnd: 1100
    functionName: on_read
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 5
    functionsReached:
    - do_emit_writereq
    - h2o_timer_unlink
    - h2o_timer_link
    - call_stream_callbacks_with_error
    - h2o_timer_is_linked
    - parse_input
    - close_connection
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: register_stream
      Src: /src/h2o/lib/common/http2client.c:1111,1
    - Dst: struct st_h2o_http2client_stream_t*::super::_cb::on_connect
      Src: /src/h2o/lib/common/http2client.c:1114,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:1117,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/common/http2client.c:1121,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/common/http2client.c:1132,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/http2client.c:1132,1
    - Dst: h2o_hpack_flatten_request
      Src: /src/h2o/lib/common/http2client.c:1140,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http2client.c:1143,1
    - Dst: strlen
      Src: /src/h2o/lib/common/http2client.c:1143,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/http2client.c:1144,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:1148,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http2client.c:1149,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:1151,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:1152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - stream
    - conn
    argTypes:
    - struct st_h2o_http2client_stream_t*
    - struct st_h2o_http2client_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1153
    functionName: on_connection_ready
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 1
    functionsReached:
    - H2O_STRLIT
    - h2o_hpack_flatten_request
    - h2o_buffer_init
    - request_write
    - h2o_iovec_init
    - struct st_h2o_http2client_stream_t*::super::_cb::on_connect
    - h2o_memis
    - h2o_linklist_insert
    - close_stream
    - h2o_buffer_append
    - strlen
    - register_stream
    - h2o_http2_window_init
    linkageType: ''
    returnType: void
    signature: void on_connection_ready(struct st_h2o_http2client_stream_t *stream,
      struct st_h2o_http2client_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: call_stream_callbacks_with_error
      Src: /src/h2o/lib/common/http2client.c:1160,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/common/http2client.c:1161,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/common/http2client.c:1164,1
    - Dst: close_connection_if_necessary
      Src: /src/h2o/lib/common/http2client.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1166
    functionName: on_notify_write
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - close_connection_if_necessary
    - close_connection_now
    - do_emit_writereq
    - call_stream_callbacks_with_error
    linkageType: ''
    returnType: void
    signature: void on_notify_write(h2o_socket_t *sock, const char *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1172,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:1174,1
    - Dst: call_stream_callbacks_with_error
      Src: /src/h2o/lib/common/http2client.c:1179,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/common/http2client.c:1180,1
    - Dst: close_connection_if_necessary
      Src: /src/h2o/lib/common/http2client.c:1184,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http2client.c:1188,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1191,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:1192,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:1195,1
    - Dst: struct st_h2o_http2client_stream_t*::output::proceed_req
      Src: /src/h2o/lib/common/http2client.c:1204,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:1210,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:1212,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/http2client.c:1217,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http2client.c:1220,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1221,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1221,1
    - Dst: close_connection_if_necessary
      Src: /src/h2o/lib/common/http2client.c:1222,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1227,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/http2client.c:1228,1
    - Dst: h2o_socket_notify_write
      Src: /src/h2o/lib/common/http2client.c:1231,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/common/http2client.c:1235,1
    - Dst: close_connection_if_necessary
      Src: /src/h2o/lib/common/http2client.c:1236,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (conn->output.buf_in_flight != NULL)
      pos:
        line_end: 1171
        line_start: 1171
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (!h2o_timer_is_linked(&conn->output.defer_timeout))
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1237
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1237
    functionName: on_write_complete
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_timer_unlink
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timer_link
    - do_emit_writereq
    - struct st_h2o_http2client_stream_t*::output::proceed_req
    - h2o_socket_notify_write
    - h2o_buffer_dispose
    - h2o_linklist_unlink
    - call_stream_callbacks_with_error
    - close_connection_now
    - close_connection_if_necessary
    - h2o_timer_is_linked
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1242
    functionName: sz_min
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sz_min(size_t x, size_t y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_buffer_window
      Src: /src/h2o/lib/common/http2client.c:1248,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:1250,1
    - Dst: sz_min
      Src: /src/h2o/lib/common/http2client.c:1252,1
    - Dst: sz_min
      Src: /src/h2o/lib/common/http2client.c:1252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1253
    functionName: calc_max_payload_size
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - conn_get_buffer_window
    - sz_min
    - h2o_http2_window_get_avail
    linkageType: ''
    returnType: size_t
    signature: size_t calc_max_payload_size(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_max_payload_size
      Src: /src/h2o/lib/common/http2client.c:1257,1
    - Dst: sz_min
      Src: /src/h2o/lib/common/http2client.c:1258,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http2client.c:1262,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/common/http2client.c:1263,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/common/http2client.c:1265,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/common/http2client.c:1267,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/common/http2client.c:1269,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/common/http2client.c:1270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1271
    functionName: stream_emit_pending_data
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - sz_min
    - h2o_http2_window_consume_window
    - h2o_buffer_consume
    - h2o_memcpy
    - calc_max_payload_size
    - h2o_buffer_reserve
    - h2o_http2_encode_frame_header
    linkageType: ''
    returnType: void
    signature: void stream_emit_pending_data(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1275,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/http2client.c:1279,1
    - Dst: h2o_linklist_insert_list
      Src: /src/h2o/lib/common/http2client.c:1280,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/http2client.c:1281,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1283,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/http2client.c:1284,1
    - Dst: stream_emit_pending_data
      Src: /src/h2o/lib/common/http2client.c:1287,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:1290,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/common/http2client.c:1291,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:1293,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/common/http2client.c:1302,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:1304,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1305,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:1306,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct st_h2o_http2client_conn_t*
    assertStmts:
    - condition: (conn->output.buf_in_flight == NULL)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1308
      start: 1273
    functionDepth: 3
    functionLinenumber: 1273
    functionLinenumberEnd: 1308
    functionName: do_emit_writereq
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 3
    functionsReached:
    - h2o_linklist_is_empty
    - stream_emit_pending_data
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http2_window_get_avail
    - h2o_timer_link
    - h2o_buffer_init
    - h2o_linklist_insert_list
    - h2o_linklist_init_anchor
    - h2o_socket_write
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void do_emit_writereq(struct st_h2o_http2client_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/http2client.c:1312,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/common/http2client.c:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1314
    functionName: emit_writereq
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 4
    functionsReached:
    - do_emit_writereq
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void emit_writereq(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/http2client.c:1319,1
    - Dst: memset
      Src: /src/h2o/lib/common/http2client.c:1321,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/common/http2client.c:1322,1
    - Dst: kh_init
      Src: /src/h2o/lib/common/http2client.c:1328,1
    - Dst: h2o_url_copy
      Src: /src/h2o/lib/common/http2client.c:1329,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:1331,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/common/http2client.c:1337,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:1338,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/http2client.c:1340,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/http2client.c:1341,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/common/http2client.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - sock
    - origin_url
    - connpool
    argTypes:
    - h2o_httpclient_ctx_t*
    - h2o_socket_t*
    - h2o_url_t*
    - h2o_httpclient_connection_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1350
    functionName: create_connection
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 7
    functionsReached:
    - kh_init
    - h2o_mem_init_pool
    - h2o_url_copy
    - h2o_buffer_init
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - h2o_http2_window_init
    - memset
    - h2o_linklist_insert
    linkageType: ''
    returnType: struct st_h2o_http2client_conn_t
    signature: "struct st_h2o_http2client_conn_t *create_connection(h2o_httpclient_ctx_t
      *ctx, h2o_socket_t *sock, h2o_url_t *origin_url,\n                                                           h2o_httpclient_connection_pool_t
      *connpool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_max_buffer_size
      Src: /src/h2o/lib/common/http2client.c:1367,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/http2client.c:1369,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/http2client.c:1370,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - ctx
    argTypes:
    - struct st_h2o_http2client_conn_t*
    - h2o_httpclient_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1352
    functionDepth: 2
    functionLinenumber: 1352
    functionLinenumberEnd: 1381
    functionName: send_client_preface
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - request_write
    - memcpy
    - h2o_buffer_reserve
    - get_max_buffer_size
    linkageType: ''
    returnType: void
    signature: void send_client_preface(struct st_h2o_http2client_conn_t *conn, h2o_httpclient_ctx_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_send_error
      Src: /src/h2o/lib/common/http2client.c:1386,1
    - Dst: close_stream
      Src: /src/h2o/lib/common/http2client.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1388
    functionName: do_cancel
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - close_stream
    - stream_send_error
    linkageType: ''
    returnType: void
    signature: void do_cancel(h2o_httpclient_t *_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_httpclient_set_conn_properties_of_socket
      Src: /src/h2o/lib/common/http2client.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _client
    - properties
    argTypes:
    - h2o_httpclient_t*
    - h2o_httpclient_conn_properties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1394
    functionName: do_get_conn_properties
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_httpclient_set_conn_properties_of_socket
    linkageType: ''
    returnType: void
    signature: void do_get_conn_properties(h2o_httpclient_t *_client, h2o_httpclient_conn_properties_t
      *properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_max_buffer_size
      Src: /src/h2o/lib/common/http2client.c:1399,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1401,1
    - Dst: enqueue_window_update
      Src: /src/h2o/lib/common/http2client.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _client
    argTypes:
    - h2o_httpclient_t*
    assertStmts:
    - condition: (bufsize <= max)
      pos:
        line_end: 1400
        line_start: 1400
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1403
      start: 1396
    functionDepth: 3
    functionLinenumber: 1396
    functionLinenumberEnd: 1403
    functionName: do_update_window
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 1
    functionsReached:
    - assert
    - enqueue_window_update
    - get_max_buffer_size
    linkageType: ''
    returnType: void
    signature: void do_update_window(h2o_httpclient_t *_client)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1408,1
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1409,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/http2client.c:1409,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:1415,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/common/http2client.c:1418,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/http2client.c:1420,1
    - Dst: request_write
      Src: /src/h2o/lib/common/http2client.c:1421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - _client
    - chunk
    - is_end_stream
    argTypes:
    - h2o_httpclient_t*
    - h2o_iovec_t
    - int
    assertStmts:
    - condition: (stream->output.proceed_req != NULL)
      pos:
        line_end: 1407
        line_start: 1407
        source_file: /src/h2o/lib/common/http2client.c
    - condition: (!h2o_linklist_is_linked(&stream->output.sending_link))
      pos:
        line_end: 1408
        line_start: 1408
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1424
      start: 1405
    functionDepth: 3
    functionLinenumber: 1405
    functionLinenumberEnd: 1424
    functionName: do_write_req
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - request_write
    - h2o_buffer_append
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: int do_write_req(h2o_httpclient_t *_client, h2o_iovec_t chunk, int
      is_end_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/common/http2client.c:1428,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/common/http2client.c:1431,1
    - Dst: get_max_buffer_size
      Src: /src/h2o/lib/common/http2client.c:1431,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/http2client.c:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct st_h2o_http2client_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1441
    functionName: setup_stream
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 2
    functionsReached:
    - h2o_buffer_init
    - memset
    - get_max_buffer_size
    - h2o_http2_window_init
    linkageType: ''
    returnType: void
    signature: void setup_stream(struct st_h2o_http2client_stream_t *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/http2client.c:1447,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1447,1
    - Dst: create_connection
      Src: /src/h2o/lib/common/http2client.c:1451,1
    - Dst: send_client_preface
      Src: /src/h2o/lib/common/http2client.c:1454,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/http2client.c:1455,1
    - Dst: setup_stream
      Src: /src/h2o/lib/common/http2client.c:1458,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/http2client.c:1460,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/http2client.c:1461,1
    - Dst: on_connection_ready
      Src: /src/h2o/lib/common/http2client.c:1462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - _client
    - sock
    - origin
    argTypes:
    - h2o_httpclient_t*
    - h2o_socket_t*
    - h2o_url_t*
    assertStmts:
    - condition: (!h2o_timer_is_linked(&stream->super._timeout))
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/h2o/lib/common/http2client.c
    constantsTouched: []
    func_position:
      end: 1463
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1463
    functionName: h2o_httpclient__h2_on_connect
    functionSourceFile: /src/h2o/lib/common/http2client.c
    functionUses: 2
    functionsReached:
    - h2o_timer_link
    - send_client_preface
    - on_connection_ready
    - setup_stream
    - h2o_timer_is_linked
    - create_connection
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void h2o_httpclient__h2_on_connect(h2o_httpclient_t *_client, h2o_socket_t
      *sock, h2o_url_t *origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct st_h2o_io_uring_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: init_queue
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_queue(struct st_h2o_io_uring_queue_t *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/io_uring.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - cmd
    argTypes:
    - struct st_h2o_io_uring_queue_t*
    - struct st_h2o_io_uring_cmd_t*
    assertStmts:
    - condition: (cmd->next == NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/lib/common/io_uring.c
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: insert_queue
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void insert_queue(struct st_h2o_io_uring_queue_t *queue, struct st_h2o_io_uring_cmd_t
      *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct st_h2o_io_uring_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: pop_queue
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_h2o_io_uring_cmd_t
    signature: struct st_h2o_io_uring_cmd_t *pop_queue(struct st_h2o_io_uring_queue_t
      *queue)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: io_uring_get_sqe
      Src: /src/h2o/lib/common/io_uring.c:70,1
    - Dst: pop_queue
      Src: /src/h2o/lib/common/io_uring.c:72,1
    - Dst: assert
      Src: /src/h2o/lib/common/io_uring.c:73,1
    - Dst: H2O_PROBE
      Src: /src/h2o/lib/common/io_uring.c:74,1
    - Dst: io_uring_prep_splice
      Src: /src/h2o/lib/common/io_uring.c:75,1
    - Dst: io_uring_submit
      Src: /src/h2o/lib/common/io_uring.c:83,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/io_uring.c:86,1
    - Dst: strerror
      Src: /src/h2o/lib/common/io_uring.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - io_uring
    - can_delay
    argTypes:
    - struct st_h2o_io_uring_t*
    - int
    assertStmts:
    - condition: (cmd != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/h2o/lib/common/io_uring.c
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: submit_commands
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - io_uring_get_sqe
    - H2O_PROBE
    - h2o_fatal
    - io_uring_submit
    - strerror
    - io_uring_prep_splice
    - assert
    - pop_queue
    linkageType: ''
    returnType: int
    signature: int submit_commands(struct st_h2o_io_uring_t *io_uring, int can_delay)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: io_uring_peek_cqe
      Src: /src/h2o/lib/common/io_uring.c:101,1
    - Dst: io_uring_cqe_seen
      Src: /src/h2o/lib/common/io_uring.c:107,1
    - Dst: insert_queue
      Src: /src/h2o/lib/common/io_uring.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - io_uring
    - cmd_sync
    argTypes:
    - struct st_h2o_io_uring_t*
    - struct st_h2o_io_uring_cmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: check_completion
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - io_uring_cqe_seen
    - insert_queue
    - io_uring_peek_cqe
    linkageType: ''
    returnType: int
    signature: int check_completion(struct st_h2o_io_uring_t *io_uring, struct st_h2o_io_uring_cmd_t
      *cmd_sync)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pop_queue
      Src: /src/h2o/lib/common/io_uring.c:127,1
    - Dst: H2O_PROBE
      Src: /src/h2o/lib/common/io_uring.c:128,1
    - Dst: struct st_h2o_io_uring_cmd_t*::cb::func
      Src: /src/h2o/lib/common/io_uring.c:129,1
    - Dst: free
      Src: /src/h2o/lib/common/io_uring.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - io_uring
    argTypes:
    - struct st_h2o_io_uring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: dispatch_completed
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - struct st_h2o_io_uring_cmd_t*::cb::func
    - free
    - H2O_PROBE
    - pop_queue
    linkageType: ''
    returnType: int
    signature: int dispatch_completed(struct st_h2o_io_uring_t *io_uring)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: insert_queue
      Src: /src/h2o/lib/common/io_uring.c:139,1
    - Dst: submit_commands
      Src: /src/h2o/lib/common/io_uring.c:141,1
    - Dst: check_completion
      Src: /src/h2o/lib/common/io_uring.c:146,1
    - Dst: struct st_h2o_io_uring_cmd_t*::cb::func
      Src: /src/h2o/lib/common/io_uring.c:147,1
    - Dst: free
      Src: /src/h2o/lib/common/io_uring.c:148,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/common/io_uring.c:157,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/io_uring.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - loop
    - io_uring
    - cmd
    argTypes:
    - h2o_loop_t*
    - struct st_h2o_io_uring_t*
    - struct st_h2o_io_uring_cmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: start_command
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - submit_commands
    - h2o_timer_link
    - struct st_h2o_io_uring_cmd_t*::cb::func
    - free
    - check_completion
    - h2o_timer_is_linked
    - insert_queue
    linkageType: ''
    returnType: void
    signature: void start_command(h2o_loop_t *loop, struct st_h2o_io_uring_t *io_uring,
      struct st_h2o_io_uring_cmd_t *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop__io_uring
      Src: /src/h2o/lib/common/io_uring.c:164,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/io_uring.c:167,1
    - Dst: H2O_PROBE
      Src: /src/h2o/lib/common/io_uring.c:178,1
    - Dst: start_command
      Src: /src/h2o/lib/common/io_uring.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - loop
    - fd_in
    - off_in
    - fd_out
    - off_out
    - nbytes
    - splice_flags
    - cb
    - data
    argTypes:
    - h2o_loop_t*
    - int
    - int64_t
    - int
    - int64_t
    - unsigned
    - unsigned
    - h2o_io_uring_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: h2o_io_uring_splice
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - H2O_PROBE
    - h2o_evloop__io_uring
    - start_command
    linkageType: ''
    returnType: void
    signature: "void h2o_io_uring_splice(h2o_loop_t *loop, int fd_in, int64_t off_in,
      int fd_out, int64_t off_out, unsigned nbytes,\n                         unsigned
      splice_flags, h2o_io_uring_cb cb, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_completion
      Src: /src/h2o/lib/common/io_uring.c:187,1
    - Dst: dispatch_completed
      Src: /src/h2o/lib/common/io_uring.c:188,1
    - Dst: submit_commands
      Src: /src/h2o/lib/common/io_uring.c:188,1
    - Dst: assert
      Src: /src/h2o/lib/common/io_uring.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - io_uring
    argTypes:
    - struct st_h2o_io_uring_t*
    assertStmts:
    - condition: (io_uring->completion.head == NULL)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/h2o/lib/common/io_uring.c
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: run_uring
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - assert
    - dispatch_completed
    - check_completion
    - submit_commands
    linkageType: ''
    returnType: void
    signature: void run_uring(struct st_h2o_io_uring_t *io_uring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/io_uring.c:195,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/lib/common/io_uring.c:197,1
    - Dst: h2o_evloop__io_uring
      Src: /src/h2o/lib/common/io_uring.c:198,1
    - Dst: run_uring
      Src: /src/h2o/lib/common/io_uring.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (err == NULL)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/h2o/lib/common/io_uring.c
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: on_notify
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 1
    functionsReached:
    - run_uring
    - h2o_socket_get_loop
    - assert
    - h2o_evloop__io_uring
    linkageType: ''
    returnType: void
    signature: void on_notify(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/io_uring.c:204,1
    - Dst: run_uring
      Src: /src/h2o/lib/common/io_uring.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: on_delayed
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - run_uring
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_delayed(h2o_timer_t *_timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop__io_uring
      Src: /src/h2o/lib/common/io_uring.c:210,1
    - Dst: io_uring_queue_init
      Src: /src/h2o/lib/common/io_uring.c:213,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/io_uring.c:214,1
    - Dst: strerror
      Src: /src/h2o/lib/common/io_uring.c:214,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/io_uring.c:216,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/io_uring.c:217,1
    - Dst: init_queue
      Src: /src/h2o/lib/common/io_uring.c:219,1
    - Dst: init_queue
      Src: /src/h2o/lib/common/io_uring.c:220,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/common/io_uring.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: h2o_io_uring_init
    functionSourceFile: /src/h2o/lib/common/io_uring.c
    functionUses: 0
    functionsReached:
    - io_uring_queue_init
    - init_queue
    - h2o_timer_init
    - h2o_socket_read_start
    - strerror
    - h2o_fatal
    - h2o_evloop__io_uring
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: void
    signature: void h2o_io_uring_init(h2o_loop_t *loop)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 103
    functionName: hostinfo_error_from_gai_error
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *hostinfo_error_from_gai_error(int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/h2o/lib/common/hostinfo.c:109,1
    - Dst: hostinfo_error_from_gai_error
      Src: /src/h2o/lib/common/hostinfo.c:112,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/common/hostinfo.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: lookup_and_respond
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - getaddrinfo
    - h2o_multithread_send_message
    - hostinfo_error_from_gai_error
    linkageType: ''
    returnType: void
    signature: void lookup_and_respond(h2o_hostinfo_getaddr_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/hostinfo.c:124,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/hostinfo.c:128,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/hostinfo.c:129,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/hostinfo.c:130,1
    - Dst: create_lookup_thread_if_necessary
      Src: /src/h2o/lib/common/hostinfo.c:131,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/hostinfo.c:132,1
    - Dst: lookup_and_respond
      Src: /src/h2o/lib/common/hostinfo.c:133,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/hostinfo.c:134,1
    - Dst: pthread_cond_wait
      Src: /src/h2o/lib/common/hostinfo.c:137,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/hostinfo.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - _unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: lookup_thread_main
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - pthread_mutex_lock
    - create_lookup_thread_if_necessary
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - lookup_and_respond
    - h2o_fatal
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void *lookup_thread_main(void *_unused)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/hostinfo.c:147,1
    - Dst: pthread_attr_init
      Src: /src/h2o/lib/common/hostinfo.c:155,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/h2o/lib/common/hostinfo.c:156,1
    - Dst: pthread_create
      Src: /src/h2o/lib/common/hostinfo.c:157,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/hostinfo.c:160,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/hostinfo.c:160,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/hostinfo.c:162,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/hostinfo.c:162,1
    - Dst: pthread_attr_destroy
      Src: /src/h2o/lib/common/hostinfo.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 170
    functionName: create_lookup_thread_if_necessary
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 1
    functionsReached:
    - pthread_create
    - pthread_attr_destroy
    - h2o_linklist_is_empty
    - h2o_error_printf
    - pthread_attr_init
    - pthread_attr_setdetachstate
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void create_lookup_thread_if_necessary(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/hostinfo.c:174,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/hostinfo.c:176,1
    - Dst: create_lookup_thread_if_necessary
      Src: /src/h2o/lib/common/hostinfo.c:178,1
    - Dst: pthread_cond_signal
      Src: /src/h2o/lib/common/hostinfo.c:180,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/hostinfo.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: dispatch_hostinfo_getaddr
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_signal
    - create_lookup_thread_if_necessary
    - pthread_mutex_unlock
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void dispatch_hostinfo_getaddr(h2o_hostinfo_getaddr_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/hostinfo.c:188,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/hostinfo.c:194,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/hostinfo.c:197,1
    - Dst: memset
      Src: /src/h2o/lib/common/hostinfo.c:199,1
    - Dst: dispatch_hostinfo_getaddr
      Src: /src/h2o/lib/common/hostinfo.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 9
    argNames:
    - receiver
    - name
    - serv
    - family
    - socktype
    - protocol
    - flags
    - cb
    - cbdata
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - int
    - int
    - int
    - int
    - h2o_hostinfo_getaddr_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 208
    functionName: h2o_hostinfo_getaddr
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 2
    functionsReached:
    - memcpy
    - h2o_mem_alloc
    - memset
    - dispatch_hostinfo_getaddr
    linkageType: ''
    returnType: h2o_hostinfo_getaddr_req_t
    signature: "h2o_hostinfo_getaddr_req_t *h2o_hostinfo_getaddr(h2o_multithread_receiver_t
      *receiver, h2o_iovec_t name, h2o_iovec_t serv,\n                                                 int
      family, int socktype, int protocol, int flags, h2o_hostinfo_getaddr_cb cb,\n
      \                                                void *cbdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/hostinfo.c:214,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/hostinfo.c:216,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/hostinfo.c:217,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/hostinfo.c:223,1
    - Dst: free
      Src: /src/h2o/lib/common/hostinfo.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 227
    functionName: h2o_hostinfo_getaddr_cancel
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 2
    functionsReached:
    - free
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    linkageType: ''
    returnType: void
    signature: void h2o_hostinfo_getaddr_cancel(h2o_hostinfo_getaddr_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/hostinfo.c:231,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/hostinfo.c:232,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/hostinfo.c:233,1
    - Dst: cb
      Src: /src/h2o/lib/common/hostinfo.c:237,1
    - Dst: freeaddrinfo
      Src: /src/h2o/lib/common/hostinfo.c:240,1
    - Dst: free
      Src: /src/h2o/lib/common/hostinfo.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - receiver
    - messages
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: h2o_hostinfo_getaddr_receiver
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - freeaddrinfo
    - free
    - cb
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void h2o_hostinfo_getaddr_receiver(h2o_multithread_receiver_t *receiver,
      h2o_linklist_t *messages)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - p
    - end
    - value
    argTypes:
    - char*
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: fetch_aton_digit
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fetch_aton_digit(const char *p, const char *end, unsigned char
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fetch_aton_digit
      Src: /src/h2o/lib/common/hostinfo.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - host
    - addr
    argTypes:
    - h2o_iovec_t
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 286
    functionName: h2o_hostinfo_aton
    functionSourceFile: /src/h2o/lib/common/hostinfo.c
    functionUses: 2
    functionsReached:
    - fetch_aton_digit
    linkageType: ''
    returnType: int
    signature: int h2o_hostinfo_aton(h2o_iovec_t host, struct in_addr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/common/serverutil.c:50,1
    - Dst: sigemptyset
      Src: /src/h2o/lib/common/serverutil.c:51,1
    - Dst: sigaction
      Src: /src/h2o/lib/common/serverutil.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: h2o_set_signal_handler
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 6
    functionsReached:
    - memset
    - sigaction
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void h2o_set_signal_handler(int signo, void (*cb)(int signo))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam_r
      Src: /src/h2o/lib/common/serverutil.c:62,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/common/serverutil.c:63,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:67,1
    - Dst: setgid
      Src: /src/h2o/lib/common/serverutil.c:70,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:71,1
    - Dst: strerror
      Src: /src/h2o/lib/common/serverutil.c:71,1
    - Dst: initgroups
      Src: /src/h2o/lib/common/serverutil.c:74,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:75,1
    - Dst: strerror
      Src: /src/h2o/lib/common/serverutil.c:75,1
    - Dst: setuid
      Src: /src/h2o/lib/common/serverutil.c:78,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:79,1
    - Dst: strerror
      Src: /src/h2o/lib/common/serverutil.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: h2o_setuidgid
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 1
    functionsReached:
    - h2o_error_printf
    - getpwnam_r
    - setuid
    - initgroups
    - setgid
    - strerror
    - h2o_perror
    linkageType: ''
    returnType: int
    signature: int h2o_setuidgid(const char *user)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/lib/common/serverutil.c:92,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:95,1
    - Dst: strchr
      Src: /src/h2o/lib/common/serverutil.c:101,1
    - Dst: strlen
      Src: /src/h2o/lib/common/serverutil.c:102,1
    - Dst: memchr
      Src: /src/h2o/lib/common/serverutil.c:103,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:104,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/common/serverutil.c:107,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:108,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/serverutil.c:111,1
    - Dst: free
      Src: /src/h2o/lib/common/serverutil.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - _fds
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 120
    functionName: h2o_server_starter_get_fds
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 2
    functionsReached:
    - h2o_strtosize
    - h2o_error_printf
    - memchr
    - free
    - getenv
    - strchr
    - h2o_vector_reserve
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_server_starter_get_fds(int **_fds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/h2o/lib/common/serverutil.c:129,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/serverutil.c:133,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/lib/common/serverutil.c:133,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/serverutil.c:134,1
    - Dst: strcpy
      Src: /src/h2o/lib/common/serverutil.c:137,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/lib/common/serverutil.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: build_spawn_env
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 0
    functionsReached:
    - H2O_TO_STR
    - strncmp
    - memcpy
    - h2o_mem_alloc
    - strcpy
    linkageType: ''
    returnType: char
    signature: char **build_spawn_env(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/h2o/lib/common/serverutil.c:157,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/serverutil.c:162,1
    - Dst: fork
      Src: /src/h2o/lib/common/serverutil.c:163,1
    - Dst: dup2
      Src: /src/h2o/lib/common/serverutil.c:169,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:170,1
    - Dst: build_spawn_env
      Src: /src/h2o/lib/common/serverutil.c:174,1
    - Dst: execvp
      Src: /src/h2o/lib/common/serverutil.c:177,1
    - Dst: write
      Src: /src/h2o/lib/common/serverutil.c:179,1
    - Dst: _exit
      Src: /src/h2o/lib/common/serverutil.c:180,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/serverutil.c:183,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:188,1
    - Dst: read
      Src: /src/h2o/lib/common/serverutil.c:192,1
    - Dst: waitpid
      Src: /src/h2o/lib/common/serverutil.c:196,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:204,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:210,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:212,1
    - Dst: build_spawn_env
      Src: /src/h2o/lib/common/serverutil.c:221,1
    - Dst: posix_spawn_file_actions_init
      Src: /src/h2o/lib/common/serverutil.c:222,1
    - Dst: posix_spawn_file_actions_adddup2
      Src: /src/h2o/lib/common/serverutil.c:226,1
    - Dst: posix_spawn_file_actions_addclose
      Src: /src/h2o/lib/common/serverutil.c:227,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/serverutil.c:231,1
    - Dst: posix_spawnp
      Src: /src/h2o/lib/common/serverutil.c:232,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/serverutil.c:234,1
    - Dst: free
      Src: /src/h2o/lib/common/serverutil.c:235,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/h2o/lib/common/serverutil.c:236,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 4
    argNames:
    - cmd
    - argv
    - mapped_fds
    - cloexec_mutex_is_locked
    argTypes:
    - char*
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 243
    functionName: h2o_spawnp
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 3
    functionsReached:
    - close
    - write
    - read
    - posix_spawn_file_actions_addclose
    - free
    - pthread_mutex_lock
    - _exit
    - posix_spawnp
    - pipe2
    - pthread_mutex_unlock
    - posix_spawn_file_actions_adddup2
    - fork
    - execvp
    - waitpid
    - posix_spawn_file_actions_init
    - build_spawn_env
    - dup2
    - posix_spawn_file_actions_destroy
    linkageType: ''
    returnType: pid_t
    signature: pid_t h2o_spawnp(const char *cmd, char *const *argv, const int *mapped_fds,
      int cloexec_mutex_is_locked)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/serverutil.c:251,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/serverutil.c:253,1
    - Dst: pipe
      Src: /src/h2o/lib/common/serverutil.c:257,1
    - Dst: fcntl
      Src: /src/h2o/lib/common/serverutil.c:259,1
    - Dst: pipe
      Src: /src/h2o/lib/common/serverutil.c:261,1
    - Dst: fcntl
      Src: /src/h2o/lib/common/serverutil.c:263,1
    - Dst: h2o_spawnp
      Src: /src/h2o/lib/common/serverutil.c:270,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:272,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:274,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/serverutil.c:277,1
    - Dst: write
      Src: /src/h2o/lib/common/serverutil.c:283,1
    - Dst: close
      Src: /src/h2o/lib/common/serverutil.c:289,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/common/serverutil.c:294,1
    - Dst: read
      Src: /src/h2o/lib/common/serverutil.c:296,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/serverutil.c:305,1
    - Dst: waitpid
      Src: /src/h2o/lib/common/serverutil.c:309,1
    - Dst: CLOSE_FD
      Src: /src/h2o/lib/common/serverutil.c:321,1
    - Dst: CLOSE_FD
      Src: /src/h2o/lib/common/serverutil.c:322,1
    - Dst: CLOSE_FD
      Src: /src/h2o/lib/common/serverutil.c:323,1
    - Dst: CLOSE_FD
      Src: /src/h2o/lib/common/serverutil.c:324,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/serverutil.c:327,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 5
    argNames:
    - cmd
    - argv
    - std_in
    - resp
    - child_status
    argTypes:
    - char*
    - char**
    - h2o_iovec_t
    - h2o_buffer_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 330
    functionName: h2o_read_command
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 3
    functionsReached:
    - close
    - read
    - h2o_buffer_init
    - pipe
    - pthread_mutex_lock
    - fcntl
    - h2o_buffer_reserve
    - CLOSE_FD
    - h2o_buffer_dispose
    - pthread_mutex_unlock
    - write
    - waitpid
    - h2o_spawnp
    linkageType: ''
    returnType: int
    signature: int h2o_read_command(const char *cmd, char **argv, h2o_iovec_t std_in,
      h2o_buffer_t **resp, int *child_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: CLOSE_FD
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLOSE_FD(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/h2o/lib/common/serverutil.c:335,1
    - Dst: sysctl
      Src: /src/h2o/lib/common/serverutil.c:340,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/serverutil.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: h2o_numproc
    functionSourceFile: /src/h2o/lib/common/serverutil.c
    functionUses: 1
    functionsReached:
    - sysconf
    - sysctl
    - h2o_error_printf
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_numproc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/lib/common/memory.c:91,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/common/memory.c:92,1
    - Dst: va_end
      Src: /src/h2o/lib/common/memory.c:93,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memory.c:95,1
    - Dst: abort
      Src: /src/h2o/lib/common/memory.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: default_h2o_fatal
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    - va_start
    - abort
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: H2O_NORETURN
    signature: H2O_NORETURN default_h2o_fatal(const char *file, int line, const char
      *msg, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_aligned_alloc
      Src: /src/h2o/lib/common/memory.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - h2o_mem_recycle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: h2o_mem_alloc_recycle
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 4
    functionsReached:
    - h2o_mem_aligned_alloc
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_alloc_recycle(h2o_mem_recycle_t *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/memory.c:121,1
    - Dst: free
      Src: /src/h2o/lib/common/memory.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - allocator
    - p
    argTypes:
    - h2o_mem_recycle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: h2o_mem_free_recycle
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 4
    functionsReached:
    - h2o_vector_reserve
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_mem_free_recycle(h2o_mem_recycle_t *allocator, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:141,1
    - Dst: free
      Src: /src/h2o/lib/common/memory.c:146,1
    - Dst: free
      Src: /src/h2o/lib/common/memory.c:149,1
    - Dst: memset
      Src: /src/h2o/lib/common/memory.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - allocator
    - full
    argTypes:
    - h2o_mem_recycle_t*
    - int
    assertStmts:
    - condition: (allocator->chunks.size >= delta)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: h2o_mem_clear_recycle
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 2
    functionsReached:
    - memset
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_mem_clear_recycle(h2o_mem_recycle_t *allocator, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: h2o_mem_init_pool
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_mem_init_pool(h2o_mem_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/common/memory.c:168,1
    - Dst: free
      Src: /src/h2o/lib/common/memory.c:177,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/memory.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 188
    functionName: h2o_mem_clear_pool
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 37
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mem_free_recycle
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_mem_clear_pool(h2o_mem_pool_t *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memory.c:197,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/common/memory.c:204,1
    - Dst: ALIGN_TO
      Src: /src/h2o/lib/common/memory.c:207,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/memory.c:210,1
    - Dst: ALIGN_TO
      Src: /src/h2o/lib/common/memory.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - pool
    - alignment
    - sz
    argTypes:
    - h2o_mem_pool_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 220
    functionName: h2o_mem__do_alloc_pool_aligned
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - H2O_UNLIKELY
    - h2o_mem_alloc_recycle
    - ALIGN_TO
    linkageType: ''
    returnType: void
    signature: void *h2o_mem__do_alloc_pool_aligned(h2o_mem_pool_t *pool, size_t alignment,
      size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: ALIGN_TO
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_TO(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/common/memory.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - entry
    argTypes:
    - h2o_mem_pool_t*
    - struct st_h2o_mem_pool_shared_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: link_shared
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: void
    signature: void link_shared(h2o_mem_pool_t *pool, struct st_h2o_mem_pool_shared_entry_t
      *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/memory.c:232,1
    - Dst: link_shared
      Src: /src/h2o/lib/common/memory.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - sz
    argTypes:
    - h2o_mem_pool_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: h2o_mem_alloc_shared
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 9
    functionsReached:
    - h2o_mem_alloc
    - link_shared
    linkageType: ''
    returnType: void
    signature: void *h2o_mem_alloc_shared(h2o_mem_pool_t *pool, size_t sz, void (*dispose)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/common/memory.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - p
    argTypes:
    - h2o_mem_pool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: h2o_mem_link_shared
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 2
    functionsReached:
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: void
    signature: void h2o_mem_link_shared(h2o_mem_pool_t *pool, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/h2o/lib/common/memory.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: topagesize
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - getpagesize
    linkageType: ''
    returnType: size_t
    signature: size_t topagesize(size_t capacity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:281,1
    - Dst: __builtin_clzll
      Src: /src/h2o/lib/common/memory.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts:
    - condition: (sz != 0)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: buffer_size_to_power
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    - assert
    linkageType: ''
    returnType: unsigned
    signature: unsigned buffer_size_to_power(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_clear_recycle
      Src: /src/h2o/lib/common/memory.c:295,1
    - Dst: free
      Src: /src/h2o/lib/common/memory.c:298,1
    - Dst: h2o_mem_clear_recycle
      Src: /src/h2o/lib/common/memory.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - full
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: h2o_buffer_clear_recycle
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - h2o_mem_clear_recycle
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_clear_recycle(int full)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_recycle_is_empty
      Src: /src/h2o/lib/common/memory.c:309,1
    - Dst: h2o_mem_recycle_is_empty
      Src: /src/h2o/lib/common/memory.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: h2o_buffer_recycle_is_empty
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - h2o_mem_recycle_is_empty
    linkageType: ''
    returnType: int
    signature: int h2o_buffer_recycle_is_empty(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/common/memory.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - power
    - only_if_exists
    argTypes:
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 338
    functionName: buffer_get_recycle
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - h2o_mem_realloc
    linkageType: ''
    returnType: h2o_mem_recycle_t
    signature: h2o_mem_recycle_t *buffer_get_recycle(unsigned power, int only_if_exists)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - buf
    - size
    - bytes
    - capacity
    - prototype
    - fd
    argTypes:
    - h2o_buffer_t*
    - size_t
    - char*
    - size_t
    - h2o_buffer_prototype_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: buffer_init
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void buffer_init(h2o_buffer_t *buf, size_t size, char *bytes, size_t
      capacity, h2o_buffer_prototype_t *prototype, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:351,1
    - Dst: close
      Src: /src/h2o/lib/common/memory.c:354,1
    - Dst: munmap
      Src: /src/h2o/lib/common/memory.c:355,1
    - Dst: topagesize
      Src: /src/h2o/lib/common/memory.c:355,1
    - Dst: buffer_size_to_power
      Src: /src/h2o/lib/common/memory.c:361,1
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:362,1
    - Dst: buffer_get_recycle
      Src: /src/h2o/lib/common/memory.c:363,1
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:364,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/memory.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - h2o_buffer_t*
    assertStmts:
    - condition: (buffer->_prototype != NULL)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/h2o/lib/common/memory.c
    - condition: (((size_t)1 << power) == offsetof(h2o_buffer_t, _buf) + buffer->capacity)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/h2o/lib/common/memory.c
    - condition: (allocator != NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: h2o_buffer__do_free
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - close
    - buffer_get_recycle
    - munmap
    - h2o_mem_free_recycle
    - buffer_size_to_power
    - assert
    - topagesize
    linkageType: ''
    returnType: void
    signature: void h2o_buffer__do_free(h2o_buffer_t *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/memory.c:372,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/memory.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _inbuf
    - min_guarantee
    argTypes:
    - h2o_buffer_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: h2o_buffer_reserve
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 13
    functionsReached:
    - h2o_fatal
    - h2o_buffer_try_reserve
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_buffer_reserve(h2o_buffer_t **_inbuf, size_t min_guarantee)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: buffer_size_to_power
      Src: /src/h2o/lib/common/memory.c:391,1
    - Dst: buffer_get_recycle
      Src: /src/h2o/lib/common/memory.c:392,1
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:395,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/memory.c:396,1
    - Dst: buffer_size_to_power
      Src: /src/h2o/lib/common/memory.c:401,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/memory.c:402,1
    - Dst: buffer_get_recycle
      Src: /src/h2o/lib/common/memory.c:402,1
    - Dst: buffer_init
      Src: /src/h2o/lib/common/memory.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - prototype
    - min_capacity
    - desired_capacity
    argTypes:
    - h2o_buffer_prototype_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (allocator->conf->memsize == (size_t)1 << alloc_power)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 407
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 407
    functionName: buffer_allocate
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - buffer_get_recycle
    - h2o_mem_alloc_recycle
    - buffer_init
    - buffer_size_to_power
    - assert
    linkageType: ''
    returnType: h2o_buffer_t
    signature: h2o_buffer_t *buffer_allocate(h2o_buffer_prototype_t *prototype, size_t
      min_capacity, size_t desired_capacity)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/memory.c:418,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/memory.c:423,1
    - Dst: buffer_allocate
      Src: /src/h2o/lib/common/memory.c:425,1
    - Dst: memmove
      Src: /src/h2o/lib/common/memory.c:432,1
    - Dst: topagesize
      Src: /src/h2o/lib/common/memory.c:440,1
    - Dst: h2o_file_mktemp
      Src: /src/h2o/lib/common/memory.c:444,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/common/memory.c:445,1
    - Dst: posix_fallocate
      Src: /src/h2o/lib/common/memory.c:453,1
    - Dst: ftruncate
      Src: /src/h2o/lib/common/memory.c:458,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/common/memory.c:460,1
    - Dst: mmap
      Src: /src/h2o/lib/common/memory.c:463,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/common/memory.c:464,1
    - Dst: buffer_init
      Src: /src/h2o/lib/common/memory.c:469,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memory.c:470,1
    - Dst: h2o_buffer__do_free
      Src: /src/h2o/lib/common/memory.c:471,1
    - Dst: munmap
      Src: /src/h2o/lib/common/memory.c:476,1
    - Dst: topagesize
      Src: /src/h2o/lib/common/memory.c:476,1
    - Dst: buffer_size_to_power
      Src: /src/h2o/lib/common/memory.c:482,1
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/memory.c:484,1
    - Dst: buffer_get_recycle
      Src: /src/h2o/lib/common/memory.c:484,1
    - Dst: buffer_init
      Src: /src/h2o/lib/common/memory.c:485,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memory.c:486,1
    - Dst: h2o_buffer__do_free
      Src: /src/h2o/lib/common/memory.c:487,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/common/memory.c:499,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 76
    argCount: 2
    argNames:
    - _inbuf
    - min_guarantee
    argTypes:
    - h2o_buffer_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 503
    functionName: h2o_buffer_try_reserve
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 3
    functionsReached:
    - buffer_get_recycle
    - buffer_init
    - buffer_allocate
    - h2o_mem_alloc_recycle
    - H2O_STRUCT_FROM_MEMBER
    - __sync_add_and_fetch
    - munmap
    - ftruncate
    - posix_fallocate
    - h2o_buffer__do_free
    - h2o_mem_free_recycle
    - memcpy
    - h2o_perror
    - h2o_file_mktemp
    - memmove
    - buffer_size_to_power
    - mmap
    - topagesize
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_buffer_try_reserve(h2o_buffer_t **_inbuf, size_t min_guarantee)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_consume_all
      Src: /src/h2o/lib/common/memory.c:509,1
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - inbuf
    - delta
    argTypes:
    - h2o_buffer_t**
    - size_t
    assertStmts:
    - condition: ((*inbuf)->bytes != NULL)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 516
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 516
    functionName: h2o_buffer_consume
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 30
    functionsReached:
    - h2o_buffer_consume_all
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_consume(h2o_buffer_t **inbuf, size_t delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_recycle
      Src: /src/h2o/lib/common/memory.c:522,1
    - Dst: buffer_init
      Src: /src/h2o/lib/common/memory.c:523,1
    - Dst: h2o_buffer__do_free
      Src: /src/h2o/lib/common/memory.c:524,1
    - Dst: h2o_buffer__do_free
      Src: /src/h2o/lib/common/memory.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - inbuf
    - record_capacity
    argTypes:
    - h2o_buffer_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: h2o_buffer_consume_all
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 2
    functionsReached:
    - h2o_buffer__do_free
    - h2o_mem_alloc_recycle
    - buffer_init
    linkageType: ''
    returnType: void
    signature: void h2o_buffer_consume_all(h2o_buffer_t **inbuf, int record_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/common/memory.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: h2o_buffer__dispose_linked
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void h2o_buffer__dispose_linked(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/memory.c:543,1
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/common/memory.c:549,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/common/memory.c:550,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/common/memory.c:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - pool
    - vector
    - alignment
    - element_size
    - new_capacity
    argTypes:
    - h2o_mem_pool_t*
    - h2o_vector_t*
    - size_t
    - size_t
    - size_t
    assertStmts:
    - condition: (vector->capacity < new_capacity)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/h2o/lib/common/memory.c
    constantsTouched: []
    func_position:
      end: 555
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 555
    functionName: h2o_vector__expand
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - h2o_memcpy
    - h2o_mem_alloc_pool_aligned
    - h2o_mem_realloc
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_vector__expand(h2o_mem_pool_t *pool, h2o_vector_t *vector,
      size_t alignment, size_t element_size, size_t new_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/memory.c:564,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memory.c:565,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/memory.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - _x
    - _y
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 571
    functionName: h2o_mem_swap
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void h2o_mem_swap(void *_x, void *_y, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/lib/common/memory.c:578,1
    - Dst: fprintf
      Src: /src/h2o/lib/common/memory.c:581,1
    - Dst: fprintf
      Src: /src/h2o/lib/common/memory.c:583,1
    - Dst: fprintf
      Src: /src/h2o/lib/common/memory.c:585,1
    - Dst: fputc
      Src: /src/h2o/lib/common/memory.c:588,1
    - Dst: fprintf
      Src: /src/h2o/lib/common/memory.c:590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - fp
    - buf
    - len
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 592
    functionName: h2o_dump_memory
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 1
    functionsReached:
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void h2o_dump_memory(FILE *fp, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/common/memory.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - list
    - element
    argTypes:
    - void***
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: h2o_append_to_null_terminated_list
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 2
    functionsReached:
    - h2o_mem_realloc
    linkageType: ''
    returnType: void
    signature: void h2o_append_to_null_terminated_list(void ***list, void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/h2o/lib/common/memory.c:610,1
    - Dst: strerror_r
      Src: /src/h2o/lib/common/memory.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - err
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: h2o_strerror_r
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 14
    functionsReached:
    - strerror_r
    linkageType: ''
    returnType: char
    signature: char *h2o_strerror_r(int err, char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/memory.c:621,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/memory.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: h2o_perror
    functionSourceFile: /src/h2o/lib/common/memory.c
    functionUses: 3
    functionsReached:
    - h2o_error_printf
    - h2o_strerror_r
    linkageType: ''
    returnType: void
    signature: void h2o_perror(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/redis.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - client
    - tick
    - entry
    - cb
    argTypes:
    - h2o_redis_client_t*
    - uint64_t
    - h2o_timer_t*
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: invoke_deferred
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void invoke_deferred(h2o_redis_client_t *client, uint64_t tick, h2o_timer_t
      *entry, h2o_timer_cb cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:48,1
    - Dst: h2o_redis_client_t*::on_close
      Src: /src/h2o/lib/common/redis.c:51,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/redis.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_redis_client_t*
    - char*
    assertStmts:
    - condition: (client->_redis != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/h2o/lib/common/redis.c
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: close_and_detach_connection
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - assert
    - h2o_redis_client_t*::on_close
    linkageType: ''
    returnType: void
    signature: void close_and_detach_connection(h2o_redis_client_t *client, const
      char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:60,1
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:61,1
    - Dst: close_and_detach_connection
      Src: /src/h2o/lib/common/redis.c:66,1
    - Dst: redisAsyncFree
      Src: /src/h2o/lib/common/redis.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_redis_client_t*
    - char*
    assertStmts:
    - condition: (client->state != H2O_REDIS_CONNECTION_STATE_CLOSED)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/lib/common/redis.c
    - condition: (client->_redis != NULL)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/h2o/lib/common/redis.c
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: disconnect
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 10
    functionsReached:
    - close_and_detach_connection
    - redisAsyncFree
    - assert
    linkageType: ''
    returnType: void
    signature: void disconnect(h2o_redis_client_t *client, const char *errstr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/redis.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - redis
    argTypes:
    - redisAsyncContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: get_error
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 5
    functionsReached:
    - h2o_fatal
    linkageType: ''
    returnType: char
    signature: char *get_error(const redisAsyncContext *redis)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close_and_detach_connection
      Src: /src/h2o/lib/common/redis.c:101,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/redis.c:104,1
    - Dst: h2o_redis_client_t*::on_connect
      Src: /src/h2o/lib/common/redis.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - redis
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 9
    functionsReached:
    - close_and_detach_connection
    - h2o_timer_unlink
    - h2o_redis_client_t*::on_connect
    linkageType: ''
    returnType: void
    signature: void on_connect(const redisAsyncContext *redis, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_and_detach_connection
      Src: /src/h2o/lib/common/redis.c:117,1
    - Dst: get_error
      Src: /src/h2o/lib/common/redis.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - redis
    - status
    argTypes:
    - redisAsyncContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: on_disconnect
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - close_and_detach_connection
    - get_error
    linkageType: ''
    returnType: void
    signature: void on_disconnect(const redisAsyncContext *redis, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/redis.c:122,1
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:123,1
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:124,1
    - Dst: disconnect
      Src: /src/h2o/lib/common/redis.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: (client->state != H2O_REDIS_CONNECTION_STATE_CLOSED)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/h2o/lib/common/redis.c
    - condition: ((client->_redis->c.flags & REDIS_CONNECTED) == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/h2o/lib/common/redis.c
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: on_connect_timeout
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - disconnect
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_connect_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/redis.c:131,1
    - Dst: memset
      Src: /src/h2o/lib/common/redis.c:132,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/common/redis.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - loop
    - sz
    argTypes:
    - h2o_loop_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: h2o_redis_create_client
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - memset
    - h2o_timer_init
    linkageType: ''
    returnType: h2o_redis_client_t
    signature: h2o_redis_client_t *h2o_redis_create_client(h2o_loop_t *loop, size_t
      sz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncConnect
      Src: /src/h2o/lib/common/redis.c:147,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/redis.c:149,1
    - Dst: attach_loop
      Src: /src/h2o/lib/common/redis.c:156,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/h2o/lib/common/redis.c:157,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/h2o/lib/common/redis.c:158,1
    - Dst: disconnect
      Src: /src/h2o/lib/common/redis.c:162,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/redis.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - client
    - host
    - port
    argTypes:
    - h2o_redis_client_t*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 168
    functionName: h2o_redis_connect
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 2
    functionsReached:
    - h2o_timer_link
    - attach_loop
    - redisAsyncConnect
    - disconnect
    - h2o_fatal
    - redisAsyncSetConnectCallback
    - redisAsyncSetDisconnectCallback
    linkageType: ''
    returnType: void
    signature: void h2o_redis_connect(h2o_redis_client_t *client, const char *host,
      uint16_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disconnect
      Src: /src/h2o/lib/common/redis.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - h2o_redis_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: h2o_redis_disconnect
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - disconnect
    linkageType: ''
    returnType: void
    signature: void h2o_redis_disconnect(h2o_redis_client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/redis.c:178,1
    - Dst: free
      Src: /src/h2o/lib/common/redis.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - command
    argTypes:
    - h2o_redis_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: dispose_command
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void dispose_command(h2o_redis_command_t *command)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_redis_command_t*::cb
      Src: /src/h2o/lib/common/redis.c:185,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/common/redis.c:192,1
    - Dst: dispose_command
      Src: /src/h2o/lib/common/redis.c:193,1
    - Dst: dispose_command
      Src: /src/h2o/lib/common/redis.c:198,1
    - Dst: dispose_command
      Src: /src/h2o/lib/common/redis.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - command
    - reply
    - errstr
    argTypes:
    - h2o_redis_command_t*
    - redisReply*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 204
    functionName: handle_reply
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_redis_command_t*::cb
    - strncasecmp
    - dispose_command
    linkageType: ''
    returnType: void
    signature: void handle_reply(h2o_redis_command_t *command, redisReply *reply,
      const char *errstr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_error
      Src: /src/h2o/lib/common/redis.c:216,1
    - Dst: handle_reply
      Src: /src/h2o/lib/common/redis.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - redis
    - _reply
    - privdata
    argTypes:
    - redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: on_command
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - get_error
    - handle_reply
    linkageType: ''
    returnType: void
    signature: void on_command(redisAsyncContext *redis, void *_reply, void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/redis.c:222,1
    - Dst: disconnect
      Src: /src/h2o/lib/common/redis.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: on_command_timeout
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - disconnect
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_command_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/redis.c:231,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/common/redis.c:237,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/redis.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - client
    - cb
    - cb_data
    - type
    argTypes:
    - h2o_redis_client_t*
    - h2o_redis_command_cb
    - void*
    - h2o_redis_command_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 244
    functionName: create_command
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_timer_init
    - h2o_timer_link
    linkageType: ''
    returnType: h2o_redis_command_t
    signature: "h2o_redis_command_t *create_command(h2o_redis_client_t *client, h2o_redis_command_cb
      cb, void *cb_data,\n                                           h2o_redis_command_type_t
      type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: handle_reply
      Src: /src/h2o/lib/common/redis.c:249,1
    - Dst: handle_reply
      Src: /src/h2o/lib/common/redis.c:254,1
    - Dst: handle_reply
      Src: /src/h2o/lib/common/redis.c:260,1
    - Dst: redisAsyncFormattedCommand
      Src: /src/h2o/lib/common/redis.c:264,1
    - Dst: handle_reply
      Src: /src/h2o/lib/common/redis.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - client
    - command
    - cmd
    - len
    argTypes:
    - h2o_redis_client_t*
    - h2o_redis_command_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: send_command
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 41
    functionsReached:
    - handle_reply
    - redisAsyncFormattedCommand
    linkageType: ''
    returnType: void
    signature: void send_command(h2o_redis_client_t *client, h2o_redis_command_t *command,
      const char *cmd, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/h2o/lib/common/redis.c:281,1
    - Dst: assert
      Src: /src/h2o/lib/common/redis.c:283,1
    - Dst: strchr
      Src: /src/h2o/lib/common/redis.c:285,1
    - Dst: CHECK
      Src: /src/h2o/lib/common/redis.c:286,1
    - Dst: strchr
      Src: /src/h2o/lib/common/redis.c:287,1
    - Dst: CHECK
      Src: /src/h2o/lib/common/redis.c:288,1
    - Dst: CHECK
      Src: /src/h2o/lib/common/redis.c:290,1
    - Dst: MATCH
      Src: /src/h2o/lib/common/redis.c:293,1
    - Dst: MATCH
      Src: /src/h2o/lib/common/redis.c:295,1
    - Dst: MATCH
      Src: /src/h2o/lib/common/redis.c:297,1
    - Dst: MATCH
      Src: /src/h2o/lib/common/redis.c:299,1
    - Dst: MATCH
      Src: /src/h2o/lib/common/redis.c:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - formatted
    argTypes:
    - char*
    assertStmts:
    - condition: (p[0] == '*')
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/h2o/lib/common/redis.c
    constantsTouched: []
    func_position:
      end: 306
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 306
    functionName: detect_command_type
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - strchr
    - MATCH
    - CHECK
    - assert
    linkageType: ''
    returnType: h2o_redis_command_type_t
    signature: h2o_redis_command_type_t detect_command_type(const char *formatted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: CHECK
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - target
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: MATCH
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH(c, target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/lib/common/redis.c:313,1
    - Dst: redisvFormatCommand
      Src: /src/h2o/lib/common/redis.c:314,1
    - Dst: va_end
      Src: /src/h2o/lib/common/redis.c:315,1
    - Dst: create_command
      Src: /src/h2o/lib/common/redis.c:321,1
    - Dst: detect_command_type
      Src: /src/h2o/lib/common/redis.c:321,1
    - Dst: send_command
      Src: /src/h2o/lib/common/redis.c:322,1
    - Dst: free
      Src: /src/h2o/lib/common/redis.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - client
    - cb
    - cb_data
    - format
    argTypes:
    - h2o_redis_client_t*
    - h2o_redis_command_cb
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 325
    functionName: h2o_redis_command
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 2
    functionsReached:
    - va_start
    - send_command
    - free
    - detect_command_type
    - create_command
    - va_end
    - redisvFormatCommand
    linkageType: ''
    returnType: h2o_redis_command_t
    signature: h2o_redis_command_t *h2o_redis_command(h2o_redis_client_t *client,
      h2o_redis_command_cb cb, void *cb_data, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisFormatSdsCommandArgv
      Src: /src/h2o/lib/common/redis.c:332,1
    - Dst: create_command
      Src: /src/h2o/lib/common/redis.c:338,1
    - Dst: detect_command_type
      Src: /src/h2o/lib/common/redis.c:338,1
    - Dst: send_command
      Src: /src/h2o/lib/common/redis.c:339,1
    - Dst: sdsfree
      Src: /src/h2o/lib/common/redis.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - client
    - cb
    - cb_data
    - argc
    - argv
    - argvlen
    argTypes:
    - h2o_redis_client_t*
    - h2o_redis_command_cb
    - void*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: h2o_redis_command_argv
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - send_command
    - detect_command_type
    - redisFormatSdsCommandArgv
    - create_command
    - sdsfree
    linkageType: ''
    returnType: h2o_redis_command_t
    signature: "h2o_redis_command_t *h2o_redis_command_argv(h2o_redis_client_t *client,
      h2o_redis_command_cb cb, void *cb_data, int argc,\n                                            const
      char **argv, const size_t *argvlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disconnect
      Src: /src/h2o/lib/common/redis.c:347,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/redis.c:348,1
    - Dst: free
      Src: /src/h2o/lib/common/redis.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - client
    argTypes:
    - h2o_redis_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: h2o_redis_free
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 1
    functionsReached:
    - free
    - disconnect
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void h2o_redis_free(h2o_redis_client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleRead
      Src: /src/h2o/lib/common/redis.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: on_read
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 5
    functionsReached:
    - redisAsyncHandleRead
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncHandleWrite
      Src: /src/h2o/lib/common/redis.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 7
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: on_write
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 5
    functionsReached:
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void on_write(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/common/redis.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: socket_add_read
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void socket_add_read(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/common/redis.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: socket_del_read
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    linkageType: ''
    returnType: void
    signature: void socket_del_read(void *privdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/redis.c:381,1
    - Dst: h2o_socket_notify_write
      Src: /src/h2o/lib/common/redis.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: socket_add_write
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_socket_is_writing
    - h2o_socket_notify_write
    linkageType: ''
    returnType: void
    signature: void socket_add_write(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/redis.c:389,1
    - Dst: free
      Src: /src/h2o/lib/common/redis.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - privdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 386
    functionDepth: 7
    functionLinenumber: 386
    functionLinenumberEnd: 393
    functionName: socket_cleanup
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 0
    functionsReached:
    - h2o_socket_close
    - free
    linkageType: ''
    returnType: void
    signature: void socket_cleanup(void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/redis.c:399,1
    - Dst: h2o_uv__poll_create
      Src: /src/h2o/lib/common/redis.c:409,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/redis.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ac
    - loop
    argTypes:
    - redisAsyncContext*
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 416
    functionName: attach_loop
    functionSourceFile: /src/h2o/lib/common/redis.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - h2o_uv__poll_create
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: void
    signature: void attach_loop(redisAsyncContext *ac, h2o_loop_t *loop)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/absprio.c:31,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/common/absprio.c:35,1
    - Dst: H2O_BUILD_ASSERT
      Src: /src/h2o/lib/common/absprio.c:43,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - s
    - len
    - prio
    argTypes:
    - char*
    - size_t
    - h2o_absprio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 64
    functionName: h2o_absprio_parse_priority
    functionSourceFile: /src/h2o/lib/common/absprio.c
    functionUses: 3
    functionsReached:
    - h2o_next_token
    - H2O_BUILD_ASSERT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_absprio_parse_priority(const char *s, size_t len, h2o_absprio_t
      *prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/time.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - wday
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: emit_wday
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *emit_wday(char *dst, int wday)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/common/time.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - mon
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: emit_mon
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *emit_mon(char *dst, int mon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - n
    - cnt
    argTypes:
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: emit_digits
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *emit_digits(char *dst, int n, size_t cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_wday
      Src: /src/h2o/lib/common/time.c:57,1
    - Dst: emit_digits
      Src: /src/h2o/lib/common/time.c:60,1
    - Dst: emit_mon
      Src: /src/h2o/lib/common/time.c:62,1
    - Dst: emit_digits
      Src: /src/h2o/lib/common/time.c:64,1
    - Dst: emit_digits
      Src: /src/h2o/lib/common/time.c:66,1
    - Dst: emit_digits
      Src: /src/h2o/lib/common/time.c:68,1
    - Dst: emit_digits
      Src: /src/h2o/lib/common/time.c:70,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/time.c:71,1
    - Dst: assert
      Src: /src/h2o/lib/common/time.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - gmt
    argTypes:
    - char*
    - struct tm*
    assertStmts:
    - condition: (p - buf == H2O_TIMESTR_RFC1123_LEN)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/lib/common/time.c
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: h2o_time2str_rfc1123
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 3
    functionsReached:
    - emit_mon
    - emit_wday
    - emit_digits
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_time2str_rfc1123(char *buf, struct tm *gmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: fetch_digits
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fetch_digits(const char *s, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FETCH
      Src: /src/h2o/lib/common/time.c:102,1
    - Dst: FETCH
      Src: /src/h2o/lib/common/time.c:105,1
    - Dst: FETCH
      Src: /src/h2o/lib/common/time.c:106,1
    - Dst: FETCH
      Src: /src/h2o/lib/common/time.c:107,1
    - Dst: FETCH
      Src: /src/h2o/lib/common/time.c:108,1
    - Dst: PACK3
      Src: /src/h2o/lib/common/time.c:116,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:117,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:118,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:119,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:120,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:121,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:122,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:123,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:124,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:125,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:126,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:127,1
    - Dst: MAP
      Src: /src/h2o/lib/common/time.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - s
    - len
    - tm
    argTypes:
    - char*
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 136
    functionName: h2o_time_parse_rfc1123
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 1
    functionsReached:
    - FETCH
    - MAP
    - PACK3
    linkageType: ''
    returnType: int
    signature: int h2o_time_parse_rfc1123(const char *s, size_t len, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - pos
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: FETCH
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FETCH(dst, pos, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: PACK3
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: MAP
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP(c1, c2, c3, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/h2o/lib/common/time.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - t
    - local
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: calc_gmt_offset
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 0
    functionsReached:
    - gmtime_r
    linkageType: ''
    returnType: int
    signature: int calc_gmt_offset(time_t t, struct tm *local)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/h2o/lib/common/time.c:160,1
    - Dst: calc_gmt_offset
      Src: /src/h2o/lib/common/time.c:161,1
    - Dst: sprintf
      Src: /src/h2o/lib/common/time.c:171,1
    - Dst: assert
      Src: /src/h2o/lib/common/time.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - time
    argTypes:
    - char*
    - time_t
    assertStmts:
    - condition: (len == H2O_TIMESTR_LOG_LEN)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/h2o/lib/common/time.c
    constantsTouched: []
    func_position:
      end: 175
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 175
    functionName: h2o_time2str_log
    functionSourceFile: /src/h2o/lib/common/time.c
    functionUses: 2
    functionsReached:
    - sprintf
    - assert
    - localtime_r
    - calc_gmt_offset
    linkageType: ''
    returnType: void
    signature: void h2o_time2str_log(char *buf, time_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_cache_ref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: get_keyhash
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_cache_hashcode_t
    signature: h2o_cache_hashcode_t get_keyhash(h2o_cache_ref_t *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/common/cache.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - h2o_cache_ref_t*
    - h2o_cache_ref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: is_equal
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 12
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_equal(h2o_cache_ref_t *x, h2o_cache_ref_t *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/cache.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: lock_cache
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lock_cache(h2o_cache_t *cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/cache.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: unlock_cache
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_cache(h2o_cache_t *cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_key
      Src: /src/h2o/lib/common/cache.c:71,1
    - Dst: kh_del
      Src: /src/h2o/lib/common/cache.c:74,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/cache.c:75,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/cache.c:76,1
    - Dst: h2o_cache_release
      Src: /src/h2o/lib/common/cache.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cache
    - iter
    - reuse
    argTypes:
    - h2o_cache_t*
    - khiter_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: erase_ref
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached:
    - kh_key
    - h2o_cache_release
    - kh_del
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void erase_ref(h2o_cache_t *cache, khiter_t iter, int reuse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cache
    - ref
    - now
    argTypes:
    - h2o_cache_t*
    - h2o_cache_ref_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: get_timeleft
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_timeleft(h2o_cache_t *cache, h2o_cache_ref_t *ref, uint64_t
      now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:92,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/cache.c:92,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/cache.c:93,1
    - Dst: erase_ref
      Src: /src/h2o/lib/common/cache.c:94,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:94,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/cache.c:97,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/cache.c:98,1
    - Dst: get_timeleft
      Src: /src/h2o/lib/common/cache.c:99,1
    - Dst: erase_ref
      Src: /src/h2o/lib/common/cache.c:101,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cache
    - now
    argTypes:
    - h2o_cache_t*
    - uint64_t
    assertStmts:
    - condition: (!h2o_linklist_is_empty(&cache->lru))
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/lib/common/cache.c
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: purge
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - get_timeleft
    - kh_get
    - erase_ref
    linkageType: ''
    returnType: void
    signature: void purge(h2o_cache_t *cache, uint64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: h2o_cache_calchash
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: h2o_cache_hashcode_t
    signature: h2o_cache_hashcode_t h2o_cache_calchash(const char *s, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/cache.c:115,1
    - Dst: kh_init
      Src: /src/h2o/lib/common/cache.c:118,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/cache.c:121,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/cache.c:122,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/cache.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - flags
    - capacity
    - duration
    argTypes:
    - int
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: h2o_cache_create
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - h2o_linklist_init_anchor
    - pthread_mutex_init
    - kh_init
    linkageType: ''
    returnType: h2o_cache_t
    signature: h2o_cache_t *h2o_cache_create(int flags, size_t capacity, uint64_t
      duration, void (*destroy_cb)(h2o_iovec_t value))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_clear
      Src: /src/h2o/lib/common/cache.c:133,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/common/cache.c:134,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/cache.c:136,1
    - Dst: free
      Src: /src/h2o/lib/common/cache.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: h2o_cache_destroy
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 2
    functionsReached:
    - free
    - h2o_cache_clear
    - pthread_mutex_destroy
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void h2o_cache_destroy(h2o_cache_t *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_cache
      Src: /src/h2o/lib/common/cache.c:142,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/cache.c:144,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/cache.c:145,1
    - Dst: erase_ref
      Src: /src/h2o/lib/common/cache.c:146,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:146,1
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:148,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/cache.c:148,1
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:149,1
    - Dst: kh_size
      Src: /src/h2o/lib/common/cache.c:149,1
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:150,1
    - Dst: unlock_cache
      Src: /src/h2o/lib/common/cache.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts:
    - condition: (h2o_linklist_is_linked(&cache->age))
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/h2o/lib/common/cache.c
    - condition: (kh_size(cache->table) == 0)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/h2o/lib/common/cache.c
    - condition: (cache->size == 0)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/h2o/lib/common/cache.c
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: h2o_cache_clear
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 1
    functionsReached:
    - assert
    - h2o_linklist_is_empty
    - lock_cache
    - H2O_STRUCT_FROM_MEMBER
    - unlock_cache
    - kh_size
    - h2o_linklist_is_linked
    - kh_get
    - erase_ref
    linkageType: ''
    returnType: void
    signature: void h2o_cache_clear(h2o_cache_t *cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/common/cache.c:162,1
    - Dst: lock_cache
      Src: /src/h2o/lib/common/cache.c:166,1
    - Dst: purge
      Src: /src/h2o/lib/common/cache.c:168,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:170,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/cache.c:170,1
    - Dst: kh_key
      Src: /src/h2o/lib/common/cache.c:174,1
    - Dst: get_timeleft
      Src: /src/h2o/lib/common/cache.c:175,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/cache.c:183,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/cache.c:184,1
    - Dst: __sync_fetch_and_add
      Src: /src/h2o/lib/common/cache.c:185,1
    - Dst: unlock_cache
      Src: /src/h2o/lib/common/cache.c:188,1
    - Dst: unlock_cache
      Src: /src/h2o/lib/common/cache.c:192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - cache
    - now
    - key
    - keyhash
    argTypes:
    - h2o_cache_t*
    - uint64_t
    - h2o_iovec_t
    - h2o_cache_hashcode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: h2o_cache_fetch
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 2
    functionsReached:
    - __sync_fetch_and_add
    - purge
    - lock_cache
    - kh_end
    - get_timeleft
    - kh_key
    - unlock_cache
    - h2o_cache_calchash
    - h2o_linklist_unlink
    - kh_get
    - h2o_linklist_insert
    linkageType: ''
    returnType: h2o_cache_ref_t
    signature: h2o_cache_ref_t *h2o_cache_fetch(h2o_cache_t *cache, uint64_t now,
      h2o_iovec_t key, h2o_cache_hashcode_t keyhash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_sub
      Src: /src/h2o/lib/common/cache.c:198,1
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:199,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/cache.c:199,1
    - Dst: assert
      Src: /src/h2o/lib/common/cache.c:200,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/common/cache.c:200,1
    - Dst: h2o_cache_t*::destroy_cb
      Src: /src/h2o/lib/common/cache.c:202,1
    - Dst: free
      Src: /src/h2o/lib/common/cache.c:203,1
    - Dst: free
      Src: /src/h2o/lib/common/cache.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cache
    - ref
    argTypes:
    - h2o_cache_t*
    - h2o_cache_ref_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&ref->_age_link))
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/h2o/lib/common/cache.c
    - condition: (!h2o_linklist_is_linked(&ref->_lru_link))
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/h2o/lib/common/cache.c
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: h2o_cache_release
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 3
    functionsReached:
    - free
    - h2o_cache_t*::destroy_cb
    - __sync_fetch_and_sub
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_cache_release(h2o_cache_t *cache, h2o_cache_ref_t *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/common/cache.c:215,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/cache.c:218,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/common/cache.c:219,1
    - Dst: lock_cache
      Src: /src/h2o/lib/common/cache.c:221,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:224,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/cache.c:225,1
    - Dst: erase_ref
      Src: /src/h2o/lib/common/cache.c:226,1
    - Dst: kh_key
      Src: /src/h2o/lib/common/cache.c:227,1
    - Dst: kh_put
      Src: /src/h2o/lib/common/cache.c:231,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/cache.c:234,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/common/cache.c:235,1
    - Dst: purge
      Src: /src/h2o/lib/common/cache.c:238,1
    - Dst: unlock_cache
      Src: /src/h2o/lib/common/cache.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - cache
    - now
    - key
    - keyhash
    - value
    argTypes:
    - h2o_cache_t*
    - uint64_t
    - h2o_iovec_t
    - h2o_cache_hashcode_t
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 243
    functionName: h2o_cache_set
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 2
    functionsReached:
    - purge
    - lock_cache
    - h2o_strdup
    - kh_end
    - kh_key
    - unlock_cache
    - h2o_mem_alloc
    - kh_put
    - h2o_cache_calchash
    - kh_get
    - erase_ref
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: int h2o_cache_set(h2o_cache_t *cache, uint64_t now, h2o_iovec_t key,
      h2o_cache_hashcode_t keyhash, h2o_iovec_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/common/cache.c:251,1
    - Dst: lock_cache
      Src: /src/h2o/lib/common/cache.c:255,1
    - Dst: purge
      Src: /src/h2o/lib/common/cache.c:257,1
    - Dst: kh_get
      Src: /src/h2o/lib/common/cache.c:259,1
    - Dst: kh_end
      Src: /src/h2o/lib/common/cache.c:259,1
    - Dst: erase_ref
      Src: /src/h2o/lib/common/cache.c:260,1
    - Dst: unlock_cache
      Src: /src/h2o/lib/common/cache.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - cache
    - now
    - key
    - keyhash
    argTypes:
    - h2o_cache_t*
    - uint64_t
    - h2o_iovec_t
    - h2o_cache_hashcode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 263
    functionName: h2o_cache_delete
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 1
    functionsReached:
    - purge
    - lock_cache
    - kh_end
    - unlock_cache
    - h2o_cache_calchash
    - kh_get
    - erase_ref
    linkageType: ''
    returnType: void
    signature: void h2o_cache_delete(h2o_cache_t *cache, uint64_t now, h2o_iovec_t
      key, h2o_cache_hashcode_t keyhash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: h2o_cache_get_capacity
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_cache_get_capacity(h2o_cache_t *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - h2o_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: h2o_cache_get_duration
    functionSourceFile: /src/h2o/lib/common/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t h2o_cache_get_duration(h2o_cache_t *cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/balancer/least_conn.c:38,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/balancer/least_conn.c:39,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/balancer/least_conn.c:51,1
    - Dst: assert
      Src: /src/h2o/lib/common/balancer/least_conn.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - _self
    - targets
    - tried
    argTypes:
    - h2o_balancer_t*
    - h2o_socketpool_target_vector_t*
    - char*
    assertStmts:
    - condition: (targets->size != 0)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/lib/common/balancer/least_conn.c
    - condition: (result_index < targets->size)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/h2o/lib/common/balancer/least_conn.c
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 55
    functionName: selector
    functionSourceFile: /src/h2o/lib/common/balancer/least_conn.c
    functionUses: 6
    functionsReached:
    - pthread_mutex_lock
    - assert
    - pthread_mutex_unlock
    linkageType: ''
    returnType: size_t
    signature: size_t selector(h2o_balancer_t *_self, h2o_socketpool_target_vector_t
      *targets, char *tried)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/balancer/least_conn.c:60,1
    - Dst: free
      Src: /src/h2o/lib/common/balancer/least_conn.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_balancer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: destroy
    functionSourceFile: /src/h2o/lib/common/balancer/least_conn.c
    functionUses: 89
    functionsReached:
    - free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void destroy(h2o_balancer_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/balancer/least_conn.c:67,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/balancer/least_conn.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: h2o_balancer_create_lc
    functionSourceFile: /src/h2o/lib/common/balancer/least_conn.c
    functionUses: 3
    functionsReached:
    - h2o_mem_alloc
    - pthread_mutex_init
    linkageType: ''
    returnType: h2o_balancer_t
    signature: h2o_balancer_t *h2o_balancer_create_lc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - targets
    argTypes:
    - struct round_robin_t*
    - h2o_socketpool_target_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: select_next
    functionSourceFile: /src/h2o/lib/common/balancer/roundrobin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void select_next(struct round_robin_t *self, h2o_socketpool_target_vector_t
      *targets)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/balancer/roundrobin.c:45,1
    - Dst: assert
      Src: /src/h2o/lib/common/balancer/roundrobin.c:47,1
    - Dst: select_next
      Src: /src/h2o/lib/common/balancer/roundrobin.c:53,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/balancer/roundrobin.c:54,1
    - Dst: select_next
      Src: /src/h2o/lib/common/balancer/roundrobin.c:57,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/balancer/roundrobin.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - balancer
    - targets
    - tried
    argTypes:
    - h2o_balancer_t*
    - h2o_socketpool_target_vector_t*
    - char*
    assertStmts:
    - condition: (targets->size != 0)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/h2o/lib/common/balancer/roundrobin.c
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: selector
    functionSourceFile: /src/h2o/lib/common/balancer/roundrobin.c
    functionUses: 6
    functionsReached:
    - pthread_mutex_lock
    - select_next
    - h2o_fatal
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t selector(h2o_balancer_t *balancer, h2o_socketpool_target_vector_t
      *targets, char *tried)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/common/balancer/roundrobin.c:66,1
    - Dst: free
      Src: /src/h2o/lib/common/balancer/roundrobin.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - balancer
    argTypes:
    - h2o_balancer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: destroy
    functionSourceFile: /src/h2o/lib/common/balancer/roundrobin.c
    functionUses: 90
    functionsReached:
    - free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void destroy(h2o_balancer_t *balancer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/balancer/roundrobin.c:74,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/common/balancer/roundrobin.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: h2o_balancer_create_rr
    functionSourceFile: /src/h2o/lib/common/balancer/roundrobin.c
    functionUses: 4
    functionsReached:
    - h2o_mem_alloc
    - pthread_mutex_init
    linkageType: ''
    returnType: h2o_balancer_t
    signature: h2o_balancer_t *h2o_balancer_create_rr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct st_h2o_evloop_socket_t*::super::_cb::write
      Src: /src/h2o/lib/common/socket/evloop.c.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: notify_write_progress
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - struct st_h2o_evloop_socket_t*::super::_cb::write
    linkageType: ''
    returnType: void
    signature: void notify_write_progress(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: link_to_pending
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link_to_pending(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: link_to_statechanged
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link_to_statechanged(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/socket/evloop.c.h:144,1
    - Dst: read
      Src: /src/h2o/lib/common/socket/evloop.c.h:152,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 3
    argNames:
    - fd
    - input
    - max_bytes
    argTypes:
    - int
    - h2o_buffer_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: on_read_core
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - read
    - h2o_buffer_try_reserve
    linkageType: ''
    returnType: char
    signature: char *on_read_core(int fd, h2o_buffer_t **input, size_t max_bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sendmsg
      Src: /src/h2o/lib/common/socket/evloop.c.h:184,1
    - Dst: SOCKET_PROBE
      Src: /src/h2o/lib/common/socket/evloop.c.h:185,1
    - Dst: H2O_LOG_SOCK
      Src: /src/h2o/lib/common/socket/evloop.c.h:186,1
    - Dst: PTLS_LOG_ELEMENT_SIGNED
      Src: /src/h2o/lib/common/socket/evloop.c.h:186,1
    - Dst: notify_write_progress
      Src: /src/h2o/lib/common/socket/evloop.c.h:191,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - sock
    - bufs
    - bufcnt
    - sendmsg_flags
    argTypes:
    - struct st_h2o_evloop_socket_t*
    - h2o_iovec_t**
    - size_t*
    - int
    assertStmts:
    - condition: (wret == 0)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 211
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 211
    functionName: write_vecs
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - notify_write_progress
    - SOCKET_PROBE
    - sendmsg
    - PTLS_LOG_ELEMENT_SIGNED
    - H2O_LOG_SOCK
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t write_vecs(struct st_h2o_evloop_socket_t *sock, h2o_iovec_t
      **bufs, size_t *bufcnt, int sendmsg_flags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:217,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:217,1
    - Dst: write_vecs
      Src: /src/h2o/lib/common/socket/evloop.c.h:218,1
    - Dst: flatten_sendvec
      Src: /src/h2o/lib/common/socket/evloop.c.h:224,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket/evloop.c.h:228,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:235,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket/evloop.c.h:236,1
    - Dst: write_vecs
      Src: /src/h2o/lib/common/socket/evloop.c.h:254,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket/evloop.c.h:255,1
    - Dst: zerocopy_buffers_push
      Src: /src/h2o/lib/common/socket/evloop.c.h:259,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket/evloop.c.h:271,1
    - Dst: generate_tls_records
      Src: /src/h2o/lib/common/socket/evloop.c.h:277,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket/evloop.c.h:281,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 43
    argCount: 3
    argNames:
    - sock
    - bufs
    - bufcnt
    argTypes:
    - struct st_h2o_evloop_socket_t*
    - h2o_iovec_t**
    - size_t*
    assertStmts:
    - condition: (!has_pending_ssl_bytes(sock->super.ssl))
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 287
      start: 213
    functionDepth: 9
    functionLinenumber: 213
    functionLinenumberEnd: 287
    functionName: write_core
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - generate_tls_records
    - flatten_sendvec
    - has_pending_ssl_bytes
    - dispose_ssl_output_buffer
    - write_vecs
    - h2o_mem_free_recycle
    - zerocopy_buffers_push
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: size_t
    signature: size_t write_core(struct st_h2o_evloop_socket_t *sock, h2o_iovec_t
      **bufs, size_t *bufcnt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:297,1
    - Dst: struct st_h2o_evloop_socket_t*::sendvec::callbacks::send_
      Src: /src/h2o/lib/common/socket/evloop.c.h:300,1
    - Dst: notify_write_progress
      Src: /src/h2o/lib/common/socket/evloop.c.h:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (sock->sendvec.len != 0)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: sendvec_core
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - notify_write_progress
    - struct st_h2o_evloop_socket_t*::sendvec::callbacks::send_
    - assert
    linkageType: ''
    returnType: int
    signature: int sendvec_core(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:316,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:324,1
    - Dst: write_core
      Src: /src/h2o/lib/common/socket/evloop.c.h:326,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:332,1
    - Dst: dispose_write_buf
      Src: /src/h2o/lib/common/socket/evloop.c.h:339,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:342,1
    - Dst: sendvec_core
      Src: /src/h2o/lib/common/socket/evloop.c.h:344,1
    - Dst: SOCKET_PROBE
      Src: /src/h2o/lib/common/socket/evloop.c.h:349,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:349,1
    - Dst: H2O_LOG_SOCK
      Src: /src/h2o/lib/common/socket/evloop.c.h:350,1
    - Dst: PTLS_LOG_ELEMENT_BOOL
      Src: /src/h2o/lib/common/socket/evloop.c.h:351,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:351,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:354,1
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:355,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (sock->super._cb.write != NULL)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 356
      start: 314
    functionDepth: 10
    functionLinenumber: 314
    functionLinenumberEnd: 356
    functionName: write_pending
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 5
    functionsReached:
    - has_pending_ssl_bytes
    - link_to_pending
    - PTLS_LOG_ELEMENT_BOOL
    - write_core
    - SOCKET_PROBE
    - sendvec_core
    - link_to_statechanged
    - H2O_LOG_SOCK
    - dispose_write_buf
    - assert
    linkageType: ''
    returnType: void
    signature: void write_pending(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: on_read_core
      Src: /src/h2o/lib/common/socket/evloop.c.h:366,1
    - Dst: decode_ssl_input
      Src: /src/h2o/lib/common/socket/evloop.c.h:371,1
    - Dst: struct st_h2o_evloop_socket_t*::super::_cb::read
      Src: /src/h2o/lib/common/socket/evloop.c.h:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 380
    functionName: read_on_ready
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - decode_ssl_input
    - on_read_core
    - struct st_h2o_evloop_socket_t*::super::_cb::read
    linkageType: ''
    returnType: void
    signature: void read_on_ready(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispose_write_buf
      Src: /src/h2o/lib/common/socket/evloop.c.h:386,1
    - Dst: evloop_do_on_socket_close
      Src: /src/h2o/lib/common/socket/evloop.c.h:392,1
    - Dst: close
      Src: /src/h2o/lib/common/socket/evloop.c.h:397,1
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 401
    functionName: do_dispose_socket
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - close
    - link_to_statechanged
    - dispose_write_buf
    - evloop_do_on_socket_close
    linkageType: ''
    returnType: void
    signature: void do_dispose_socket(h2o_socket_t *_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/common/socket/evloop.c.h:410,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/common/socket/evloop.c.h:410,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: report_early_write_error
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - link_to_pending
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void report_early_write_error(h2o_socket_t *_sock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_write_buf
      Src: /src/h2o/lib/common/socket/evloop.c.h:426,1
    - Dst: write_core
      Src: /src/h2o/lib/common/socket/evloop.c.h:431,1
    - Dst: report_early_write_error
      Src: /src/h2o/lib/common/socket/evloop.c.h:432,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:435,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket/evloop.c.h:438,1
    - Dst: sendvec_core
      Src: /src/h2o/lib/common/socket/evloop.c.h:442,1
    - Dst: report_early_write_error
      Src: /src/h2o/lib/common/socket/evloop.c.h:443,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:451,1
    - Dst: init_write_buf
      Src: /src/h2o/lib/common/socket/evloop.c.h:456,1
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:459,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - _sock
    - bufs
    - bufcnt
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 415
    functionDepth: 10
    functionLinenumber: 415
    functionLinenumberEnd: 460
    functionName: do_write
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 3
    functionsReached:
    - has_pending_ssl_bytes
    - report_early_write_error
    - link_to_pending
    - init_write_buf
    - write_core
    - h2o_mem_free_recycle
    - sendvec_core
    - link_to_statechanged
    linkageType: ''
    returnType: void
    signature: void do_write(h2o_socket_t *_sock, h2o_iovec_t *bufs, size_t bufcnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/socket/evloop.c.h:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 478
    functionName: can_tls_offload
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 2
    functionsReached:
    - ptls_get_cipher
    linkageType: ''
    returnType: int
    signature: int can_tls_offload(h2o_socket_t *sock)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:483,1
    - Dst: ptls_get_cipher
      Src: /src/h2o/lib/common/socket/evloop.c.h:505,1
    - Dst: ptls_get_traffic_keys
      Src: /src/h2o/lib/common/socket/evloop.c.h:513,1
    - Dst: htobe64
      Src: /src/h2o/lib/common/socket/evloop.c.h:515,1
    - Dst: SETUP_TX_PARAMS
      Src: /src/h2o/lib/common/socket/evloop.c.h:534,1
    - Dst: SETUP_TX_PARAMS
      Src: /src/h2o/lib/common/socket/evloop.c.h:537,1
    - Dst: setsockopt
      Src: /src/h2o/lib/common/socket/evloop.c.h:545,1
    - Dst: setsockopt
      Src: /src/h2o/lib/common/socket/evloop.c.h:547,1
    - Dst: ptls_clear_memory
      Src: /src/h2o/lib/common/socket/evloop.c.h:552,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (sock->super.ssl->offload == H2O_SOCKET_SSL_OFFLOAD_TBD)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 558
      start: 481
    functionDepth: 4
    functionLinenumber: 481
    functionLinenumberEnd: 558
    functionName: switch_to_ktls
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - ptls_get_cipher
    - SETUP_TX_PARAMS
    - setsockopt
    - ptls_get_traffic_keys
    - htobe64
    - ptls_clear_memory
    - assert
    linkageType: ''
    returnType: void
    signature: void switch_to_ktls(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - target
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 532
    functionName: SETUP_TX_PARAMS
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_TX_PARAMS(target, type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:569,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:570,1
    - Dst: switch_to_ktls
      Src: /src/h2o/lib/common/socket/evloop.c.h:576,1
    - Dst: do_write
      Src: /src/h2o/lib/common/socket/evloop.c.h:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - _sock
    - bufs
    - bufcnt
    - sendvec
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t*
    - size_t
    - h2o_sendvec_t*
    assertStmts:
    - condition: (sendvec->callbacks->read_ != NULL)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - condition: (sock->sendvec.callbacks == NULL)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 590
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 590
    functionName: do_write_with_sendvec
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - do_write
    - switch_to_ktls
    - assert
    linkageType: ''
    returnType: int
    signature: int do_write_with_sendvec(h2o_socket_t *_sock, h2o_iovec_t *bufs, size_t
      bufcnt, h2o_sendvec_t *sendvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 596
    functionName: h2o_socket_get_fd
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_socket_get_fd(h2o_socket_t *_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: do_read_start
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - link_to_statechanged
    linkageType: ''
    returnType: void
    signature: void do_read_start(h2o_socket_t *_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: do_read_stop
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - link_to_statechanged
    linkageType: ''
    returnType: void
    signature: void do_read_stop(h2o_socket_t *_sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _sock
    - dont_read
    argTypes:
    - h2o_socket_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: h2o_socket_dont_read
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_socket_dont_read(h2o_socket_t *_sock, int dont_read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:628,1
    - Dst: evloop_do_on_socket_export
      Src: /src/h2o/lib/common/socket/evloop.c.h:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - _sock
    - info
    argTypes:
    - h2o_socket_t*
    - h2o_socket_export_t*
    assertStmts:
    - condition: ((sock->_flags & H2O_SOCKET_FLAG_IS_DISPOSED) == 0)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 636
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 636
    functionName: do_export
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - evloop_do_on_socket_export
    - assert
    linkageType: ''
    returnType: int
    signature: int do_export(h2o_socket_t *_sock, h2o_socket_export_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/common/socket/evloop.c.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - loop
    - info
    argTypes:
    - h2o_loop_t*
    - h2o_socket_export_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: do_import
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *do_import(h2o_loop_t *loop, h2o_socket_export_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: h2o_socket_get_loop
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: h2o_loop_t
    signature: h2o_loop_t *h2o_socket_get_loop(h2o_socket_t *_sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/h2o/lib/common/socket/evloop.c.h:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: get_sockname_uncached
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - getsockname
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname_uncached(h2o_socket_t *_sock, struct sockaddr
      *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/h2o/lib/common/socket/evloop.c.h:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: get_peername_uncached
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - getpeername
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername_uncached(h2o_socket_t *_sock, struct sockaddr
      *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/evloop.c.h:671,1
    - Dst: memset
      Src: /src/h2o/lib/common/socket/evloop.c.h:672,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/socket/evloop.c.h:673,1
    - Dst: evloop_do_on_socket_create
      Src: /src/h2o/lib/common/socket/evloop.c.h:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - loop
    - fd
    - flags
    argTypes:
    - h2o_evloop_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 684
    functionName: create_socket
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - h2o_mem_alloc
    - memset
    - evloop_do_on_socket_create
    linkageType: ''
    returnType: struct st_h2o_evloop_socket_t
    signature: struct st_h2o_evloop_socket_t *create_socket(h2o_evloop_t *loop, int
      fd, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/h2o/lib/common/socket/evloop.c.h:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - sa
    argTypes:
    - int
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 698
    functionName: set_nodelay_if_likely_tcp
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void set_nodelay_if_likely_tcp(int fd, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/lib/common/socket/evloop.c.h:703,1
    - Dst: set_nodelay_if_likely_tcp
      Src: /src/h2o/lib/common/socket/evloop.c.h:704,1
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - loop
    - fd
    - flags
    argTypes:
    - h2o_evloop_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: h2o_evloop_socket_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 9
    functionsReached:
    - create_socket
    - fcntl
    - set_nodelay_if_likely_tcp
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_evloop_socket_create(h2o_evloop_t *loop, int fd,
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/h2o/lib/common/socket/evloop.c.h:722,1
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:724,1
    - Dst: cloexec_accept
      Src: /src/h2o/lib/common/socket/evloop.c.h:726,1
    - Dst: fcntl
      Src: /src/h2o/lib/common/socket/evloop.c.h:728,1
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:729,1
    - Dst: h2o_socket_setpeername
      Src: /src/h2o/lib/common/socket/evloop.c.h:732,1
    - Dst: set_nodelay_if_likely_tcp
      Src: /src/h2o/lib/common/socket/evloop.c.h:739,1
    - Dst: ptls_log_init_conn_state
      Src: /src/h2o/lib/common/socket/evloop.c.h:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - _listener
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 744
    functionName: h2o_evloop_socket_accept
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - cloexec_accept
    - create_socket
    - h2o_socket_setpeername
    - accept4
    - fcntl
    - ptls_log_init_conn_state
    - set_nodelay_if_likely_tcp
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_evloop_socket_accept(h2o_socket_t *_listener)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cloexec_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:751,1
    - Dst: fcntl
      Src: /src/h2o/lib/common/socket/evloop.c.h:757,1
    - Dst: connect
      Src: /src/h2o/lib/common/socket/evloop.c.h:759,1
    - Dst: h2o_socket_get_error_string
      Src: /src/h2o/lib/common/socket/evloop.c.h:761,1
    - Dst: close
      Src: /src/h2o/lib/common/socket/evloop.c.h:762,1
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:766,1
    - Dst: set_nodelay_if_likely_tcp
      Src: /src/h2o/lib/common/socket/evloop.c.h:767,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:773,1
    - Dst: h2o_socket_notify_write
      Src: /src/h2o/lib/common/socket/evloop.c.h:775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - loop
    - addr
    - addrlen
    - cb
    - err
    argTypes:
    - h2o_loop_t*
    - struct sockaddr*
    - socklen_t
    - h2o_socket_cb
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 778
    functionName: h2o_socket_connect
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - close
    - create_socket
    - link_to_pending
    - h2o_socket_notify_write
    - fcntl
    - h2o_socket_get_error_string
    - connect
    - cloexec_socket
    - set_nodelay_if_likely_tcp
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_socket_connect(h2o_loop_t *loop, struct sockaddr
      *addr, socklen_t addrlen, h2o_socket_cb cb, const char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _sock
    - max_size
    argTypes:
    - h2o_socket_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 784
    functionName: h2o_evloop_socket_set_max_read_size
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h2o_evloop_socket_set_max_read_size(h2o_socket_t *_sock, size_t
      max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/evloop.c.h:788,1
    - Dst: memset
      Src: /src/h2o/lib/common/socket/evloop.c.h:790,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop.c.h:792,1
    - Dst: h2o_timerwheel_create
      Src: /src/h2o/lib/common/socket/evloop.c.h:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 797
    functionName: create_evloop
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - memset
    - h2o_timerwheel_create
    - update_now
    linkageType: ''
    returnType: h2o_evloop_t
    signature: h2o_evloop_t *create_evloop(size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/h2o/lib/common/socket/evloop.c.h:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: update_now
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 1
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void update_now(h2o_evloop_t *loop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/lib/common/socket/evloop.c.h:808,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop.c.h:810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - loop
    - max_wait
    argTypes:
    - h2o_evloop_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 821
    functionName: adjust_max_wait
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - update_now
    linkageType: ''
    returnType: int32_t
    signature: int32_t adjust_max_wait(h2o_evloop_t *loop, int32_t max_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:826,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:827,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:828,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:829,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:829,1
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop.c.h:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - _sock
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_socket_cb
    assertStmts:
    - condition: (sock->super._cb.write == NULL)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - condition: (sock->super._write_buf.cnt == 0)
      pos:
        line_end: 827
        line_start: 827
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - condition: (!has_pending_ssl_bytes(sock->super.ssl))
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - condition: (sock->super._cb.write_flags == 0)
      pos:
        line_end: 826
        line_start: 826
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 833
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 833
    functionName: h2o_socket_notify_write
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 3
    functionsReached:
    - link_to_statechanged
    - has_pending_ssl_bytes
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_socket_notify_write(h2o_socket_t *_sock, h2o_socket_cb cb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_on_ready
      Src: /src/h2o/lib/common/socket/evloop.c.h:844,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:849,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:851,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/evloop.c.h:855,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket/evloop.c.h:856,1
    - Dst: getsockopt
      Src: /src/h2o/lib/common/socket/evloop.c.h:864,1
    - Dst: h2o_socket_get_error_string
      Src: /src/h2o/lib/common/socket/evloop.c.h:865,1
    - Dst: on_write_complete
      Src: /src/h2o/lib/common/socket/evloop.c.h:869,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (sock->super._cb.write != NULL)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 871
      start: 835
    functionDepth: 8
    functionLinenumber: 835
    functionLinenumberEnd: 871
    functionName: run_socket
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - has_pending_ssl_bytes
    - read_on_ready
    - dispose_ssl_output_buffer
    - on_write_complete
    - h2o_socket_get_error_string
    - assert
    - getsockopt
    linkageType: ''
    returnType: void
    signature: void run_socket(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:881,1
    - Dst: run_socket
      Src: /src/h2o/lib/common/socket/evloop.c.h:886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 873
    functionDepth: 9
    functionLinenumber: 873
    functionLinenumberEnd: 889
    functionName: run_pending
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - run_socket
    linkageType: ''
    returnType: void
    signature: void run_pending(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:896,1
    - Dst: h2o_timerwheel_get_wake_at
      Src: /src/h2o/lib/common/socket/evloop.c.h:896,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socket/evloop.c.h:902,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socket/evloop.c.h:907,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop.c.h:915,1
    - Dst: evloop_do_dispose
      Src: /src/h2o/lib/common/socket/evloop.c.h:919,1
    - Dst: h2o_timerwheel_destroy
      Src: /src/h2o/lib/common/socket/evloop.c.h:922,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop.c.h:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts:
    - condition: (h2o_timerwheel_get_wake_at(loop->_timeouts) == UINT64_MAX)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 924
      start: 891
    functionDepth: 7
    functionLinenumber: 891
    functionLinenumberEnd: 924
    functionName: h2o_evloop_destroy
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 0
    functionsReached:
    - h2o_timerwheel_get_wake_at
    - evloop_do_dispose
    - h2o_socket_close
    - free
    - h2o_timerwheel_destroy
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_evloop_destroy(h2o_evloop_t *loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evloop_do_proceed
      Src: /src/h2o/lib/common/socket/evloop.c.h:931,1
    - Dst: run_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:935,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/common/socket/evloop.c.h:945,1
    - Dst: h2o_timerwheel_get_expired
      Src: /src/h2o/lib/common/socket/evloop.c.h:946,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/socket/evloop.c.h:947,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/evloop.c.h:950,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/common/socket/evloop.c.h:951,1
    - Dst: h2o_timerwheel_entry_t*::cb
      Src: /src/h2o/lib/common/socket/evloop.c.h:952,1
    - Dst: run_pending
      Src: /src/h2o/lib/common/socket/evloop.c.h:953,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/common/socket/evloop.c.h:954,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:957,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop.c.h:958,1
    - Dst: h2o_sliding_counter_is_running
      Src: /src/h2o/lib/common/socket/evloop.c.h:960,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop.c.h:961,1
    - Dst: h2o_sliding_counter_stop
      Src: /src/h2o/lib/common/socket/evloop.c.h:962,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - loop
    - max_wait
    argTypes:
    - h2o_evloop_t*
    - int32_t
    assertStmts:
    - condition: (loop->_pending_as_client == NULL)
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - condition: (loop->_pending_as_server == NULL)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    constantsTouched: []
    func_position:
      end: 966
      start: 926
    functionDepth: 10
    functionLinenumber: 926
    functionLinenumberEnd: 966
    functionName: h2o_evloop_run
    functionSourceFile: /src/h2o/lib/common/socket/evloop.c.h
    functionUses: 5
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timerwheel_get_expired
    - evloop_do_proceed
    - h2o_sliding_counter_stop
    - h2o_linklist_init_anchor
    - run_pending
    - h2o_sliding_counter_is_running
    - h2o_timerwheel_entry_t*::cb
    - h2o_linklist_unlink
    - assert
    - update_now
    linkageType: ''
    returnType: int
    signature: int h2o_evloop_run(h2o_evloop_t *loop, int32_t max_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:45,1
    - Dst: memcpy
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - _vec
    argTypes:
    - h2o_buffer_t**
    - uv_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: alloc_inbuf
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_buffer_try_reserve
    linkageType: ''
    returnType: void
    signature: void alloc_inbuf(h2o_buffer_t **buf, uv_buf_t *_vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_inbuf
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - suggested_size
    - buf
    argTypes:
    - uv_handle_t*
    - size_t
    - uv_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: alloc_inbuf_tcp
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - alloc_inbuf
    linkageType: ''
    returnType: void
    signature: void alloc_inbuf_tcp(uv_handle_t *handle, size_t suggested_size, uv_buf_t
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_inbuf
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - suggested_size
    - buf
    argTypes:
    - uv_handle_t*
    - size_t
    - uv_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: alloc_inbuf_ssl
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - alloc_inbuf
    linkageType: ''
    returnType: void
    signature: void alloc_inbuf_ssl(uv_handle_t *handle, size_t suggested_size, uv_buf_t
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct st_h2o_uv_socket_t*::super::_cb::read
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:71,1
    - Dst: struct st_h2o_uv_socket_t*::super::_cb::read
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - stream
    - nread
    - _unused
    argTypes:
    - uv_stream_t*
    - ssize_t
    - uv_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: on_read_tcp
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - struct st_h2o_uv_socket_t*::super::_cb::read
    linkageType: ''
    returnType: void
    signature: void on_read_tcp(uv_stream_t *stream, ssize_t nread, const uv_buf_t
      *_unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_ssl_input
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:89,1
    - Dst: struct st_h2o_uv_socket_t*::super::_cb::read
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - stream
    - nread
    - _unused
    argTypes:
    - uv_stream_t*
    - ssize_t
    - uv_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: on_read_ssl
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - decode_ssl_input
    - struct st_h2o_uv_socket_t*::super::_cb::read
    linkageType: ''
    returnType: void
    signature: void on_read_ssl(uv_stream_t *stream, ssize_t nread, const uv_buf_t
      *_unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:100,1
    - Dst: uv_poll_stop
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:102,1
    - Dst: uv_poll_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_uv_socket_t*
    assertStmts:
    - condition: (sock->handle->type == UV_POLL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: update_poll
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - uv_poll_start
    - assert
    - uv_poll_stop
    linkageType: ''
    returnType: void
    signature: void update_poll(struct st_h2o_uv_socket_t *sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct st_h2o_uv_socket_t*::super::_cb::read
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:114,1
    - Dst: struct st_h2o_uv_socket_t*::super::_cb::write
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:117,1
    - Dst: update_poll
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - poll
    - status
    - events
    argTypes:
    - uv_poll_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: on_poll
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - struct st_h2o_uv_socket_t*::super::_cb::read
    - struct st_h2o_uv_socket_t*::super::_cb::write
    - update_poll
    linkageType: ''
    returnType: void
    signature: void on_poll(uv_poll_t *poll, int status, int events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:125,1
    - Dst: dispose_write_buf
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:127,1
    - Dst: on_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - wreq
    - status
    argTypes:
    - uv_write_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: on_do_write_complete
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - dispose_write_buf
    - on_write_complete
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_do_write_complete(uv_write_t *wreq, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:137,1
    - Dst: cb
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: free_sock
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - free
    - cb
    linkageType: ''
    returnType: void
    signature: void free_sock(uv_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:145,1
    - Dst: uv_close
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: do_dispose_socket
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - h2o_timer_unlink
    - uv_close
    linkageType: ''
    returnType: void
    signature: void do_dispose_socket(h2o_socket_t *_sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_fileno
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: h2o_socket_get_fd
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 14
    functionsReached:
    - uv_fileno
    linkageType: ''
    returnType: int
    signature: int h2o_socket_get_fd(h2o_socket_t *_sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uv_read_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:168,1
    - Dst: uv_read_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:170,1
    - Dst: uv_poll_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:175,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: do_read_start
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - uv_poll_start
    - uv_read_start
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void do_read_start(h2o_socket_t *_sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uv_read_stop
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:188,1
    - Dst: update_poll
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:192,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: do_read_stop
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - uv_read_stop
    - update_poll
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void do_read_stop(h2o_socket_t *_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:201,1
    - Dst: on_do_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: on_call_write_success
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - on_do_write_complete
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_call_write_success(h2o_timer_t *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:207,1
    - Dst: on_do_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: on_call_write_error
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - on_do_write_complete
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_call_write_error(h2o_timer_t *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - status
    argTypes:
    - struct st_h2o_uv_socket_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: call_write_complete_delayed
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void call_write_complete_delayed(struct st_h2o_uv_socket_t *sock, int
      status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_write_complete_delayed
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: report_early_write_error
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 2
    functionsReached:
    - call_write_complete_delayed
    linkageType: ''
    returnType: void
    signature: void report_early_write_error(h2o_socket_t *_sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:225,1
    - Dst: uv_is_closing
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:226,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:229,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:229,1
    - Dst: dispose_ssl_output_buffer
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:230,1
    - Dst: do_ssl_write
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:234,1
    - Dst: on_do_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - wreq
    - status
    argTypes:
    - uv_write_t*
    - int
    assertStmts:
    - condition: (has_pending_ssl_bytes(sock->super.ssl))
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: on_ssl_write_complete
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 0
    functionsReached:
    - has_pending_ssl_bytes
    - H2O_STRUCT_FROM_MEMBER
    - on_do_write_complete
    - dispose_ssl_output_buffer
    - do_ssl_write
    - assert
    - uv_is_closing
    linkageType: ''
    returnType: void
    signature: void on_ssl_write_complete(uv_write_t *wreq, int status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:255,1
    - Dst: generate_tls_records
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:256,1
    - Dst: call_write_complete_delayed
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:258,1
    - Dst: on_do_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:260,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:266,1
    - Dst: call_write_complete_delayed
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:268,1
    - Dst: on_do_write_complete
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:270,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:276,1
    - Dst: has_pending_ssl_bytes
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:276,1
    - Dst: init_write_buf
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:278,1
    - Dst: uv_write
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - sock
    - is_first_call
    - initial_bufs
    - initial_bufcnt
    argTypes:
    - struct st_h2o_uv_socket_t*
    - int
    - h2o_iovec_t*
    - size_t
    assertStmts:
    - condition: (has_pending_ssl_bytes(sock->super.ssl))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 288
      start: 240
    functionDepth: 9
    functionLinenumber: 240
    functionLinenumberEnd: 288
    functionName: do_ssl_write
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - generate_tls_records
    - has_pending_ssl_bytes
    - call_write_complete_delayed
    - uv_write
    - on_do_write_complete
    - init_write_buf
    - assert
    linkageType: ''
    returnType: void
    signature: void do_ssl_write(struct st_h2o_uv_socket_t *sock, int is_first_call,
      h2o_iovec_t *initial_bufs, size_t initial_bufcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:293,1
    - Dst: uv_write
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:297,1
    - Dst: call_write_complete_delayed
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:299,1
    - Dst: do_ssl_write
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - _sock
    - bufs
    - bufcnt
    argTypes:
    - h2o_socket_t*
    - h2o_iovec_t*
    - size_t
    assertStmts:
    - condition: (sock->handle->type == UV_TCP)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 304
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 304
    functionName: do_write
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 4
    functionsReached:
    - uv_write
    - do_ssl_write
    - assert
    - call_write_complete_delayed
    linkageType: ''
    returnType: void
    signature: void do_write(h2o_socket_t *_sock, h2o_iovec_t *bufs, size_t bufcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:309,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:310,1
    - Dst: uv_poll_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _sock
    - cb
    argTypes:
    - h2o_socket_t*
    - h2o_socket_cb
    assertStmts:
    - condition: (sock->handle->type == UV_POLL)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    - condition: (sock->super._cb.write == NULL)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: h2o_socket_notify_write
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 3
    functionsReached:
    - uv_poll_start
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_socket_notify_write(h2o_socket_t *_sock, h2o_socket_cb cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:319,1
    - Dst: uv_tcp_init
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:321,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:322,1
    - Dst: h2o_uv_socket_create
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_loop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: create_socket
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 3
    functionsReached:
    - h2o_mem_alloc
    - free
    - uv_tcp_init
    - h2o_uv_socket_create
    linkageType: ''
    returnType: struct st_h2o_uv_socket_t
    signature: struct st_h2o_uv_socket_t *create_socket(h2o_loop_t *loop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:331,1
    - Dst: uv_fileno
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:334,1
    - Dst: dup
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _sock
    - info
    argTypes:
    - h2o_socket_t*
    - h2o_socket_export_t*
    assertStmts:
    - condition: (sock->handle->type == UV_TCP)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: do_export
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - dup
    - uv_fileno
    - assert
    linkageType: ''
    returnType: int
    signature: int do_export(h2o_socket_t *_sock, h2o_socket_export_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:348,1
    - Dst: uv_tcp_open
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:352,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - loop
    - info
    argTypes:
    - h2o_loop_t*
    - h2o_socket_export_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: do_import
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - create_socket
    - uv_tcp_open
    - h2o_socket_close
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *do_import(h2o_loop_t *loop, h2o_socket_export_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:362,1
    - Dst: uv_poll_init
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:363,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:364,1
    - Dst: h2o_uv_socket_create
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - loop
    - fd
    - close_cb
    argTypes:
    - h2o_loop_t*
    - int
    - uv_close_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: h2o_uv__poll_create
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 3
    functionsReached:
    - h2o_uv_socket_create
    - h2o_mem_alloc
    - free
    - uv_poll_init
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_uv__poll_create(h2o_loop_t *loop, int fd, uv_close_cb
      close_cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:372,1
    - Dst: memset
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:373,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:374,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:379,1
    - Dst: ptls_log_init_conn_state
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - close_cb
    argTypes:
    - uv_handle_t*
    - uv_close_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 382
    functionName: h2o_uv_socket_create
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 2
    functionsReached:
    - h2o_buffer_init
    - ptls_log_init_conn_state
    - h2o_mem_alloc
    - h2o_timer_init
    - memset
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_uv_socket_create(uv_handle_t *handle, uv_close_cb
      close_cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:388,1
    - Dst: cb
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - status
    argTypes:
    - uv_connect_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 9
    functionsReached:
    - cb
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_connect(uv_connect_t *conn, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: h2o_socket_get_loop
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: h2o_loop_t
    signature: h2o_loop_t *h2o_socket_get_loop(h2o_socket_t *_sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_socket
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:402,1
    - Dst: uv_tcp_connect
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:409,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - loop
    - addr
    - addrlen
    - cb
    - err
    argTypes:
    - h2o_loop_t*
    - struct sockaddr*
    - socklen_t
    - h2o_socket_cb
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 7
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: h2o_socket_connect
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - create_socket
    - uv_tcp_connect
    - h2o_socket_close
    linkageType: ''
    returnType: h2o_socket_t
    signature: h2o_socket_t *h2o_socket_connect(h2o_loop_t *loop, struct sockaddr
      *addr, socklen_t addrlen, h2o_socket_cb cb, const char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:422,1
    - Dst: uv_tcp_getsockname
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts:
    - condition: (sock->handle->type == UV_TCP)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: get_sockname_uncached
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - assert
    - uv_tcp_getsockname
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname_uncached(h2o_socket_t *_sock, struct sockaddr
      *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:433,1
    - Dst: uv_tcp_getpeername
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _sock
    - sa
    argTypes:
    - h2o_socket_t*
    - struct sockaddr*
    assertStmts:
    - condition: (sock->handle->type == UV_TCP)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: get_peername_uncached
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 1
    functionsReached:
    - uv_tcp_getpeername
    - assert
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername_uncached(h2o_socket_t *_sock, struct sockaddr
      *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_t*::cb
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uv_timer
    argTypes:
    - uv_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: on_timeout
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 2
    functionsReached:
    - h2o_timer_t*::cb
    linkageType: ''
    returnType: void
    signature: void on_timeout(uv_timer_t *uv_timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:451,1
    - Dst: uv_timer_init
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:452,1
    - Dst: uv_timer_start
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - l
    - delay_ticks
    - timer
    argTypes:
    - h2o_loop_t*
    - uint64_t
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: h2o_timer_link
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 34
    functionsReached:
    - h2o_mem_alloc
    - uv_timer_start
    - uv_timer_init
    linkageType: ''
    returnType: void
    signature: void h2o_timer_link(h2o_loop_t *l, uint64_t delay_ticks, h2o_timer_t
      *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uv_timer_stop
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:463,1
    - Dst: uv_close
      Src: /src/h2o/lib/common/socket/uv-binding.c.h:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: h2o_timer_unlink
    functionSourceFile: /src/h2o/lib/common/socket/uv-binding.c.h
    functionUses: 41
    functionsReached:
    - uv_timer_stop
    - uv_close
    linkageType: ''
    returnType: void
    signature: void h2o_timer_unlink(h2o_timer_t *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: DEBUG_LOG
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_LOG(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - events
    argTypes:
    - struct st_h2o_evloop_socket_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: change_epoll_mode
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 0
    functionsReached:
    - epoll_ctl
    linkageType: ''
    returnType: int
    signature: int change_epoll_mode(struct st_h2o_evloop_socket_t *sock, uint32_t
      events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: delete_from_epoll_on_close
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 0
    functionsReached:
    - epoll_ctl
    linkageType: ''
    returnType: int
    signature: int delete_from_epoll_on_close(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:82,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:83,1
    - Dst: recvmmsg
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:88,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:88,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:94,1
    - Dst: CMSG_DATA
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:96,1
    - Dst: zerocopy_buffers_release
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:103,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:107,1
    - Dst: h2o_mem_free_recycle
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:110,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:121,1
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:126,1
    - Dst: link_to_statechanged
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:127,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (sock->super.ssl->output.zerocopy_owned)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/lib/common/socket/evloop/epoll.c.h
    constantsTouched: []
    func_position:
      end: 133
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 133
    functionName: handle_zerocopy_notification
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 0
    functionsReached:
    - PTLS_ELEMENTSOF
    - recvmmsg
    - CMSG_DATA
    - CMSG_SPACE
    - h2o_mem_free_recycle
    - link_to_statechanged
    - zerocopy_buffers_is_empty
    - CMSG_FIRSTHDR
    - zerocopy_buffers_release
    - assert
    linkageType: ''
    returnType: int
    signature: int handle_zerocopy_notification(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:144,1
    - Dst: zerocopy_buffers_dispose
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:147,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:148,1
    - Dst: delete_from_epoll_on_close
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:151,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:152,1
    - Dst: close
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:153,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:155,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:160,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:172,1
    - Dst: change_epoll_mode
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:185,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - loop
    argTypes:
    - struct st_h2o_evloop_epoll_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 193
    functionName: update_status
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 0
    functionsReached:
    - close
    - h2o_socket_is_writing
    - zerocopy_buffers_dispose
    - h2o_error_printf
    - free
    - delete_from_epoll_on_close
    - h2o_socket_is_reading
    - zerocopy_buffers_is_empty
    - change_epoll_mode
    linkageType: ''
    returnType: int
    signature: int update_status(struct st_h2o_evloop_epoll_t *loop)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: update_status
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:202,1
    - Dst: adjust_max_wait
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:206,1
    - Dst: epoll_wait
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:207,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:208,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:213,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:227,1
    - Dst: epoll_ctl
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:229,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:232,1
    - Dst: handle_zerocopy_notification
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:239,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:247,1
    - Dst: write_pending
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:253,1
    - Dst: time
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:263,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:264,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:267,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:270,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 2
    argNames:
    - _loop
    - max_wait
    argTypes:
    - h2o_evloop_t*
    - int32_t
    assertStmts:
    - condition: ((sock->_flags & H2O_SOCKET_FLAG__EPOLL_IS_REGISTERED) != 0)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/h2o/lib/common/socket/evloop/epoll.c.h
    constantsTouched: []
    func_position:
      end: 275
      start: 195
    functionDepth: 11
    functionLinenumber: 195
    functionLinenumberEnd: 275
    functionName: evloop_do_proceed
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 1
    functionsReached:
    - update_status
    - h2o_error_printf
    - time
    - epoll_ctl
    - adjust_max_wait
    - write_pending
    - link_to_pending
    - pthread_mutex_lock
    - h2o_sliding_counter_start
    - handle_zerocopy_notification
    - pthread_mutex_unlock
    - epoll_wait
    - assert
    - update_now
    linkageType: ''
    returnType: int
    signature: int evloop_do_proceed(h2o_evloop_t *_loop, int32_t max_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: evloop_do_on_socket_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_create(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: zerocopy_buffers_is_empty
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:291,1
    - Dst: shutdown
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:292,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:295,1
    - Dst: change_epoll_mode
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:296,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:297,1
    - Dst: handle_zerocopy_notification
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:299,1
    - Dst: delete_from_epoll_on_close
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:304,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 308
    functionName: evloop_do_on_socket_close
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 1
    functionsReached:
    - h2o_error_printf
    - delete_from_epoll_on_close
    - change_epoll_mode
    - zerocopy_buffers_is_empty
    - shutdown
    - h2o_fatal
    - handle_zerocopy_notification
    linkageType: ''
    returnType: int
    signature: int evloop_do_on_socket_close(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delete_from_epoll_on_close
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:312,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: evloop_do_on_socket_export
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 1
    functionsReached:
    - delete_from_epoll_on_close
    - h2o_error_printf
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_export(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: evloop_do_dispose
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void evloop_do_dispose(h2o_evloop_t *_loop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_evloop
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:324,1
    - Dst: epoll_create1
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:326,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:328,1
    - Dst: h2o_strerror_r
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:328,1
    - Dst: h2o_io_uring_init
      Src: /src/h2o/lib/common/socket/evloop/epoll.c.h:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: h2o_evloop_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 3
    functionsReached:
    - h2o_io_uring_init
    - epoll_create1
    - create_evloop
    - h2o_fatal
    - h2o_strerror_r
    linkageType: ''
    returnType: h2o_evloop_t
    signature: h2o_evloop_t *h2o_evloop_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: h2o_evloop__io_uring
    functionSourceFile: /src/h2o/lib/common/socket/evloop/epoll.c.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct st_h2o_io_uring_t
    signature: struct st_h2o_io_uring_t *h2o_evloop__io_uring(h2o_evloop_t *_loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: DEBUG_LOG
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_LOG(...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:46,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:47,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:49,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:53,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:55,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:56,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:59,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:62,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:63,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - loop
    argTypes:
    - struct st_h2o_evloop_poll_t*
    assertStmts:
    - condition: (sock->fd == -1)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (loop->socks.entries[sock->fd] == sock)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (sock->fd < loop->socks.size)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    constantsTouched: []
    func_position:
      end: 72
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 72
    functionName: update_socks
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 0
    functionsReached:
    - h2o_socket_is_writing
    - free
    - h2o_socket_is_reading
    - DEBUG_LOG
    - assert
    linkageType: ''
    returnType: void
    signature: void update_socks(struct st_h2o_evloop_poll_t *loop)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: update_socks
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:81,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:88,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:90,1
    - Dst: adjust_max_wait
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:103,1
    - Dst: poll
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:104,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:105,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:108,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:113,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:119,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:120,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:123,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:124,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:129,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:130,1
    - Dst: DEBUG_LOG
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:132,1
    - Dst: write_pending
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:133,1
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - _loop
    - max_wait
    argTypes:
    - h2o_evloop_t*
    - int32_t
    assertStmts:
    - condition: (fd == sock->fd)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (sock != NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (sock->fd == pollfds.entries[i].fd)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (sock != NULL)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    - condition: (sock->fd == pollfds.entries[i].fd)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    constantsTouched: []
    func_position:
      end: 143
      start: 74
    functionDepth: 11
    functionLinenumber: 74
    functionLinenumberEnd: 143
    functionName: evloop_do_proceed
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 1
    functionsReached:
    - write_pending
    - adjust_max_wait
    - link_to_pending
    - free
    - poll
    - h2o_sliding_counter_start
    - update_socks
    - h2o_vector_reserve
    - DEBUG_LOG
    - assert
    - update_now
    linkageType: ''
    returnType: int
    signature: int evloop_do_proceed(h2o_evloop_t *_loop, int32_t max_wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:150,1
    - Dst: memset
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:151,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts:
    - condition: (loop->socks.entries[sock->fd]->_flags == H2O_SOCKET_FLAG_IS_DISPOSED)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: evloop_do_on_socket_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 1
    functionsReached:
    - h2o_vector_reserve
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_create(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: evloop_do_on_socket_close
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evloop_do_on_socket_close(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evloop_do_on_socket_close
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: evloop_do_on_socket_export
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 1
    functionsReached:
    - evloop_do_on_socket_close
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_export(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: evloop_do_dispose
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evloop_do_dispose(h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_evloop
      Src: /src/h2o/lib/common/socket/evloop/poll.c.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: h2o_evloop_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/poll.c.h
    functionUses: 3
    functionsReached:
    - create_evloop
    linkageType: ''
    returnType: h2o_evloop_t
    signature: h2o_evloop_t *h2o_evloop_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: DEBUG_LOG
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EV_SET
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:42,1
    - Dst: EV_SET
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ev
    - fd
    - filter
    - flags
    - sock
    argTypes:
    - struct kevent*
    - int
    - int
    - int
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: ev_set
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 0
    functionsReached:
    - EV_SET
    linkageType: ''
    returnType: void
    signature: void ev_set(struct kevent *ev, int fd, int filter, int flags, struct
      st_h2o_evloop_socket_t *sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:72,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:74,1
    - Dst: SET_AND_UPDATE
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:77,1
    - Dst: SET_AND_UPDATE
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:82,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:85,1
    - Dst: SET_AND_UPDATE
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:88,1
    - Dst: SET_AND_UPDATE
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - loop
    - changelist
    - changelist_capacity
    argTypes:
    - struct st_h2o_socket_loop_kqueue_t*
    - struct kevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 103
    functionName: collect_status
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 0
    functionsReached:
    - free
    - h2o_socket_is_reading
    - h2o_socket_is_writing
    - SET_AND_UPDATE
    linkageType: ''
    returnType: int
    signature: int collect_status(struct st_h2o_socket_loop_kqueue_t *loop, struct
      kevent *changelist, int changelist_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filter
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: SET_AND_UPDATE
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AND_UPDATE(filter, flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: collect_status
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:113,1
    - Dst: adjust_max_wait
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:117,1
    - Dst: kevent
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:120,1
    - Dst: update_now
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:122,1
    - Dst: h2o_sliding_counter_start
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:127,1
    - Dst: assert
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:133,1
    - Dst: link_to_pending
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:138,1
    - Dst: write_pending
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - _loop
    - max_wait
    argTypes:
    - h2o_evloop_t*
    - int32_t
    assertStmts:
    - condition: (sock->fd == events[i].ident)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 11
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: evloop_do_proceed
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 1
    functionsReached:
    - collect_status
    - write_pending
    - adjust_max_wait
    - link_to_pending
    - h2o_sliding_counter_start
    - kevent
    - assert
    - update_now
    linkageType: ''
    returnType: int
    signature: int evloop_do_proceed(h2o_evloop_t *_loop, int32_t max_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: evloop_do_on_socket_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_create(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: evloop_do_on_socket_close
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evloop_do_on_socket_close(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ev_set
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:170,1
    - Dst: ev_set
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:172,1
    - Dst: kevent
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:175,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct st_h2o_evloop_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 179
    functionName: evloop_do_on_socket_export
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 1
    functionsReached:
    - ev_set
    - kevent
    - h2o_error_printf
    linkageType: ''
    returnType: void
    signature: void evloop_do_on_socket_export(struct st_h2o_evloop_socket_t *sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _loop
    argTypes:
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: evloop_do_dispose
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void evloop_do_dispose(h2o_evloop_t *_loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_evloop
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:189,1
    - Dst: kqueue
      Src: /src/h2o/lib/common/socket/evloop/kqueue.c.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: h2o_evloop_create
    functionSourceFile: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    functionUses: 3
    functionsReached:
    - create_evloop
    - kqueue
    linkageType: ''
    returnType: h2o_evloop_t
    signature: h2o_evloop_t *h2o_evloop_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/connection.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - h2o_http2_conn_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: is_idle_stream_id
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    linkageType: ''
    returnType: int
    signature: int is_idle_stream_id(h2o_http2_conn_t *conn, uint32_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_encode_goaway_frame
      Src: /src/h2o/lib/http2/connection.c:58,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - errnum
    - additional_data
    argTypes:
    - h2o_http2_conn_t*
    - int
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: enqueue_goaway
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_http2_encode_goaway_frame
    - h2o_http2_conn_request_write
    linkageType: ''
    returnType: void
    signature: void enqueue_goaway(h2o_http2_conn_t *conn, int errnum, h2o_iovec_t
      additional_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_encode_settings_frame
      Src: /src/h2o/lib/http2/connection.c:70,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/http2/connection.c:70,1
    - Dst: h2o_http2_encode_window_update_frame
      Src: /src/h2o/lib/http2/connection.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: enqueue_server_preface
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_encode_settings_frame
    - PTLS_ELEMENTSOF
    - h2o_http2_encode_window_update_frame
    linkageType: ''
    returnType: void
    signature: void enqueue_server_preface(h2o_http2_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:77,1
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: graceful_shutdown_close_straggler
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - close_connection
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void graceful_shutdown_close_straggler(h2o_timer_t *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:84,1
    - Dst: enqueue_goaway
      Src: /src/h2o/lib/http2/connection.c:87,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: graceful_shutdown_resend_goaway
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    - H2O_STRUCT_FROM_MEMBER
    - enqueue_goaway
    linkageType: ''
    returnType: void
    signature: void graceful_shutdown_resend_goaway(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initiate_graceful_shutdown
      Src: /src/h2o/lib/http2/connection.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: close_idle_connection
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - initiate_graceful_shutdown
    linkageType: ''
    returnType: void
    signature: void close_idle_connection(h2o_conn_t *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_conn_set_state
      Src: /src/h2o/lib/http2/connection.c:106,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:116,1
    - Dst: h2o_http2_encode_goaway_frame
      Src: /src/h2o/lib/http2/connection.c:120,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:121,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:122,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->_graceful_shutdown_timeout.cb == NULL)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: initiate_graceful_shutdown
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - h2o_http2_conn_request_write
    - h2o_timer_link
    - h2o_http2_encode_goaway_frame
    - h2o_conn_set_state
    - assert
    linkageType: ''
    returnType: void
    signature: void initiate_graceful_shutdown(h2o_conn_t *_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:130,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/http2/connection.c:134,1
    - Dst: enqueue_goaway
      Src: /src/h2o/lib/http2/connection.c:136,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:136,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:136,1
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: on_idle_timeout
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - H2O_STRUCT_FROM_MEMBER
    - enqueue_goaway
    - close_connection_now
    - close_connection
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_idle_timeout(h2o_timer_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:145,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:145,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:149,1
    - Dst: h2o_socket_ssl_is_early_data
      Src: /src/h2o/lib/http2/connection.c:152,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts:
    - condition: (h2o_timer_is_linked(&conn->_timeout_entry))
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: update_idle_timeout
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - assert
    - h2o_timer_unlink
    - h2o_timer_link
    - h2o_timer_is_linked
    - h2o_socket_ssl_is_early_data
    linkageType: ''
    returnType: void
    signature: void update_idle_timeout(h2o_http2_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: can_run_requests
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int can_run_requests(h2o_http2_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:173,1
    - Dst: update_stream_input_window
      Src: /src/h2o/lib/http2/connection.c:180,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:185,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:186,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/connection.c:190,1
    - Dst: h2o_process_request
      Src: /src/h2o/lib/http2/connection.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: "(\n            !(stream->req_body.state == H2O_HTTP2_REQ_BODY_NONE
        || stream->req_body.state == H2O_HTTP2_REQ_BODY_CLOSE_DELIVERED))"
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: process_request
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 9
    functionsReached:
    - h2o_http2_stream_is_push
    - h2o_process_request
    - update_stream_input_window
    - assert
    - h2o_http2_stream_set_state
    linkageType: ''
    returnType: void
    signature: void process_request(h2o_http2_conn_t *conn, h2o_http2_stream_t *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:198,1
    - Dst: can_run_requests
      Src: /src/h2o/lib/http2/connection.c:207,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:209,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:220,1
    - Dst: process_request
      Src: /src/h2o/lib/http2/connection.c:222,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 196
    functionDepth: 6
    functionLinenumber: 196
    functionLinenumberEnd: 226
    functionName: run_pending_requests
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - process_request
    - can_run_requests
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void run_pending_requests(h2o_http2_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/connection.c:230,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: reset_stream_if_disregarded
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    - h2o_http2_stream_reset
    linkageType: ''
    returnType: int
    signature: int reset_stream_if_disregarded(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/connection.c:241,1
    - Dst: run_pending_requests
      Src: /src/h2o/lib/http2/connection.c:243,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: execute_or_enqueue_request_core
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - update_idle_timeout
    - run_pending_requests
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void execute_or_enqueue_request_core(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:249,1
    - Dst: reset_stream_if_disregarded
      Src: /src/h2o/lib/http2/connection.c:251,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:254,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/connection.c:256,1
    - Dst: execute_or_enqueue_request_core
      Src: /src/h2o/lib/http2/connection.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_RECV_HEADERS || stream->state
        == H2O_HTTP2_STREAM_STATE_REQ_PENDING)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: execute_or_enqueue_request
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_http2_stream_set_blocked_by_server
    - reset_stream_if_disregarded
    - execute_or_enqueue_request_core
    - h2o_http2_stream_set_state
    linkageType: ''
    returnType: void
    signature: void execute_or_enqueue_request(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_put
      Src: /src/h2o/lib/http2/connection.c:265,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:266,1
    - Dst: kh_end
      Src: /src/h2o/lib/http2/connection.c:266,1
    - Dst: kh_val
      Src: /src/h2o/lib/http2/connection.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: h2o_http2_conn_register_stream
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - kh_val
    - kh_end
    - assert
    - kh_put
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_register_stream(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:272,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/lib/http2/connection.c:272,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:279,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/lib/http2/connection.c:279,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/lib/http2/connection.c:280,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/connection.c:282,1
    - Dst: h2o_http2_scheduler_relocate
      Src: /src/h2o/lib/http2/connection.c:286,1
    - Dst: h2o_http2_scheduler_deactivate
      Src: /src/h2o/lib/http2/connection.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - src
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (h2o_http2_scheduler_is_open(&src->_scheduler))
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (h2o_http2_scheduler_is_open(&(*dst)->_scheduler))
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: h2o_http2_conn_preserve_stream_scheduler
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_deactivate
    - h2o_http2_scheduler_is_open
    - h2o_http2_scheduler_close
    - h2o_mem_alloc
    - h2o_http2_scheduler_relocate
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_preserve_stream_scheduler(h2o_http2_conn_t *conn,
      h2o_http2_stream_t *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:292,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http2/connection.c:296,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - conn
    - stream
    - new_state
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - enum en_h2o_req_body_state_t
    assertStmts:
    - condition: (stream->req_body.state < new_state)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (stream->req.proceed_req == NULL)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 310
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 310
    functionName: set_req_body_state
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_fatal
    - assert
    linkageType: ''
    returnType: void
    signature: void set_req_body_state(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, enum en_h2o_req_body_state_t new_state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_preserve_stream_scheduler
      Src: /src/h2o/lib/http2/connection.c:314,1
    - Dst: kh_get
      Src: /src/h2o/lib/http2/connection.c:316,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:317,1
    - Dst: kh_end
      Src: /src/h2o/lib/http2/connection.c:317,1
    - Dst: kh_del
      Src: /src/h2o/lib/http2/connection.c:318,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:322,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/connection.c:326,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:336,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:337,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:347,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:348,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:352,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:352,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:355,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:355,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:356,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:362,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:363,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:367,1
    - Dst: run_pending_requests
      Src: /src/h2o/lib/http2/connection.c:370,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:371,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (h2o_linklist_is_linked(&stream->_link))
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (!h2o_linklist_is_linked(&stream->_link))
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 373
      start: 312
    functionDepth: 7
    functionLinenumber: 312
    functionLinenumberEnd: 373
    functionName: h2o_http2_conn_unregister_stream
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - kh_del
    - h2o_http2_stream_set_blocked_by_server
    - run_pending_requests
    - h2o_timer_link
    - kh_end
    - h2o_http2_conn_preserve_stream_scheduler
    - update_idle_timeout
    - set_req_body_state
    - kh_get
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    - h2o_linklist_is_linked
    - assert
    - h2o_http2_stream_set_state
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_unregister_stream(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:382,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:382,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/http2/connection.c:384,1
    - Dst: h2o_http2_stream_close
      Src: /src/h2o/lib/http2/connection.c:384,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:386,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:387,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:388,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:389,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:390,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:391,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:392,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:393,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:394,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/http2/connection.c:395,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:396,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/lib/http2/connection.c:397,1
    - Dst: h2o_hpack_dispose_header_table
      Src: /src/h2o/lib/http2/connection.c:398,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:399,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:399,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:400,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:402,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:403,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:405,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:406,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/connection.c:408,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/connection.c:410,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:417,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/lib/http2/connection.c:417,1
    - Dst: h2o_http2_scheduler_close
      Src: /src/h2o/lib/http2/connection.c:418,1
    - Dst: free
      Src: /src/h2o/lib/http2/connection.c:419,1
    - Dst: h2o_http2_scheduler_dispose
      Src: /src/h2o/lib/http2/connection.c:422,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:423,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:423,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:424,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:424,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/connection.c:426,1
    - Dst: h2o_cache_destroy
      Src: /src/h2o/lib/http2/connection.c:428,1
    - Dst: h2o_http2_casper_destroy
      Src: /src/h2o/lib/http2/connection.c:430,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/http2/connection.c:433,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/lib/http2/connection.c:435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts:
    - condition: (conn->num_streams.tunnel == 0)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (h2o_linklist_is_empty(&conn->_pending_reqs))
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (h2o_linklist_is_empty(&conn->_write.streams_to_proceed))
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams._req_streaming_in_progress == 0)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->_http1_req_input == NULL)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (h2o_http2_scheduler_is_open(&closed_stream->_scheduler))
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (!h2o_timer_is_linked(&conn->_write.timeout_entry))
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.blocked_by_server == 0)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (!h2o_timer_is_linked(&conn->_write.timeout_entry))
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.pull.open == 0)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.pull.half_closed == 0)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.pull.send_body == 0)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.push.half_closed == 0)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.push.send_body == 0)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->num_streams.priority.open == 0)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 436
      start: 375
    functionDepth: 7
    functionLinenumber: 375
    functionLinenumberEnd: 436
    functionName: close_connection_now
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 6
    functionsReached:
    - h2o_hpack_dispose_header_table
    - h2o_linklist_is_empty
    - kh_foreach_value
    - h2o_timer_unlink
    - h2o_http2_scheduler_is_open
    - h2o_http2_scheduler_close
    - h2o_http2_casper_destroy
    - free
    - h2o_socket_close
    - h2o_cache_destroy
    - h2o_buffer_dispose
    - h2o_http2_stream_close
    - h2o_http2_scheduler_dispose
    - h2o_destroy_connection
    - h2o_timer_is_linked
    - assert
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void close_connection_now(h2o_http2_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:442,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/http2/connection.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 449
    functionName: close_connection
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 25
    functionsReached:
    - h2o_timer_is_linked
    - close_connection_now
    linkageType: ''
    returnType: int
    signature: int close_connection(h2o_http2_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:453,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:454,1
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/http2/connection.c:458,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - stream_id
    - errnum
    argTypes:
    - h2o_http2_conn_t*
    - uint32_t
    - int
    assertStmts:
    - condition: (stream_id != 0)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->state < H2O_HTTP2_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: stream_send_error
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 5
    functionsReached:
    - h2o_http2_encode_rst_stream_frame
    - assert
    - h2o_http2_conn_request_write
    linkageType: ''
    returnType: void
    signature: void stream_send_error(h2o_http2_conn_t *conn, uint32_t stream_id,
      int errnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:464,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/http2/connection.c:465,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:465,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts:
    - condition: (conn->state < H2O_HTTP2_CONN_STATE_IS_CLOSING)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 468
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 468
    functionName: request_gathered_write
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - h2o_socket_is_writing
    - assert
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void request_gathered_write(h2o_http2_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:472,1
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/http2/connection.c:473,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:475,1
    - Dst: h2o_http2_stream_has_pending_data
      Src: /src/h2o/lib/http2/connection.c:476,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:477,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:477,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/lib/http2/connection.c:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - h2o_http2_stream_t*
    - ssize_t
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&stream->_link))
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 481
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: update_stream_output_window
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_http2_stream_has_pending_data
    - h2o_http2_scheduler_activate
    - h2o_http2_window_update
    - h2o_linklist_is_linked
    - assert
    linkageType: ''
    returnType: int
    signature: int update_stream_output_window(h2o_http2_stream_t *stream, ssize_t
      delta)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:487,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:493,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:497,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http2/connection.c:501,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:506,1
    - Dst: h2o_http2_stream_t*::req::write_req::cb
      Src: /src/h2o/lib/http2/connection.c:507,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:508,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:509,1
    - Dst: h2o_http2_stream_close
      Src: /src/h2o/lib/http2/connection.c:515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (stream->req.entity.base == NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (stream->req_body.buf->size != 0)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 516
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 516
    functionName: write_streaming_body
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_reset
    - stream_send_error
    - h2o_http2_stream_t*::req::write_req::cb
    - set_req_body_state
    - h2o_fatal
    - h2o_http2_stream_close
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void write_streaming_body(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:525,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http2/connection.c:530,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:538,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:539,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:545,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:546,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/connection.c:553,1
    - Dst: reset_stream_if_disregarded
      Src: /src/h2o/lib/http2/connection.c:556,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:563,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:565,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:568,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:571,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/http2/connection.c:574,1
    - Dst: write_streaming_body
      Src: /src/h2o/lib/http2/connection.c:580,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:582,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:588,1
    - Dst: h2o_req_can_stream_request
      Src: /src/h2o/lib/http2/connection.c:593,1
    - Dst: execute_or_enqueue_request_core
      Src: /src/h2o/lib/http2/connection.c:595,1
    - Dst: update_stream_input_window
      Src: /src/h2o/lib/http2/connection.c:599,1
    - Dst: execute_or_enqueue_request
      Src: /src/h2o/lib/http2/connection.c:606,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 4
    argNames:
    - conn
    - stream
    - payload
    - is_end_stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 518
    functionDepth: 9
    functionLinenumber: 518
    functionLinenumberEnd: 607
    functionName: handle_request_body_chunk
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_req_can_stream_request
    - h2o_http2_stream_set_blocked_by_server
    - h2o_http2_stream_reset
    - stream_send_error
    - update_stream_input_window
    - execute_or_enqueue_request
    - execute_or_enqueue_request_core
    - set_req_body_state
    - reset_stream_if_disregarded
    - write_streaming_body
    - h2o_buffer_append
    - h2o_fatal
    - h2o_http2_stream_set_state
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void handle_request_body_chunk(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, h2o_iovec_t payload, int is_end_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:612,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:613,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/http2/connection.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - stream
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 616
    functionName: send_invalid_request_error
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_send_error_400
    - h2o_http2_stream_set_state
    linkageType: ''
    returnType: int
    signature: int send_invalid_request_error(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, const char *err_desc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:622,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:624,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/lib/http2/connection.c:626,1
    - Dst: h2o_probe_log_request
      Src: /src/h2o/lib/http2/connection.c:636,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/connection.c:643,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:643,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/connection.c:651,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:651,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/connection.c:656,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:656,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:660,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:686,1
    - Dst: send_invalid_request_error
      Src: /src/h2o/lib/http2/connection.c:687,1
    - Dst: send_invalid_request_error
      Src: /src/h2o/lib/http2/connection.c:694,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http2/connection.c:703,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:703,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:704,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:705,1
    - Dst: h2o_send_error_417
      Src: /src/h2o/lib/http2/connection.c:706,1
    - Dst: h2o_req_should_forward_expect
      Src: /src/h2o/lib/http2/connection.c:709,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/connection.c:710,1
    - Dst: h2o_send_informational
      Src: /src/h2o/lib/http2/connection.c:714,1
    - Dst: execute_or_enqueue_request
      Src: /src/h2o/lib/http2/connection.c:720,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:722,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:723,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:729,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:730,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:734,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/connection.c:736,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:737,1
    - Dst: process_request
      Src: /src/h2o/lib/http2/connection.c:738,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts:
    - condition: (stream->state == H2O_HTTP2_STREAM_STATE_RECV_HEADERS)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (stream->req.upgrade.base == NULL)
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (ret == H2O_HTTP2_ERROR_INVALID_HEADER_CHAR)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 740
      start: 618
    functionDepth: 9
    functionLinenumber: 618
    functionLinenumberEnd: 740
    functionName: handle_incoming_request
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - process_request
    - h2o_send_error_417
    - H2O_STRLIT
    - h2o_http2_stream_reset
    - h2o_hpack_parse_request
    - h2o_req_should_forward_expect
    - stream_send_error
    - h2o_probe_log_request
    - execute_or_enqueue_request
    - h2o_lcstris
    - send_invalid_request_error
    - h2o_add_header
    - set_req_body_state
    - h2o_memis
    - h2o_send_informational
    - assert
    - h2o_http2_stream_set_state
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int handle_incoming_request(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, const uint8_t *src, size_t len,\n                                   const
      char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:746,1
    - Dst: h2o_hpack_parse_request
      Src: /src/h2o/lib/http2/connection.c:749,1
    - Dst: handle_request_body_chunk
      Src: /src/h2o/lib/http2/connection.c:753,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - conn
    - stream
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 742
    functionDepth: 10
    functionLinenumber: 742
    functionLinenumberEnd: 755
    functionName: handle_trailing_headers
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_parse_request
    - handle_request_body_chunk
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int handle_trailing_headers(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, const uint8_t *src, size_t len,\n                                   const
      char **err_desc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/lib/http2/connection.c:764,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:771,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/connection.c:778,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/connection.c:779,1
    - Dst: handle_incoming_request
      Src: /src/h2o/lib/http2/connection.c:785,1
    - Dst: handle_trailing_headers
      Src: /src/h2o/lib/http2/connection.c:788,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/connection.c:793,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:798,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 757
    functionDepth: 11
    functionLinenumber: 757
    functionLinenumberEnd: 803
    functionName: expect_continuation_of_headers
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_http2_stream_reset
    - h2o_http2_decode_frame
    - h2o_buffer_reserve
    - handle_incoming_request
    - stream_send_error
    - handle_trailing_headers
    - h2o_buffer_dispose
    - memcpy
    - h2o_http2_conn_get_stream
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t expect_continuation_of_headers(h2o_http2_conn_t *conn, const
      uint8_t *src, size_t len, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:807,1
    - Dst: h2o_http2_encode_window_update_frame
      Src: /src/h2o/lib/http2/connection.c:808,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:809,1
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/http2/connection.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - conn
    - stream_id
    - window
    - delta
    argTypes:
    - h2o_http2_conn_t*
    - uint32_t
    - h2o_http2_window_t*
    - size_t
    assertStmts:
    - condition: (delta <= INT32_MAX)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 811
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 811
    functionName: send_window_update
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_window_update
    - h2o_http2_encode_window_update_frame
    - assert
    - h2o_http2_conn_request_write
    linkageType: ''
    returnType: void
    signature: void send_window_update(h2o_http2_conn_t *conn, uint32_t stream_id,
      h2o_http2_window_t *window, size_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:816,1
    - Dst: send_window_update
      Src: /src/h2o/lib/http2/connection.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - stream
    - delta
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: update_stream_input_window
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - send_window_update
    - h2o_http2_window_get_avail
    linkageType: ''
    returnType: void
    signature: void update_stream_input_window(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, size_t delta)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:847,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:871,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:876,1
    - Dst: h2o_http2_scheduler_find_parent_by_weight
      Src: /src/h2o/lib/http2/connection.c:884,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:902,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/lib/http2/connection.c:916,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/lib/http2/connection.c:918,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - conn
    - stream
    - priority
    - scheduler_is_open
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - h2o_http2_priority_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 920
    functionName: set_priority
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_find_parent_by_weight
    - h2o_http2_scheduler_rebind
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http2_scheduler_open
    - h2o_http2_conn_get_stream
    linkageType: ''
    returnType: void
    signature: "void set_priority(h2o_http2_conn_t *conn, h2o_http2_stream_t *stream,
      const h2o_http2_priority_t *priority,\n                         int scheduler_is_open)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:924,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:927,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http2/connection.c:931,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:932,1
    - Dst: set_req_body_state
      Src: /src/h2o/lib/http2/connection.c:937,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:947,1
    - Dst: h2o_http2_scheduler_deactivate
      Src: /src/h2o/lib/http2/connection.c:949,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:950,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/connection.c:951,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:952,1
    - Dst: update_stream_input_window
      Src: /src/h2o/lib/http2/connection.c:959,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:960,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/connection.c:961,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:962,1
    - Dst: write_streaming_body
      Src: /src/h2o/lib/http2/connection.c:965,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:968,1
    - Dst: write_streaming_body
      Src: /src/h2o/lib/http2/connection.c:969,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http2/connection.c:972,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - req
    - errstr
    argTypes:
    - h2o_req_t*
    - char*
    assertStmts:
    - condition: (stream->req_body.streamed)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (written != 0)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 974
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 974
    functionName: proceed_request
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_deactivate
    - h2o_http2_window_get_avail
    - h2o_http2_stream_set_blocked_by_server
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http2_stream_reset
    - stream_send_error
    - update_idle_timeout
    - set_req_body_state
    - h2o_fatal
    - h2o_buffer_consume
    - h2o_linklist_insert
    - write_streaming_body
    - h2o_linklist_is_linked
    - assert
    - update_stream_input_window
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void proceed_request(h2o_req_t *req, const char *errstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_data_payload
      Src: /src/h2o/lib/http2/connection.c:982,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/http2/connection.c:986,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:987,1
    - Dst: send_window_update
      Src: /src/h2o/lib/http2/connection.c:988,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:989,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:992,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:994,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:1004,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:1005,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/http2/connection.c:1011,1
    - Dst: update_stream_input_window
      Src: /src/h2o/lib/http2/connection.c:1013,1
    - Dst: handle_request_body_chunk
      Src: /src/h2o/lib/http2/connection.c:1017,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 976
    functionDepth: 10
    functionLinenumber: 976
    functionLinenumberEnd: 1021
    functionName: handle_data_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_http2_decode_data_payload
    - h2o_http2_window_consume_window
    - h2o_http2_stream_reset
    - stream_send_error
    - update_stream_input_window
    - handle_request_body_chunk
    - send_window_update
    - h2o_http2_conn_get_stream
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int handle_data_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t *frame,
      const char **err_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_headers_payload
      Src: /src/h2o/lib/http2/connection.c:1030,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1037,1
    - Dst: handle_trailing_headers
      Src: /src/h2o/lib/http2/connection.c:1058,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1066,1
    - Dst: set_priority
      Src: /src/h2o/lib/http2/connection.c:1068,1
    - Dst: h2o_http2_stream_open
      Src: /src/h2o/lib/http2/connection.c:1073,1
    - Dst: set_priority
      Src: /src/h2o/lib/http2/connection.c:1074,1
    - Dst: h2o_http2_stream_prepare_for_request
      Src: /src/h2o/lib/http2/connection.c:1076,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http2/connection.c:1080,1
    - Dst: handle_incoming_request
      Src: /src/h2o/lib/http2/connection.c:1084,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http2/connection.c:1090,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/connection.c:1091,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/connection.c:1092,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1023
    functionDepth: 11
    functionLinenumber: 1023
    functionLinenumberEnd: 1095
    functionName: handle_headers_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_prepare_for_request
    - h2o_buffer_init
    - handle_incoming_request
    - h2o_buffer_reserve
    - handle_trailing_headers
    - set_priority
    - memcpy
    - h2o_http2_stream_open
    - h2o_http2_conn_get_stream
    - h2o_http2_decode_headers_payload
    linkageType: ''
    returnType: int
    signature: int handle_headers_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_priority_payload
      Src: /src/h2o/lib/http2/connection.c:1103,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1110,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/lib/http2/connection.c:1115,1
    - Dst: set_priority
      Src: /src/h2o/lib/http2/connection.c:1116,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/connection.c:1118,1
    - Dst: h2o_http2_stream_open
      Src: /src/h2o/lib/http2/connection.c:1133,1
    - Dst: set_priority
      Src: /src/h2o/lib/http2/connection.c:1134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1138
    functionName: handle_priority_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    - h2o_http2_scheduler_get_weight
    - h2o_http2_decode_priority_payload
    - set_priority
    - h2o_http2_stream_open
    - h2o_http2_conn_get_stream
    linkageType: ''
    returnType: int
    signature: int handle_priority_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_get_buffer_window
      Src: /src/h2o/lib/http2/connection.c:1142,1
    - Dst: request_gathered_write
      Src: /src/h2o/lib/http2/connection.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1149
    functionName: resume_send
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_conn_get_buffer_window
    - request_gathered_write
    linkageType: ''
    returnType: void
    signature: void resume_send(h2o_http2_conn_t *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http2/connection.c:1163,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http2/connection.c:1163,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http2/connection.c:1164,1
    - Dst: h2o_http2_update_peer_settings
      Src: /src/h2o/lib/http2/connection.c:1168,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/connection.c:1172,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/connection.c:1173,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:1175,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/http2/connection.c:1181,1
    - Dst: update_stream_output_window
      Src: /src/h2o/lib/http2/connection.c:1181,1
    - Dst: resume_send
      Src: /src/h2o/lib/http2/connection.c:1182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1151
    functionDepth: 3
    functionLinenumber: 1151
    functionLinenumberEnd: 1187
    functionName: handle_settings_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 3
    functionsReached:
    - h2o_http2_update_peer_settings
    - resume_send
    - h2o_http2_conn_request_write
    - update_stream_output_window
    - h2o_buffer_reserve
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - h2o_http2_encode_frame_header
    - kh_foreach_value
    linkageType: ''
    returnType: int
    signature: int handle_settings_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_window_update_payload
      Src: /src/h2o/lib/http2/connection.c:1194,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1196,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:1199,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:1201,1
    - Dst: h2o_http2_window_update
      Src: /src/h2o/lib/http2/connection.c:1209,1
    - Dst: is_idle_stream_id
      Src: /src/h2o/lib/http2/connection.c:1213,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1214,1
    - Dst: update_stream_output_window
      Src: /src/h2o/lib/http2/connection.c:1216,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:1218,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:1219,1
    - Dst: resume_send
      Src: /src/h2o/lib/http2/connection.c:1228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1231
    functionName: handle_window_update_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - resume_send
    - h2o_http2_stream_reset
    - h2o_http2_decode_window_update_payload
    - update_stream_output_window
    - is_idle_stream_id
    - stream_send_error
    - h2o_http2_window_update
    - h2o_http2_conn_get_stream
    linkageType: ''
    returnType: int
    signature: int handle_window_update_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_goaway_payload
      Src: /src/h2o/lib/http2/connection.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1245
    functionName: handle_goaway_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_goaway_payload
    linkageType: ''
    returnType: int
    signature: int handle_goaway_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t *frame,
      const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_ping_payload
      Src: /src/h2o/lib/http2/connection.c:1252,1
    - Dst: h2o_http2_encode_ping_frame
      Src: /src/h2o/lib/http2/connection.c:1256,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1261
    functionName: handle_ping_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_encode_ping_frame
    - h2o_http2_decode_ping_payload
    - h2o_http2_conn_request_write
    linkageType: ''
    returnType: int
    signature: int handle_ping_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t *frame,
      const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_rst_stream_payload
      Src: /src/h2o/lib/http2/connection.c:1269,1
    - Dst: is_idle_stream_id
      Src: /src/h2o/lib/http2/connection.c:1271,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1276,1
    - Dst: h2o_http2_stream_reset
      Src: /src/h2o/lib/http2/connection.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1286
    functionName: handle_rst_stream_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - is_idle_stream_id
    - h2o_http2_decode_rst_stream_payload
    - h2o_http2_conn_get_stream
    - h2o_http2_stream_reset
    linkageType: ''
    returnType: int
    signature: int handle_rst_stream_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1292
    functionName: handle_push_promise_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int handle_push_promise_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - frame
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1298
    functionName: handle_invalid_continuation_frame
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int handle_invalid_continuation_frame(h2o_http2_conn_t *conn, h2o_http2_frame_t
      *frame, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode_frame
      Src: /src/h2o/lib/http2/connection.c:1317,1
    - Dst: H2O_PROBE_CONN
      Src: /src/h2o/lib/http2/connection.c:1325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1329
    functionName: expect_default
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode_frame
    - H2O_PROBE_CONN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t expect_default(h2o_http2_conn_t *conn, const uint8_t *src,
      size_t len, const char **err_desc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/http2/connection.c:1336,1
    - Dst: enqueue_server_preface
      Src: /src/h2o/lib/http2/connection.c:1341,1
    - Dst: h2o_http2_encode_origin_frame
      Src: /src/h2o/lib/http2/connection.c:1344,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http2/connection.c:1346,1
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http2/connection.c:1347,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:1349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - conn
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_conn_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1354
    functionName: expect_preface
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - memcmp
    - h2o_http2_conn_request_write
    - h2o_timeval_is_null
    - h2o_gettimeofday
    - enqueue_server_preface
    - h2o_http2_encode_origin_frame
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t expect_preface(h2o_http2_conn_t *conn, const uint8_t *src,
      size_t len, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_t*::_read_expect
      Src: /src/h2o/lib/http2/connection.c:1362,1
    - Dst: enqueue_goaway
      Src: /src/h2o/lib/http2/connection.c:1367,1
    - Dst: strlen
      Src: /src/h2o/lib/http2/connection.c:1368,1
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:1370,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/http2/connection.c:1373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1376
    functionName: parse_input
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 1
    functionsReached:
    - h2o_http2_conn_t*::_read_expect
    - enqueue_goaway
    - h2o_buffer_consume
    - close_connection
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_input(h2o_http2_conn_t *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http2/connection.c:1384,1
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:1385,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:1390,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1391,1
    - Dst: h2o_socket_ssl_is_early_data
      Src: /src/h2o/lib/http2/connection.c:1392,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1395,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:1396,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/connection.c:1398,1
    - Dst: h2o_replay_request
      Src: /src/h2o/lib/http2/connection.c:1399,1
    - Dst: parse_input
      Src: /src/h2o/lib/http2/connection.c:1404,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:1406,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:1409,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:1410,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/http2/connection.c:1411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (conn->sock->ssl != NULL)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1413
      start: 1378
    functionDepth: 6
    functionLinenumber: 1378
    functionLinenumberEnd: 1413
    functionName: on_read
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 5
    functionsReached:
    - h2o_socket_read_stop
    - h2o_linklist_is_empty
    - h2o_http2_stream_set_blocked_by_server
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timer_unlink
    - do_emit_writereq
    - h2o_socket_ssl_is_early_data
    - close_connection
    - h2o_replay_request
    - update_idle_timeout
    - h2o_linklist_unlink
    - h2o_timer_is_linked
    - parse_input
    - assert
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:1420,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http2/connection.c:1427,1
    - Dst: enqueue_server_preface
      Src: /src/h2o/lib/http2/connection.c:1429,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:1430,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http2/connection.c:1433,1
    - Dst: execute_or_enqueue_request
      Src: /src/h2o/lib/http2/connection.c:1436,1
    - Dst: h2o_http2_conn_get_stream
      Src: /src/h2o/lib/http2/connection.c:1436,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/connection.c:1440,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/connection.c:1441,1
    - Dst: on_read
      Src: /src/h2o/lib/http2/connection.c:1443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - _conn
    - sock
    - reqsize
    argTypes:
    - void*
    - h2o_socket_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1415
    functionDepth: 9
    functionLinenumber: 1415
    functionLinenumberEnd: 1445
    functionName: on_upgrade_complete
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_conn_request_write
    - h2o_http2_conn_get_stream
    - h2o_buffer_init
    - h2o_buffer_reserve
    - on_read
    - execute_or_enqueue_request
    - memcpy
    - enqueue_server_preface
    - close_connection
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_upgrade_complete(void *_conn, h2o_socket_t *sock, size_t reqsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1453
    functionName: bytes_in_buf
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bytes_in_buf(h2o_http2_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/http2/connection.c:1459,1
    - Dst: bytes_in_buf
      Src: /src/h2o/lib/http2/connection.c:1459,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/http2/connection.c:1460,1
    - Dst: request_gathered_write
      Src: /src/h2o/lib/http2/connection.c:1461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1462
    functionName: h2o_http2_conn_request_write
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 8
    functionsReached:
    - bytes_in_buf
    - h2o_socket_is_reading
    - h2o_socket_read_stop
    - request_gathered_write
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_request_write(h2o_http2_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/connection.c:1466,1
    - Dst: h2o_http2_stream_has_pending_data
      Src: /src/h2o/lib/http2/connection.c:1468,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:1469,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1470,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/connection.c:1470,1
    - Dst: h2o_http2_scheduler_activate
      Src: /src/h2o/lib/http2/connection.c:1471,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/connection.c:1474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&stream->_link))
      pos:
        line_end: 1469
        line_start: 1469
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1476
      start: 1464
    functionDepth: 3
    functionLinenumber: 1464
    functionLinenumberEnd: 1476
    functionName: h2o_http2_conn_register_for_proceed_callback
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_window_get_avail
    - h2o_http2_stream_has_pending_data
    - h2o_http2_conn_request_write
    - h2o_http2_scheduler_activate
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_register_for_proceed_callback(h2o_http2_conn_t
      *conn, h2o_http2_stream_t *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_ssl_is_early_data
      Src: /src/h2o/lib/http2/connection.c:1480,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/connection.c:1481,1
    - Dst: h2o_replay_request_deferred
      Src: /src/h2o/lib/http2/connection.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1478
    functionDepth: 4
    functionLinenumber: 1478
    functionLinenumberEnd: 1485
    functionName: h2o_http2_conn_register_for_replay
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_replay_request_deferred
    - h2o_socket_ssl_is_early_data
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_conn_register_for_replay(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_connection_now
      Src: /src/h2o/lib/http2/connection.c:1492,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/http2/connection.c:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1496
    functionName: on_notify_write
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - do_emit_writereq
    - close_connection_now
    linkageType: ''
    returnType: void
    signature: void on_notify_write(h2o_socket_t *sock, const char *err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1502,1
    - Dst: close_connection_now
      Src: /src/h2o/lib/http2/connection.c:1507,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/connection.c:1512,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1513,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:1517,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1518,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1519,1
    - Dst: h2o_http2_stream_has_pending_data
      Src: /src/h2o/lib/http2/connection.c:1519,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/connection.c:1520,1
    - Dst: stream_send_error
      Src: /src/h2o/lib/http2/connection.c:1523,1
    - Dst: h2o_http2_stream_proceed
      Src: /src/h2o/lib/http2/connection.c:1525,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:1530,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:1533,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:1534,1
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/http2/connection.c:1537,1
    - Dst: bytes_in_buf
      Src: /src/h2o/lib/http2/connection.c:1537,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http2/connection.c:1538,1
    - Dst: h2o_http2_scheduler_is_active
      Src: /src/h2o/lib/http2/connection.c:1543,1
    - Dst: h2o_socket_notify_write
      Src: /src/h2o/lib/http2/connection.c:1544,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/http2/connection.c:1550,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (conn->_write.buf_in_flight != NULL)
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (conn->_write.buf_in_flight == NULL)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (!h2o_http2_stream_has_pending_data(stream))
      pos:
        line_end: 1518
        line_start: 1518
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1551
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1551
    functionName: on_write_complete
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_http2_stream_has_pending_data
    - H2O_STRUCT_FROM_MEMBER
    - h2o_timer_unlink
    - do_emit_writereq
    - stream_send_error
    - h2o_socket_notify_write
    - h2o_buffer_dispose
    - h2o_linklist_unlink
    - h2o_http2_stream_proceed
    - h2o_socket_is_reading
    - bytes_in_buf
    - h2o_http2_scheduler_is_active
    - close_connection_now
    - h2o_timer_is_linked
    - update_idle_timeout
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1556,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1558,1
    - Dst: h2o_http2_stream_has_pending_data
      Src: /src/h2o/lib/http2/connection.c:1558,1
    - Dst: h2o_http2_stream_send_pending_data
      Src: /src/h2o/lib/http2/connection.c:1562,1
    - Dst: h2o_http2_stream_has_pending_data
      Src: /src/h2o/lib/http2/connection.c:1563,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/connection.c:1564,1
    - Dst: h2o_build_server_timing_trailer
      Src: /src/h2o/lib/http2/connection.c:1573,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:1574,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/connection.c:1575,1
    - Dst: h2o_hpack_flatten_trailers
      Src: /src/h2o/lib/http2/connection.c:1580,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/connection.c:1585,1
    - Dst: h2o_http2_conn_get_buffer_window
      Src: /src/h2o/lib/http2/connection.c:1588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - ref
    - still_is_active
    - cb_arg
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - int*
    - void*
    assertStmts:
    - condition: (h2o_http2_stream_has_pending_data(stream) || stream->state >= H2O_HTTP2_STREAM_STATE_SEND_BODY_IS_FINAL)
      pos:
        line_end: 1557
        line_start: 1557
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1589
      start: 1553
    functionDepth: 3
    functionLinenumber: 1553
    functionLinenumberEnd: 1589
    functionName: emit_writereq_of_openref
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_build_server_timing_trailer
    - h2o_http2_window_get_avail
    - h2o_http2_stream_has_pending_data
    - H2O_STRUCT_FROM_MEMBER
    - H2O_STRLIT
    - h2o_hpack_flatten_trailers
    - h2o_http2_conn_get_buffer_window
    - h2o_vector_reserve
    - assert
    - h2o_http2_stream_send_pending_data
    - h2o_linklist_insert
    linkageType: ''
    returnType: int
    signature: int emit_writereq_of_openref(h2o_http2_scheduler_openref_t *ref, int
      *still_is_active, void *cb_arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1593,1
    - Dst: h2o_http2_conn_get_buffer_window
      Src: /src/h2o/lib/http2/connection.c:1596,1
    - Dst: h2o_http2_scheduler_run
      Src: /src/h2o/lib/http2/connection.c:1597,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/http2/connection.c:1602,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http2/connection.c:1604,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/http2/connection.c:1605,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/http2/connection.c:1606,1
    - Dst: close_connection
      Src: /src/h2o/lib/http2/connection.c:1619,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_http2_conn_t*
    assertStmts:
    - condition: (conn->_write.buf_in_flight == NULL)
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1622
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1622
    functionName: do_emit_writereq
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 7
    functionsReached:
    - h2o_timer_unlink
    - h2o_timer_link
    - h2o_buffer_init
    - h2o_http2_conn_get_buffer_window
    - close_connection
    - h2o_http2_scheduler_run
    - h2o_socket_write
    - assert
    linkageType: ''
    returnType: void
    signature: void do_emit_writereq(h2o_http2_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1626,1
    - Dst: do_emit_writereq
      Src: /src/h2o/lib/http2/connection.c:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1629
    functionName: emit_writereq
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 8
    functionsReached:
    - do_emit_writereq
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void emit_writereq(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_getsockname
      Src: /src/h2o/lib/http2/connection.c:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    functionName: get_sockname
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_socket_getsockname
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_getpeername
      Src: /src/h2o/lib/http2/connection.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1637
    functionDepth: 4
    functionLinenumber: 1637
    functionLinenumberEnd: 1641
    functionName: get_peername
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 4
    functionsReached:
    - h2o_socket_getpeername
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1646,1
    - Dst: h2o_socket_get_ptls
      Src: /src/h2o/lib/http2/connection.c:1647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->sock != NULL && "it never becomes NULL, right?")
      pos:
        line_end: 1645
        line_start: 1645
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1648
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1648
    functionName: get_ptls
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 5
    functionsReached:
    - h2o_socket_get_ptls
    - assert
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *get_ptls(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1653,1
    - Dst: h2o_socket_get_ssl_server_name
      Src: /src/h2o/lib/http2/connection.c:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->sock != NULL && "it never becomes NULL, right?")
      pos:
        line_end: 1652
        line_start: 1652
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1655
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1655
    functionName: get_ssl_server_name
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 5
    functionsReached:
    - h2o_socket_get_ssl_server_name
    - assert
    linkageType: ''
    returnType: char
    signature: char *get_ssl_server_name(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1660,1
    - Dst: h2o_socket_log_state
      Src: /src/h2o/lib/http2/connection.c:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts:
    - condition: (conn->sock != NULL && "it never becomes NULL, right?")
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1662
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1662
    functionName: log_state
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 12
    functionsReached:
    - h2o_socket_log_state
    - assert
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *log_state(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1668
    functionName: get_req_id
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 1
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_req_id(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http2/connection.c:1673,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/http2/connection.c:1673,1
    - Dst: h2o_timeval_subtract
      Src: /src/h2o/lib/http2/connection.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1678
    functionName: get_rtt
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_timeval_subtract
    - h2o_timeval_is_null
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_rtt(h2o_conn_t *_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1686
    functionName: DEFINE_LOGGER
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LOGGER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1703,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1704,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1705,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1707
    functionName: log_stream_id
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_stream_id(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1711,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1712,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1713,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1716
    functionName: log_priority_received
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_received(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1720,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1722
    functionName: log_priority_received_exclusive
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_received_exclusive(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1726,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1727,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1728,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1730
    functionName: log_priority_received_parent
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_received_parent(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1734,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1735,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1736,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1738
    functionName: log_priority_received_weight
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - sprintf
    - h2o_mem_alloc_pool
    - H2O_STRUCT_FROM_MEMBER
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_received_weight(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_scheduler_get_parent
      Src: /src/h2o/lib/http2/connection.c:1742,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1749
    functionName: get_parent_stream_id
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_http2_scheduler_get_parent
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_parent_stream_id(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1754,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1755,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1756,1
    - Dst: get_parent_stream_id
      Src: /src/h2o/lib/http2/connection.c:1756,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/lib/http2/connection.c:1757,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1751
    functionDepth: 2
    functionLinenumber: 1751
    functionLinenumberEnd: 1759
    functionName: log_priority_actual
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_get_weight
    - H2O_STRUCT_FROM_MEMBER
    - h2o_mem_alloc_pool
    - sprintf
    - get_parent_stream_id
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_actual(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1764,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1765,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1766,1
    - Dst: get_parent_stream_id
      Src: /src/h2o/lib/http2/connection.c:1766,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1768
    functionName: log_priority_actual_parent
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - h2o_mem_alloc_pool
    - sprintf
    - get_parent_stream_id
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_actual_parent(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1772,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/connection.c:1773,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/connection.c:1774,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/lib/http2/connection.c:1774,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1776
    functionName: log_priority_actual_weight
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_get_weight
    - H2O_STRUCT_FROM_MEMBER
    - h2o_mem_alloc_pool
    - sprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t log_priority_actual_weight(h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1780,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1782,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/http2/connection.c:1782,1
    - Dst: run_pending_requests
      Src: /src/h2o/lib/http2/connection.c:1783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: (!h2o_timer_is_linked(&conn->dos_mitigation.process_delay))
      pos:
        line_end: 1781
        line_start: 1781
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 1784
      start: 1778
    functionDepth: 7
    functionLinenumber: 1778
    functionLinenumberEnd: 1784
    functionName: on_dos_process_delay
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - assert
    - H2O_STRUCT_FROM_MEMBER
    - run_pending_requests
    linkageType: ''
    returnType: void
    signature: void on_dos_process_delay(h2o_timer_t *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_connection
      Src: /src/h2o/lib/http2/connection.c:1835,1
    - Dst: memset
      Src: /src/h2o/lib/http2/connection.c:1837,1
    - Dst: kh_init
      Src: /src/h2o/lib/http2/connection.c:1840,1
    - Dst: h2o_http2_scheduler_init
      Src: /src/h2o/lib/http2/connection.c:1841,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/http2/connection.c:1846,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/connection.c:1848,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/http2/connection.c:1849,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/connection.c:1850,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/http2/connection.c:1852,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/connection.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - hosts
    - sock
    - connected_at
    argTypes:
    - h2o_context_t*
    - h2o_hostconf_t**
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1786
    functionDepth: 4
    functionLinenumber: 1786
    functionLinenumberEnd: 1860
    functionName: create_conn
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - kh_init
    - h2o_buffer_init
    - h2o_create_connection
    - h2o_linklist_init_anchor
    - h2o_http2_scheduler_init
    - memset
    - h2o_http2_window_init
    linkageType: ''
    returnType: h2o_http2_conn_t
    signature: h2o_http2_conn_t *create_conn(h2o_context_t *ctx, h2o_hostconf_t **hosts,
      h2o_socket_t *sock, struct timeval connected_at)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_create
      Src: /src/h2o/lib/http2/connection.c:1866,1
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/http2/connection.c:1869,1
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/http2/connection.c:1870,1
    - Dst: h2o_cache_calchash
      Src: /src/h2o/lib/http2/connection.c:1871,1
    - Dst: h2o_cache_set
      Src: /src/h2o/lib/http2/connection.c:1872,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1872,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - src_req
    - abspath
    - abspath_len
    argTypes:
    - h2o_http2_conn_t*
    - h2o_req_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1862
    functionDepth: 4
    functionLinenumber: 1862
    functionLinenumberEnd: 1873
    functionName: update_push_memo
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_init
    - h2o_cache_set
    - h2o_cache_calchash
    - h2o_cache_create
    linkageType: ''
    returnType: int
    signature: int update_push_memo(h2o_http2_conn_t *conn, h2o_req_t *src_req, const
      char *abspath, size_t abspath_len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1878,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/connection.c:1881,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/connection.c:1892,1
    - Dst: can_run_requests
      Src: /src/h2o/lib/http2/connection.c:1892,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/connection.c:1895,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/http2/connection.c:1899,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1899,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:1899,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/connection.c:1900,1
    - Dst: h2o_cache_digests_lookup_by_url
      Src: /src/h2o/lib/http2/connection.c:1901,1
    - Dst: h2o_http2_conn_init_casper
      Src: /src/h2o/lib/http2/connection.c:1910,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/connection.c:1913,1
    - Dst: h2o_http2_casper_consume_cookie
      Src: /src/h2o/lib/http2/connection.c:1915,1
    - Dst: update_push_memo
      Src: /src/h2o/lib/http2/connection.c:1921,1
    - Dst: h2o_http2_stream_open
      Src: /src/h2o/lib/http2/connection.c:1925,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/lib/http2/connection.c:1929,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/lib/http2/connection.c:1931,1
    - Dst: h2o_http2_stream_prepare_for_request
      Src: /src/h2o/lib/http2/connection.c:1933,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:1936,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http2/connection.c:1939,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http2/connection.c:1940,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/connection.c:1948,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/connection.c:1949,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/connection.c:1951,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/http2/connection.c:1952,1
    - Dst: execute_or_enqueue_request
      Src: /src/h2o/lib/http2/connection.c:1958,1
    - Dst: h2o_http2_stream_send_push_promise
      Src: /src/h2o/lib/http2/connection.c:1963,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - src_req
    - abspath
    - abspath_len
    - is_critical
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1875
    functionDepth: 9
    functionLinenumber: 1875
    functionLinenumberEnd: 1964
    functionName: push_path
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - h2o_iovec_init
    - h2o_linklist_is_empty
    - H2O_STRLIT
    - H2O_STRUCT_FROM_MEMBER
    - h2o_strdup
    - h2o_add_header
    - h2o_find_header
    - h2o_cache_digests_lookup_by_url
    - h2o_http2_stream_is_push
    - h2o_iovec_is_token
    - can_run_requests
    - h2o_http2_conn_init_casper
    - h2o_concat
    - h2o_http2_stream_prepare_for_request
    - h2o_http2_scheduler_open
    - execute_or_enqueue_request
    - h2o_http2_stream_send_push_promise
    - h2o_http2_casper_consume_cookie
    - update_push_memo
    - h2o_http2_stream_open
    linkageType: ''
    returnType: void
    signature: void push_path(h2o_req_t *src_req, const char *abspath, size_t abspath_len,
      int is_critical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/http2/connection.c:1970,1
    - Dst: cb
      Src: /src/h2o/lib/http2/connection.c:1971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _conn
    - cbdata
    argTypes:
    - h2o_conn_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 1976
    functionName: foreach_request
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 0
    functionsReached:
    - kh_foreach_value
    - cb
    linkageType: ''
    returnType: int
    signature: int foreach_request(h2o_conn_t *_conn, int (*cb)(h2o_req_t *req, void
      *cbdata), void *cbdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_conn
      Src: /src/h2o/lib/http2/connection.c:1980,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/http2/connection.c:1983,1
    - Dst: update_idle_timeout
      Src: /src/h2o/lib/http2/connection.c:1984,1
    - Dst: on_read
      Src: /src/h2o/lib/http2/connection.c:1986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - sock
    - connected_at
    argTypes:
    - h2o_accept_ctx_t*
    - h2o_socket_t*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1978
    functionDepth: 5
    functionLinenumber: 1978
    functionLinenumberEnd: 1987
    functionName: h2o_http2_accept
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 2
    functionsReached:
    - create_conn
    - update_idle_timeout
    - on_read
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void h2o_http2_accept(h2o_accept_ctx_t *ctx, h2o_socket_t *sock, struct
      timeval connected_at)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_conn
      Src: /src/h2o/lib/http2/connection.c:1991,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:1997,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/connection.c:2000,1
    - Dst: assert
      Src: /src/h2o/lib/http2/connection.c:2001,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/http2/connection.c:2002,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:2003,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/connection.c:2008,1
    - Dst: h2o_decode_base64url
      Src: /src/h2o/lib/http2/connection.c:2011,1
    - Dst: h2o_http2_update_peer_settings
      Src: /src/h2o/lib/http2/connection.c:2016,1
    - Dst: h2o_http2_stream_open
      Src: /src/h2o/lib/http2/connection.c:2022,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/lib/http2/connection.c:2023,1
    - Dst: h2o_http2_stream_prepare_for_request
      Src: /src/h2o/lib/http2/connection.c:2024,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/connection.c:2029,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/connection.c:2029,1
    - Dst: h2o_http1_upgrade
      Src: /src/h2o/lib/http2/connection.c:2030,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/http2/connection.c:2034,1
    - Dst: h2o_destroy_connection
      Src: /src/h2o/lib/http2/connection.c:2035,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - req
    - connected_at
    argTypes:
    - h2o_req_t*
    - struct timeval
    assertStmts:
    - condition: (req->version < 0x200)
      pos:
        line_end: 1996
        line_start: 1996
        source_file: /src/h2o/lib/http2/connection.c
    - condition: (connection_index != -1)
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/h2o/lib/http2/connection.c
    constantsTouched: []
    func_position:
      end: 2037
      start: 1989
    functionDepth: 5
    functionLinenumber: 1989
    functionLinenumberEnd: 2037
    functionName: h2o_http2_handle_upgrade
    functionSourceFile: /src/h2o/lib/http2/connection.c
    functionUses: 1
    functionsReached:
    - h2o_http2_update_peer_settings
    - H2O_STRLIT
    - h2o_http2_stream_open
    - h2o_http2_stream_prepare_for_request
    - h2o_http1_upgrade
    - h2o_http2_scheduler_open
    - h2o_contains_token
    - h2o_decode_base64url
    - h2o_add_header
    - h2o_find_header
    - create_conn
    - h2o_destroy_connection
    - assert
    - kh_destroy
    linkageType: ''
    returnType: int
    signature: int h2o_http2_handle_upgrade(h2o_req_t *req, struct timeval connected_at)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode16u
      Src: /src/h2o/lib/http2/frame.c:40,1
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:41,1
    - Dst: SET
      Src: /src/h2o/lib/http2/frame.c:51,1
    - Dst: SET
      Src: /src/h2o/lib/http2/frame.c:52,1
    - Dst: SET
      Src: /src/h2o/lib/http2/frame.c:53,1
    - Dst: SET
      Src: /src/h2o/lib/http2/frame.c:54,1
    - Dst: SET
      Src: /src/h2o/lib/http2/frame.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - settings
    - src
    - len
    - err_desc
    argTypes:
    - h2o_http2_settings_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 66
    functionName: h2o_http2_update_peer_settings
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 3
    functionsReached:
    - h2o_http2_decode16u
    - h2o_http2_decode32u
    - SET
    linkageType: ''
    returnType: int
    signature: int h2o_http2_update_peer_settings(h2o_http2_settings_t *settings,
      const uint8_t *src, size_t len, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - label
    - ','
    - member
    - ','
    - min
    - ','
    - max
    - ','
    - err_code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: SET
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(label, member, min, max, err_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/lib/http2/frame.c:71,1
    - Dst: h2o_http2_encode24u
      Src: /src/h2o/lib/http2/frame.c:73,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - length
    - type
    - flags
    - stream_id
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: h2o_http2_encode_frame_header
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 3
    functionsReached:
    - h2o_http2_encode24u
    - h2o_fatal
    - h2o_http2_encode32u
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_http2_encode_frame_header(uint8_t *dst, size_t length,
      uint8_t type, uint8_t flags, int32_t stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/frame.c:83,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/frame.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - buf
    - length
    - type
    - flags
    - stream_id
    argTypes:
    - h2o_buffer_t**
    - size_t
    - uint8_t
    - uint8_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: allocate_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 7
    functionsReached:
    - h2o_buffer_reserve
    - h2o_http2_encode_frame_header
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *allocate_frame(h2o_buffer_t **buf, size_t length, uint8_t
      type, uint8_t flags, int32_t stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:90,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - stream_id
    - errnum
    argTypes:
    - h2o_buffer_t**
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: h2o_http2__encode_rst_stream_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 0
    functionsReached:
    - allocate_frame
    - h2o_http2_encode32u
    linkageType: ''
    returnType: void
    signature: void h2o_http2__encode_rst_stream_frame(h2o_buffer_t **buf, uint32_t
      stream_id, int errnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:96,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/frame.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - is_ack
    - data
    argTypes:
    - h2o_buffer_t**
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: h2o_http2_encode_ping_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - memcpy
    - allocate_frame
    linkageType: ''
    returnType: void
    signature: void h2o_http2_encode_ping_frame(h2o_buffer_t **buf, int is_ack, const
      uint8_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:103,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:104,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:105,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/http2/frame.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - last_stream_id
    - errnum
    - additional_data
    argTypes:
    - h2o_buffer_t**
    - uint32_t
    - int
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: h2o_http2_encode_goaway_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 3
    functionsReached:
    - allocate_frame
    - h2o_memcpy
    - h2o_http2_encode32u
    linkageType: ''
    returnType: void
    signature: void h2o_http2_encode_goaway_frame(h2o_buffer_t **buf, uint32_t last_stream_id,
      int errnum, h2o_iovec_t additional_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:111,1
    - Dst: h2o_http2_encode16u
      Src: /src/h2o/lib/http2/frame.c:113,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - settings
    - num_settings
    argTypes:
    - h2o_buffer_t**
    - h2o_http2_settings_kvpair_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: h2o_http2_encode_settings_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 1
    functionsReached:
    - allocate_frame
    - h2o_http2_encode32u
    - h2o_http2_encode16u
    linkageType: ''
    returnType: void
    signature: void h2o_http2_encode_settings_frame(h2o_buffer_t **buf, h2o_http2_settings_kvpair_t
      *settings, size_t num_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:120,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/frame.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - stream_id
    - window_size_increment
    argTypes:
    - h2o_buffer_t**
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: h2o_http2_encode_window_update_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 3
    functionsReached:
    - allocate_frame
    - h2o_http2_encode32u
    linkageType: ''
    returnType: void
    signature: void h2o_http2_encode_window_update_frame(h2o_buffer_t **buf, uint32_t
      stream_id, int32_t window_size_increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_frame
      Src: /src/h2o/lib/http2/frame.c:126,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/frame.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - payload
    argTypes:
    - h2o_buffer_t**
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: h2o_http2_encode_origin_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 1
    functionsReached:
    - memcpy
    - allocate_frame
    linkageType: ''
    returnType: void
    signature: void h2o_http2_encode_origin_frame(h2o_buffer_t **buf, h2o_iovec_t
      payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode24u
      Src: /src/h2o/lib/http2/frame.c:136,1
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - frame
    - src
    - len
    - max_frame_size
    - err_desc
    argTypes:
    - h2o_http2_frame_t*
    - uint8_t*
    - size_t
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: h2o_http2_decode_frame
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 6
    functionsReached:
    - h2o_http2_decode32u
    - h2o_http2_decode24u
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h2o_http2_decode_frame(h2o_http2_frame_t *frame, const uint8_t
      *src, size_t len, size_t max_frame_size,\n                               const
      char **err_desc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_data_payload_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: h2o_http2_decode_data_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_http2_decode_data_payload(h2o_http2_data_payload_t *payload,
      const h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - priority
    - src
    argTypes:
    - h2o_http2_priority_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: decode_priority
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 0
    functionsReached:
    - h2o_http2_decode32u
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *decode_priority(h2o_http2_priority_t *priority, const uint8_t
      *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: decode_priority
      Src: /src/h2o/lib/http2/frame.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_headers_payload_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 224
    functionName: h2o_http2_decode_headers_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - decode_priority
    linkageType: ''
    returnType: int
    signature: int h2o_http2_decode_headers_payload(h2o_http2_headers_payload_t *payload,
      const h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_priority
      Src: /src/h2o/lib/http2/frame.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_priority_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: h2o_http2_decode_priority_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - decode_priority
    linkageType: ''
    returnType: int
    signature: int h2o_http2_decode_priority_payload(h2o_http2_priority_t *payload,
      const h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_rst_stream_payload_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: h2o_http2_decode_rst_stream_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - h2o_http2_decode32u
    linkageType: ''
    returnType: int
    signature: "int h2o_http2_decode_rst_stream_payload(h2o_http2_rst_stream_payload_t
      *payload, const h2o_http2_frame_t *frame,\n                                        const
      char **err_desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http2/frame.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_ping_payload_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: h2o_http2_decode_ping_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int h2o_http2_decode_ping_payload(h2o_http2_ping_payload_t *payload,
      const h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:283,1
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - payload
    - frame
    - err_desc
    argTypes:
    - h2o_http2_goaway_payload_t*
    - h2o_http2_frame_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: h2o_http2_decode_goaway_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - h2o_http2_decode32u
    linkageType: ''
    returnType: int
    signature: int h2o_http2_decode_goaway_payload(h2o_http2_goaway_payload_t *payload,
      const h2o_http2_frame_t *frame, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_decode32u
      Src: /src/h2o/lib/http2/frame.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - payload
    - frame
    - err_desc
    - err_is_stream_level
    argTypes:
    - h2o_http2_window_update_payload_t*
    - h2o_http2_frame_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: h2o_http2_decode_window_update_payload
    functionSourceFile: /src/h2o/lib/http2/frame.c
    functionUses: 2
    functionsReached:
    - h2o_http2_decode32u
    linkageType: ''
    returnType: int
    signature: "int h2o_http2_decode_window_update_payload(h2o_http2_window_update_payload_t
      *payload, const h2o_http2_frame_t *frame,\n                                           const
      char **err_desc, int *err_is_stream_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: value_is_part_of_static_table
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int value_is_part_of_static_table(const h2o_iovec_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/http2/hpack.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - h2o_mem_pool_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: alloc_buf
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_shared
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t *alloc_buf(h2o_mem_pool_t *pool, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - src
    - src_end
    - prefix_bits
    argTypes:
    - uint8_t**
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: h2o_hpack_decode_int
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t h2o_hpack_decode_int(const uint8_t **src, const uint8_t *src_end,
      unsigned prefix_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - dst
    - in
    - state
    - maybe_eos
    - seen_char_types
    argTypes:
    - char*
    - uint8_t
    - uint8_t*
    - int*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: huffdecode4
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *huffdecode4(char *dst, uint8_t in, uint8_t *state, int *maybe_eos,
      uint8_t *seen_char_types)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: header_value_valid_as_whole
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int header_value_valid_as_whole(const char *s, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: huffdecode4
      Src: /src/h2o/lib/http2/hpack.c:127,1
    - Dst: huffdecode4
      Src: /src/h2o/lib/http2/hpack.c:129,1
    - Dst: header_value_valid_as_whole
      Src: /src/h2o/lib/http2/hpack.c:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - _dst
    - soft_errors
    - src
    - len
    - is_name
    - err_desc
    argTypes:
    - char*
    - unsigned*
    - uint8_t*
    - size_t
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 156
    functionName: h2o_hpack_decode_huffman
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 4
    functionsReached:
    - huffdecode4
    - header_value_valid_as_whole
    linkageType: ''
    returnType: size_t
    signature: "size_t h2o_hpack_decode_huffman(char *_dst, unsigned *soft_errors,
      const uint8_t *src, size_t len, int is_name,\n                                const
      char **err_desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - soft_errors
    - s
    - len
    - err_desc
    argTypes:
    - unsigned*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: h2o_hpack_validate_header_name
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_hpack_validate_header_name(unsigned *soft_errors, const char
      *s, size_t len, const char **err_desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: header_value_valid_as_whole
      Src: /src/h2o/lib/http2/hpack.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - soft_errors
    - s
    - len
    argTypes:
    - unsigned*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 221
    functionName: h2o_hpack_validate_header_value
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - header_value_valid_as_whole
    linkageType: ''
    returnType: void
    signature: void h2o_hpack_validate_header_value(unsigned *soft_errors, const char
      *s, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http2/hpack.c:234,1
    - Dst: alloc_buf
      Src: /src/h2o/lib/http2/hpack.c:240,1
    - Dst: h2o_hpack_decode_huffman
      Src: /src/h2o/lib/http2/hpack.c:241,1
    - Dst: h2o_hpack_validate_header_name
      Src: /src/h2o/lib/http2/hpack.c:249,1
    - Dst: h2o_hpack_validate_header_value
      Src: /src/h2o/lib/http2/hpack.c:252,1
    - Dst: alloc_buf
      Src: /src/h2o/lib/http2/hpack.c:254,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 6
    argNames:
    - pool
    - soft_errors
    - src
    - src_end
    - is_header_name
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - unsigned*
    - uint8_t**
    - uint8_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 261
    functionName: decode_string
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 2
    functionsReached:
    - h2o_hpack_validate_header_name
    - memcpy
    - h2o_hpack_decode_huffman
    - h2o_hpack_decode_int
    - alloc_buf
    - h2o_hpack_validate_header_value
    linkageType: ''
    returnType: h2o_iovec_t
    signature: "h2o_iovec_t *decode_string(h2o_mem_pool_t *pool, unsigned *soft_errors,
      const uint8_t **src, const uint8_t *src_end,\n                                  int
      is_header_name, const char **err_desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/hpack.c:266,1
    - Dst: h2o_hpack_header_table_get
      Src: /src/h2o/lib/http2/hpack.c:268,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:270,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http2/hpack.c:271,1
    - Dst: value_is_part_of_static_table
      Src: /src/h2o/lib/http2/hpack.c:272,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http2/hpack.c:273,1
    - Dst: memset
      Src: /src/h2o/lib/http2/hpack.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - table
    argTypes:
    - h2o_hpack_header_table_t*
    assertStmts:
    - condition: (table->num_entries != 0)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/h2o/lib/http2/hpack.c
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: header_table_evict_one
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_iovec_is_token
    - value_is_part_of_static_table
    - h2o_hpack_header_table_get
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void header_table_evict_one(h2o_hpack_header_table_t *table)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: header_table_evict_one
      Src: /src/h2o/lib/http2/hpack.c:282,1
    - Dst: header_table_evict_one
      Src: /src/h2o/lib/http2/hpack.c:284,1
    - Dst: assert
      Src: /src/h2o/lib/http2/hpack.c:286,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/hpack.c:298,1
    - Dst: memset
      Src: /src/h2o/lib/http2/hpack.c:307,1
    - Dst: free
      Src: /src/h2o/lib/http2/hpack.c:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - table
    - size_add
    - max_num_entries
    argTypes:
    - h2o_hpack_header_table_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (table->hpack_size == 0)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/h2o/lib/http2/hpack.c
    constantsTouched: []
    func_position:
      end: 317
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 317
    functionName: header_table_add
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - header_table_evict_one
    - free
    - h2o_mem_alloc
    - memset
    - assert
    linkageType: ''
    returnType: struct st_h2o_hpack_header_table_entry_t
    signature: "struct st_h2o_hpack_header_table_entry_t *header_table_add(h2o_hpack_header_table_t
      *table, size_t size_add,\n                                                                  size_t
      max_num_entries)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http2/hpack.c:334,1
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http2/hpack.c:341,1
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http2/hpack.c:349,1
    - Dst: h2o_hpack_decode_int
      Src: /src/h2o/lib/http2/hpack.c:355,1
    - Dst: header_table_evict_one
      Src: /src/h2o/lib/http2/hpack.c:363,1
    - Dst: h2o_hpack_header_table_get
      Src: /src/h2o/lib/http2/hpack.c:378,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:381,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http2/hpack.c:382,1
    - Dst: h2o_mem_link_shared
      Src: /src/h2o/lib/http2/hpack.c:385,1
    - Dst: decode_string
      Src: /src/h2o/lib/http2/hpack.c:393,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/http2/hpack.c:399,1
    - Dst: decode_string
      Src: /src/h2o/lib/http2/hpack.c:406,1
    - Dst: header_table_add
      Src: /src/h2o/lib/http2/hpack.c:413,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:417,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/http2/hpack.c:418,1
    - Dst: value_is_part_of_static_table
      Src: /src/h2o/lib/http2/hpack.c:420,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/http2/hpack.c:421,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 7
    argNames:
    - pool
    - _hpack_header_table
    - _name
    - _value
    - src
    - src_end
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - void*
    - h2o_iovec_t**
    - h2o_iovec_t*
    - uint8_t**
    - uint8_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 435
    functionName: h2o_hpack_decode_header
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_is_token
    - header_table_evict_one
    - header_table_add
    - h2o_lookup_token
    - decode_string
    - value_is_part_of_static_table
    - h2o_mem_addref_shared
    - h2o_mem_link_shared
    - h2o_hpack_decode_int
    - h2o_hpack_header_table_get
    linkageType: ''
    returnType: int
    signature: "int h2o_hpack_decode_header(h2o_mem_pool_t *pool, void *_hpack_header_table,
      h2o_iovec_t **_name, h2o_iovec_t *_value,\n                            const
      uint8_t **const src, const uint8_t *src_end, const char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/hpack.c:441,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:448,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:449,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:450,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:451,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:452,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:453,1
    - Dst: COMMON_CODE
      Src: /src/h2o/lib/http2/hpack.c:454,1
    - Dst: sprintf
      Src: /src/h2o/lib/http2/hpack.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - dst
    - status
    argTypes:
    - uint8_t*
    - int
    assertStmts:
    - condition: (100 <= status && status <= 999)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/h2o/lib/http2/hpack.c
    constantsTouched: []
    func_position:
      end: 466
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 466
    functionName: encode_status
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - sprintf
    - COMMON_CODE
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_status(uint8_t *dst, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: COMMON_CODE
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMON_CODE(code, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 484
    functionName: encode_content_length
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_content_length(uint8_t *dst, size_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:492,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http2/hpack.c:493,1
    - Dst: value_is_part_of_static_table
      Src: /src/h2o/lib/http2/hpack.c:494,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/http2/hpack.c:495,1
    - Dst: free
      Src: /src/h2o/lib/http2/hpack.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - header_table
    argTypes:
    - h2o_hpack_header_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: h2o_hpack_dispose_header_table
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 4
    functionsReached:
    - h2o_mem_release_shared
    - h2o_iovec_is_token
    - free
    - value_is_part_of_static_table
    linkageType: ''
    returnType: void
    signature: void h2o_hpack_dispose_header_table(h2o_hpack_header_table_t *header_table)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: decode_cb
      Src: /src/h2o/lib/http2/hpack.c:516,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:571,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:571,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:573,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:573,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:589,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/hpack.c:590,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/http2/hpack.c:593,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http2/hpack.c:606,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:606,1
    - Dst: h2o_cache_digests_load_header
      Src: /src/h2o/lib/http2/hpack.c:610,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/hpack.c:622,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/http2/hpack.c:628,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 135
    argCount: 17
    argNames:
    - pool
    - decode_cb
    - decode_ctx
    - method
    - scheme
    - authority
    - path
    - protocol
    - headers
    - pseudo_header_exists_map
    - content_length
    - expect
    - digests
    - datagram_flow_id
    - src
    - len
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - h2o_hpack_decode_header_cb
    - void*
    - h2o_iovec_t*
    - h2o_url_scheme_t**
    - h2o_iovec_t*
    - h2o_iovec_t*
    - h2o_iovec_t*
    - h2o_headers_t*
    - int*
    - size_t*
    - h2o_iovec_t*
    - h2o_cache_digests_t**
    - h2o_iovec_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 640
    functionName: h2o_hpack_parse_request
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 5
    functionsReached:
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - h2o_strtosize
    - H2O_STRLIT
    - H2O_STRUCT_FROM_MEMBER
    - decode_cb
    - h2o_lcstris
    - h2o_add_header
    - h2o_memis
    - h2o_cache_digests_load_header
    linkageType: ''
    returnType: int
    signature: "int h2o_hpack_parse_request(h2o_mem_pool_t *pool, h2o_hpack_decode_header_cb
      decode_cb, void *decode_ctx, h2o_iovec_t *method,\n                            const
      h2o_url_scheme_t **scheme, h2o_iovec_t *authority, h2o_iovec_t *path, h2o_iovec_t
      *protocol,\n                            h2o_headers_t *headers, int *pseudo_header_exists_map,
      size_t *content_length, h2o_iovec_t *expect,\n                            h2o_cache_digests_t
      **digests, h2o_iovec_t *datagram_flow_id, const uint8_t *src, size_t len,\n
      \                           const char **err_desc)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: decode_cb
      Src: /src/h2o/lib/http2/hpack.c:661,1
    - Dst: PARSE_DIGIT
      Src: /src/h2o/lib/http2/hpack.c:706,1
    - Dst: PARSE_DIGIT
      Src: /src/h2o/lib/http2/hpack.c:707,1
    - Dst: PARSE_DIGIT
      Src: /src/h2o/lib/http2/hpack.c:708,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:715,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/hpack.c:716,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/hpack.c:731,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/http2/hpack.c:737,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 9
    argNames:
    - pool
    - decode_cb
    - decode_ctx
    - status
    - headers
    - datagram_flow_id
    - src
    - len
    - err_desc
    argTypes:
    - h2o_mem_pool_t*
    - h2o_hpack_decode_header_cb
    - void*
    - int*
    - h2o_headers_t*
    - h2o_iovec_t*
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 750
    functionName: h2o_hpack_parse_response
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 5
    functionsReached:
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - H2O_STRUCT_FROM_MEMBER
    - decode_cb
    - h2o_add_header
    - PARSE_DIGIT
    linkageType: ''
    returnType: int
    signature: "int h2o_hpack_parse_response(h2o_mem_pool_t *pool, h2o_hpack_decode_header_cb
      decode_cb, void *decode_ctx, int *status,\n                             h2o_headers_t
      *headers, h2o_iovec_t *datagram_flow_id, const uint8_t *src, size_t len,\n                             const
      char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mul
    - ','
    - min_digit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 706
    functionName: PARSE_DIGIT
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_DIGIT(mul, min_digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - prefix_bits
    argTypes:
    - int64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: encode_int_is_onebyte
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int encode_int_is_onebyte(int64_t value, unsigned prefix_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_is_onebyte
      Src: /src/h2o/lib/http2/hpack.c:759,1
    - Dst: assert
      Src: /src/h2o/lib/http2/hpack.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - dst
    - value
    - prefix_bits
    argTypes:
    - uint8_t*
    - int64_t
    - unsigned
    assertStmts:
    - condition: (value >= 0)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/h2o/lib/http2/hpack.c
    constantsTouched: []
    func_position:
      end: 772
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 772
    functionName: h2o_hpack_encode_int
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 7
    functionsReached:
    - assert
    - encode_int_is_onebyte
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *h2o_hpack_encode_int(uint8_t *dst, int64_t value, unsigned
      prefix_bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - _dst
    - src
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 804
    functionName: h2o_hpack_encode_huffman
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_hpack_encode_huffman(uint8_t *_dst, const uint8_t *src,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:810,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - s
    - len
    argTypes:
    - uint8_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 814
    functionName: encode_as_is
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: size_t
    signature: size_t encode_as_is(uint8_t *dst, const char *s, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/http2/hpack.c:818,1
    - Dst: h2o_hpack_encode_huffman
      Src: /src/h2o/lib/http2/hpack.c:820,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/http2/hpack.c:821,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/http2/hpack.c:823,1
    - Dst: encode_int_is_onebyte
      Src: /src/h2o/lib/http2/hpack.c:823,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:829,1
    - Dst: memmove
      Src: /src/h2o/lib/http2/hpack.c:830,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:831,1
    - Dst: encode_as_is
      Src: /src/h2o/lib/http2/hpack.c:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - s
    - len
    argTypes:
    - uint8_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 837
    functionName: h2o_hpack_encode_string
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - encode_int_is_onebyte
    - H2O_LIKELY
    - memcpy
    - memmove
    - encode_as_is
    - h2o_hpack_encode_huffman
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_hpack_encode_string(uint8_t *dst, const char *s, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header_table_evict_one
      Src: /src/h2o/lib/http2/hpack.c:849,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - table
    - new_capacity
    - dst
    argTypes:
    - h2o_hpack_header_table_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: header_table_adjust_size
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - header_table_evict_one
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *header_table_adjust_size(h2o_hpack_header_table_t *table,
      uint32_t new_capacity, uint8_t *dst)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/http2/hpack.c:861,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:873,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:879,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:883,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:902,1
    - Dst: h2o_hpack_encode_int
      Src: /src/h2o/lib/http2/hpack.c:905,1
    - Dst: h2o_hpack_encode_string
      Src: /src/h2o/lib/http2/hpack.c:910,1
    - Dst: encode_as_is
      Src: /src/h2o/lib/http2/hpack.c:914,1
    - Dst: h2o_hpack_encode_string
      Src: /src/h2o/lib/http2/hpack.c:919,1
    - Dst: header_table_add
      Src: /src/h2o/lib/http2/hpack.c:921,1
    - Dst: alloc_buf
      Src: /src/h2o/lib/http2/hpack.c:926,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:928,1
    - Dst: alloc_buf
      Src: /src/h2o/lib/http2/hpack.c:930,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/hpack.c:932,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 5
    argNames:
    - header_table
    - dst
    - name
    - value
    - dont_compress
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_iovec_t*
    - h2o_iovec_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 937
    functionName: do_encode_header
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_is_token
    - header_table_add
    - h2o_hpack_encode_string
    - memcpy
    - encode_as_is
    - alloc_buf
    - h2o_memis
    - h2o_hpack_encode_int
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *do_encode_header(h2o_hpack_header_table_t *header_table,
      uint8_t *dst, const h2o_iovec_t *name,\n                                 const
      h2o_iovec_t *value, int dont_compress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_encode_header
      Src: /src/h2o/lib/http2/hpack.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - header_table
    - dst
    - header
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 939
    functionDepth: 5
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: encode_header
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 2
    functionsReached:
    - do_encode_header
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_header(h2o_hpack_header_table_t *header_table, uint8_t
      *dst, const h2o_header_t *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_encode_header
      Src: /src/h2o/lib/http2/hpack.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - header_table
    - dst
    - token
    - value
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_token_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 5
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: encode_header_token
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - do_encode_header
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *encode_header_token(h2o_hpack_header_table_t *header_table,
      uint8_t *dst, const h2o_token_t *token,\n                                    const
      h2o_iovec_t *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:952,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:952,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:956,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:956,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - header_table
    - dst
    - value
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 961
    functionName: encode_method
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - encode_header_token
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_method(h2o_hpack_header_table_t *header_table, uint8_t
      *dst, h2o_iovec_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - header_table
    - dst
    - scheme
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_url_scheme_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 974
    functionName: encode_scheme
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - encode_header_token
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_scheme(h2o_hpack_header_table_t *header_table, uint8_t
      *dst, const h2o_url_scheme_t *scheme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:978,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:978,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:982,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:982,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - header_table
    - dst
    - value
    argTypes:
    - h2o_hpack_header_table_t*
    - uint8_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 976
    functionDepth: 6
    functionLinenumber: 976
    functionLinenumberEnd: 987
    functionName: encode_path
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - encode_header_token
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_path(h2o_hpack_header_table_t *header_table, uint8_t
      *dst, h2o_iovec_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_encode_string
      Src: /src/h2o/lib/http2/hpack.c:993,1
    - Dst: h2o_hpack_encode_string
      Src: /src/h2o/lib/http2/hpack.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - value
    argTypes:
    - uint8_t*
    - h2o_iovec_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 996
    functionName: encode_literal_header_without_indexing
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_encode_string
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *encode_literal_header_without_indexing(uint8_t *dst, const
      h2o_iovec_t *name, const h2o_iovec_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name_len
    - value_len
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1001
    functionName: calc_capacity
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t calc_capacity(size_t name_len, size_t value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - headers
    - num_headers
    argTypes:
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1010
    functionName: calc_headers_capacity
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - calc_capacity
    linkageType: ''
    returnType: size_t
    signature: size_t calc_headers_capacity(const h2o_header_t *headers, size_t num_headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/hpack.c:1018,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/hpack.c:1025,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/hpack.c:1029,1
    - Dst: memmove
      Src: /src/h2o/lib/http2/hpack.c:1030,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/hpack.c:1033,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/hpack.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - buf
    - start_at
    - type
    - stream_id
    - max_frame_size
    - flags
    argTypes:
    - h2o_buffer_t**
    - size_t
    - uint8_t
    - uint32_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1042
    functionName: fixup_frame_headers
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_reserve
    - memmove
    - h2o_http2_encode_frame_header
    linkageType: ''
    returnType: void
    signature: "void fixup_frame_headers(h2o_buffer_t **buf, size_t start_at, uint8_t
      type, uint32_t stream_id, size_t max_frame_size,\n                                int
      flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:1048,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:1049,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:1049,1
    - Dst: calc_headers_capacity
      Src: /src/h2o/lib/http2/hpack.c:1051,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1054,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1056,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1057,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1059,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1060,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1062,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/hpack.c:1065,1
    - Dst: header_table_adjust_size
      Src: /src/h2o/lib/http2/hpack.c:1068,1
    - Dst: encode_method
      Src: /src/h2o/lib/http2/hpack.c:1069,1
    - Dst: encode_scheme
      Src: /src/h2o/lib/http2/hpack.c:1071,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:1072,1
    - Dst: encode_path
      Src: /src/h2o/lib/http2/hpack.c:1074,1
    - Dst: encode_header
      Src: /src/h2o/lib/http2/hpack.c:1077,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:1080,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:1085,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:1085,1
    - Dst: encode_header
      Src: /src/h2o/lib/http2/hpack.c:1088,1
    - Dst: fixup_frame_headers
      Src: /src/h2o/lib/http2/hpack.c:1094,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 12
    argNames:
    - buf
    - header_table
    - hpack_capacity
    - stream_id
    - max_frame_size
    - method
    - url
    - protocol
    - headers
    - num_headers
    - is_end_stream
    - send_own_expect
    argTypes:
    - h2o_buffer_t**
    - h2o_hpack_header_table_t*
    - uint32_t
    - uint32_t
    - size_t
    - h2o_iovec_t
    - h2o_url_t*
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1044
    functionDepth: 7
    functionLinenumber: 1044
    functionLinenumberEnd: 1096
    functionName: h2o_hpack_flatten_request
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - encode_method
    - fixup_frame_headers
    - H2O_STRLIT
    - calc_capacity
    - encode_header
    - header_table_adjust_size
    - calc_headers_capacity
    - h2o_buffer_reserve
    - encode_scheme
    - encode_header_token
    - h2o_memis
    - encode_path
    linkageType: ''
    returnType: void
    signature: "void h2o_hpack_flatten_request(h2o_buffer_t **buf, h2o_hpack_header_table_t
      *header_table, uint32_t hpack_capacity,\n                               uint32_t
      stream_id, size_t max_frame_size, h2o_iovec_t method, h2o_url_t *url, h2o_iovec_t
      protocol,\n                               const h2o_header_t *headers, size_t
      num_headers, int is_end_stream, int send_own_expect)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_headers_capacity
      Src: /src/h2o/lib/http2/hpack.c:1103,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1107,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1108,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1109,1
    - Dst: calc_capacity
      Src: /src/h2o/lib/http2/hpack.c:1110,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/hpack.c:1113,1
    - Dst: h2o_http2_encode32u
      Src: /src/h2o/lib/http2/hpack.c:1116,1
    - Dst: header_table_adjust_size
      Src: /src/h2o/lib/http2/hpack.c:1117,1
    - Dst: encode_method
      Src: /src/h2o/lib/http2/hpack.c:1118,1
    - Dst: encode_scheme
      Src: /src/h2o/lib/http2/hpack.c:1119,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:1120,1
    - Dst: encode_path
      Src: /src/h2o/lib/http2/hpack.c:1121,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/hpack.c:1125,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/hpack.c:1125,1
    - Dst: encode_header
      Src: /src/h2o/lib/http2/hpack.c:1128,1
    - Dst: fixup_frame_headers
      Src: /src/h2o/lib/http2/hpack.c:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 12
    argNames:
    - buf
    - header_table
    - hpack_capacity
    - stream_id
    - max_frame_size
    - scheme
    - authority
    - method
    - path
    - headers
    - num_headers
    - parent_stream_id
    argTypes:
    - h2o_buffer_t**
    - h2o_hpack_header_table_t*
    - uint32_t
    - uint32_t
    - size_t
    - h2o_url_scheme_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_iovec_t
    - h2o_header_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1098
    functionDepth: 7
    functionLinenumber: 1098
    functionLinenumberEnd: 1135
    functionName: h2o_hpack_flatten_push_promise
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 2
    functionsReached:
    - encode_method
    - fixup_frame_headers
    - H2O_STRLIT
    - calc_capacity
    - encode_header
    - header_table_adjust_size
    - h2o_buffer_reserve
    - calc_headers_capacity
    - encode_scheme
    - encode_header_token
    - h2o_http2_encode32u
    - h2o_memis
    - encode_path
    linkageType: ''
    returnType: void
    signature: "void h2o_hpack_flatten_push_promise(h2o_buffer_t **buf, h2o_hpack_header_table_t
      *header_table, uint32_t hpack_capacity,\n                                    uint32_t
      stream_id, size_t max_frame_size, const h2o_url_scheme_t *scheme,\n                                    h2o_iovec_t
      authority, h2o_iovec_t method, h2o_iovec_t path, const h2o_header_t *headers,\n
      \                                   size_t num_headers, uint32_t parent_stream_id)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calc_headers_capacity
      Src: /src/h2o/lib/http2/hpack.c:1141,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/hpack.c:1154,1
    - Dst: header_table_adjust_size
      Src: /src/h2o/lib/http2/hpack.c:1157,1
    - Dst: encode_status
      Src: /src/h2o/lib/http2/hpack.c:1158,1
    - Dst: encode_header_token
      Src: /src/h2o/lib/http2/hpack.c:1162,1
    - Dst: encode_header
      Src: /src/h2o/lib/http2/hpack.c:1166,1
    - Dst: encode_content_length
      Src: /src/h2o/lib/http2/hpack.c:1168,1
    - Dst: fixup_frame_headers
      Src: /src/h2o/lib/http2/hpack.c:1173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 11
    argNames:
    - buf
    - header_table
    - hpack_capacity
    - stream_id
    - max_frame_size
    - status
    - headers
    - num_headers
    - server_name
    - content_length
    - is_end_stream
    argTypes:
    - h2o_buffer_t**
    - h2o_hpack_header_table_t*
    - uint32_t
    - uint32_t
    - size_t
    - int
    - h2o_header_t*
    - size_t
    - h2o_iovec_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1137
    functionDepth: 6
    functionLinenumber: 1137
    functionLinenumberEnd: 1177
    functionName: h2o_hpack_flatten_response
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 3
    functionsReached:
    - fixup_frame_headers
    - encode_header
    - header_table_adjust_size
    - encode_content_length
    - h2o_buffer_reserve
    - calc_headers_capacity
    - encode_header_token
    - encode_status
    linkageType: ''
    returnType: size_t
    signature: "size_t h2o_hpack_flatten_response(h2o_buffer_t **buf, h2o_hpack_header_table_t
      *header_table, uint32_t hpack_capacity,\n                                  uint32_t
      stream_id, size_t max_frame_size, int status, const h2o_header_t *headers,\n
      \                                 size_t num_headers, const h2o_iovec_t *server_name,
      size_t content_length, int is_end_stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calc_headers_capacity
      Src: /src/h2o/lib/http2/hpack.c:1182,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/hpack.c:1187,1
    - Dst: header_table_adjust_size
      Src: /src/h2o/lib/http2/hpack.c:1189,1
    - Dst: encode_header
      Src: /src/h2o/lib/http2/hpack.c:1191,1
    - Dst: fixup_frame_headers
      Src: /src/h2o/lib/http2/hpack.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - buf
    - header_table
    - hpack_capacity
    - stream_id
    - max_frame_size
    - headers
    - num_headers
    argTypes:
    - h2o_buffer_t**
    - h2o_hpack_header_table_t*
    - uint32_t
    - uint32_t
    - size_t
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1179
    functionDepth: 6
    functionLinenumber: 1179
    functionLinenumberEnd: 1196
    functionName: h2o_hpack_flatten_trailers
    functionSourceFile: /src/h2o/lib/http2/hpack.c
    functionUses: 1
    functionsReached:
    - fixup_frame_headers
    - encode_header
    - header_table_adjust_size
    - h2o_buffer_reserve
    - calc_headers_capacity
    linkageType: ''
    returnType: void
    signature: "void h2o_hpack_flatten_trailers(h2o_buffer_t **buf, h2o_hpack_header_table_t
      *header_table, uint32_t hpack_capacity,\n                                uint32_t
      stream_id, size_t max_frame_size, const h2o_header_t *headers, size_t num_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/http2/cache_digests.c:42,1
    - Dst: free
      Src: /src/h2o/lib/http2/cache_digests.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - h2o_cache_digests_frame_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: dispose_frame_vector
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void dispose_frame_vector(h2o_cache_digests_frame_vector_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispose_frame_vector
      Src: /src/h2o/lib/http2/cache_digests.c:48,1
    - Dst: dispose_frame_vector
      Src: /src/h2o/lib/http2/cache_digests.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - digests
    argTypes:
    - h2o_cache_digests_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: dispose_digests
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - dispose_frame_vector
    linkageType: ''
    returnType: void
    signature: void dispose_digests(h2o_cache_digests_t *digests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispose_digests
      Src: /src/h2o/lib/http2/cache_digests.c:54,1
    - Dst: free
      Src: /src/h2o/lib/http2/cache_digests.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - digests
    argTypes:
    - h2o_cache_digests_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: h2o_cache_digests_destroy
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 1
    functionsReached:
    - free
    - dispose_digests
    linkageType: ''
    returnType: void
    signature: void h2o_cache_digests_destroy(h2o_cache_digests_t *digests)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_decode_base64url
      Src: /src/h2o/lib/http2/cache_digests.c:67,1
    - Dst: golombset_decode_bits
      Src: /src/h2o/lib/http2/cache_digests.c:76,1
    - Dst: golombset_decode_bits
      Src: /src/h2o/lib/http2/cache_digests.c:76,1
    - Dst: golombset_decode_value
      Src: /src/h2o/lib/http2/cache_digests.c:82,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/cache_digests.c:86,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/cache_digests.c:92,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/cache_digests.c:96,1
    - Dst: free
      Src: /src/h2o/lib/http2/cache_digests.c:102,1
    - Dst: free
      Src: /src/h2o/lib/http2/cache_digests.c:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - digests
    - gcs_base64
    - gcs_base64_len
    - with_validators
    - complete
    argTypes:
    - h2o_cache_digests_t**
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 104
    functionName: load_digest
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - golombset_decode_bits
    - golombset_decode_value
    - free
    - h2o_mem_alloc
    - h2o_decode_base64url
    - h2o_vector_reserve
    linkageType: ''
    returnType: void
    signature: "void load_digest(h2o_cache_digests_t **digests, const char *gcs_base64,
      size_t gcs_base64_len, int with_validators,\n                        int complete)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/cache_digests.c:108,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/http2/cache_digests.c:118,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/http2/cache_digests.c:120,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/http2/cache_digests.c:121,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/cache_digests.c:121,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http2/cache_digests.c:122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/cache_digests.c:122,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http2/cache_digests.c:124,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/cache_digests.c:124,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/http2/cache_digests.c:126,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/cache_digests.c:126,1
    - Dst: h2o_cache_digests_destroy
      Src: /src/h2o/lib/http2/cache_digests.c:134,1
    - Dst: load_digest
      Src: /src/h2o/lib/http2/cache_digests.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - digests
    - value
    - len
    argTypes:
    - h2o_cache_digests_t**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 144
    functionName: h2o_cache_digests_load_header
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - h2o_cache_digests_destroy
    - h2o_lcstris
    - h2o_memis
    - h2o_next_token
    - load_digest
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_cache_digests_load_header(h2o_cache_digests_t **digests, const
      char *value, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/h2o/lib/http2/cache_digests.c:154,1
    - Dst: SHA256_Update
      Src: /src/h2o/lib/http2/cache_digests.c:155,1
    - Dst: SHA256_Update
      Src: /src/h2o/lib/http2/cache_digests.c:156,1
    - Dst: SHA256_Final
      Src: /src/h2o/lib/http2/cache_digests.c:157,1
    - Dst: __builtin_bswap64
      Src: /src/h2o/lib/http2/cache_digests.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - url
    - url_len
    - etag
    - etag_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: calc_hash
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 11
    functionsReached:
    - __builtin_bswap64
    - SHA256_Update
    - SHA256_Final
    - SHA256_Init
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_hash(const char *url, size_t url_len, const char *etag,
      size_t etag_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: cmp_key
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_key(const void *_x, const void *_y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calc_hash
      Src: /src/h2o/lib/http2/cache_digests.c:182,1
    - Dst: bsearch
      Src: /src/h2o/lib/http2/cache_digests.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - vector
    - url
    - url_len
    - etag
    - etag_len
    - is_fresh
    - is_complete
    argTypes:
    - h2o_cache_digests_frame_vector_t*
    - char*
    - size_t
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: lookup
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 9
    functionsReached:
    - bsearch
    - calc_hash
    linkageType: ''
    returnType: int
    signature: "int lookup(h2o_cache_digests_frame_vector_t *vector, const char *url,
      size_t url_len, const char *etag, size_t etag_len,\n                  int is_fresh,
      int is_complete)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/h2o/lib/http2/cache_digests.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - digests
    - url
    - url_len
    argTypes:
    - h2o_cache_digests_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: h2o_cache_digests_lookup_by_url
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 2
    functionsReached:
    - lookup
    linkageType: ''
    returnType: h2o_cache_digests_state_t
    signature: h2o_cache_digests_state_t h2o_cache_digests_lookup_by_url(h2o_cache_digests_t
      *digests, const char *url, size_t url_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/h2o/lib/http2/cache_digests.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - digests
    - url
    - url_len
    - etag
    - etag_len
    argTypes:
    - h2o_cache_digests_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: h2o_cache_digests_lookup_by_url_and_etag
    functionSourceFile: /src/h2o/lib/http2/cache_digests.c
    functionUses: 0
    functionsReached:
    - lookup
    linkageType: ''
    returnType: h2o_cache_digests_state_t
    signature: "h2o_cache_digests_state_t h2o_cache_digests_lookup_by_url_and_etag(h2o_cache_digests_t
      *digests, const char *url, size_t url_len,\n                                                                   const
      char *etag, size_t etag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/h2o/lib/http2/casper.c:43,1
    - Dst: SHA1_Update
      Src: /src/h2o/lib/http2/casper.c:44,1
    - Dst: SHA1_Final
      Src: /src/h2o/lib/http2/casper.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - casper
    - path
    - path_len
    argTypes:
    - h2o_http2_casper_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: calc_key
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 1
    functionsReached:
    - SHA1_Update
    - SHA1_Init
    - SHA1_Final
    linkageType: ''
    returnType: unsigned
    signature: unsigned calc_key(h2o_http2_casper_t *casper, const char *path, size_t
      path_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/casper.c:57,1
    - Dst: memset
      Src: /src/h2o/lib/http2/casper.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - capacity_bits
    - remainder_bits
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: h2o_http2_casper_create
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 5
    functionsReached:
    - h2o_mem_alloc
    - memset
    linkageType: ''
    returnType: h2o_http2_casper_t
    signature: h2o_http2_casper_t *h2o_http2_casper_create(unsigned capacity_bits,
      unsigned remainder_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:69,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:70,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - casper
    argTypes:
    - h2o_http2_casper_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: h2o_http2_casper_destroy
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_http2_casper_destroy(h2o_http2_casper_t *casper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - casper
    argTypes:
    - h2o_http2_casper_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: h2o_http2_casper_num_entries
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h2o_http2_casper_num_entries(h2o_http2_casper_t *casper)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calc_key
      Src: /src/h2o/lib/http2/casper.c:81,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:94,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/casper.c:96,1
    - Dst: memmove
      Src: /src/h2o/lib/http2/casper.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - casper
    - path
    - path_len
    - set
    argTypes:
    - h2o_http2_casper_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: h2o_http2_casper_lookup
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 3
    functionsReached:
    - calc_key
    - h2o_vector_reserve
    - free
    - memmove
    linkageType: ''
    returnType: int
    signature: int h2o_http2_casper_lookup(h2o_http2_casper_t *casper, const char
      *path, size_t path_len, int set)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/http2/casper.c:109,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/casper.c:109,1
    - Dst: h2o_decode_base64url
      Src: /src/h2o/lib/http2/casper.c:113,1
    - Dst: golombset_decode
      Src: /src/h2o/lib/http2/casper.c:119,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:121,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/casper.c:127,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/casper.c:134,1
    - Dst: memcpy
      Src: /src/h2o/lib/http2/casper.c:135,1
    - Dst: memset
      Src: /src/h2o/lib/http2/casper.c:140,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/casper.c:141,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:162,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:167,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:168,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - casper
    - cookie
    - cookie_len
    argTypes:
    - h2o_http2_casper_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 169
    functionName: h2o_http2_casper_consume_cookie
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 3
    functionsReached:
    - golombset_decode
    - H2O_STRLIT
    - memcmp
    - free
    - h2o_mem_alloc
    - h2o_decode_base64url
    - memcpy
    - h2o_vector_reserve
    - memset
    linkageType: ''
    returnType: void
    signature: void h2o_http2_casper_consume_cookie(h2o_http2_casper_t *casper, const
      char *cookie, size_t cookie_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/http2/casper.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - s
    - l
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: append_str
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t append_str(char *dst, const char *s, size_t l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: golombset_encode
      Src: /src/h2o/lib/http2/casper.c:189,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:191,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/casper.c:193,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/casper.c:196,1
    - Dst: append_str
      Src: /src/h2o/lib/http2/casper.c:199,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/casper.c:199,1
    - Dst: h2o_base64_encode
      Src: /src/h2o/lib/http2/casper.c:200,1
    - Dst: append_str
      Src: /src/h2o/lib/http2/casper.c:201,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/casper.c:201,1
    - Dst: free
      Src: /src/h2o/lib/http2/casper.c:204,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/casper.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - casper
    argTypes:
    - h2o_http2_casper_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: h2o_http2_casper_get_cookie
    functionSourceFile: /src/h2o/lib/http2/casper.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - golombset_encode
    - free
    - append_str
    - h2o_mem_alloc
    - h2o_base64_encode
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t h2o_http2_casper_get_cookie(h2o_http2_casper_t *casper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: sz_min
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sz_min(size_t x, size_t y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/stream.c:39,1
    - Dst: memset
      Src: /src/h2o/lib/http2/stream.c:42,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/http2/stream.c:49,1
    - Dst: h2o_http2_window_init
      Src: /src/h2o/lib/http2/stream.c:50,1
    - Dst: h2o_init_request
      Src: /src/h2o/lib/http2/stream.c:54,1
    - Dst: memset
      Src: /src/h2o/lib/http2/stream.c:57,1
    - Dst: h2o_http2_conn_register_stream
      Src: /src/h2o/lib/http2/stream.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - conn
    - stream_id
    - src_req
    - received_priority
    argTypes:
    - h2o_http2_conn_t*
    - uint32_t
    - h2o_req_t*
    - h2o_http2_priority_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: h2o_http2_stream_open
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 4
    functionsReached:
    - h2o_mem_alloc
    - h2o_http2_conn_register_stream
    - h2o_init_request
    - memset
    - h2o_http2_window_init
    linkageType: ''
    returnType: h2o_http2_stream_t
    signature: "h2o_http2_stream_t *h2o_http2_stream_open(h2o_http2_conn_t *conn,
      uint32_t stream_id, h2o_req_t *src_req,\n                                          const
      h2o_http2_priority_t *received_priority)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_unregister_stream
      Src: /src/h2o/lib/http2/stream.c:70,1
    - Dst: h2o_cache_digests_destroy
      Src: /src/h2o/lib/http2/stream.c:72,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/stream.c:74,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/http2/stream.c:75,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/http2/stream.c:77,1
    - Dst: free
      Src: /src/h2o/lib/http2/stream.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: h2o_http2_stream_close
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 2
    functionsReached:
    - h2o_http2_conn_unregister_stream
    - h2o_cache_digests_destroy
    - free
    - h2o_buffer_dispose
    - h2o_dispose_request
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_close(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_close
      Src: /src/h2o/lib/http2/stream.c:88,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:93,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/stream.c:98,1
    - Dst: h2o_http2_stream_close
      Src: /src/h2o/lib/http2/stream.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 9
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: h2o_http2_stream_reset
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 9
    functionsReached:
    - h2o_linklist_is_linked
    - h2o_http2_stream_set_state
    - h2o_http2_stream_close
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_reset(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_conn_get_buffer_window
      Src: /src/h2o/lib/http2/stream.c:111,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/stream.c:113,1
    - Dst: sz_min
      Src: /src/h2o/lib/http2/stream.c:115,1
    - Dst: sz_min
      Src: /src/h2o/lib/http2/stream.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: calc_max_payload_size
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 1
    functionsReached:
    - sz_min
    - h2o_http2_window_get_avail
    - h2o_http2_conn_get_buffer_window
    linkageType: ''
    returnType: size_t
    signature: size_t calc_max_payload_size(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:121,1
    - Dst: h2o_http2_encode_frame_header
      Src: /src/h2o/lib/http2/stream.c:125,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/http2/stream.c:127,1
    - Dst: h2o_http2_window_consume_window
      Src: /src/h2o/lib/http2/stream.c:128,1
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/http2/stream.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - conn
    - stream
    - outbuf
    - length
    - send_state
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - h2o_buffer_t**
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (outbuf != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/h2o/lib/http2/stream.c
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: commit_data_header
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - h2o_http2_encode_rst_stream_frame
    - assert
    - h2o_http2_window_consume_window
    - h2o_http2_encode_frame_header
    linkageType: ''
    returnType: void
    signature: "void commit_data_header(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, h2o_buffer_t **outbuf, size_t length,\n                               h2o_send_state_t
      send_state)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calc_max_payload_size
      Src: /src/h2o/lib/http2/stream.c:146,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/http2/stream.c:151,1
    - Dst: sz_min
      Src: /src/h2o/lib/http2/stream.c:156,1
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/http2/stream.c:158,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/http2/stream.c:174,1
    - Dst: commit_data_header
      Src: /src/h2o/lib/http2/stream.c:179,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - conn
    - stream
    - bufs
    - bufcnt
    - send_state
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 184
    functionName: send_data
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 11
    functionsReached:
    - sz_min
    - h2o_http2_encode_rst_stream_frame
    - commit_data_header
    - calc_max_payload_size
    - h2o_buffer_reserve
    - h2o_send_state_is_in_progress
    linkageType: ''
    returnType: h2o_sendvec_t
    signature: "h2o_sendvec_t *send_data(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream, h2o_sendvec_t *bufs, size_t bufcnt,\n                                h2o_send_state_t
      send_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_fill_mime_attributes
      Src: /src/h2o/lib/http2/stream.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: is_blocking_asset
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - h2o_req_fill_mime_attributes
    linkageType: ''
    returnType: int
    signature: int is_blocking_asset(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:195,1
    - Dst: h2o_http2_scheduler_deactivate
      Src: /src/h2o/lib/http2/stream.c:196,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/stream.c:197,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/stream.c:198,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/stream.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: request_write_and_close
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - h2o_http2_scheduler_deactivate
    - h2o_http2_conn_request_write
    - h2o_linklist_is_linked
    - h2o_http2_stream_set_state
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void request_write_and_close(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/http2/stream.c:205,1
    - Dst: request_write_and_close
      Src: /src/h2o/lib/http2/stream.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: send_refused_stream
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - request_write_and_close
    - h2o_http2_encode_rst_stream_frame
    linkageType: ''
    returnType: void
    signature: void send_refused_stream(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: h2o_gettimeofday
      Src: /src/h2o/lib/http2/stream.c:211,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/stream.c:214,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/stream.c:218,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/http2/stream.c:220,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/http2/stream.c:220,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:220,1
    - Dst: h2o_cache_digests_lookup_by_url_and_etag
      Src: /src/h2o/lib/http2/stream.c:223,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/stream.c:232,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:233,1
    - Dst: is_blocking_asset
      Src: /src/h2o/lib/http2/stream.c:239,1
    - Dst: h2o_http2_casper_lookup
      Src: /src/h2o/lib/http2/stream.c:240,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/stream.c:242,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/stream.c:252,1
    - Dst: h2o_http2_casper_get_cookie
      Src: /src/h2o/lib/http2/stream.c:259,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/http2/stream.c:260,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/stream.c:264,1
    - Dst: h2o_http2_stream_send_push_promise
      Src: /src/h2o/lib/http2/stream.c:267,1
    - Dst: is_blocking_asset
      Src: /src/h2o/lib/http2/stream.c:269,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/lib/http2/stream.c:270,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/http2/stream.c:273,1
    - Dst: h2o_absprio_parse_priority
      Src: /src/h2o/lib/http2/stream.c:278,1
    - Dst: h2o_absprio_urgency_to_chromium_weight
      Src: /src/h2o/lib/http2/stream.c:279,1
    - Dst: h2o_http2_scheduler_find_parent_by_weight
      Src: /src/h2o/lib/http2/stream.c:280,1
    - Dst: h2o_http2_scheduler_get_parent
      Src: /src/h2o/lib/http2/stream.c:284,1
    - Dst: h2o_http2_scheduler_get_parent
      Src: /src/h2o/lib/http2/stream.c:286,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/lib/http2/stream.c:287,1
    - Dst: h2o_http2_conn_preserve_stream_scheduler
      Src: /src/h2o/lib/http2/stream.c:292,1
    - Dst: h2o_http2_scheduler_open
      Src: /src/h2o/lib/http2/stream.c:294,1
    - Dst: h2o_http2_scheduler_get_parent
      Src: /src/h2o/lib/http2/stream.c:297,1
    - Dst: is_blocking_asset
      Src: /src/h2o/lib/http2/stream.c:297,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/lib/http2/stream.c:301,1
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/stream.c:306,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/http2/stream.c:307,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:307,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:308,1
    - Dst: h2o_add_server_timing_header
      Src: /src/h2o/lib/http2/stream.c:310,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/lib/http2/stream.c:311,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/stream.c:315,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:316,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/http2/stream.c:321,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:321,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/http2/stream.c:322,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:323,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/stream.c:324,1
    - Dst: h2o_http2_encode_rst_stream_frame
      Src: /src/h2o/lib/http2/stream.c:327,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/stream.c:328,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 81
    argCount: 3
    argNames:
    - conn
    - stream
    - is_end_stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 331
    functionName: send_headers
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - h2o_http2_conn_preserve_stream_scheduler
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_hpack_flatten_response
    - h2o_http2_casper_lookup
    - h2o_http2_scheduler_get_parent
    - h2o_add_header
    - h2o_find_header
    - h2o_cache_digests_lookup_by_url_and_etag
    - h2o_http2_stream_set_state
    - h2o_linklist_insert
    - h2o_http2_stream_is_push
    - h2o_http2_scheduler_find_parent_by_weight
    - h2o_add_header_by_str
    - h2o_http2_scheduler_rebind
    - h2o_http2_scheduler_get_weight
    - h2o_concat
    - h2o_http2_conn_request_write
    - h2o_http2_encode_rst_stream_frame
    - h2o_http2_scheduler_open
    - h2o_http2_casper_get_cookie
    - h2o_gettimeofday
    - h2o_http2_stream_send_push_promise
    - h2o_absprio_urgency_to_chromium_weight
    - is_blocking_asset
    - h2o_absprio_parse_priority
    - h2o_add_server_timing_header
    linkageType: ''
    returnType: int
    signature: int send_headers(h2o_http2_conn_t *conn, h2o_http2_stream_t *stream,
      int is_end_stream)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/stream.c:335,1
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:338,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/http2/stream.c:338,1
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:339,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/stream.c:342,1
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:345,1
    - Dst: h2o_http2_conn_register_for_replay
      Src: /src/h2o/lib/http2/stream.c:346,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:357,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:360,1
    - Dst: send_refused_stream
      Src: /src/h2o/lib/http2/stream.c:364,1
    - Dst: h2o_probe_log_response
      Src: /src/h2o/lib/http2/stream.c:367,1
    - Dst: send_headers
      Src: /src/h2o/lib/http2/stream.c:368,1
    - Dst: request_write_and_close
      Src: /src/h2o/lib/http2/stream.c:371,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:377,1
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:384,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/stream.c:388,1
    - Dst: assert
      Src: /src/h2o/lib/http2/stream.c:394,1
    - Dst: h2o_http2_conn_register_for_proceed_callback
      Src: /src/h2o/lib/http2/stream.c:396,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 5
    argNames:
    - self
    - req
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (stream->_data.size == 0)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/h2o/lib/http2/stream.c
    - condition: (h2o_send_state_is_in_progress(stream->send_state))
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/h2o/lib/http2/stream.c
    - condition: (stream->state <= H2O_HTTP2_STREAM_STATE_SEND_HEADERS)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/h2o/lib/http2/stream.c
    - condition: (empty_payload_allowed || stream->_data.size != 0 || !"h2o_data must
        only be called when there is progress")
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/h2o/lib/http2/stream.c
    - condition: (!"cannot be in a receiving state")
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/h2o/lib/http2/stream.c
    constantsTouched: []
    func_position:
      end: 397
      start: 333
    functionDepth: 8
    functionLinenumber: 333
    functionLinenumberEnd: 397
    functionName: finalostream_send
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 1
    functionsReached:
    - request_write_and_close
    - h2o_http2_stream_set_blocked_by_server
    - H2O_STRUCT_FROM_MEMBER
    - h2o_vector_reserve
    - send_refused_stream
    - send_headers
    - h2o_http2_conn_register_for_replay
    - h2o_http2_conn_register_for_proceed_callback
    - h2o_send_state_is_in_progress
    - h2o_probe_log_response
    - assert
    - h2o_http2_stream_set_state
    linkageType: ''
    returnType: void
    signature: void finalostream_send(h2o_ostream_t *self, h2o_req_t *req, h2o_sendvec_t
      *bufs, size_t bufcnt, h2o_send_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/stream.c:401,1
    - Dst: h2o_hpack_flatten_response
      Src: /src/h2o/lib/http2/stream.c:404,1
    - Dst: h2o_http2_conn_request_write
      Src: /src/h2o/lib/http2/stream.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: finalostream_send_informational
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 0
    functionsReached:
    - h2o_http2_conn_request_write
    - H2O_STRUCT_FROM_MEMBER
    - h2o_hpack_flatten_response
    linkageType: ''
    returnType: void
    signature: void finalostream_send_informational(h2o_ostream_t *self, h2o_req_t
      *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/stream.c:412,1
    - Dst: send_data
      Src: /src/h2o/lib/http2/stream.c:415,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:420,1
    - Dst: h2o_http2_stream_set_state
      Src: /src/h2o/lib/http2/stream.c:425,1
    - Dst: memmove
      Src: /src/h2o/lib/http2/stream.c:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 436
    functionName: h2o_http2_stream_send_pending_data
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 1
    functionsReached:
    - h2o_http2_window_get_avail
    - memmove
    - h2o_http2_stream_set_state
    - send_data
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_send_pending_data(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_close
      Src: /src/h2o/lib/http2/stream.c:444,1
    - Dst: h2o_http2_stream_set_blocked_by_server
      Src: /src/h2o/lib/http2/stream.c:451,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/lib/http2/stream.c:452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - stream
    argTypes:
    - h2o_http2_conn_t*
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 438
    functionDepth: 9
    functionLinenumber: 438
    functionLinenumberEnd: 454
    functionName: h2o_http2_stream_proceed
    functionSourceFile: /src/h2o/lib/http2/stream.c
    functionUses: 1
    functionsReached:
    - h2o_http2_stream_set_blocked_by_server
    - h2o_proceed_response
    - h2o_http2_stream_close
    linkageType: ''
    returnType: void
    signature: void h2o_http2_stream_proceed(h2o_http2_conn_t *conn, h2o_http2_stream_t
      *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/scheduler.c:39,1
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/scheduler.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_http2_scheduler_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: queue_init
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 2
    functionsReached:
    - h2o_linklist_init_anchor
    linkageType: ''
    returnType: void
    signature: void queue_init(h2o_http2_scheduler_queue_t *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_http2_scheduler_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: queue_is_empty
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    linkageType: ''
    returnType: int
    signature: int queue_is_empty(h2o_http2_scheduler_queue_t *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:75,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/scheduler.c:75,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:79,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:83,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - queue
    - node
    - weight
    argTypes:
    - h2o_http2_scheduler_queue_t*
    - h2o_http2_scheduler_queue_node_t*
    - uint16_t
    assertStmts:
    - condition: (!h2o_linklist_is_linked(&node->_link))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (1 <= weight)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 93
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 93
    functionName: queue_set
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void queue_set(h2o_http2_scheduler_queue_t *queue, h2o_http2_scheduler_queue_node_t
      *node, uint16_t weight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:97,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/scheduler.c:97,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_http2_scheduler_queue_node_t*
    assertStmts:
    - condition: (h2o_linklist_is_linked(&node->_link))
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: queue_unset
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void queue_unset(h2o_http2_scheduler_queue_node_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:103,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:105,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:106,1
    - Dst: __builtin_clzll
      Src: /src/h2o/lib/http2/scheduler.c:111,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:114,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:116,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:117,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - queue
    argTypes:
    - h2o_http2_scheduler_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: queue_pop
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - __builtin_clzll
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - h2o_linklist_unlink
    linkageType: ''
    returnType: h2o_http2_scheduler_queue_node_t
    signature: h2o_http2_scheduler_queue_node_t *queue_pop(h2o_http2_scheduler_queue_t
      *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_init_anchor
      Src: /src/h2o/lib/http2/scheduler.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - node
    - parent
    argTypes:
    - h2o_http2_scheduler_node_t*
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: init_node
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_init_anchor
    linkageType: ''
    returnType: void
    signature: void init_node(h2o_http2_scheduler_node_t *node, h2o_http2_scheduler_node_t
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/http2/scheduler.c:136,1
    - Dst: queue_init
      Src: /src/h2o/lib/http2/scheduler.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: get_queue
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - queue_init
    linkageType: ''
    returnType: h2o_http2_scheduler_queue_t
    signature: h2o_http2_scheduler_queue_t *get_queue(h2o_http2_scheduler_node_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_set
      Src: /src/h2o/lib/http2/scheduler.c:154,1
    - Dst: get_queue
      Src: /src/h2o/lib/http2/scheduler.c:154,1
    - Dst: incr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: incr_active_cnt
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - queue_set
    - incr_active_cnt
    - get_queue
    linkageType: ''
    returnType: void
    signature: void incr_active_cnt(h2o_http2_scheduler_node_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_unset
      Src: /src/h2o/lib/http2/scheduler.c:171,1
    - Dst: decr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: decr_active_cnt
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - decr_active_cnt
    - queue_unset
    linkageType: ''
    returnType: void
    signature: void decr_active_cnt(h2o_http2_scheduler_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:178,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:180,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:183,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/lib/http2/scheduler.c:186,1
    - Dst: h2o_http2_scheduler_get_weight
      Src: /src/h2o/lib/http2/scheduler.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - added
    argTypes:
    - h2o_http2_scheduler_node_t*
    - h2o_http2_scheduler_openref_t*
    assertStmts:
    - condition: (parent->_all_refs.prev == &added->_all_link)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: convert_to_exclusive
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - h2o_linklist_is_empty
    - h2o_http2_scheduler_rebind
    - h2o_http2_scheduler_get_weight
    - H2O_STRUCT_FROM_MEMBER
    - assert
    linkageType: ''
    returnType: void
    signature: void convert_to_exclusive(h2o_http2_scheduler_node_t *parent, h2o_http2_scheduler_openref_t
      *added)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_node
      Src: /src/h2o/lib/http2/scheduler.c:193,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:201,1
    - Dst: convert_to_exclusive
      Src: /src/h2o/lib/http2/scheduler.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - ref
    - parent
    - weight
    - exclusive
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - h2o_http2_scheduler_node_t*
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: h2o_http2_scheduler_open
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 12
    functionsReached:
    - init_node
    - convert_to_exclusive
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: "void h2o_http2_scheduler_open(h2o_http2_scheduler_openref_t *ref,
      h2o_http2_scheduler_node_t *parent, uint16_t weight,\n                              int
      exclusive)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:209,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/lib/http2/scheduler.c:209,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:212,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:217,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:220,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:224,1
    - Dst: h2o_http2_scheduler_rebind
      Src: /src/h2o/lib/http2/scheduler.c:230,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:231,1
    - Dst: free
      Src: /src/h2o/lib/http2/scheduler.c:234,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:238,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:240,1
    - Dst: queue_unset
      Src: /src/h2o/lib/http2/scheduler.c:241,1
    - Dst: decr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:242,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts:
    - condition: (h2o_http2_scheduler_is_open(ref))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (total_weight != 0)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (ref->_active_cnt == 0)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (ref->_active_cnt == 1)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: h2o_http2_scheduler_close
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 10
    functionsReached:
    - h2o_http2_scheduler_is_open
    - h2o_linklist_is_empty
    - h2o_http2_scheduler_rebind
    - H2O_STRUCT_FROM_MEMBER
    - free
    - queue_unset
    - h2o_linklist_unlink
    - decr_active_cnt
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_close(h2o_http2_scheduler_openref_t *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_node
      Src: /src/h2o/lib/http2/scheduler.c:250,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:260,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:264,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:265,1
    - Dst: h2o_linklist_insert_list
      Src: /src/h2o/lib/http2/scheduler.c:269,1
    - Dst: free
      Src: /src/h2o/lib/http2/scheduler.c:273,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:278,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:279,1
    - Dst: h2o_linklist_is_linked
      Src: /src/h2o/lib/http2/scheduler.c:282,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:283,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - h2o_http2_scheduler_openref_t*
    assertStmts:
    - condition: (child->node._parent == &src->node)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 286
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 286
    functionName: h2o_http2_scheduler_relocate
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - init_node
    - free
    - h2o_linklist_insert_list
    - h2o_linklist_unlink
    - h2o_linklist_is_linked
    - assert
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_relocate(h2o_http2_scheduler_openref_t *dst,
      h2o_http2_scheduler_openref_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/http2/scheduler.c:291,1
    - Dst: h2o_linklist_insert
      Src: /src/h2o/lib/http2/scheduler.c:292,1
    - Dst: queue_unset
      Src: /src/h2o/lib/http2/scheduler.c:295,1
    - Dst: queue_set
      Src: /src/h2o/lib/http2/scheduler.c:296,1
    - Dst: get_queue
      Src: /src/h2o/lib/http2/scheduler.c:296,1
    - Dst: decr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:297,1
    - Dst: incr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:298,1
    - Dst: convert_to_exclusive
      Src: /src/h2o/lib/http2/scheduler.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ref
    - new_parent
    - exclusive
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - h2o_http2_scheduler_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: do_rebind
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 0
    functionsReached:
    - get_queue
    - incr_active_cnt
    - convert_to_exclusive
    - queue_set
    - queue_unset
    - h2o_linklist_unlink
    - decr_active_cnt
    - h2o_linklist_insert
    linkageType: ''
    returnType: void
    signature: void do_rebind(h2o_http2_scheduler_openref_t *ref, h2o_http2_scheduler_node_t
      *new_parent, int exclusive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:310,1
    - Dst: h2o_http2_scheduler_is_open
      Src: /src/h2o/lib/http2/scheduler.c:310,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:311,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:312,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:313,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:323,1
    - Dst: do_rebind
      Src: /src/h2o/lib/http2/scheduler.c:329,1
    - Dst: do_rebind
      Src: /src/h2o/lib/http2/scheduler.c:335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ref
    - new_parent
    - weight
    - exclusive
    argTypes:
    - h2o_http2_scheduler_openref_t*
    - h2o_http2_scheduler_node_t*
    - uint16_t
    - int
    assertStmts:
    - condition: (h2o_http2_scheduler_is_open(ref))
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (1 <= weight)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (weight <= 257)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/h2o/lib/http2/scheduler.c
    - condition: (&ref->node != new_parent)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 336
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 336
    functionName: h2o_http2_scheduler_rebind
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 7
    functionsReached:
    - h2o_http2_scheduler_is_open
    - h2o_linklist_is_empty
    - assert
    - do_rebind
    linkageType: ''
    returnType: void
    signature: "void h2o_http2_scheduler_rebind(h2o_http2_scheduler_openref_t *ref,
      h2o_http2_scheduler_node_t *new_parent, uint16_t weight,\n                                int
      exclusive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_node
      Src: /src/h2o/lib/http2/scheduler.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: h2o_http2_scheduler_init
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 9
    functionsReached:
    - init_node
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_init(h2o_http2_scheduler_node_t *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/http2/scheduler.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: h2o_http2_scheduler_dispose
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 9
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_dispose(h2o_http2_scheduler_node_t *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: h2o_http2_scheduler_deactivate
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 3
    functionsReached:
    - decr_active_cnt
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_deactivate(h2o_http2_scheduler_openref_t *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: incr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - h2o_http2_scheduler_openref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: h2o_http2_scheduler_activate
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 9
    functionsReached:
    - incr_active_cnt
    linkageType: ''
    returnType: void
    signature: void h2o_http2_scheduler_activate(h2o_http2_scheduler_openref_t *ref)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: queue_pop
      Src: /src/h2o/lib/http2/scheduler.c:371,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:375,1
    - Dst: queue_set
      Src: /src/h2o/lib/http2/scheduler.c:379,1
    - Dst: assert
      Src: /src/h2o/lib/http2/scheduler.c:383,1
    - Dst: cb
      Src: /src/h2o/lib/http2/scheduler.c:386,1
    - Dst: queue_set
      Src: /src/h2o/lib/http2/scheduler.c:388,1
    - Dst: queue_set
      Src: /src/h2o/lib/http2/scheduler.c:392,1
    - Dst: decr_active_cnt
      Src: /src/h2o/lib/http2/scheduler.c:394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - node
    - cb
    - cb_arg
    argTypes:
    - h2o_http2_scheduler_node_t*
    - h2o_http2_scheduler_run_cb
    - void*
    assertStmts:
    - condition: (ref->_active_cnt != 0)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/h2o/lib/http2/scheduler.c
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: proceed
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 6
    functionsReached:
    - H2O_STRUCT_FROM_MEMBER
    - queue_pop
    - cb
    - queue_set
    - decr_active_cnt
    - assert
    linkageType: ''
    returnType: int
    signature: int proceed(h2o_http2_scheduler_node_t *node, h2o_http2_scheduler_run_cb
      cb, void *cb_arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:404,1
    - Dst: proceed
      Src: /src/h2o/lib/http2/scheduler.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - root
    - cb
    - cb_arg
    argTypes:
    - h2o_http2_scheduler_node_t*
    - h2o_http2_scheduler_run_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: h2o_http2_scheduler_run
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 7
    functionsReached:
    - proceed
    - queue_is_empty
    linkageType: ''
    returnType: int
    signature: int h2o_http2_scheduler_run(h2o_http2_scheduler_node_t *root, h2o_http2_scheduler_run_cb
      cb, void *cb_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - h2o_http2_scheduler_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: h2o_http2_scheduler_is_active
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 1
    functionsReached:
    - queue_is_empty
    linkageType: ''
    returnType: int
    signature: int h2o_http2_scheduler_is_active(h2o_http2_scheduler_node_t *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/http2/scheduler.c:422,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/http2/scheduler.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - root
    - new_weight
    argTypes:
    - h2o_http2_scheduler_node_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 434
    functionName: h2o_http2_scheduler_find_parent_by_weight
    functionSourceFile: /src/h2o/lib/http2/scheduler.c
    functionUses: 2
    functionsReached:
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: h2o_http2_scheduler_node_t
    signature: h2o_http2_scheduler_node_t *h2o_http2_scheduler_find_parent_by_weight(h2o_http2_scheduler_node_t
      *root, uint16_t new_weight)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: h2o_http2_stream_is_push
      Src: /src/h2o/lib/http2/http2_debug_state.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - stream
    argTypes:
    - h2o_http2_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 63
    functionName: get_debug_state_string
    functionSourceFile: /src/h2o/lib/http2/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - h2o_http2_stream_is_push
    linkageType: ''
    returnType: char
    signature: char *get_debug_state_string(h2o_http2_stream_t *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/h2o/lib/http2/http2_debug_state.c:65,1
    - Dst: va_start
      Src: /src/h2o/lib/http2/http2_debug_state.c:70,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/http2/http2_debug_state.c:71,1
    - Dst: va_end
      Src: /src/h2o/lib/http2/http2_debug_state.c:72,1
    - Dst: assert
      Src: /src/h2o/lib/http2/http2_debug_state.c:74,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/http2_debug_state.c:77,1
    - Dst: va_start
      Src: /src/h2o/lib/http2/http2_debug_state.c:79,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/http2/http2_debug_state.c:80,1
    - Dst: va_end
      Src: /src/h2o/lib/http2/http2_debug_state.c:81,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/http2/http2_debug_state.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - chunks
    - fmt
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_vector_t*
    - char*
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/h2o/lib/http2/http2_debug_state.c
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: append_chunk
    functionSourceFile: /src/h2o/lib/http2/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - va_start
    - h2o_mem_alloc_pool
    - vsnprintf
    - format
    - h2o_vector_reserve
    - va_end
    - assert
    linkageType: ''
    returnType: void
    signature: "void append_chunk(h2o_mem_pool_t *pool, h2o_iovec_vector_t *chunks,
      const char *fmt,\n                                                               ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hpack_header_table_get
      Src: /src/h2o/lib/http2/http2_debug_state.c:91,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - chunks
    - header_table
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_vector_t*
    - h2o_hpack_header_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: append_header_table_chunks
    functionSourceFile: /src/h2o/lib/http2/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - h2o_hpack_header_table_get
    - append_chunk
    linkageType: ''
    returnType: void
    signature: void append_header_table_chunks(h2o_mem_pool_t *pool, h2o_iovec_vector_t
      *chunks, h2o_hpack_header_table_t *header_table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/http2/http2_debug_state.c:107,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:110,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:111,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:113,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:137,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:138,1
    - Dst: kh_foreach_value
      Src: /src/h2o/lib/http2/http2_debug_state.c:143,1
    - Dst: get_debug_state_string
      Src: /src/h2o/lib/http2/http2_debug_state.c:144,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:148,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:158,1
    - Dst: h2o_http2_window_get_avail
      Src: /src/h2o/lib/http2/http2_debug_state.c:159,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:169,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:175,1
    - Dst: append_header_table_chunks
      Src: /src/h2o/lib/http2/http2_debug_state.c:181,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:184,1
    - Dst: append_header_table_chunks
      Src: /src/h2o/lib/http2/http2_debug_state.c:190,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:192,1
    - Dst: append_chunk
      Src: /src/h2o/lib/http2/http2_debug_state.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - req
    - hpack_enabled
    argTypes:
    - h2o_req_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 203
    functionName: h2o_http2_get_debug_state
    functionSourceFile: /src/h2o/lib/http2/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - append_header_table_chunks
    - h2o_http2_window_get_avail
    - h2o_mem_alloc_pool
    - get_debug_state_string
    - append_chunk
    - kh_foreach_value
    linkageType: ''
    returnType: h2o_http2_debug_state_t
    signature: h2o_http2_debug_state_t *h2o_http2_get_debug_state(h2o_req_t *req,
      int hpack_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FREEZE_STRING
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEZE_STRING(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o__fatal
      Src: /src/h2o/lib/handler/mruby.c:51,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:51,1
    - Dst: mrb_inspect
      Src: /src/h2o/lib/handler/mruby.c:51,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - mess
    - file
    - line
    argTypes:
    - mrb_state*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: h2o_mruby__abort_exc
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - mrb_obj_value
    - mrb_inspect
    - h2o__fatal
    linkageType: ''
    returnType: void
    signature: void h2o_mruby__abort_exc(mrb_state *mrb, const char *mess, const char
      *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby__abort_exc
      Src: /src/h2o/lib/handler/mruby.c:57,1
    - Dst: mrb_str_new_static
      Src: /src/h2o/lib/handler/mruby.c:58,1
    - Dst: mrb_str_new
      Src: /src/h2o/lib/handler/mruby.c:58,1
    - Dst: h2o_mruby__abort_exc
      Src: /src/h2o/lib/handler/mruby.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - mrb
    - s
    - len
    - is_static
    - file
    - line
    argTypes:
    - mrb_state*
    - char*
    - size_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 8
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: h2o_mruby__new_str
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_static
    - mrb_str_new
    - h2o_mruby__abort_exc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby__new_str(mrb_state *mrb, const char *s, size_t
      len, int is_static, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - _generator
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: on_gc_dispose_generator
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_generator(mrb_state *mrb, void *_generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:79,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - _error_stream
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: on_gc_dispose_error_stream
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - free
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_error_stream(mrb_state *mrb, void *_error_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: h2o_mruby_get_generator
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: h2o_mruby_generator_t
    signature: h2o_mruby_generator_t *h2o_mruby_get_generator(mrb_state *mrb, mrb_value
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - obj
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: h2o_mruby_get_error_stream
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: h2o_mruby_error_stream_t
    signature: h2o_mruby_error_stream_t *h2o_mruby_get_error_stream(mrb_state *mrb,
      mrb_value obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/h2o/lib/handler/mruby.c:101,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/lib/handler/mruby.c:103,1
    - Dst: mrb_gv_set
      Src: /src/h2o/lib/handler/mruby.c:104,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:104,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:104,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby.c:104,1
    - Dst: h2o_mruby_eval_expr
      Src: /src/h2o/lib/handler/mruby.c:106,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:107,1
    - Dst: h2o_mruby_eval_expr
      Src: /src/h2o/lib/handler/mruby.c:110,1
    - Dst: mrb_obj_is_instance_of
      Src: /src/h2o/lib/handler/mruby.c:113,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:113,1
    - Dst: mrb_class_get
      Src: /src/h2o/lib/handler/mruby.c:113,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:116,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:117,1
    - Dst: mrb_inspect
      Src: /src/h2o/lib/handler/mruby.c:117,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: h2o_mruby_setup_globals
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - H2O_TO_STR
    - mrb_inspect
    - RSTRING_PTR
    - mrb_intern_lit
    - h2o_mruby_assert
    - mrb_gv_set
    - getenv
    - h2o_fatal
    - mrb_obj_value
    - h2o_mruby_eval_expr
    - mrb_class_get
    - mrb_obj_is_instance_of
    - strlen
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_setup_globals(mrb_state *mrb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby.c:123,1
    - Dst: H2O_MRUBY_EXEC_GUARD
      Src: /src/h2o/lib/handler/mruby.c:124,1
    - Dst: mrb_str_to_str
      Src: /src/h2o/lib/handler/mruby.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: h2o_mruby_to_str
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_str_to_str
    - H2O_MRUBY_EXEC_GUARD
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_to_str(mrb_state *mrb, mrb_value v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:132,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby.c:133,1
    - Dst: mrb_type
      Src: /src/h2o/lib/handler/mruby.c:134,1
    - Dst: mrb_float_to_integer
      Src: /src/h2o/lib/handler/mruby.c:136,1
    - Dst: mrb_str_to_inum
      Src: /src/h2o/lib/handler/mruby.c:140,1
    - Dst: mrb_to_int
      Src: /src/h2o/lib/handler/mruby.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - val
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: convert_to_integer
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_str_to_inum
    - mrb_float_to_integer
    - mrb_type
    - mrb_nil_p
    - mrb_to_int
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value convert_to_integer(mrb_state *mrb, mrb_value val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_MRUBY_EXEC_GUARD
      Src: /src/h2o/lib/handler/mruby.c:150,1
    - Dst: convert_to_integer
      Src: /src/h2o/lib/handler/mruby.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - v
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: h2o_mruby_to_int
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - convert_to_integer
    - H2O_MRUBY_EXEC_GUARD
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_to_int(mrb_state *mrb, mrb_value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby.c:156,1
    - Dst: mrb_top_self
      Src: /src/h2o/lib/handler/mruby.c:156,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/lib/handler/mruby.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - expr
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 8
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: h2o_mruby_eval_expr
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached:
    - mrb_top_self
    - mrb_funcall
    - mrb_str_new_cstr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_eval_expr(mrb_state *mrb, const char *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby.c:161,1
    - Dst: mrb_top_self
      Src: /src/h2o/lib/handler/mruby.c:161,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/lib/handler/mruby.c:161,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:161,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/lib/handler/mruby.c:161,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - expr
    - path
    - lineno
    argTypes:
    - mrb_state*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 8
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: h2o_mruby_eval_expr_location
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_funcall
    - mrb_str_new_cstr
    - mrb_fixnum_value
    - mrb_nil_value
    - mrb_top_self
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_eval_expr_location(mrb_state *mrb, const char *expr,
      const char *path, const int lineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/mruby.c:168,1
    - Dst: mrb_str_new_cstr
      Src: /src/h2o/lib/handler/mruby.c:172,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:173,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/lib/handler/mruby.c:174,1
    - Dst: mrb_top_self
      Src: /src/h2o/lib/handler/mruby.c:174,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:174,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/mruby.c:177,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mrb
    - name
    - callback
    argTypes:
    - mrb_state*
    - char*
    - h2o_mruby_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 10
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: h2o_mruby_define_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    - mrb_intern_lit
    - h2o_mruby_assert
    - mrb_str_new_cstr
    - mrb_fixnum_value
    - h2o_vector_reserve
    - mrb_top_self
    - mrb_funcall_argv
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_define_callback(mrb_state *mrb, const char *name, h2o_mruby_callback_t
      callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_class_ptr
      Src: /src/h2o/lib/handler/mruby.c:184,1
    - Dst: mrb_data_object_alloc
      Src: /src/h2o/lib/handler/mruby.c:185,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - class_obj
    - ptr
    - type
    argTypes:
    - mrb_state*
    - mrb_value
    - void*
    - mrb_data_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: h2o_mruby_create_data_instance
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_obj_value
    - mrb_class_ptr
    - mrb_data_object_alloc
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_create_data_instance(mrb_state *mrb, mrb_value
      class_obj, void *ptr, const mrb_data_type *type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrbc_context_new
      Src: /src/h2o/lib/handler/mruby.c:196,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:197,1
    - Dst: mrbc_filename
      Src: /src/h2o/lib/handler/mruby.c:200,1
    - Dst: mrb_parse_nstring
      Src: /src/h2o/lib/handler/mruby.c:203,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:204,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:209,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/mruby.c:211,1
    - Dst: strcat
      Src: /src/h2o/lib/handler/mruby.c:212,1
    - Dst: h2o_str_at_position
      Src: /src/h2o/lib/handler/mruby.c:213,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby.c:213,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby.c:216,1
    - Dst: mrb_generate_code
      Src: /src/h2o/lib/handler/mruby.c:221,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:222,1
    - Dst: mrb_parser_free
      Src: /src/h2o/lib/handler/mruby.c:226,1
    - Dst: mrbc_context_free
      Src: /src/h2o/lib/handler/mruby.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - mrb
    - config
    - errbuf
    argTypes:
    - mrb_state*
    - h2o_mruby_config_vars_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 189
    functionDepth: 16
    functionLinenumber: 189
    functionLinenumberEnd: 229
    functionName: h2o_mruby_compile_code
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - strcat
    - snprintf
    - mrbc_filename
    - mrbc_context_new
    - mrb_generate_code
    - h2o_str_at_position
    - mrb_parse_nstring
    - mrbc_context_free
    - mrb_parser_free
    - h2o_fatal
    - strlen
    linkageType: ''
    returnType: struct RProc
    signature: struct RProc *h2o_mruby_compile_code(mrb_state *mrb, h2o_mruby_config_vars_t
      *config, char *errbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby.c:239,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby.c:241,1
    - Dst: h2o_toupper
      Src: /src/h2o/lib/handler/mruby.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - name
    - len
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: convert_header_name_to_env
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc_pool
    - h2o_toupper
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t convert_header_name_to_env(h2o_mem_pool_t *pool, const
      char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/mruby.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - shared_ctx
    - name
    - value
    - _req
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: handle_early_hints_header
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    linkageType: ''
    returnType: int
    signature: int handle_early_hints_header(h2o_mruby_shared_context_t *shared_ctx,
      h2o_iovec_t *name, h2o_iovec_t value, void *_req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby.c:263,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:265,1
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/lib/handler/mruby.c:265,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:267,1
    - Dst: h2o_mruby_iterate_rack_headers
      Src: /src/h2o/lib/handler/mruby.c:269,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby.c:270,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:270,1
    - Dst: h2o_send_informational
      Src: /src/h2o/lib/handler/mruby.c:272,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 9
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: send_early_hints_proc
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_iterate_rack_headers
    - mrb_exc_raise
    - mrb_obj_value
    - mrb_get_args
    - mrb_proc_cfunc_env_get
    - mrb_nil_value
    - h2o_send_informational
    - h2o_mruby_get_generator
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value send_early_hints_proc(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:279,1
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/lib/handler/mruby.c:279,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:281,1
    - Dst: h2o_mruby_generator_t*::req::conn::callbacks::get_rtt
      Src: /src/h2o/lib/handler/mruby.c:283,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:285,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: get_rtt_proc
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_generator_t*::req::conn::callbacks::get_rtt
    - mrb_proc_cfunc_env_get
    - mrb_fixnum_value
    - mrb_nil_value
    - h2o_mruby_get_generator
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value get_rtt_proc(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:293,1
    - Dst: mrb_proc_cfunc_env_get
      Src: /src/h2o/lib/handler/mruby.c:293,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:295,1
    - Dst: h2o_mruby_generator_t*::req::conn::callbacks::get_ptls
      Src: /src/h2o/lib/handler/mruby.c:296,1
    - Dst: ptls_is_ech_handshake
      Src: /src/h2o/lib/handler/mruby.c:297,1
    - Dst: mrb_true_value
      Src: /src/h2o/lib/handler/mruby.c:298,1
    - Dst: mrb_false_value
      Src: /src/h2o/lib/handler/mruby.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: is_ech_proc
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_true_value
    - h2o_mruby_generator_t*::req::conn::callbacks::get_ptls
    - ptls_is_ech_handshake
    - mrb_proc_cfunc_env_get
    - mrb_false_value
    - mrb_nil_value
    - h2o_mruby_get_generator
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value is_ech_proc(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby.c:306,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby.c:309,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/handler/mruby.c:313,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:318,1
    - Dst: FREEZE_STRING
      Src: /src/h2o/lib/handler/mruby.c:319,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:320,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:324,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/lib/handler/mruby.c:326,1
    - Dst: convert_header_name_to_env
      Src: /src/h2o/lib/handler/mruby.c:328,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:329,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby.c:331,1
    - Dst: FREEZE_STRING
      Src: /src/h2o/lib/handler/mruby.c:332,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:333,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/handler/mruby.c:336,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:347,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:348,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:349,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:350,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:351,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:352,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:353,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:354,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:355,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:356,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:357,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:358,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:359,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:360,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:361,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:362,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:363,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:364,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:365,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:366,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:367,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:368,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:369,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:370,1
    - Dst: SET_LITERAL
      Src: /src/h2o/lib/handler/mruby.c:371,1
    - Dst: SET_STRING
      Src: /src/h2o/lib/handler/mruby.c:372,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:372,1
    - Dst: h2o_mruby_eval_expr_location
      Src: /src/h2o/lib/handler/mruby.c:377,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:378,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:380,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby.c:381,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:381,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:382,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby.c:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 3
    argNames:
    - mrb
    - server_name
    - server_name_len
    argTypes:
    - mrb_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 304
    functionDepth: 9
    functionLinenumber: 304
    functionLinenumberEnd: 386
    functionName: build_constants
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - convert_header_name_to_env
    - mrb_ary_set
    - h2o_mem_clear_pool
    - mrb_funcall
    - FREEZE_STRING
    - h2o_mem_init_pool
    - mrb_str_new_lit
    - h2o_mruby_eval_expr_location
    - mrb_obj_value
    - mrb_gc_arena_restore
    - SET_LITERAL
    - mrb_gc_arena_save
    - h2o_mruby_assert
    - SET_STRING
    - mrb_ary_new_capa
    - mrb_nil_value
    - mrb_string_p
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_constants(mrb_state *mrb, const char *server_name,
      size_t server_name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: SET_STRING
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_STRING(idx, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: SET_LITERAL
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_LITERAL(idx, str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:391,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/mruby.c:394,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:394,1
    - Dst: mrb_inspect
      Src: /src/h2o/lib/handler/mruby.c:394,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:394,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/mruby.c:396,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:397,1
    - Dst: mrb_inspect
      Src: /src/h2o/lib/handler/mruby.c:397,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:397,1
    - Dst: h2o_send_error_500
      Src: /src/h2o/lib/handler/mruby.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - generator
    argTypes:
    - h2o_mruby_context_t*
    - h2o_mruby_generator_t*
    assertStmts:
    - condition: (mrb->exc != NULL)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: handle_exception
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_inspect
    - h2o_error_printf
    - RSTRING_PTR
    - h2o_req_log_error
    - h2o_send_error_500
    - mrb_obj_value
    - assert
    linkageType: ''
    returnType: void
    signature: void handle_exception(h2o_mruby_context_t *ctx, h2o_mruby_generator_t
      *generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:406,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:406,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:407,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:407,1
    - Dst: handle_exception
      Src: /src/h2o/lib/handler/mruby.c:408,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: send_error_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - mrb_obj_ptr
    - mrb_nil_value
    - handle_exception
    - h2o_mruby_get_generator
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value send_error_callback(h2o_mruby_context_t *ctx, mrb_value input,
      mrb_value *receiver, mrb_value args, int *run_again)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby.c:415,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:416,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:417,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby.c:418,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 8
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: block_request_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_ary_set
    - mrb_ary_push
    - mrb_ary_new_capa
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value block_request_callback(h2o_mruby_context_t *ctx, mrb_value
      input, mrb_value *receiver, mrb_value args, int *run_again)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:427,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:428,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:429,1
    - Dst: handle_exception
      Src: /src/h2o/lib/handler/mruby.c:430,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:434,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:436,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:437,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:438,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby.c:439,1
    - Dst: mrb_ary_clear
      Src: /src/h2o/lib/handler/mruby.c:441,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 444
    functionName: run_blocking_requests_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - mrb_ary_clear
    - mrb_obj_ptr
    - h2o_mruby_run_fiber
    - RARRAY_LEN
    - mrb_nil_p
    - handle_exception
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value run_blocking_requests_callback(h2o_mruby_context_t *ctx,
      mrb_value input, mrb_value *receiver, mrb_value args,\n                                         int
      *run_again)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:450,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby.c:456,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 8
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: run_child_fiber_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_ary_push
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value run_child_fiber_callback(h2o_mruby_context_t *ctx, mrb_value
      input, mrb_value *receiver, mrb_value args, int *run_again)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: finish_child_fiber_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value finish_child_fiber_callback(h2o_mruby_context_t *ctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                      int
      *run_again)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_get_error_stream
      Src: /src/h2o/lib/handler/mruby.c:473,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby.c:474,1
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby.c:478,1
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby.c:479,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:481,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:481,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:481,1
    - Dst: h2o_req_t*::error_log_delegate::cb
      Src: /src/h2o/lib/handler/mruby.c:485,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:485,1
    - Dst: h2o_write_error_log
      Src: /src/h2o/lib/handler/mruby.c:487,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:487,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 491
    functionName: error_stream_write
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - RSTRING_PTR
    - mrb_get_args
    - RSTRING_LEN
    - h2o_req_t*::error_log_delegate::cb
    - h2o_mruby_to_str
    - mrb_fixnum_value
    - h2o_mruby_get_error_stream
    - h2o_write_error_log
    - h2o_iovec_init
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value error_stream_write(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby.c:496,1
    - Dst: mrb_open
      Src: /src/h2o/lib/handler/mruby.c:497,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby.c:498,1
    - Dst: h2o_mruby_setup_globals
      Src: /src/h2o/lib/handler/mruby.c:505,1
    - Dst: build_constants
      Src: /src/h2o/lib/handler/mruby.c:506,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:508,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:509,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:510,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:511,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:512,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:513,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby.c:515,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby.c:516,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby.c:517,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby.c:518,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby.c:519,1
    - Dst: h2o_mruby_sender_init_context
      Src: /src/h2o/lib/handler/mruby.c:521,1
    - Dst: h2o_mruby_http_request_init_context
      Src: /src/h2o/lib/handler/mruby.c:522,1
    - Dst: h2o_mruby_redis_init_context
      Src: /src/h2o/lib/handler/mruby.c:523,1
    - Dst: h2o_mruby_sleep_init_context
      Src: /src/h2o/lib/handler/mruby.c:524,1
    - Dst: h2o_mruby_middleware_init_context
      Src: /src/h2o/lib/handler/mruby.c:525,1
    - Dst: h2o_mruby_channel_init_context
      Src: /src/h2o/lib/handler/mruby.c:526,1
    - Dst: mrb_define_module
      Src: /src/h2o/lib/handler/mruby.c:528,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:529,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:529,1
    - Dst: mrb_define_class_under
      Src: /src/h2o/lib/handler/mruby.c:530,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:531,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:531,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby.c:533,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:534,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:534,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby.c:535,1
    - Dst: MRB_ARGS_REQ
      Src: /src/h2o/lib/handler/mruby.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 493
    functionDepth: 11
    functionLinenumber: 493
    functionLinenumberEnd: 538
    functionName: create_shared_context
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_define_method
    - mrb_intern_lit
    - h2o_mruby_sender_init_context
    - mrb_obj_value
    - h2o_mruby_redis_init_context
    - h2o_mruby_setup_globals
    - mrb_ary_set
    - h2o_mem_alloc
    - MRB_ARGS_REQ
    - h2o_mruby_channel_init_context
    - mrb_open
    - h2o_fatal
    - h2o_mruby_middleware_init_context
    - h2o_mruby_define_callback
    - mrb_define_module
    - mrb_class_get_under
    - mrb_define_class_under
    - h2o_mruby_sleep_init_context
    - build_constants
    - h2o_mruby_http_request_init_context
    linkageType: ''
    returnType: h2o_mruby_shared_context_t
    signature: h2o_mruby_shared_context_t *create_shared_context(h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_close
      Src: /src/h2o/lib/handler/mruby.c:545,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: dispose_shared_context
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - free
    - mrb_close
    linkageType: ''
    returnType: void
    signature: void dispose_shared_context(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_storage
      Src: /src/h2o/lib/handler/mruby.c:552,1
    - Dst: create_shared_context
      Src: /src/h2o/lib/handler/mruby.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 549
    functionDepth: 12
    functionLinenumber: 549
    functionLinenumberEnd: 557
    functionName: get_shared_context
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - create_shared_context
    - h2o_context_get_storage
    linkageType: ''
    returnType: h2o_mruby_shared_context_t
    signature: h2o_mruby_shared_context_t *get_shared_context(h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/lib/handler/mruby.c:564,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:565,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby.c:565,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:565,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:566,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:567,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby.c:567,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:567,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:568,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby.c:568,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:569,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby.c:569,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby.c:569,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:569,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby.c:572,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:572,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:573,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:574,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_context_t*
    assertStmts:
    - condition: (mrb_array_p(result))
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 577
      start: 559
    functionDepth: 10
    functionLinenumber: 559
    functionLinenumberEnd: 577
    functionName: prepare_fibers
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - mrb_array_p
    - mrb_hash_new_capa
    - mrb_funcall
    - mrb_intern_lit
    - mrb_hash_set
    - h2o_mruby_assert
    - mrb_fixnum_value
    - mrb_obj_value
    - mrb_symbol_value
    - assert
    - strlen
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value prepare_fibers(h2o_mruby_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby.c:582,1
    - Dst: get_shared_context
      Src: /src/h2o/lib/handler/mruby.c:585,1
    - Dst: mrb_ary_new
      Src: /src/h2o/lib/handler/mruby.c:589,1
    - Dst: mrb_ary_new
      Src: /src/h2o/lib/handler/mruby.c:590,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby.c:593,1
    - Dst: prepare_fibers
      Src: /src/h2o/lib/handler/mruby.c:595,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:596,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:596,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:598,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:601,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby.c:602,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:602,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby.c:603,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby.c:605,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby.c:606,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby.c:607,1
    - Dst: h2o_context_set_handler_context
      Src: /src/h2o/lib/handler/mruby.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - _handler
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts:
    - condition: (mrb_array_p(fibers))
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 610
      start: 579
    functionDepth: 13
    functionLinenumber: 579
    functionLinenumberEnd: 610
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_array_p
    - mrb_gc_protect
    - mrb_ary_entry
    - get_shared_context
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - h2o_mruby_assert
    - h2o_mem_alloc
    - h2o_mruby_run_fiber
    - mrb_nil_value
    - prepare_fibers
    - h2o_context_set_handler_context
    - assert
    linkageType: ''
    returnType: void
    signature: void on_context_init(h2o_handler_t *_handler, h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/mruby.c:615,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _handler
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 621
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - free
    - h2o_context_get_handler_context
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(h2o_handler_t *_handler, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:627,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:628,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _handler
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: on_handler_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void on_handler_dispose(h2o_handler_t *_handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:639,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:640,1
    - Dst: cb
      Src: /src/h2o/lib/handler/mruby.c:642,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/handler/mruby.c:644,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:646,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/handler/mruby.c:647,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/mruby.c:649,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - mrb
    - host
    - port
    argTypes:
    - h2o_conn_t*
    - mrb_state*
    - mrb_value*
    - mrb_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 652
    functionName: stringify_address
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached:
    - h2o_mruby_new_str
    - h2o_socket_getport
    - h2o_socket_getnumerichost
    - cb
    - sprintf
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: "void stringify_address(h2o_conn_t *conn, socklen_t (*cb)(h2o_conn_t
      *conn, struct sockaddr *), mrb_state *mrb,\n                              mrb_value
      *host, mrb_value *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mrb
    - base
    - len
    - _input_stream
    argTypes:
    - mrb_state*
    - char*
    - mrb_int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: on_rack_input_free
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void on_rack_input_free(mrb_state *mrb, const char *base, mrb_int len,
      void *_input_stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mruby.c:669,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (x != y)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 676
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 676
    functionName: build_env_sort_header_cb
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    linkageType: ''
    returnType: int
    signature: int build_env_sort_header_cb(const void *_x, const void *_y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new_lit
      Src: /src/h2o/lib/handler/mruby.c:681,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:683,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - mrb
    - req
    - confpath_len_wo_slash
    argTypes:
    - mrb_state*
    - h2o_req_t*
    - size_t
    assertStmts:
    - condition: (req->path_normalized.len > confpath_len_wo_slash)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: build_path_info
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_str_new_lit
    - assert
    - h2o_mruby_new_str
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_path_info(mrb_state *mrb, h2o_req_t *req, size_t confpath_len_wo_slash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/h2o/lib/handler/mruby.c:705,1
    - Dst: qsort
      Src: /src/h2o/lib/handler/mruby.c:712,1
    - Dst: alloca
      Src: /src/h2o/lib/handler/mruby.c:713,1
    - Dst: h2o_header_name_is_equal
      Src: /src/h2o/lib/handler/mruby.c:719,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:721,1
    - Dst: h2o_concat_list
      Src: /src/h2o/lib/handler/mruby.c:726,1
    - Dst: cb
      Src: /src/h2o/lib/handler/mruby.c:727,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - shared_ctx
    - pool
    - headers
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - void*
    assertStmts:
    - condition: (shared_ctx->mrb->exc != NULL)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 733
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 733
    functionName: h2o_mruby_iterate_native_headers
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - qsort
    - assert
    - h2o_concat_list
    - cb
    - alloca
    - h2o_header_name_is_equal
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int h2o_mruby_iterate_native_headers(h2o_mruby_shared_context_t *shared_ctx,
      h2o_mem_pool_t *pool, h2o_headers_t *headers,\n                                     int
      (*cb)(h2o_mruby_shared_context_t *, h2o_mem_pool_t *, h2o_header_t *, void *),\n
      \                                    void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:738,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/mruby.c:740,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby.c:741,1
    - Dst: h2o_mruby_token_env_key
      Src: /src/h2o/lib/handler/mruby.c:742,1
    - Dst: convert_header_name_to_env
      Src: /src/h2o/lib/handler/mruby.c:744,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:745,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:747,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - shared_ctx
    - pool
    - header
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_mem_pool_t*
    - h2o_header_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 735
    functionDepth: 10
    functionLinenumber: 735
    functionLinenumberEnd: 750
    functionName: iterate_headers_callback
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - convert_header_name_to_env
    - h2o_mruby_new_str
    - H2O_STRUCT_FROM_MEMBER
    - mrb_hash_set
    - mrb_obj_value
    - h2o_mruby_token_env_key
    linkageType: ''
    returnType: int
    signature: "int iterate_headers_callback(h2o_mruby_shared_context_t *shared_ctx,
      h2o_mem_pool_t *pool, h2o_header_t *header,\n                                    void
      *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shared
    - token
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: h2o_mruby_token_string
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_token_string(h2o_mruby_shared_context_t *shared,
      const h2o_token_t *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shared
    - token
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: h2o_mruby_token_env_key
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached:
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_token_env_key(h2o_mruby_shared_context_t *shared,
      const h2o_token_t *token)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/lib/handler/mruby.c:766,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:771,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:771,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:772,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:777,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:779,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:779,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:780,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:781,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:781,1
    - Dst: build_path_info
      Src: /src/h2o/lib/handler/mruby.c:782,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:783,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:783,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:785,1
    - Dst: mrb_str_new_lit
      Src: /src/h2o/lib/handler/mruby.c:787,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:788,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:789,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:790,1
    - Dst: h2o_stringify_protocol_version
      Src: /src/h2o/lib/handler/mruby.c:791,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:792,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:792,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:793,1
    - Dst: stringify_address
      Src: /src/h2o/lib/handler/mruby.c:796,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:797,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:798,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:798,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:799,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:800,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:800,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:802,1
    - Dst: h2o_mruby_token_env_key
      Src: /src/h2o/lib/handler/mruby.c:802,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:803,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/mruby.c:806,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:807,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:807,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:807,1
    - Dst: mrb_input_stream_value
      Src: /src/h2o/lib/handler/mruby.c:808,1
    - Dst: mrb_input_stream_set_data
      Src: /src/h2o/lib/handler/mruby.c:809,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:811,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:811,1
    - Dst: stringify_address
      Src: /src/h2o/lib/handler/mruby.c:815,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:816,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:817,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:817,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:818,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:819,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:819,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:822,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:822,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:823,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/lib/handler/mruby.c:823,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:825,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:825,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:826,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/lib/handler/mruby.c:826,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:831,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:831,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:831,1
    - Dst: h2o_mruby_iterate_native_headers
      Src: /src/h2o/lib/handler/mruby.c:836,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:837,1
    - Dst: h2o_mruby_token_env_key
      Src: /src/h2o/lib/handler/mruby.c:838,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:839,1
    - Dst: mrb_hash_fetch
      Src: /src/h2o/lib/handler/mruby.c:839,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:839,1
    - Dst: h2o_conn_is_early_data
      Src: /src/h2o/lib/handler/mruby.c:840,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:841,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:841,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:847,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:847,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby.c:848,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:850,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:850,1
    - Dst: mrb_false_value
      Src: /src/h2o/lib/handler/mruby.c:850,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:851,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:851,1
    - Dst: mrb_true_value
      Src: /src/h2o/lib/handler/mruby.c:851,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:852,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:852,1
    - Dst: mrb_false_value
      Src: /src/h2o/lib/handler/mruby.c:852,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:853,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:853,1
    - Dst: mrb_false_value
      Src: /src/h2o/lib/handler/mruby.c:853,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby.c:854,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:855,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:856,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:856,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:858,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:858,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby.c:859,1
    - Dst: mrb_proc_new_cfunc_with_env
      Src: /src/h2o/lib/handler/mruby.c:859,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:862,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:862,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:863,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:866,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:866,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:867,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby.c:868,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:868,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby.c:869,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts:
    - condition: (confpath_len_wo_slash <= generator->req->path_normalized.len)
      pos:
        line_end: 776
        line_start: 776
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 872
      start: 762
    functionDepth: 10
    functionLinenumber: 762
    functionLinenumberEnd: 872
    functionName: build_env
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - mrb_true_value
    - mrb_ary_entry
    - h2o_conn_is_early_data
    - sprintf
    - mrb_input_stream_set_data
    - mrb_false_value
    - mrb_fixnum_value
    - mrb_nil_p
    - assert
    - mrb_hash_new_capa
    - mrb_input_stream_value
    - mrb_obj_value
    - mrb_proc_new_cfunc_with_env
    - mrb_nil_value
    - h2o_mruby_token_env_key
    - mrb_hash_fetch
    - h2o_mruby_create_data_instance
    - mrb_str_new_lit
    - mrb_hash_set
    - mrb_obj_ptr
    - stringify_address
    - build_path_info
    - h2o_mruby_iterate_native_headers
    - h2o_stringify_protocol_version
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_env(h2o_mruby_generator_t *generator)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby.c:878,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/mruby.c:882,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby.c:883,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:886,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/handler/mruby.c:887,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/handler/mruby.c:888,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby.c:893,1
    - Dst: h2o_toupper
      Src: /src/h2o/lib/handler/mruby.c:899,1
    - Dst: h2o_req_getenv
      Src: /src/h2o/lib/handler/mruby.c:900,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:901,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:903,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/mruby.c:904,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/handler/mruby.c:913,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:915,1
    - Dst: h2o_push_path_in_link_header
      Src: /src/h2o/lib/handler/mruby.c:917,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/mruby.c:919,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/mruby.c:921,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - shared_ctx
    - name
    - value
    - _req
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 874
    functionDepth: 5
    functionLinenumber: 874
    functionLinenumberEnd: 925
    functionName: h2o_mruby_set_response_header
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - h2o_strtosize
    - H2O_STRLIT
    - h2o_strdup
    - H2O_STRUCT_FROM_MEMBER
    - h2o_lookup_token
    - h2o_req_getenv
    - h2o_add_header
    - h2o_memis
    - h2o_strtolower
    - h2o_toupper
    - h2o_push_path_in_link_header
    linkageType: ''
    returnType: int
    signature: int h2o_mruby_set_response_header(h2o_mruby_shared_context_t *shared_ctx,
      h2o_iovec_t *name, h2o_iovec_t value, void *_req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:929,1
    - Dst: mrb_input_stream_set_data
      Src: /src/h2o/lib/handler/mruby.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: clear_rack_input
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - mrb_input_stream_set_data
    linkageType: ''
    returnType: void
    signature: void clear_rack_input(h2o_mruby_generator_t *generator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_rack_input
      Src: /src/h2o/lib/handler/mruby.c:937,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:940,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby.c:941,1
    - Dst: h2o_mruby_generator_t*::sender::dispose
      Src: /src/h2o/lib/handler/mruby.c:947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - _generator
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 948
    functionName: on_generator_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - h2o_mruby_generator_t*::sender::dispose
    - clear_rack_input
    - DATA_PTR
    linkageType: ''
    returnType: void
    signature: void on_generator_dispose(void *_generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_shared_context
      Src: /src/h2o/lib/handler/mruby.c:953,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby.c:954,1
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/mruby.c:956,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mruby.c:958,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:963,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby.c:966,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby.c:970,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:970,1
    - Dst: build_env
      Src: /src/h2o/lib/handler/mruby.c:974,1
    - Dst: mrb_ary_new
      Src: /src/h2o/lib/handler/mruby.c:976,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:977,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:978,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby.c:981,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - _handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 950
    functionDepth: 13
    functionLinenumber: 950
    functionLinenumberEnd: 987
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 1
    functionsReached:
    - mrb_ary_new
    - mrb_ary_set
    - mrb_ary_entry
    - mrb_gc_arena_restore
    - h2o_context_get_handler_context
    - mrb_gc_arena_save
    - h2o_mem_alloc
    - h2o_mruby_run_fiber
    - h2o_mem_alloc_shared
    - mrb_nil_value
    - get_shared_context
    - build_env
    - h2o_mruby_create_data_instance
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_handler, h2o_req_t *req)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_iterate_rack_headers
      Src: /src/h2o/lib/handler/mruby.c:999,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:999,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:1009,1
    - Dst: h2o_delegate_request_deferred
      Src: /src/h2o/lib/handler/mruby.c:1010,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/mruby.c:1016,1
    - Dst: h2o_resp_add_date_header
      Src: /src/h2o/lib/handler/mruby.c:1017,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1020,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1023,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:1024,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1028,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby.c:1029,1
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby.c:1030,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby.c:1033,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:1035,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby.c:1038,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1040,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:1041,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby.c:1041,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby.c:1042,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:1042,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:1042,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:1043,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby.c:1046,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby.c:1050,1
    - Dst: h2o_mruby_init_sender
      Src: /src/h2o/lib/handler/mruby.c:1051,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/mruby.c:1053,1
    - Dst: h2o_mruby_generator_t*::sender::start
      Src: /src/h2o/lib/handler/mruby.c:1054,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby.c:1060,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby.c:1060,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/mruby.c:1061,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/mruby.c:1062,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/mruby.c:1069,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/mruby.c:1070,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - generator
    - status
    - resp
    - is_delegate
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_int
    - mrb_value
    - int*
    assertStmts:
    - condition: (generator->req->handler == &generator->ctx->handler->super)
      pos:
        line_end: 1008
        line_start: 1008
        source_file: /src/h2o/lib/handler/mruby.c
    - condition: (mrb_string_p(e))
      pos:
        line_end: 1040
        line_start: 1040
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 1074
      start: 989
    functionDepth: 8
    functionLinenumber: 989
    functionLinenumberEnd: 1074
    functionName: send_response
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - h2o_mem_alloc_pool
    - h2o_mruby_generator_t*::sender::start
    - mrb_nil_p
    - assert
    - h2o_mruby_init_sender
    - H2O_STRLIT
    - RSTRING_PTR
    - h2o_resp_add_date_header
    - h2o_send
    - h2o_find_header
    - RARRAY_LEN
    - mrb_string_p
    - h2o_mruby_iterate_rack_headers
    - mrb_array_p
    - mrb_ary_set
    - memcpy
    - h2o_delegate_request_deferred
    - h2o_mruby_to_str
    - mrb_nil_value
    - h2o_start_response
    - RSTRING_LEN
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int send_response(h2o_mruby_generator_t *generator, mrb_int status,
      mrb_value resp, int *is_delegate)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_argv
      Src: /src/h2o/lib/handler/mruby.c:1089,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1093,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:1094,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby.c:1094,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1098,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1099,1
    - Dst: h2o_mruby_middleware_get_send_response_callback
      Src: /src/h2o/lib/handler/mruby.c:1100,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:1103,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby.c:1103,1
    - Dst: H2O_MRUBY_EXEC_GUARD
      Src: /src/h2o/lib/handler/mruby.c:1109,1
    - Dst: mrb_int
      Src: /src/h2o/lib/handler/mruby.c:1109,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1109,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:1114,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby.c:1114,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1120,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1121,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby.c:1126,1
    - Dst: callback
      Src: /src/h2o/lib/handler/mruby.c:1130,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:1135,1
    - Dst: mrb_ary_pop
      Src: /src/h2o/lib/handler/mruby.c:1137,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby.c:1140,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby.c:1141,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:1145,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1145,1
    - Dst: send_response_callback
      Src: /src/h2o/lib/handler/mruby.c:1151,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1157,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby.c:1158,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1158,1
    - Dst: handle_exception
      Src: /src/h2o/lib/handler/mruby.c:1159,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 4
    argNames:
    - ctx
    - receiver
    - input
    - is_delegate
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1076
    functionDepth: 10
    functionLinenumber: 1076
    functionLinenumberEnd: 1163
    functionName: h2o_mruby_run_fiber
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 3
    functionsReached:
    - handle_exception
    - mrb_array_p
    - mrb_gc_protect
    - mrb_ary_entry
    - mrb_ary_pop
    - callback
    - mrb_int
    - H2O_MRUBY_EXEC_GUARD
    - mrb_obj_ptr
    - RARRAY_LEN
    - send_response_callback
    - h2o_mruby_middleware_get_send_response_callback
    - mrb_funcall_argv
    - h2o_mruby_get_generator
    - mrb_exc_new_lit
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_run_fiber(h2o_mruby_context_t *ctx, mrb_value receiver,
      mrb_value input, int *is_delegate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/mruby.c:1167,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:1173,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pathconf
    - vars
    argTypes:
    - h2o_pathconf_t*
    - h2o_mruby_config_vars_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1180
    functionName: h2o_mruby_register
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_mruby_handler_t
    signature: h2o_mruby_handler_t *h2o_mruby_register(h2o_pathconf_t *pathconf, h2o_mruby_config_vars_t
      *vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_funcall_argv
      Src: /src/h2o/lib/handler/mruby.c:1184,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shared_ctx
    - src
    argTypes:
    - h2o_mruby_shared_context_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 10
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: h2o_mruby_each_to_array
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_funcall_argv
    - mrb_ary_entry
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value h2o_mruby_each_to_array(h2o_mruby_shared_context_t *shared_ctx,
      mrb_value src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby.c:1192,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:1194,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:1194,1
    - Dst: cb
      Src: /src/h2o/lib/handler/mruby.c:1201,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:1201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - shared_ctx
    - namevec
    - value
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1188
    functionDepth: 2
    functionLinenumber: 1188
    functionLinenumberEnd: 1209
    functionName: iterate_header_values_handle_str
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - cb
    - RSTRING_LEN
    - h2o_mruby_to_str
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int iterate_header_values_handle_str(h2o_mruby_shared_context_t *shared_ctx,
      h2o_iovec_t *namevec, mrb_value value,\n                                            int
      (*cb)(h2o_mruby_shared_context_t *, h2o_iovec_t *, h2o_iovec_t, void *),\n                                            void
      *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby.c:1218,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby.c:1221,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby.c:1221,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby.c:1221,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1223,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:1224,1
    - Dst: iterate_header_values_handle_str
      Src: /src/h2o/lib/handler/mruby.c:1226,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1226,1
    - Dst: iterate_header_values_handle_str
      Src: /src/h2o/lib/handler/mruby.c:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - shared_ctx
    - name
    - value
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - mrb_value
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1235
    functionName: h2o_mruby_iterate_header_values
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_array_p
    - mrb_ary_entry
    - iterate_header_values_handle_str
    - RSTRING_PTR
    - RSTRING_LEN
    - h2o_mruby_to_str
    - RARRAY_LEN
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int h2o_mruby_iterate_header_values(h2o_mruby_shared_context_t *shared_ctx,
      mrb_value name, mrb_value value,\n                                    int (*cb)(h2o_mruby_shared_context_t
      *, h2o_iovec_t *, h2o_iovec_t, void *), void *cb_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_hash_p
      Src: /src/h2o/lib/handler/mruby.c:1242,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1242,1
    - Dst: h2o_mruby_each_to_array
      Src: /src/h2o/lib/handler/mruby.c:1243,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:1246,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1246,1
    - Dst: mrb_hash_p
      Src: /src/h2o/lib/handler/mruby.c:1249,1
    - Dst: mrb_hash_keys
      Src: /src/h2o/lib/handler/mruby.c:1250,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:1251,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1253,1
    - Dst: mrb_hash_get
      Src: /src/h2o/lib/handler/mruby.c:1254,1
    - Dst: h2o_mruby_iterate_header_values
      Src: /src/h2o/lib/handler/mruby.c:1255,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby.c:1259,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1259,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby.c:1260,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1262,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby.c:1263,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby.c:1264,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby.c:1264,1
    - Dst: h2o_mruby_iterate_header_values
      Src: /src/h2o/lib/handler/mruby.c:1267,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1267,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby.c:1267,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - shared_ctx
    - headers
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - mrb_value
    - void*
    assertStmts:
    - condition: (mrb_array_p(headers))
      pos:
        line_end: 1245
        line_start: 1245
        source_file: /src/h2o/lib/handler/mruby.c
    - condition: (mrb_array_p(headers))
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/h2o/lib/handler/mruby.c
    constantsTouched: []
    func_position:
      end: 1273
      start: 1237
    functionDepth: 11
    functionLinenumber: 1237
    functionLinenumberEnd: 1273
    functionName: h2o_mruby_iterate_rack_headers
    functionSourceFile: /src/h2o/lib/handler/mruby.c
    functionUses: 2
    functionsReached:
    - mrb_array_p
    - h2o_mruby_each_to_array
    - mrb_ary_entry
    - mrb_obj_ptr
    - mrb_hash_get
    - mrb_hash_p
    - RARRAY_LEN
    - h2o_mruby_iterate_header_values
    - mrb_hash_keys
    - assert
    - mrb_exc_new_lit
    linkageType: ''
    returnType: int
    signature: "int h2o_mruby_iterate_rack_headers(h2o_mruby_shared_context_t *shared_ctx,
      mrb_value headers,\n                                   int (*cb)(h2o_mruby_shared_context_t
      *, h2o_iovec_t *, h2o_iovec_t, void *), void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:115,1
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:116,1
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:117,1
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:118,1
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:119,1
    - Dst: CMP
      Src: /src/h2o/lib/handler/file.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - struct tm*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: tm_is_lessthan
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int
    signature: int tm_is_lessthan(struct tm *x, struct tm *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: CMP
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_filecache_close_file
      Src: /src/h2o/lib/handler/file.c:128,1
    - Dst: h2o_pipe_sender_dispose
      Src: /src/h2o/lib/handler/file.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_h2o_sendfile_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: close_file
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 3
    functionsReached:
    - h2o_pipe_sender_dispose
    - h2o_filecache_close_file
    linkageType: ''
    returnType: void
    signature: void close_file(struct st_h2o_sendfile_generator_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_file
      Src: /src/h2o/lib/handler/file.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: on_generator_dispose
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - close_file
    linkageType: ''
    returnType: void
    signature: void on_generator_dispose(void *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: do_stop_async_splice
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_stop_async_splice(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/file.c:155,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/file.c:159,1
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:162,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/file.c:163,1
    - Dst: h2o_pipe_sender_send
      Src: /src/h2o/lib/handler/file.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - h2o_io_uring_cmd_t*
    assertStmts:
    - condition: (cmd->result != -EINTR)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/h2o/lib/handler/file.c
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: do_proceed_on_splice_complete
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_pipe_sender_send
    - h2o_send
    - assert
    linkageType: ''
    returnType: void
    signature: void do_proceed_on_splice_complete(h2o_io_uring_cmd_t *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/h2o/lib/handler/file.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - src
    - dst
    - len
    argTypes:
    - h2o_sendvec_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: do_pread
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - pread
    linkageType: ''
    returnType: int
    signature: int do_pread(h2o_sendvec_t *src, void *dst, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/h2o/lib/handler/file.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - sockfd
    - filefd
    - 'off'
    - len
    argTypes:
    - int
    - int
    - off_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: do_sendfile
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - sendfile
    linkageType: ''
    returnType: size_t
    signature: size_t do_sendfile(int sockfd, int filefd, off_t off, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/h2o/lib/handler/file.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - sockfd
    - filefd
    - 'off'
    - len
    argTypes:
    - int
    - int
    - off_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: do_sendfile
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - sendfile
    linkageType: ''
    returnType: size_t
    signature: size_t do_sendfile(int sockfd, int filefd, off_t off, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/h2o/lib/handler/file.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - sockfd
    - filefd
    - 'off'
    - len
    argTypes:
    - int
    - int
    - off_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: do_sendfile
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - sendfile
    linkageType: ''
    returnType: size_t
    signature: size_t do_sendfile(int sockfd, int filefd, off_t off, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sendfile
      Src: /src/h2o/lib/handler/file.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - sockfd
    - len
    argTypes:
    - h2o_sendvec_t*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: sendvec_sendfile
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - do_sendfile
    linkageType: ''
    returnType: size_t
    signature: size_t sendvec_sendfile(h2o_sendvec_t *src, int sockfd, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_pipe_sender_in_use
      Src: /src/h2o/lib/handler/file.c:254,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/file.c:255,1
    - Dst: h2o_io_uring_splice
      Src: /src/h2o/lib/handler/file.c:256,1
    - Dst: h2o_sendvec
      Src: /src/h2o/lib/handler/file.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 270
    functionName: do_proceed
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 1
    functionsReached:
    - h2o_io_uring_splice
    - h2o_pipe_sender_in_use
    - h2o_mem_addref_shared
    - h2o_sendvec
    linkageType: ''
    returnType: void
    signature: void do_proceed(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:283,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:285,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:289,1
    - Dst: pread
      Src: /src/h2o/lib/handler/file.c:298,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:308,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:309,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/file.c:316,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/file.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 322
    functionName: do_multirange_proceed
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - pread
    - H2O_LIKELY
    - sprintf
    - h2o_send
    linkageType: ''
    returnType: void
    signature: void do_multirange_proceed(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_get_compressible_types
      Src: /src/h2o/lib/handler/file.c:335,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:337,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file.c:338,1
    - Dst: TRY_VARIANT
      Src: /src/h2o/lib/handler/file.c:347,1
    - Dst: TRY_VARIANT
      Src: /src/h2o/lib/handler/file.c:348,1
    - Dst: TRY_VARIANT
      Src: /src/h2o/lib/handler/file.c:349,1
    - Dst: TRY_VARIANT
      Src: /src/h2o/lib/handler/file.c:352,1
    - Dst: h2o_filecache_open_file
      Src: /src/h2o/lib/handler/file.c:356,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:360,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file.c:361,1
    - Dst: strcpy
      Src: /src/h2o/lib/handler/file.c:362,1
    - Dst: h2o_filecache_open_file
      Src: /src/h2o/lib/handler/file.c:363,1
    - Dst: S_ISDIR
      Src: /src/h2o/lib/handler/file.c:371,1
    - Dst: h2o_filecache_close_file
      Src: /src/h2o/lib/handler/file.c:372,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/file.c:377,1
    - Dst: h2o_pipe_sender_init
      Src: /src/h2o/lib/handler/file.c:391,1
    - Dst: h2o_pipe_sender_start
      Src: /src/h2o/lib/handler/file.c:393,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/file.c:396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 5
    argNames:
    - req
    - path
    - path_len
    - is_dir
    - flags
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 401
    functionName: create_generator
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - TRY_VARIANT
    - h2o_filecache_open_file
    - S_ISDIR
    - h2o_mem_alloc_pool
    - h2o_req_log_error
    - h2o_filecache_close_file
    - h2o_get_compressible_types
    - memcpy
    - h2o_pipe_sender_start
    - h2o_mem_alloc_shared
    - h2o_pipe_sender_init
    - strcpy
    linkageType: ''
    returnType: struct st_h2o_sendfile_generator_t
    signature: "struct st_h2o_sendfile_generator_t *create_generator(h2o_req_t *req,
      const char *path, size_t path_len, int *is_dir,\n                                                            int
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mask
    - ','
    - enc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: TRY_VARIANT
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_VARIANT(mask, enc, ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_filecache_get_etag
      Src: /src/h2o/lib/handler/file.c:410,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:411,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/lib/handler/file.c:414,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - struct st_h2o_sendfile_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: add_headers_unconditional
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_add_header
    - H2O_STRLIT
    - h2o_set_header_token
    - h2o_filecache_get_etag
    linkageType: ''
    returnType: void
    signature: void add_headers_unconditional(struct st_h2o_sendfile_generator_t *self,
      h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/file.c:419,1
    - Dst: h2o_ostream_send_next
      Src: /src/h2o/lib/handler/file.c:420,1
    - Dst: h2o_compress_transform
      Src: /src/h2o/lib/handler/file.c:428,1
    - Dst: h2o_ostream_send_next
      Src: /src/h2o/lib/handler/file.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - _self
    - req
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 430
    functionName: send_decompressed
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_send_state_is_in_progress
    - h2o_ostream_send_next
    - h2o_compress_transform
    linkageType: ''
    returnType: void
    signature: void send_decompressed(h2o_ostream_t *_self, h2o_req_t *req, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:442,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:443,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:445,1
    - Dst: h2o_filecache_get_last_modified
      Src: /src/h2o/lib/handler/file.c:446,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:447,1
    - Dst: add_headers_unconditional
      Src: /src/h2o/lib/handler/file.c:449,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:451,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:454,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:454,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:457,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:458,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:460,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/file.c:466,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/file.c:467,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/file.c:472,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/file.c:477,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/file.c:477,1
    - Dst: h2o_compress_gunzip_open
      Src: /src/h2o/lib/handler/file.c:478,1
    - Dst: do_proceed
      Src: /src/h2o/lib/handler/file.c:487,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:489,1
    - Dst: do_multirange_proceed
      Src: /src/h2o/lib/handler/file.c:492,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 7
    argNames:
    - self
    - req
    - status
    - reason
    - mime_type
    - mime_attr
    - is_get
    argTypes:
    - struct st_h2o_sendfile_generator_t*
    - h2o_req_t*
    - int
    - char*
    - h2o_iovec_t
    - h2o_mime_attributes_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 494
    functionName: do_send_file
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - add_headers_unconditional
    - H2O_ALIGNOF
    - H2O_STRLIT
    - do_proceed
    - do_multirange_proceed
    - h2o_mem_alloc_pool
    - h2o_start_response
    - h2o_filecache_get_last_modified
    - sprintf
    - h2o_add_header
    - h2o_send
    - h2o_compress_gunzip_open
    - h2o_add_ostream
    linkageType: ''
    returnType: void
    signature: "void do_send_file(struct st_h2o_sendfile_generator_t *self, h2o_req_t
      *req, int status, const char *reason,\n                         h2o_iovec_t
      mime_type, h2o_mime_attributes_t *mime_attr, int is_get)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_generator
      Src: /src/h2o/lib/handler/file.c:501,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/file.c:501,1
    - Dst: do_send_file
      Src: /src/h2o/lib/handler/file.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - req
    - status
    - reason
    - path
    - mime_type
    - flags
    argTypes:
    - h2o_req_t*
    - int
    - char*
    - char*
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 5
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: h2o_file_send
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - do_send_file
    - create_generator
    - strlen
    linkageType: ''
    returnType: int
    signature: int h2o_file_send(h2o_req_t *req, int status, const char *reason, const
      char *path, h2o_iovec_t mime_type, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/h2o/lib/handler/file.c:516,1
    - Dst: build_dir_listing_html
      Src: /src/h2o/lib/handler/file.c:518,1
    - Dst: closedir
      Src: /src/h2o/lib/handler/file.c:519,1
    - Dst: h2o_send_error_503
      Src: /src/h2o/lib/handler/file.c:522,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:526,1
    - Dst: h2o_buffer_link_to_pool
      Src: /src/h2o/lib/handler/file.c:527,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:532,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:532,1
    - Dst: h2o_send_inline
      Src: /src/h2o/lib/handler/file.c:536,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/file.c:541,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/file.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - req
    - path
    - path_len
    - is_get
    argTypes:
    - h2o_req_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 544
    functionName: send_dir_listing
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_send_error_503
    - h2o_buffer_link_to_pool
    - h2o_send_inline
    - h2o_start_response
    - opendir
    - h2o_add_header
    - h2o_send
    - closedir
    - build_dir_listing_html
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int send_dir_listing(h2o_req_t *req, const char *path, size_t path_len,
      int is_get)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/handler/file.c:561,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/handler/file.c:565,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:577,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:577,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/handler/file.c:579,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:582,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:584,1
    - Dst: h2o_strtosizefwd
      Src: /src/h2o/lib/handler/file.c:584,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/handler/file.c:585,1
    - Dst: h2o_strtosizefwd
      Src: /src/h2o/lib/handler/file.c:588,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:589,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:591,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:592,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:594,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:601,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/handler/file.c:602,1
    - Dst: h2o_strtosizefwd
      Src: /src/h2o/lib/handler/file.c:603,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:604,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:606,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:607,1
    - Dst: H2O_LIKELY
      Src: /src/h2o/lib/handler/file.c:617,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/file.c:618,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:623,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:623,1
    - Dst: CHECK_EOF
      Src: /src/h2o/lib/handler/file.c:625,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/file.c:628,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 4
    argNames:
    - pool
    - range_value
    - file_size
    - ret
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 633
    functionName: process_range
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 1
    functionsReached:
    - H2O_UNLIKELY
    - h2o_strtosizefwd
    - memcmp
    - CHECK_EOF
    - H2O_LIKELY
    - h2o_vector_reserve
    linkageType: ''
    returnType: size_t
    signature: size_t *process_range(h2o_mem_pool_t *pool, h2o_iovec_t *range_value,
      size_t file_size, size_t *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: CHECK_EOF
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - range
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: CHECK_OVERFLOW
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OVERFLOW(range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_rand
      Src: /src/h2o/lib/handler/file.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: gen_rand_string
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_rand
    linkageType: ''
    returnType: void
    signature: void gen_rand_string(h2o_iovec_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:654,1
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:655,1
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:656,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:659,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file.c:662,1
    - Dst: h2o_req_apply_env
      Src: /src/h2o/lib/handler/file.c:667,1
    - Dst: h2o_handler_t*::on_req
      Src: /src/h2o/lib/handler/file.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - req
    - script_name
    - path_info
    - local_path
    - local_path_len
    - mime_type
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - char*
    - size_t
    - h2o_mimemap_type_t*
    assertStmts:
    - condition: (mime_type->data.dynamic.pathconf.handlers.size == 1)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/h2o/lib/handler/file.c
    - condition: (mime_type->data.dynamic.pathconf._filters.size == 0)
      pos:
        line_end: 654
        line_start: 654
        source_file: /src/h2o/lib/handler/file.c
    - condition: (mime_type->data.dynamic.pathconf._loggers.size == 0)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/h2o/lib/handler/file.c
    constantsTouched: []
    func_position:
      end: 673
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 673
    functionName: delegate_dynamic_request
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_handler_t*::on_req
    - h2o_strdup
    - h2o_req_apply_env
    - h2o_mem_alloc_pool
    - assert
    linkageType: ''
    returnType: int
    signature: "int delegate_dynamic_request(h2o_req_t *req, h2o_iovec_t script_name,
      h2o_iovec_t path_info, const char *local_path,\n                                    size_t
      local_path_len, h2o_mimemap_type_t *mime_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/h2o/lib/handler/file.c:691,1
    - Dst: S_ISDIR
      Src: /src/h2o/lib/handler/file.c:693,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/lib/handler/file.c:700,1
    - Dst: h2o_get_filext
      Src: /src/h2o/lib/handler/file.c:700,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:705,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:707,1
    - Dst: delegate_dynamic_request
      Src: /src/h2o/lib/handler/file.c:708,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/file.c:711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - self
    - req
    - rpath
    - rpath_len
    argTypes:
    - h2o_file_handler_t*
    - h2o_req_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 675
    functionDepth: 4
    functionLinenumber: 675
    functionLinenumberEnd: 712
    functionName: try_dynamic_request
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - delegate_dynamic_request
    - S_ISDIR
    - stat
    - h2o_mimemap_get_type_by_extension
    - h2o_get_filext
    - h2o_fatal
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int try_dynamic_request(h2o_file_handler_t *self, h2o_req_t *req, char
      *rpath, size_t rpath_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:716,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:716,1
    - Dst: h2o_send_error_405
      Src: /src/h2o/lib/handler/file.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 718
    functionName: send_method_not_allowed
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_add_header
    - H2O_STRLIT
    - h2o_send_error_405
    linkageType: ''
    returnType: void
    signature: void send_method_not_allowed(h2o_req_t *req)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/file.c:728,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:728,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/file.c:730,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:730,1
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:738,1
    - Dst: close_file
      Src: /src/h2o/lib/handler/file.c:739,1
    - Dst: delegate_dynamic_request
      Src: /src/h2o/lib/handler/file.c:740,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:740,1
    - Dst: assert
      Src: /src/h2o/lib/handler/file.c:742,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/file.c:745,1
    - Dst: h2o_filecache_get_etag
      Src: /src/h2o/lib/handler/file.c:748,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/lib/handler/file.c:749,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/file.c:751,1
    - Dst: h2o_time_parse_rfc1123
      Src: /src/h2o/lib/handler/file.c:754,1
    - Dst: h2o_filecache_get_last_modified
      Src: /src/h2o/lib/handler/file.c:755,1
    - Dst: tm_is_lessthan
      Src: /src/h2o/lib/handler/file.c:756,1
    - Dst: close_file
      Src: /src/h2o/lib/handler/file.c:763,1
    - Dst: send_method_not_allowed
      Src: /src/h2o/lib/handler/file.c:764,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/file.c:769,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/file.c:771,1
    - Dst: h2o_time_parse_rfc1123
      Src: /src/h2o/lib/handler/file.c:775,1
    - Dst: h2o_filecache_get_last_modified
      Src: /src/h2o/lib/handler/file.c:776,1
    - Dst: tm_is_lessthan
      Src: /src/h2o/lib/handler/file.c:777,1
    - Dst: h2o_filecache_get_etag
      Src: /src/h2o/lib/handler/file.c:781,1
    - Dst: h2o_filecache_compare_etag_strong
      Src: /src/h2o/lib/handler/file.c:782,1
    - Dst: process_range
      Src: /src/h2o/lib/handler/file.c:788,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:791,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/file.c:792,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/file.c:793,1
    - Dst: h2o_send_error_416
      Src: /src/h2o/lib/handler/file.c:794,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file.c:807,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:809,1
    - Dst: gen_rand_string
      Src: /src/h2o/lib/handler/file.c:811,1
    - Dst: do_send_file
      Src: /src/h2o/lib/handler/file.c:842,1
    - Dst: do_send_file
      Src: /src/h2o/lib/handler/file.c:849,1
    - Dst: add_headers_unconditional
      Src: /src/h2o/lib/handler/file.c:855,1
    - Dst: h2o_send_inline
      Src: /src/h2o/lib/handler/file.c:856,1
    - Dst: close_file
      Src: /src/h2o/lib/handler/file.c:858,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 109
    argCount: 6
    argNames:
    - generator
    - req
    - resolved_path
    - rpath
    - rpath_len
    - mime_type
    argTypes:
    - struct st_h2o_sendfile_generator_t*
    - h2o_req_t*
    - h2o_iovec_t
    - char*
    - size_t
    - h2o_mimemap_type_t*
    assertStmts:
    - condition: (generator->file.ref != NULL)
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/h2o/lib/handler/file.c
    - condition: (mime_type->type == H2O_MIMEMAP_TYPE_MIMETYPE)
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/h2o/lib/handler/file.c
    constantsTouched: []
    func_position:
      end: 860
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 860
    functionName: serve_with_generator
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - sprintf
    - gen_rand_string
    - assert
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_time_parse_rfc1123
    - h2o_strdup
    - send_method_not_allowed
    - h2o_add_header
    - h2o_find_header
    - h2o_filecache_get_etag
    - tm_is_lessthan
    - h2o_send_error_416
    - do_send_file
    - h2o_send_inline
    - process_range
    - close_file
    - add_headers_unconditional
    - delegate_dynamic_request
    - h2o_filecache_compare_etag_strong
    - h2o_filecache_get_last_modified
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: "int serve_with_generator(struct st_h2o_sendfile_generator_t *generator,
      h2o_req_t *req, h2o_iovec_t resolved_path,\n                                const
      char *rpath, size_t rpath_len, h2o_mimemap_type_t *mime_type)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/handler/file.c:875,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:877,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:877,1
    - Dst: h2o_send_redirect
      Src: /src/h2o/lib/handler/file.c:878,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/file.c:884,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file.c:887,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file.c:889,1
    - Dst: h2o_resp_add_date_header
      Src: /src/h2o/lib/handler/file.c:892,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file.c:900,1
    - Dst: create_generator
      Src: /src/h2o/lib/handler/file.c:902,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:904,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:909,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:909,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:909,1
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/handler/file.c:910,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:913,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:913,1
    - Dst: h2o_send_redirect
      Src: /src/h2o/lib/handler/file.c:914,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/file.c:923,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:923,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/file.c:925,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:925,1
    - Dst: send_method_not_allowed
      Src: /src/h2o/lib/handler/file.c:928,1
    - Dst: send_dir_listing
      Src: /src/h2o/lib/handler/file.c:931,1
    - Dst: create_generator
      Src: /src/h2o/lib/handler/file.c:936,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:939,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:939,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file.c:939,1
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/handler/file.c:940,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/file.c:942,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file.c:942,1
    - Dst: h2o_send_redirect
      Src: /src/h2o/lib/handler/file.c:943,1
    - Dst: h2o_send_error_503
      Src: /src/h2o/lib/handler/file.c:950,1
    - Dst: h2o_mimemap_has_dynamic_type
      Src: /src/h2o/lib/handler/file.c:952,1
    - Dst: try_dynamic_request
      Src: /src/h2o/lib/handler/file.c:952,1
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/handler/file.c:957,1
    - Dst: serve_with_generator
      Src: /src/h2o/lib/handler/file.c:963,1
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/lib/handler/file.c:964,1
    - Dst: h2o_get_filext
      Src: /src/h2o/lib/handler/file.c:964,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 862
    functionDepth: 6
    functionLinenumber: 862
    functionLinenumberEnd: 965
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 2
    functionsReached:
    - h2o_uri_escape
    - h2o_send_error_503
    - h2o_mem_alloc_pool
    - send_dir_listing
    - h2o_mimemap_get_type_by_extension
    - serve_with_generator
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_mimemap_has_dynamic_type
    - send_method_not_allowed
    - h2o_resp_add_date_header
    - create_generator
    - h2o_send_redirect
    - h2o_send_error_403
    - h2o_concat
    - memcpy
    - try_dynamic_request
    - h2o_memis
    - h2o_get_filext
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_on_context_init
      Src: /src/h2o/lib/handler/file.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 1
    functionsReached:
    - h2o_mimemap_on_context_init
    linkageType: ''
    returnType: void
    signature: void on_context_init(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_on_context_dispose
      Src: /src/h2o/lib/handler/file.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 979
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 1
    functionsReached:
    - h2o_mimemap_on_context_dispose
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/file.c:986,1
    - Dst: free
      Src: /src/h2o/lib/handler/file.c:987,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/file.c:988,1
    - Dst: free
      Src: /src/h2o/lib/handler/file.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 991
    functionName: on_handler_dispose
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    linkageType: ''
    returnType: void
    signature: void on_handler_dispose(h2o_handler_t *_self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/file.c:1006,1
    - Dst: h2o_strdup_slashed
      Src: /src/h2o/lib/handler/file.c:1015,1
    - Dst: h2o_strdup_slashed
      Src: /src/h2o/lib/handler/file.c:1016,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/file.c:1018,1
    - Dst: h2o_mimemap_create
      Src: /src/h2o/lib/handler/file.c:1021,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file.c:1025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - pathconf
    - real_path
    - index_files
    - mimemap
    - flags
    argTypes:
    - h2o_pathconf_t*
    - char*
    - char**
    - h2o_mimemap_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1031
    functionName: h2o_file_register
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 2
    functionsReached:
    - h2o_strdup
    - h2o_strdup_slashed
    - h2o_mem_addref_shared
    - h2o_mimemap_create
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_file_handler_t
    signature: "h2o_file_handler_t *h2o_file_register(h2o_pathconf_t *pathconf, const
      char *real_path, const char **index_files,\n                                      h2o_mimemap_t
      *mimemap, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - h2o_file_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1036
    functionName: h2o_file_get_mimemap
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_mimemap_t
    signature: h2o_mimemap_t *h2o_file_get_mimemap(h2o_file_handler_t *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_init_pathconf_context
      Src: /src/h2o/lib/handler/file.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1044
    functionName: specific_handler_on_context_init
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_context_init_pathconf_context
    linkageType: ''
    returnType: void
    signature: void specific_handler_on_context_init(h2o_handler_t *_self, h2o_context_t
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_dispose_pathconf_context
      Src: /src/h2o/lib/handler/file.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1052
    functionName: specific_handler_on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_context_dispose_pathconf_context
    linkageType: ''
    returnType: void
    signature: void specific_handler_on_context_dispose(h2o_handler_t *_self, h2o_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/file.c:1058,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/file.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1060
    functionName: specific_handler_on_dispose
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    linkageType: ''
    returnType: void
    signature: void specific_handler_on_dispose(h2o_handler_t *_self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_generator
      Src: /src/h2o/lib/handler/file.c:1069,1
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/handler/file.c:1071,1
    - Dst: h2o_send_error_503
      Src: /src/h2o/lib/handler/file.c:1075,1
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/handler/file.c:1077,1
    - Dst: serve_with_generator
      Src: /src/h2o/lib/handler/file.c:1082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1062
    functionDepth: 6
    functionLinenumber: 1062
    functionLinenumberEnd: 1083
    functionName: specific_handler_on_req
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - serve_with_generator
    - h2o_send_error_403
    - create_generator
    - h2o_send_error_503
    linkageType: ''
    returnType: int
    signature: int specific_handler_on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/file.c:1087,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file.c:1094,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/file.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - pathconf
    - real_path
    - mime_type
    - flags
    argTypes:
    - h2o_pathconf_t*
    - char*
    - h2o_mimemap_type_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1100
    functionName: h2o_file_register_file
    functionSourceFile: /src/h2o/lib/handler/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_addref_shared
    - h2o_strdup
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_handler_t
    signature: h2o_handler_t *h2o_file_register_file(h2o_pathconf_t *pathconf, const
      char *real_path, h2o_mimemap_type_t *mime_type, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress.c:46,1
    - Dst: h2o_ostream_send_next
      Src: /src/h2o/lib/handler/compress.c:47,1
    - Dst: h2o_compress_transform
      Src: /src/h2o/lib/handler/compress.c:51,1
    - Dst: h2o_ostream_send_next
      Src: /src/h2o/lib/handler/compress.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - _self
    - req
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: do_send
    functionSourceFile: /src/h2o/lib/handler/compress.c
    functionUses: 11
    functionsReached:
    - h2o_send_state_is_in_progress
    - h2o_ostream_send_next
    - h2o_compress_transform
    linkageType: ''
    returnType: void
    signature: void do_send(h2o_ostream_t *_self, h2o_req_t *req, h2o_sendvec_t *inbufs,
      size_t inbufcnt, h2o_send_state_t state)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/compress.c:68,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:68,1
    - Dst: h2o_req_fill_mime_attributes
      Src: /src/h2o/lib/handler/compress.c:92,1
    - Dst: h2o_get_compressible_types
      Src: /src/h2o/lib/handler/compress.c:100,1
    - Dst: h2o_compress_brotli_open
      Src: /src/h2o/lib/handler/compress.c:124,1
    - Dst: h2o_compress_zstd_open
      Src: /src/h2o/lib/handler/compress.c:130,1
    - Dst: h2o_compress_gzip_open
      Src: /src/h2o/lib/handler/compress.c:134,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/lib/handler/compress.c:137,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:137,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/compress.c:143,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/lib/handler/compress.c:144,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:144,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/compress.c:147,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:147,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/compress.c:149,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress.c:149,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:149,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress.c:153,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:153,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/compress.c:155,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress.c:155,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/compress.c:159,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/compress.c:159,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/compress.c:169,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 170
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/compress.c
    functionUses: 3
    functionsReached:
    - h2o_compress_brotli_open
    - H2O_ALIGNOF
    - H2O_STRLIT
    - h2o_compress_gzip_open
    - h2o_set_header_token
    - h2o_concat
    - h2o_setup_next_ostream
    - h2o_get_compressible_types
    - h2o_compress_zstd_open
    - h2o_add_header
    - h2o_memis
    - h2o_req_fill_mime_attributes
    - h2o_add_ostream
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *_self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/compress.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pathconf
    - args
    argTypes:
    - h2o_pathconf_t*
    - h2o_compress_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: h2o_compress_register
    functionSourceFile: /src/h2o/lib/handler/compress.c
    functionUses: 0
    functionsReached:
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_compress_register(h2o_pathconf_t *pathconf, h2o_compress_args_t
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/compress.c:185,1
    - Dst: assert
      Src: /src/h2o/lib/handler/compress.c:187,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/compress.c:189,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress.c:189,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/handler/compress.c:195,1
    - Dst: h2o_compress_context_t*::do_transform
      Src: /src/h2o/lib/handler/compress.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - self
    - req
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    argTypes:
    - h2o_compress_context_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    assertStmts:
    - condition: (inbufcnt == 1)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/h2o/lib/handler/compress.c
    - condition: (buflen <= H2O_PULL_SENDVEC_MAX_SIZE)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/h2o/lib/handler/compress.c
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: h2o_compress_transform
    functionSourceFile: /src/h2o/lib/handler/compress.c
    functionUses: 4
    functionsReached:
    - h2o_sendvec_init_raw
    - h2o_mem_alloc
    - h2o_send_state_is_in_progress
    - h2o_compress_context_t*::do_transform
    - assert
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t h2o_compress_transform(h2o_compress_context_t *self,
      h2o_req_t *req, h2o_sendvec_t *inbufs, size_t inbufcnt,\n                                        h2o_send_state_t
      state, h2o_sendvec_t **outbufs, size_t *outbufcnt)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/h2olog.c:28,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/h2olog.c:29,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/h2olog.c:30,1
    - Dst: h2o_req_t*::conn::callbacks::get_sockname
      Src: /src/h2o/lib/handler/h2olog.c:36,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/h2olog.c:43,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/handler/h2olog.c:46,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/h2olog.c:47,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:47,1
    - Dst: sscanf
      Src: /src/h2o/lib/handler/h2olog.c:48,1
    - Dst: h2o_uri_unescape
      Src: /src/h2o/lib/handler/h2olog.c:48,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/handler/h2olog.c:50,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/h2olog.c:54,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:54,1
    - Dst: h2o_uri_unescape
      Src: /src/h2o/lib/handler/h2olog.c:55,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/handler/h2olog.c:56,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/h2olog.c:59,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:59,1
    - Dst: h2o_uri_unescape
      Src: /src/h2o/lib/handler/h2olog.c:60,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/handler/h2olog.c:61,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/h2olog.c:64,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:64,1
    - Dst: h2o_uri_unescape
      Src: /src/h2o/lib/handler/h2olog.c:65,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/handler/h2olog.c:66,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/h2olog.c:69,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:69,1
    - Dst: h2o_req_t*::conn::callbacks::steal_socket
      Src: /src/h2o/lib/handler/h2olog.c:81,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/handler/h2olog.c:82,1
    - Dst: h2o_socket_export
      Src: /src/h2o/lib/handler/h2olog.c:87,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/h2olog.c:88,1
    - Dst: write
      Src: /src/h2o/lib/handler/h2olog.c:90,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/h2olog.c:90,1
    - Dst: ptls_log_add_fd
      Src: /src/h2o/lib/handler/h2olog.c:93,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/h2olog.c:94,1
    - Dst: free
      Src: /src/h2o/lib/handler/h2olog.c:99,1
    - Dst: free
      Src: /src/h2o/lib/handler/h2olog.c:100,1
    - Dst: free
      Src: /src/h2o/lib/handler/h2olog.c:101,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 103
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/h2olog.c
    functionUses: 2
    functionsReached:
    - h2o_req_t*::conn::callbacks::get_sockname
    - H2O_STRLIT
    - free
    - h2o_memcpy
    - h2o_uri_unescape
    - h2o_req_t*::conn::callbacks::steal_socket
    - h2o_socket_export
    - h2o_mem_alloc
    - h2o_send_error_400
    - sscanf
    - write
    - h2o_memis
    - h2o_next_token
    - ptls_log_add_fd
    - h2o_fatal
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_register_path
      Src: /src/h2o/lib/handler/h2olog.c:107,1
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/h2olog.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostconf
    argTypes:
    - h2o_hostconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: h2o_log_register
    functionSourceFile: /src/h2o/lib/handler/h2olog.c
    functionUses: 0
    functionsReached:
    - h2o_config_register_path
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: void h2o_log_register(h2o_hostconf_t *hostconf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: h2o_set_header
      Src: /src/h2o/lib/handler/expires.c:50,1
    - Dst: h2o_set_header_token
      Src: /src/h2o/lib/handler/expires.c:53,1
    - Dst: assert
      Src: /src/h2o/lib/handler/expires.c:56,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/expires.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts:
    - condition: (0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/lib/handler/expires.c
    constantsTouched: []
    func_position:
      end: 65
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 65
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/expires.c
    functionUses: 3
    functionsReached:
    - h2o_setup_next_ostream
    - assert
    - h2o_set_header
    - h2o_set_header_token
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *_self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/expires.c:69,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/expires.c:74,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/expires.c:77,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/expires.c:78,1
    - Dst: assert
      Src: /src/h2o/lib/handler/expires.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - pathconf
    - args
    argTypes:
    - h2o_pathconf_t*
    - h2o_expires_args_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/h2o/lib/handler/expires.c
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: h2o_expires_register
    functionSourceFile: /src/h2o/lib/handler/expires.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_create_filter
    - h2o_mem_alloc
    - sprintf
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_expires_register(h2o_pathconf_t *pathconf, h2o_expires_args_t
      *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/headers_util.c:8,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/headers_util.c:9,1
    - Dst: h2o_find_header_by_str
      Src: /src/h2o/lib/handler/headers_util.c:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - headers
    - name
    argTypes:
    - h2o_headers_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 4
    functionDepth: 2
    functionLinenumber: 4
    functionLinenumberEnd: 16
    functionName: find_header
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 18
    functionsReached:
    - h2o_iovec_is_token
    - h2o_find_header_by_str
    - h2o_find_header
    linkageType: ''
    returnType: h2o_header_t
    signature: h2o_header_t *find_header(h2o_headers_t *headers, h2o_iovec_t *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/headers_util.c:21,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/headers_util.c:23,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/headers_util.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - base
    - len
    - cmd
    argTypes:
    - char*
    - size_t
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: is_in_list
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_iovec_is_token
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int is_in_list(const char *base, size_t len, h2o_headers_command_t
      *cmd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/headers_util.c:37,1
    - Dst: h2o_next_token
      Src: /src/h2o/lib/handler/headers_util.c:44,1
    - Dst: is_in_list
      Src: /src/h2o/lib/handler/headers_util.c:46,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/headers_util.c:49,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:52,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:55,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/headers_util.c:55,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:57,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/headers_util.c:64,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - pool
    - base
    - len
    - cmd
    argTypes:
    - h2o_mem_pool_t*
    - char**
    - size_t*
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 68
    functionName: filter_cookie
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_mem_alloc_pool
    - is_in_list
    - memcpy
    - h2o_next_token
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void filter_cookie(h2o_mem_pool_t *pool, char **base, size_t *len,
      h2o_headers_command_t *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/headers_util.c:73,1
    - Dst: filter_cookie
      Src: /src/h2o/lib/handler/headers_util.c:75,1
    - Dst: h2o_delete_header
      Src: /src/h2o/lib/handler/headers_util.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - headers
    - cmd
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: cookie_cmd
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - filter_cookie
    - h2o_find_header
    - h2o_delete_header
    linkageType: ''
    returnType: void
    signature: void cookie_cmd(h2o_mem_pool_t *pool, h2o_headers_t *headers, h2o_headers_command_t
      *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_in_list
      Src: /src/h2o/lib/handler/headers_util.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - headers
    - cmd
    argTypes:
    - h2o_headers_t*
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: remove_header_unless
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - is_in_list
    linkageType: ''
    returnType: void
    signature: void remove_header_unless(h2o_headers_t *headers, h2o_headers_command_t
      *cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/headers_util.c:101,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/headers_util.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - headers
    - cmd
    argTypes:
    - h2o_headers_t*
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: remove_header
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_iovec_is_token
    linkageType: ''
    returnType: void
    signature: void remove_header(h2o_headers_t *headers, h2o_headers_command_t *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/headers_util.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _cmds
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: dispose_h2o_headers_command
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void dispose_h2o_headers_command(void *_cmds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/headers_util.c:138,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:140,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/headers_util.c:144,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/headers_util.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - cmds
    - cmd
    - args
    - num_args
    - when
    argTypes:
    - h2o_headers_command_t**
    - int
    - h2o_headers_command_arg_t*
    - size_t
    - h2o_headers_command_when_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: h2o_headers_append_command
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - memcpy
    - h2o_mem_alloc_shared
    - h2o_mem_release_shared
    linkageType: ''
    returnType: void
    signature: "void h2o_headers_append_command(h2o_headers_command_t **cmds, int
      cmd, h2o_headers_command_arg_t *args, size_t num_args,\n                                h2o_headers_command_when_t
      when)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:165,1
    - Dst: find_header
      Src: /src/h2o/lib/handler/headers_util.c:166,1
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:170,1
    - Dst: find_header
      Src: /src/h2o/lib/handler/headers_util.c:171,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/handler/headers_util.c:173,1
    - Dst: remove_header
      Src: /src/h2o/lib/handler/headers_util.c:177,1
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:180,1
    - Dst: find_header
      Src: /src/h2o/lib/handler/headers_util.c:181,1
    - Dst: remove_header
      Src: /src/h2o/lib/handler/headers_util.c:185,1
    - Dst: remove_header_unless
      Src: /src/h2o/lib/handler/headers_util.c:188,1
    - Dst: cookie_cmd
      Src: /src/h2o/lib/handler/headers_util.c:192,1
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:196,1
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:200,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/headers_util.c:201,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/headers_util.c:202,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/headers_util.c:204,1
    - Dst: assert
      Src: /src/h2o/lib/handler/headers_util.c:210,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/headers_util.c:214,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:215,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/headers_util.c:218,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 68
    argCount: 3
    argNames:
    - pool
    - headers
    - cmd
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_headers_command_t*
    assertStmts:
    - condition: (cmd->num_args == 1)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/h2o/lib/handler/headers_util.c
    - condition: (cmd->num_args == 1)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/h2o/lib/handler/headers_util.c
    - condition: (cmd->num_args == 1)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/h2o/lib/handler/headers_util.c
    - condition: (!"FIXME")
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/h2o/lib/handler/headers_util.c
    - condition: (cmd->num_args == 1)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/h2o/lib/handler/headers_util.c
    - condition: (cmd->num_args == 1)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/h2o/lib/handler/headers_util.c
    constantsTouched: []
    func_position:
      end: 224
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 224
    functionName: h2o_rewrite_headers
    functionSourceFile: /src/h2o/lib/handler/headers_util.c
    functionUses: 2
    functionsReached:
    - h2o_add_header_by_str
    - h2o_iovec_is_token
    - remove_header
    - h2o_mem_alloc_pool
    - memcpy
    - h2o_contains_token
    - cookie_cmd
    - h2o_add_header
    - find_header
    - remove_header_unless
    - assert
    linkageType: ''
    returnType: void
    signature: void h2o_rewrite_headers(h2o_mem_pool_t *pool, h2o_headers_t *headers,
      h2o_headers_command_t *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/server_timing.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/server_timing.c
    functionUses: 3
    functionsReached:
    - h2o_setup_next_ostream
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *_self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/server_timing.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pathconf
    - enforce
    argTypes:
    - h2o_pathconf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: h2o_server_timing_register
    functionSourceFile: /src/h2o/lib/handler/server_timing.c
    functionUses: 0
    functionsReached:
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_server_timing_register(h2o_pathconf_t *pathconf, int enforce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/redirect.c:41,1
    - Dst: free
      Src: /src/h2o/lib/handler/redirect.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: on_dispose
    functionSourceFile: /src/h2o/lib/handler/redirect.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void on_dispose(h2o_handler_t *_self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_resolve_internal_redirect_url
      Src: /src/h2o/lib/handler/redirect.c:50,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/redirect.c:51,1
    - Dst: h2o_send_error_503
      Src: /src/h2o/lib/handler/redirect.c:52,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/redirect.c:63,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/redirect.c:63,1
    - Dst: h2o_reprocess_request_deferred
      Src: /src/h2o/lib/handler/redirect.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - req
    - dest
    argTypes:
    - h2o_redirect_handler_t*
    - h2o_req_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: redirect_internally
    functionSourceFile: /src/h2o/lib/handler/redirect.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_send_error_503
    - h2o_req_log_error
    - h2o_req_resolve_internal_redirect_url
    - h2o_reprocess_request_deferred
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void redirect_internally(h2o_redirect_handler_t *self, h2o_req_t *req,
      h2o_iovec_t dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/redirect.c:76,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/redirect.c:76,1
    - Dst: h2o_join_list
      Src: /src/h2o/lib/handler/redirect.c:77,1
    - Dst: h2o_build_destination
      Src: /src/h2o/lib/handler/redirect.c:78,1
    - Dst: redirect_internally
      Src: /src/h2o/lib/handler/redirect.c:82,1
    - Dst: h2o_send_redirect
      Src: /src/h2o/lib/handler/redirect.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/redirect.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - h2o_send_redirect
    - h2o_join_list
    - h2o_build_destination
    - redirect_internally
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/redirect.c:92,1
    - Dst: h2o_split
      Src: /src/h2o/lib/handler/redirect.c:97,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/redirect.c:97,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/redirect.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pathconf
    - internal
    - status
    - prefix
    argTypes:
    - h2o_pathconf_t*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: h2o_redirect_register
    functionSourceFile: /src/h2o/lib/handler/redirect.c
    functionUses: 1
    functionsReached:
    - h2o_iovec_init
    - strlen
    - h2o_split
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_redirect_handler_t
    signature: h2o_redirect_handler_t *h2o_redirect_register(h2o_pathconf_t *pathconf,
      int internal, int status, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - self
    - req
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: on_send
    functionSourceFile: /src/h2o/lib/handler/reproxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_send(h2o_ostream_t *self, h2o_req_t *req, h2o_sendvec_t *inbufs,
      size_t inbufcnt, h2o_send_state_t state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/reproxy.c:35,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/reproxy.c:36,1
    - Dst: h2o_delete_header
      Src: /src/h2o/lib/handler/reproxy.c:40,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/reproxy.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/reproxy.c:49,1
    - Dst: h2o_send_redirect_internal
      Src: /src/h2o/lib/handler/reproxy.c:55,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/reproxy.c:58,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/reproxy.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/reproxy.c
    functionUses: 3
    functionsReached:
    - H2O_ALIGNOF
    - H2O_STRLIT
    - h2o_add_ostream
    - h2o_setup_next_ostream
    - h2o_find_header
    - h2o_send_redirect_internal
    - h2o_delete_header
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/reproxy.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pathconf
    argTypes:
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: h2o_reproxy_register
    functionSourceFile: /src/h2o/lib/handler/reproxy.c
    functionUses: 0
    functionsReached:
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_reproxy_register(h2o_pathconf_t *pathconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_status_handler_t*::per_thread
      Src: /src/h2o/lib/handler/status.c:70,1
    - Dst: __sync_sub_and_fetch
      Src: /src/h2o/lib/handler/status.c:73,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status.c:74,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/handler/status.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - collector
    - ctx
    argTypes:
    - struct st_h2o_status_collector_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: collect_reqs_of_context
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - __sync_sub_and_fetch
    - h2o_status_handler_t*::per_thread
    - h2o_multithread_send_message
    linkageType: ''
    returnType: void
    signature: void collect_reqs_of_context(struct st_h2o_status_collector_t *collector,
      h2o_context_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/status.c:91,1
    - Dst: memset
      Src: /src/h2o/lib/handler/status.c:99,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:100,1
    - Dst: h2o_status_handler_t*::final
      Src: /src/h2o/lib/handler/status.c:108,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:115,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/status.c:118,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:118,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/status.c:119,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:119,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/status.c:120,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/status.c:121,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/status.c:121,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:121,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/status.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - collector
    argTypes:
    - struct st_h2o_status_collector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 124
    functionName: send_response
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - H2O_STRLIT
    - h2o_status_handler_t*::final
    - h2o_start_response
    - h2o_add_header
    - h2o_send
    - h2o_memis
    - memset
    linkageType: ''
    returnType: void
    signature: void send_response(struct st_h2o_status_collector_t *collector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/status.c:128,1
    - Dst: h2o_linklist_is_empty
      Src: /src/h2o/lib/handler/status.c:130,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/status.c:131,1
    - Dst: h2o_linklist_unlink
      Src: /src/h2o/lib/handler/status.c:133,1
    - Dst: free
      Src: /src/h2o/lib/handler/status.c:134,1
    - Dst: __sync_add_and_fetch
      Src: /src/h2o/lib/handler/status.c:136,1
    - Dst: collect_reqs_of_context
      Src: /src/h2o/lib/handler/status.c:137,1
    - Dst: send_response
      Src: /src/h2o/lib/handler/status.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - receiver
    - messages
    argTypes:
    - h2o_multithread_receiver_t*
    - h2o_linklist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: on_collect_notify
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    - h2o_linklist_is_empty
    - H2O_STRUCT_FROM_MEMBER
    - send_response
    - free
    - collect_reqs_of_context
    - h2o_linklist_unlink
    linkageType: ''
    returnType: void
    signature: void on_collect_notify(h2o_multithread_receiver_t *receiver, h2o_linklist_t
      *messages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _collector
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: on_collector_dispose
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_collector_dispose(void *_collector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/status.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: on_req_close
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    linkageType: ''
    returnType: void
    signature: void on_req_close(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/status.c:158,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/status.c:159,1
    - Dst: memset
      Src: /src/h2o/lib/handler/status.c:162,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/status.c:166,1
    - Dst: h2o_contains_token
      Src: /src/h2o/lib/handler/status.c:170,1
    - Dst: h2o_status_handler_t*::init
      Src: /src/h2o/lib/handler/status.c:176,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status.c:187,1
    - Dst: h2o_multithread_send_message
      Src: /src/h2o/lib/handler/status.c:189,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/status.c:193,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/status.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - self
    - req
    - status_list
    argTypes:
    - struct st_h2o_root_status_handler_t*
    - h2o_req_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: on_req_json
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - h2o_mem_addref_shared
    - h2o_context_get_handler_context
    - h2o_mem_alloc
    - h2o_contains_token
    - h2o_mem_alloc_shared
    - h2o_status_handler_t*::init
    - h2o_multithread_send_message
    - h2o_vector_reserve
    - memset
    linkageType: ''
    returnType: int
    signature: int on_req_json(struct st_h2o_root_status_handler_t *self, h2o_req_t
      *req, h2o_iovec_t status_list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status.c:204,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/status.c:206,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:206,1
    - Dst: getenv
      Src: /src/h2o/lib/handler/status.c:209,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/lib/handler/status.c:211,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/status.c:212,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status.c:212,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/status.c:212,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status.c:212,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:212,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/status.c:213,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:213,1
    - Dst: h2o_file_send
      Src: /src/h2o/lib/handler/status.c:214,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status.c:214,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:214,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/status.c:215,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status.c:215,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/status.c:220,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status.c:221,1
    - Dst: on_req_json
      Src: /src/h2o/lib/handler/status.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 2
    functionsReached:
    - on_req_json
    - H2O_STRLIT
    - H2O_TO_STR
    - h2o_concat
    - h2o_file_send
    - getenv
    - h2o_add_header
    - h2o_memis
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status.c:234,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/lib/handler/status.c:237,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/status.c:239,1
    - Dst: h2o_context_set_handler_context
      Src: /src/h2o/lib/handler/status.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 1
    functionsReached:
    - h2o_multithread_register_receiver
    - h2o_mem_alloc
    - h2o_vector_reserve
    - h2o_context_set_handler_context
    linkageType: ''
    returnType: void
    signature: void on_context_init(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/status.c:248,1
    - Dst: assert
      Src: /src/h2o/lib/handler/status.c:254,1
    - Dst: memmove
      Src: /src/h2o/lib/handler/status.c:255,1
    - Dst: h2o_multithread_unregister_receiver
      Src: /src/h2o/lib/handler/status.c:258,1
    - Dst: free
      Src: /src/h2o/lib/handler/status.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts:
    - condition: (i != self->receivers.size)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/h2o/lib/handler/status.c
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 1
    functionsReached:
    - free
    - h2o_context_get_handler_context
    - h2o_multithread_unregister_receiver
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/status.c:265,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/lib/handler/status.c:269,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/lib/handler/status.c:270,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/lib/handler/status.c:271,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/lib/handler/status.c:272,1
    - Dst: h2o_config_register_status_handler
      Src: /src/h2o/lib/handler/status.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: h2o_status_register
    functionSourceFile: /src/h2o/lib/handler/status.c
    functionUses: 0
    functionsReached:
    - h2o_config_register_status_handler
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: void h2o_status_register(h2o_pathconf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _p
    - v
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: encode_uint16
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void encode_uint16(void *_p, unsigned v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_uint16
      Src: /src/h2o/lib/handler/fastcgi.c:97,1
    - Dst: encode_uint16
      Src: /src/h2o/lib/handler/fastcgi.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - p
    - type
    - reqId
    - sz
    argTypes:
    - void*
    - uint8_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: encode_record_header
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - encode_uint16
    linkageType: ''
    returnType: void
    signature: void encode_record_header(void *p, uint8_t type, uint16_t reqId, uint16_t
      sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_record_header
      Src: /src/h2o/lib/handler/fastcgi.c:105,1
    - Dst: encode_uint16
      Src: /src/h2o/lib/handler/fastcgi.c:107,1
    - Dst: memset
      Src: /src/h2o/lib/handler/fastcgi.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - p
    - reqId
    - role
    - flags
    argTypes:
    - void*
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: encode_begin_request
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - encode_record_header
    - memset
    - encode_uint16
    linkageType: ''
    returnType: void
    signature: void encode_begin_request(void *p, uint16_t reqId, uint16_t role, uint8_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:114,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/fastcgi.c:114,1
    - Dst: encode_begin_request
      Src: /src/h2o/lib/handler/fastcgi.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pool
    - reqId
    - role
    - flags
    argTypes:
    - h2o_mem_pool_t*
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: create_begin_request
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - encode_begin_request
    - h2o_mem_alloc_pool
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t create_begin_request(h2o_mem_pool_t *pool, uint16_t reqId,
      uint16_t role, uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:122,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/fastcgi.c:122,1
    - Dst: encode_record_header
      Src: /src/h2o/lib/handler/fastcgi.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pool
    - type
    - reqId
    - sz
    argTypes:
    - h2o_mem_pool_t*
    - uint8_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: create_header
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - encode_record_header
    - h2o_mem_alloc_pool
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t create_header(h2o_mem_pool_t *pool, uint8_t type, uint16_t
      reqId, uint16_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:129,1
    - Dst: htons
      Src: /src/h2o/lib/handler/fastcgi.c:130,1
    - Dst: htons
      Src: /src/h2o/lib/handler/fastcgi.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - decoded
    - s
    argTypes:
    - struct st_fcgi_record_header_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: decode_header
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 3
    functionsReached:
    - htons
    - memcpy
    linkageType: ''
    returnType: void
    signature: void decode_header(struct st_fcgi_record_header_t *decoded, const void
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:139,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/fastcgi.c:141,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - pool
    - blocks
    - s
    - len
    argTypes:
    - h2o_mem_pool_t*
    - iovec_vector_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: append
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 29
    functionsReached:
    - memcpy
    - h2o_vector_reserve
    - h2o_mem_alloc_pool
    linkageType: ''
    returnType: void
    signature: void *append(h2o_mem_pool_t *pool, iovec_vector_t *blocks, const void
      *s, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: encode_length_of_pair
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *encode_length_of_pair(char *p, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/h2o/lib/handler/fastcgi.c:173,1
    - Dst: encode_length_of_pair
      Src: /src/h2o/lib/handler/fastcgi.c:173,1
    - Dst: encode_length_of_pair
      Src: /src/h2o/lib/handler/fastcgi.c:173,1
    - Dst: append
      Src: /src/h2o/lib/handler/fastcgi.c:174,1
    - Dst: append
      Src: /src/h2o/lib/handler/fastcgi.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pool
    - blocks
    - name
    - namelen
    - value
    - valuelen
    argTypes:
    - h2o_mem_pool_t*
    - iovec_vector_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: append_pair
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - encode_length_of_pair
    - append
    linkageType: ''
    returnType: void
    signature: "void *append_pair(h2o_mem_pool_t *pool, iovec_vector_t *blocks, const
      char *name, size_t namelen, const char *value,\n                         size_t
      valuelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/h2o/lib/handler/fastcgi.c:188,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/handler/fastcgi.c:191,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:193,1
    - Dst: h2o_socket_getport
      Src: /src/h2o/lib/handler/fastcgi.c:194,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/fastcgi.c:197,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - req
    - vecs
    - addrlabel
    - addrlabel_len
    - portlabel
    - portlabel_len
    argTypes:
    - h2o_req_t*
    - iovec_vector_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: append_address_info
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_socket_getport
    - h2o_socket_getnumerichost
    - cb
    - append_pair
    - sprintf
    linkageType: ''
    returnType: void
    signature: "void append_address_info(h2o_req_t *req, iovec_vector_t *vecs, const
      char *addrlabel, size_t addrlabel_len,\n                                const
      char *portlabel, size_t portlabel_len, socklen_t (*cb)(h2o_conn_t *conn, struct
      sockaddr *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/handler/fastcgi.c:208,1
    - Dst: h2o_toupper
      Src: /src/h2o/lib/handler/fastcgi.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - env
    - header
    argTypes:
    - h2o_iovec_t*
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: envname_is_headername
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_toupper
    - memcmp
    linkageType: ''
    returnType: int
    signature: int envname_is_headername(const h2o_iovec_t *env, const h2o_iovec_t
      *header)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/h2o/lib/handler/fastcgi.c:223,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:224,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:224,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:229,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:229,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:230,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:230,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:233,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:233,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:237,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:237,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:240,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:240,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:242,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:242,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:244,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:245,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:250,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:250,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:253,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:253,1
    - Dst: append_address_info
      Src: /src/h2o/lib/handler/fastcgi.c:256,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:256,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:256,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:261,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:265,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:265,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:268,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:268,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:269,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:269,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:271,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:271,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:272,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:272,1
    - Dst: append_address_info
      Src: /src/h2o/lib/handler/fastcgi.c:275,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:275,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:275,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:277,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:277,1
    - Dst: h2o_stringify_protocol_version
      Src: /src/h2o/lib/handler/fastcgi.c:280,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:281,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:281,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:284,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:284,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:288,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:288,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:288,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:295,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:295,1
    - Dst: envname_is_headername
      Src: /src/h2o/lib/handler/fastcgi.c:305,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:308,1
    - Dst: h2o_toupper
      Src: /src/h2o/lib/handler/fastcgi.c:316,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:323,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:323,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:329,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:335,1
    - Dst: h2o_conn_is_early_data
      Src: /src/h2o/lib/handler/fastcgi.c:337,1
    - Dst: append_pair
      Src: /src/h2o/lib/handler/fastcgi.c:338,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:338,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:338,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 93
    argCount: 3
    argNames:
    - req
    - vecs
    - config
    argTypes:
    - h2o_req_t*
    - iovec_vector_t*
    - h2o_fastcgi_config_vars_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 342
    functionName: append_params
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_toupper
    - H2O_STRLIT
    - h2o_conn_is_early_data
    - append_pair
    - sprintf
    - append_address_info
    - memcpy
    - envname_is_headername
    - h2o_stringify_protocol_version
    linkageType: ''
    returnType: void
    signature: void append_params(h2o_req_t *req, iovec_vector_t *vecs, h2o_fastcgi_config_vars_t
      *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:353,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:355,1
    - Dst: memmove
      Src: /src/h2o/lib/handler/fastcgi.c:356,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:360,1
    - Dst: memmove
      Src: /src/h2o/lib/handler/fastcgi.c:361,1
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:374,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:376,1
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - pool
    - vecs
    - request_id
    - max_record_size
    argTypes:
    - h2o_mem_pool_t*
    - iovec_vector_t*
    - unsigned
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 379
    functionName: annotate_params
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - create_header
    - memmove
    linkageType: ''
    returnType: void
    signature: void annotate_params(h2o_mem_pool_t *pool, iovec_vector_t *vecs, unsigned
      request_id, size_t max_record_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:387,1
    - Dst: create_begin_request
      Src: /src/h2o/lib/handler/fastcgi.c:389,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:391,1
    - Dst: append_params
      Src: /src/h2o/lib/handler/fastcgi.c:394,1
    - Dst: annotate_params
      Src: /src/h2o/lib/handler/fastcgi.c:395,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:400,1
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:401,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:402,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:405,1
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:406,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:407,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:410,1
    - Dst: create_header
      Src: /src/h2o/lib/handler/fastcgi.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - req
    - vecs
    - request_id
    - max_record_size
    - config
    argTypes:
    - h2o_req_t*
    - iovec_vector_t*
    - unsigned
    - size_t
    - h2o_fastcgi_config_vars_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 412
    functionName: build_request
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 3
    functionsReached:
    - annotate_params
    - create_begin_request
    - create_header
    - append_params
    - h2o_vector_reserve
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void build_request(h2o_req_t *req, iovec_vector_t *vecs, unsigned
      request_id, size_t max_record_size,\n                          h2o_fastcgi_config_vars_t
      *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/fastcgi.c:416,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/fastcgi.c:417,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/fastcgi.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - generator
    - timeout
    - cb
    argTypes:
    - struct st_fcgi_generator_t*
    - uint64_t
    - h2o_timer_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: set_timeout
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 3
    functionsReached:
    - h2o_timer_is_linked
    - h2o_timer_unlink
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void set_timeout(struct st_fcgi_generator_t *generator, uint64_t timeout,
      h2o_timer_cb cb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/fastcgi.c:425,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/fastcgi.c:426,1
    - Dst: h2o_socketpool_cancel_connect
      Src: /src/h2o/lib/handler/fastcgi.c:428,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/fastcgi.c:432,1
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/handler/fastcgi.c:436,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/fastcgi.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - generator
    argTypes:
    - struct st_fcgi_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 422
    functionDepth: 8
    functionLinenumber: 422
    functionLinenumberEnd: 439
    functionName: close_generator
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_socket_close
    - h2o_buffer_dispose
    - h2o_socketpool_cancel_connect
    - h2o_doublebuffer_dispose
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void close_generator(struct st_fcgi_generator_t *generator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_prepare
      Src: /src/h2o/lib/handler/fastcgi.c:447,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/fastcgi.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - generator
    argTypes:
    - struct st_fcgi_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: do_send
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 11
    functionsReached:
    - h2o_send
    - h2o_doublebuffer_prepare
    linkageType: ''
    returnType: void
    signature: void do_send(struct st_fcgi_generator_t *generator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_return
      Src: /src/h2o/lib/handler/fastcgi.c:466,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/fastcgi.c:468,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/fastcgi.c:470,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/fastcgi.c:471,1
    - Dst: do_send
      Src: /src/h2o/lib/handler/fastcgi.c:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - generator
    - can_keepalive
    argTypes:
    - struct st_fcgi_generator_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 10
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: send_eos_and_close
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_socket_close
    - do_send
    - h2o_socketpool_return
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void send_eos_and_close(struct st_fcgi_generator_t *generator, int
      can_keepalive)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_eos_and_close
      Src: /src/h2o/lib/handler/fastcgi.c:479,1
    - Dst: close_generator
      Src: /src/h2o/lib/handler/fastcgi.c:482,1
    - Dst: h2o_send_error_503
      Src: /src/h2o/lib/handler/fastcgi.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - generator
    argTypes:
    - struct st_fcgi_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 11
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: errorclose
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - close_generator
    - h2o_send_error_503
    - send_eos_and_close
    linkageType: ''
    returnType: void
    signature: void errorclose(struct st_fcgi_generator_t *generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: _isdigit
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _isdigit(int ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/handler/fastcgi.c:503,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/handler/fastcgi.c:504,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:509,1
    - Dst: h2o_strtosize
      Src: /src/h2o/lib/handler/fastcgi.c:512,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:513,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/fastcgi.c:525,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/fastcgi.c:526,1
    - Dst: h2o_push_path_in_link_header
      Src: /src/h2o/lib/handler/fastcgi.c:528,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/fastcgi.c:530,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/fastcgi.c:530,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:531,1
    - Dst: _isdigit
      Src: /src/h2o/lib/handler/fastcgi.c:532,1
    - Dst: _isdigit
      Src: /src/h2o/lib/handler/fastcgi.c:532,1
    - Dst: _isdigit
      Src: /src/h2o/lib/handler/fastcgi.c:532,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:534,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/fastcgi.c:538,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/fastcgi.c:540,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/fastcgi.c:541,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/fastcgi.c:542,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/fastcgi.c:548,1
    - Dst: h2o_resp_add_date_header
      Src: /src/h2o/lib/handler/fastcgi.c:549,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - req
    - headers
    - num_headers
    argTypes:
    - h2o_req_t*
    - struct phr_header*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 552
    functionName: fill_headers
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - _isdigit
    - h2o_strtosize
    - h2o_add_header_by_str
    - H2O_STRLIT
    - h2o_strdup
    - h2o_lookup_token
    - h2o_req_log_error
    - h2o_resp_add_date_header
    - h2o_add_header
    - h2o_find_header
    - h2o_memis
    - h2o_strtolower
    - h2o_push_path_in_link_header
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int fill_headers(h2o_req_t *req, struct phr_header *headers, size_t
      num_headers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:565,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - generator
    - src
    - len
    argTypes:
    - struct st_fcgi_generator_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 554
    functionDepth: 6
    functionLinenumber: 554
    functionLinenumberEnd: 572
    functionName: append_content
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_buffer_try_reserve
    linkageType: ''
    returnType: int
    signature: int append_content(struct st_fcgi_generator_t *generator, const void
      *src, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: append_content
      Src: /src/h2o/lib/handler/fastcgi.c:586,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:587,1
    - Dst: phr_parse_headers
      Src: /src/h2o/lib/handler/fastcgi.c:596,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:599,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:599,1
    - Dst: phr_parse_headers
      Src: /src/h2o/lib/handler/fastcgi.c:603,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/fastcgi.c:609,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/fastcgi.c:609,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:615,1
    - Dst: fill_headers
      Src: /src/h2o/lib/handler/fastcgi.c:621,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/fastcgi.c:624,1
    - Dst: append_content
      Src: /src/h2o/lib/handler/fastcgi.c:631,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:632,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - generator
    - header
    argTypes:
    - struct st_fcgi_generator_t*
    - struct st_fcgi_record_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 641
    functionName: handle_stdin_record
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - phr_parse_headers
    - h2o_req_log_error
    - h2o_buffer_reserve
    - h2o_start_response
    - memcpy
    - h2o_buffer_consume
    - append_content
    - fill_headers
    linkageType: ''
    returnType: int
    signature: int handle_stdin_record(struct st_fcgi_generator_t *generator, struct
      st_fcgi_record_header_t *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/fastcgi.c:645,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:647,1
    - Dst: errorclose
      Src: /src/h2o/lib/handler/fastcgi.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 12
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: on_rw_timeout
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_req_log_error
    - H2O_STRUCT_FROM_MEMBER
    - errorclose
    linkageType: ''
    returnType: void
    signature: void on_rw_timeout(h2o_timer_t *entry)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:660,1
    - Dst: errorclose
      Src: /src/h2o/lib/handler/fastcgi.c:661,1
    - Dst: decode_header
      Src: /src/h2o/lib/handler/fastcgi.c:671,1
    - Dst: handle_stdin_record
      Src: /src/h2o/lib/handler/fastcgi.c:678,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:680,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:684,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:686,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:690,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:693,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:697,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:698,1
    - Dst: h2o_doublebuffer_prepare_empty
      Src: /src/h2o/lib/handler/fastcgi.c:709,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/fastcgi.c:710,1
    - Dst: do_send
      Src: /src/h2o/lib/handler/fastcgi.c:712,1
    - Dst: set_timeout
      Src: /src/h2o/lib/handler/fastcgi.c:716,1
    - Dst: send_eos_and_close
      Src: /src/h2o/lib/handler/fastcgi.c:720,1
    - Dst: errorclose
      Src: /src/h2o/lib/handler/fastcgi.c:724,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 651
    functionDepth: 12
    functionLinenumber: 651
    functionLinenumberEnd: 725
    functionName: on_read
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 7
    functionsReached:
    - decode_header
    - handle_stdin_record
    - send_eos_and_close
    - do_send
    - h2o_req_log_error
    - set_timeout
    - errorclose
    - h2o_send
    - h2o_doublebuffer_prepare_empty
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_timeout
      Src: /src/h2o/lib/handler/fastcgi.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: on_send_complete
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 1
    functionsReached:
    - set_timeout
    linkageType: ''
    returnType: void
    signature: void on_send_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:743,1
    - Dst: errorclose
      Src: /src/h2o/lib/handler/fastcgi.c:744,1
    - Dst: build_request
      Src: /src/h2o/lib/handler/fastcgi.c:751,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/handler/fastcgi.c:754,1
    - Dst: set_timeout
      Src: /src/h2o/lib/handler/fastcgi.c:756,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/handler/fastcgi.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - sock
    - errstr
    - data
    - _dummy
    argTypes:
    - h2o_socket_t*
    - char*
    - void*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 735
    functionDepth: 12
    functionLinenumber: 735
    functionLinenumberEnd: 760
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 9
    functionsReached:
    - build_request
    - set_timeout
    - h2o_req_log_error
    - errorclose
    - h2o_socket_write
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_connect(h2o_socket_t *sock, const char *errstr, void *data,
      h2o_url_t *_dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/handler/fastcgi.c:766,1
    - Dst: do_send
      Src: /src/h2o/lib/handler/fastcgi.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 768
    functionName: do_proceed
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 2
    functionsReached:
    - do_send
    - h2o_doublebuffer_consume
    linkageType: ''
    returnType: void
    signature: void do_proceed(h2o_generator_t *_generator, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_generator
      Src: /src/h2o/lib/handler/fastcgi.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 9
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: do_stop
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - close_generator
    linkageType: ''
    returnType: void
    signature: void do_stop(h2o_generator_t *_generator, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/fastcgi.c:778,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/fastcgi.c:780,1
    - Dst: errorclose
      Src: /src/h2o/lib/handler/fastcgi.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 776
    functionDepth: 12
    functionLinenumber: 776
    functionLinenumberEnd: 782
    functionName: on_connect_timeout
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_req_log_error
    - H2O_STRUCT_FROM_MEMBER
    - errorclose
    linkageType: ''
    returnType: void
    signature: void on_connect_timeout(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/fastcgi.c:789,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/handler/fastcgi.c:796,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/fastcgi.c:797,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/handler/fastcgi.c:798,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/fastcgi.c:799,1
    - Dst: h2o_socketpool_connect
      Src: /src/h2o/lib/handler/fastcgi.c:801,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/fastcgi.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - _handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 784
    functionDepth: 10
    functionLinenumber: 784
    functionLinenumberEnd: 806
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 2
    functionsReached:
    - h2o_timer_link
    - h2o_buffer_init
    - h2o_socketpool_connect
    - h2o_doublebuffer_init
    - h2o_mem_alloc_shared
    - h2o_timer_init
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_handler, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_register_loop
      Src: /src/h2o/lib/handler/fastcgi.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _handler
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 812
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 1
    functionsReached:
    - h2o_socketpool_register_loop
    linkageType: ''
    returnType: void
    signature: void on_context_init(h2o_handler_t *_handler, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_unregister_loop
      Src: /src/h2o/lib/handler/fastcgi.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _handler
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 1
    functionsReached:
    - h2o_socketpool_unregister_loop
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(h2o_handler_t *_handler, h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fastcgi_handler_t*::config::callbacks::dispose
      Src: /src/h2o/lib/handler/fastcgi.c:825,1
    - Dst: h2o_socketpool_dispose
      Src: /src/h2o/lib/handler/fastcgi.c:827,1
    - Dst: free
      Src: /src/h2o/lib/handler/fastcgi.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _handler
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 820
    functionDepth: 8
    functionLinenumber: 820
    functionLinenumberEnd: 829
    functionName: on_handler_dispose
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_socketpool_dispose
    - h2o_fastcgi_handler_t*::config::callbacks::dispose
    - free
    linkageType: ''
    returnType: void
    signature: void on_handler_dispose(h2o_handler_t *_handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/fastcgi.c:833,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/fastcgi.c:841,1
    - Dst: h2o_socketpool_create_target
      Src: /src/h2o/lib/handler/fastcgi.c:843,1
    - Dst: h2o_socketpool_init_specific
      Src: /src/h2o/lib/handler/fastcgi.c:845,1
    - Dst: h2o_socketpool_set_timeout
      Src: /src/h2o/lib/handler/fastcgi.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pathconf
    - upstream
    - vars
    argTypes:
    - h2o_pathconf_t*
    - h2o_url_t*
    - h2o_fastcgi_config_vars_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 848
    functionName: h2o_fastcgi_register
    functionSourceFile: /src/h2o/lib/handler/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_socketpool_set_timeout
    - h2o_socketpool_init_specific
    - h2o_create_handler
    - h2o_socketpool_create_target
    linkageType: ''
    returnType: h2o_fastcgi_handler_t
    signature: h2o_fastcgi_handler_t *h2o_fastcgi_register(h2o_pathconf_t *pathconf,
      h2o_url_t *upstream, h2o_fastcgi_config_vars_t *vars)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_log_request
      Src: /src/h2o/lib/handler/access_log.c:53,1
    - Dst: write
      Src: /src/h2o/lib/handler/access_log.c:56,1
    - Dst: free
      Src: /src/h2o/lib/handler/access_log.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_logger_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: log_access
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 1
    functionsReached:
    - write
    - free
    - h2o_log_request
    linkageType: ''
    returnType: void
    signature: void log_access(h2o_logger_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_logconf_dispose
      Src: /src/h2o/lib/handler/access_log.c:67,1
    - Dst: close
      Src: /src/h2o/lib/handler/access_log.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _fh
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: on_dispose_handle
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 0
    functionsReached:
    - close
    - h2o_logconf_dispose
    linkageType: ''
    returnType: void
    signature: void on_dispose_handle(void *_fh)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/h2o/lib/handler/access_log.c:80,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/handler/access_log.c:81,1
    - Dst: fcntl
      Src: /src/h2o/lib/handler/access_log.c:84,1
    - Dst: h2o_perror
      Src: /src/h2o/lib/handler/access_log.c:85,1
    - Dst: h2o_spawnp
      Src: /src/h2o/lib/handler/access_log.c:91,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:92,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/access_log.c:92,1
    - Dst: close
      Src: /src/h2o/lib/handler/access_log.c:96,1
    - Dst: stat
      Src: /src/h2o/lib/handler/access_log.c:102,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/access_log.c:105,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:106,1
    - Dst: socket
      Src: /src/h2o/lib/handler/access_log.c:109,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:110,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/access_log.c:110,1
    - Dst: memset
      Src: /src/h2o/lib/handler/access_log.c:113,1
    - Dst: strcpy
      Src: /src/h2o/lib/handler/access_log.c:115,1
    - Dst: connect
      Src: /src/h2o/lib/handler/access_log.c:116,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:117,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/access_log.c:117,1
    - Dst: close
      Src: /src/h2o/lib/handler/access_log.c:118,1
    - Dst: open
      Src: /src/h2o/lib/handler/access_log.c:123,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:124,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/access_log.c:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 131
    functionName: h2o_access_log_open_log
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 1
    functionsReached:
    - close
    - memset
    - h2o_error_printf
    - open
    - pipe
    - fcntl
    - stat
    - connect
    - strerror
    - socket
    - h2o_spawnp
    - strlen
    - h2o_perror
    - strcpy
    linkageType: ''
    returnType: int
    signature: int h2o_access_log_open_log(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_logconf_compile
      Src: /src/h2o/lib/handler/access_log.c:143,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/access_log.c:144,1
    - Dst: h2o_access_log_open_log
      Src: /src/h2o/lib/handler/access_log.c:149,1
    - Dst: h2o_logconf_dispose
      Src: /src/h2o/lib/handler/access_log.c:150,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/access_log.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - path
    - fmt
    - escape
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: h2o_access_log_open_handle
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    - h2o_mem_alloc_shared
    - h2o_logconf_dispose
    - h2o_access_log_open_log
    - h2o_logconf_compile
    linkageType: ''
    returnType: h2o_access_log_filehandle_t
    signature: h2o_access_log_filehandle_t *h2o_access_log_open_handle(const char
      *path, const char *fmt, int escape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/access_log.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_logger_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: dispose
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 166
    functionsReached:
    - h2o_mem_release_shared
    linkageType: ''
    returnType: void
    signature: void dispose(h2o_logger_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_logger
      Src: /src/h2o/lib/handler/access_log.c:169,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/access_log.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pathconf
    - fh
    argTypes:
    - h2o_pathconf_t*
    - h2o_access_log_filehandle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: h2o_access_log_register
    functionSourceFile: /src/h2o/lib/handler/access_log.c
    functionUses: 0
    functionsReached:
    - h2o_mem_addref_shared
    - h2o_create_logger
    linkageType: ''
    returnType: h2o_logger_t
    signature: h2o_logger_t *h2o_access_log_register(h2o_pathconf_t *pathconf, h2o_access_log_filehandle_t
      *fh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:132,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: get_proxy_status_identity
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t get_proxy_status_identity(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: get_dest_addr
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_server_address_t
    signature: struct st_server_address_t *get_dest_addr(struct st_connect_generator_t
      *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_proxy_status_identity
      Src: /src/h2o/lib/handler/connect.c:153,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:157,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:157,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:158,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/connect.c:158,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:161,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:161,1
    - Dst: h2o_encode_sf_string
      Src: /src/h2o/lib/handler/connect.c:162,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:165,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:165,1
    - Dst: h2o_encode_sf_string
      Src: /src/h2o/lib/handler/connect.c:166,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:169,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:169,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:171,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:171,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:173,1
    - Dst: h2o_concat_list
      Src: /src/h2o/lib/handler/connect.c:174,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/connect.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - handler
    - req
    - error_type
    - details
    - rcode
    - dest_addr_str
    argTypes:
    - struct st_connect_handler_t*
    - h2o_req_t*
    - char*
    - char*
    - char*
    - h2o_iovec_t
    assertStmts:
    - condition: (nparts <= sizeof(parts) / sizeof(parts[0]))
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: add_proxy_status_header
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - H2O_STRLIT
    - h2o_concat_list
    - get_proxy_status_identity
    - h2o_encode_sf_string
    - assert
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void add_proxy_status_header(struct st_connect_handler_t *handler,
      h2o_req_t *req, const char *error_type,\n                                    const
      char *details, const char *rcode, h2o_iovec_t dest_addr_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: TO_BITMASK
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BITMASK(type, len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:183,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:186,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/handler/connect.c:188,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:190,1
    - Dst: h2o_req_log_error
      Src: /src/h2o/lib/handler/connect.c:194,1
    - Dst: add_proxy_status_header
      Src: /src/h2o/lib/handler/connect.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - handler
    - req
    - addr
    - error_type
    - details
    - rcode
    argTypes:
    - struct st_connect_handler_t*
    - h2o_req_t*
    - struct st_server_address_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: record_error
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 1
    functionsReached:
    - h2o_socket_getnumerichost
    - h2o_req_log_error
    - add_proxy_status_header
    - H2O_PROBE_REQUEST
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: "void record_error(struct st_connect_handler_t *handler, h2o_req_t
      *req, const struct st_server_address_t *addr,\n                         const
      char *error_type, const char *details, const char *rcode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_dest_addr
      Src: /src/h2o/lib/handler/connect.c:202,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:206,1
    - Dst: h2o_socket_getnumerichost
      Src: /src/h2o/lib/handler/connect.c:209,1
    - Dst: add_proxy_status_header
      Src: /src/h2o/lib/handler/connect.c:211,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: record_connect_success
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_getnumerichost
    - get_dest_addr
    - add_proxy_status_header
    - H2O_PROBE_REQUEST
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void record_connect_success(struct st_connect_generator_t *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:229,1
    - Dst: get_dest_addr
      Src: /src/h2o/lib/handler/connect.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - err
    argTypes:
    - struct st_connect_generator_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: record_socket_error
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - record_error
    - get_dest_addr
    linkageType: ''
    returnType: void
    signature: void record_socket_error(struct st_connect_generator_t *self, const
      char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: get_loop
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: h2o_loop_t
    signature: h2o_loop_t *get_loop(struct st_connect_generator_t *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_hostinfo_getaddr_cancel
      Src: /src/h2o/lib/handler/connect.c:244,1
    - Dst: h2o_hostinfo_getaddr_cancel
      Src: /src/h2o/lib/handler/connect.c:248,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: stop_eyeballs
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_hostinfo_getaddr_cancel
    linkageType: ''
    returnType: void
    signature: void stop_eyeballs(struct st_connect_generator_t *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stop_eyeballs
      Src: /src/h2o/lib/handler/connect.c:259,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:261,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/connect.c:267,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/connect.c:269,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/connect.c:272,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:273,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 7
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: dispose_generator
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_close
    - h2o_timer_unlink
    - stop_eyeballs
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void dispose_generator(struct st_connect_generator_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_is_reading
      Src: /src/h2o/lib/handler/connect.c:286,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/connect.c:288,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 7
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: close_socket
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - h2o_socket_close
    - h2o_socket_is_reading
    linkageType: ''
    returnType: int
    signature: int close_socket(struct st_connect_generator_t *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: close_socket
      Src: /src/h2o/lib/handler/connect.c:301,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/connect.c:305,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:306,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:311,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:311,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:313,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:320,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:320,1
    - Dst: struct st_connect_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/handler/connect.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 296
    functionDepth: 8
    functionLinenumber: 296
    functionLinenumberEnd: 324
    functionName: close_readwrite
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_timer_unlink
    - h2o_timer_link
    - close_socket
    - struct st_connect_generator_t*::src_req::proceed_req
    - get_loop
    - h2o_send
    - h2o_timer_is_linked
    linkageType: ''
    returnType: void
    signature: void close_readwrite(struct st_connect_generator_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:328,1
    - Dst: H2O_PROBE_REQUEST0
      Src: /src/h2o/lib/handler/connect.c:329,1
    - Dst: close_readwrite
      Src: /src/h2o/lib/handler/connect.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 9
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: on_io_timeout
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_PROBE_REQUEST0
    - close_readwrite
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_io_timeout(h2o_timer_t *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:336,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:337,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: reset_io_timeout
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - get_loop
    - h2o_timer_unlink
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void reset_io_timeout(struct st_connect_generator_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stop_eyeballs
      Src: /src/h2o/lib/handler/connect.c:343,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:344,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:347,1
    - Dst: h2o_send_error_generic
      Src: /src/h2o/lib/handler/connect.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - code
    - msg
    - errstr
    argTypes:
    - struct st_connect_generator_t*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 7
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: send_connect_error
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_close
    - h2o_send_error_generic
    - h2o_timer_unlink
    - stop_eyeballs
    linkageType: ''
    returnType: void
    signature: void send_connect_error(struct st_connect_generator_t *self, int code,
      const char *msg, const char *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_connect_error
      Src: /src/h2o/lib/handler/connect.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - errstr
    argTypes:
    - struct st_connect_generator_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 8
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: on_connect_error
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 3
    functionsReached:
    - send_connect_error
    linkageType: ''
    returnType: void
    signature: void on_connect_error(struct st_connect_generator_t *self, const char
      *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:361,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:363,1
    - Dst: get_dest_addr
      Src: /src/h2o/lib/handler/connect.c:363,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:365,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/handler/connect.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 368
    functionName: on_connect_timeout
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - record_error
    - get_dest_addr
    - on_connect_error
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_connect_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - class
    - str
    argTypes:
    - struct st_connect_generator_t*
    - enum error_class
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: set_last_error
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_last_error(struct st_connect_generator_t *self, enum error_class
      class, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:380,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:382,1
    - Dst: try_connect
      Src: /src/h2o/lib/handler/connect.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: (self->server_addresses.used == 0)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: on_resolution_delay_timeout
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - assert
    - H2O_STRUCT_FROM_MEMBER
    - try_connect
    linkageType: ''
    returnType: void
    signature: void on_resolution_delay_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:389,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:396,1
    - Dst: try_connect
      Src: /src/h2o/lib/handler/connect.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 399
    functionName: on_connection_attempt_delay_timeout
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_close
    - H2O_STRUCT_FROM_MEMBER
    - try_connect
    linkageType: ''
    returnType: void
    signature: void on_connection_attempt_delay_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:408,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/handler/connect.c:408,1
    - Dst: h2o_connect_lookup_acl
      Src: /src/h2o/lib/handler/connect.c:409,1
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/handler/connect.c:411,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/connect.c:411,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/connect.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - res
    argTypes:
    - struct st_connect_generator_t*
    - struct addrinfo*
    assertStmts:
    - condition: (self->server_addresses.size < PTLS_ELEMENTSOF(self->server_addresses.list))
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: store_server_addresses
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_ALIGNOF
    - PTLS_ELEMENTSOF
    - memcpy
    - h2o_connect_lookup_acl
    - h2o_mem_alloc_pool_aligned
    - assert
    linkageType: ''
    returnType: int
    signature: int store_server_addresses(struct st_connect_generator_t *self, struct
      addrinfo *res)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/connect.c:429,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:435,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:437,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:439,1
    - Dst: store_server_addresses
      Src: /src/h2o/lib/handler/connect.c:440,1
    - Dst: set_last_error
      Src: /src/h2o/lib/handler/connect.c:441,1
    - Dst: set_last_error
      Src: /src/h2o/lib/handler/connect.c:443,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:450,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:453,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:453,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/connect.c:459,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:460,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:461,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:466,1
    - Dst: send_connect_error
      Src: /src/h2o/lib/handler/connect.c:467,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:481,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/handler/connect.c:482,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/connect.c:497,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:501,1
    - Dst: try_connect
      Src: /src/h2o/lib/handler/connect.c:504,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 4
    argNames:
    - getaddr_req
    - errstr
    - res
    - _self
    argTypes:
    - h2o_hostinfo_getaddr_req_t*
    - char*
    - struct addrinfo*
    - void*
    assertStmts:
    - condition: (res->ai_socktype == SOCK_DGRAM)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (res->ai_socktype == SOCK_STREAM)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->server_addresses.used == 0)
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->server_addresses.used == 0)
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (res != NULL && "upon successful return, getaddrinfo shall return
        at least one address (RFC 3493 Section 6.1)")
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 505
      start: 421
    functionDepth: 8
    functionLinenumber: 421
    functionLinenumberEnd: 505
    functionName: on_getaddr
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - store_server_addresses
    - send_connect_error
    - h2o_timer_unlink
    - h2o_timer_link
    - try_connect
    - h2o_socket_close
    - get_loop
    - h2o_fatal
    - on_connect_error
    - record_error
    - h2o_timer_is_linked
    - assert
    - set_last_error
    linkageType: ''
    returnType: void
    signature: void on_getaddr(h2o_hostinfo_getaddr_req_t *getaddr_req, const char
      *errstr, struct addrinfo *res, void *_self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - struct st_connect_generator_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 520
    functionName: pick_and_swap
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct st_server_address_t
    signature: struct st_server_address_t *pick_and_swap(struct st_connect_generator_t
      *self, size_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pick_and_swap
      Src: /src/h2o/lib/handler/connect.c:529,1
    - Dst: pick_and_swap
      Src: /src/h2o/lib/handler/connect.c:532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 545
    functionName: get_next_server_address_for_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 2
    functionsReached:
    - pick_and_swap
    linkageType: ''
    returnType: struct st_server_address_t
    signature: struct st_server_address_t *get_next_server_address_for_connect(struct
      st_connect_generator_t *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_next_server_address_for_connect
      Src: /src/h2o/lib/handler/connect.c:552,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:557,1
    - Dst: record_socket_error
      Src: /src/h2o/lib/handler/connect.c:558,1
    - Dst: on_connect_error
      Src: /src/h2o/lib/handler/connect.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts:
    - condition: (self->last_error.class == ERROR_CLASS_CONNECT)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: try_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 7
    functionsReached:
    - assert
    - record_socket_error
    - get_next_server_address_for_connect
    - on_connect_error
    linkageType: ''
    returnType: void
    signature: void try_connect(struct st_connect_generator_t *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:573,1
    - Dst: close_readwrite
      Src: /src/h2o/lib/handler/connect.c:578,1
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:582,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/connect.c:584,1
    - Dst: struct st_connect_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/handler/connect.c:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 568
    functionDepth: 9
    functionLinenumber: 568
    functionLinenumberEnd: 586
    functionName: tcp_on_write_complete
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - reset_io_timeout
    - struct st_connect_generator_t*::src_req::proceed_req
    - close_readwrite
    - h2o_buffer_consume
    - H2O_PROBE_REQUEST
    linkageType: ''
    returnType: void
    signature: void tcp_on_write_complete(h2o_socket_t *_sock, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:590,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:592,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:593,1
    - Dst: h2o_socket_write
      Src: /src/h2o/lib/handler/connect.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_connect_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: tcp_do_write
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_PROBE_REQUEST
    - reset_io_timeout
    - h2o_socket_write
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void tcp_do_write(struct st_connect_generator_t *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:602,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:603,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:609,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/handler/connect.c:612,1
    - Dst: h2o_socket_is_writing
      Src: /src/h2o/lib/handler/connect.c:617,1
    - Dst: tcp_do_write
      Src: /src/h2o/lib/handler/connect.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - _self
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: (!self->write_closed)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->tcp.sendbuf->size == 0)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->sock != NULL && "write_req called before proceed_req is called?")
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 621
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 621
    functionName: tcp_write
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_is_writing
    - h2o_buffer_append
    - tcp_do_write
    - assert
    linkageType: ''
    returnType: int
    signature: int tcp_write(void *_self, int is_end_stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/handler/connect.c:627,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:628,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:631,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:632,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:633,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:635,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 640
    functionName: tcp_on_read
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - h2o_timer_unlink
    - h2o_send
    - H2O_PROBE_REQUEST
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void tcp_on_read(h2o_socket_t *_sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:644,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:646,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/connect.c:649,1
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:650,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/handler/connect.c:651,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts:
    - condition: (!self->read_closed)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 656
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 656
    functionName: tcp_on_proceed
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - reset_io_timeout
    - H2O_STRUCT_FROM_MEMBER
    - h2o_send
    - h2o_buffer_consume
    - assert
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void tcp_on_proceed(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:662,1
    - Dst: set_last_error
      Src: /src/h2o/lib/handler/connect.c:665,1
    - Dst: h2o_socket_close
      Src: /src/h2o/lib/handler/connect.c:666,1
    - Dst: try_connect
      Src: /src/h2o/lib/handler/connect.c:668,1
    - Dst: stop_eyeballs
      Src: /src/h2o/lib/handler/connect.c:672,1
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:674,1
    - Dst: struct st_connect_generator_t*::src_req::write_req::cb
      Src: /src/h2o/lib/handler/connect.c:678,1
    - Dst: record_connect_success
      Src: /src/h2o/lib/handler/connect.c:680,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/connect.c:684,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (self->sock == _sock)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 686
      start: 658
    functionDepth: 7
    functionLinenumber: 658
    functionLinenumberEnd: 686
    functionName: tcp_on_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - reset_io_timeout
    - try_connect
    - h2o_socket_close
    - h2o_start_response
    - h2o_send
    - struct st_connect_generator_t*::src_req::write_req::cb
    - stop_eyeballs
    - record_connect_success
    - assert
    - set_last_error
    linkageType: ''
    returnType: void
    signature: void tcp_on_connect(h2o_socket_t *_sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:690,1
    - Dst: h2o_socket_connect
      Src: /src/h2o/lib/handler/connect.c:693,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:693,1
    - Dst: set_last_error
      Src: /src/h2o/lib/handler/connect.c:695,1
    - Dst: h2o_evloop_socket_set_max_read_size
      Src: /src/h2o/lib/handler/connect.c:703,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:706,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - server_address
    argTypes:
    - struct st_connect_generator_t*
    - struct st_server_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 709
    functionName: tcp_start_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_evloop_socket_set_max_read_size
    - h2o_timer_link
    - h2o_socket_connect
    - get_loop
    - H2O_PROBE_REQUEST
    - set_last_error
    linkageType: ''
    returnType: int
    signature: int tcp_start_connect(struct st_connect_generator_t *self, struct st_server_address_t
      *server_address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/lib/handler/connect.c:717,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:719,1
    - Dst: ptls_decode_quicint
      Src: /src/h2o/lib/handler/connect.c:720,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:722,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:726,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - start
    - len
    - to_consume
    - skip
    argTypes:
    - char*
    - size_t
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 737
    functionName: udp_get_next_chunk
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - ptls_decode_quicint
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t udp_get_next_chunk(const char *start, size_t len, size_t
      *to_consume, int *skip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ptls_decode_quicint
      Src: /src/h2o/lib/handler/connect.c:745,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:748,1
    - Dst: send
      Src: /src/h2o/lib/handler/connect.c:749,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/handler/connect.c:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - datagram
    argTypes:
    - struct st_connect_generator_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 751
    functionName: udp_write_core
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_PROBE_REQUEST
    - ptls_decode_quicint
    - h2o_socket_get_fd
    - send
    linkageType: ''
    returnType: void
    signature: void udp_write_core(struct st_connect_generator_t *self, h2o_iovec_t
      datagram)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:755,1
    - Dst: close_readwrite
      Src: /src/h2o/lib/handler/connect.c:758,1
    - Dst: struct st_connect_generator_t*::src_req::proceed_req
      Src: /src/h2o/lib/handler/connect.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _timer
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 753
    functionDepth: 9
    functionLinenumber: 753
    functionLinenumberEnd: 763
    functionName: udp_write_stream_complete_delayed
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - struct st_connect_generator_t*::src_req::proceed_req
    - close_readwrite
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void udp_write_stream_complete_delayed(h2o_timer_t *_timer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:770,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/handler/connect.c:775,1
    - Dst: udp_get_next_chunk
      Src: /src/h2o/lib/handler/connect.c:782,1
    - Dst: udp_write_core
      Src: /src/h2o/lib/handler/connect.c:786,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/connect.c:791,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/handler/connect.c:793,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:796,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:796,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - chunk
    argTypes:
    - struct st_connect_generator_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 797
    functionName: udp_do_write_stream
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - udp_write_core
    - reset_io_timeout
    - h2o_timer_link
    - get_loop
    - h2o_buffer_consume
    - udp_get_next_chunk
    - h2o_buffer_append
    linkageType: ''
    returnType: void
    signature: void udp_do_write_stream(struct st_connect_generator_t *self, h2o_iovec_t
      chunk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:804,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:810,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/handler/connect.c:817,1
    - Dst: udp_do_write_stream
      Src: /src/h2o/lib/handler/connect.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - _self
    - is_end_stream
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: (!self->write_closed)
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->sock != NULL && "write_req called before proceed_req is called?")
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 823
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 823
    functionName: udp_write_stream
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - udp_do_write_stream
    - h2o_buffer_append
    - assert
    linkageType: ''
    returnType: int
    signature: int udp_write_stream(void *_self, int is_end_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:829,1
    - Dst: udp_write_core
      Src: /src/h2o/lib/handler/connect.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - _req
    - datagrams
    - num_datagrams
    argTypes:
    - h2o_req_t*
    - h2o_iovec_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 833
    functionName: udp_write_datagrams
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - udp_write_core
    - reset_io_timeout
    linkageType: ''
    returnType: void
    signature: void udp_write_datagrams(h2o_req_t *_req, h2o_iovec_t *datagrams, size_t
      num_datagrams)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:839,1
    - Dst: close_readwrite
      Src: /src/h2o/lib/handler/connect.c:842,1
    - Dst: recv
      Src: /src/h2o/lib/handler/connect.c:848,1
    - Dst: h2o_socket_get_fd
      Src: /src/h2o/lib/handler/connect.c:848,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:854,1
    - Dst: struct st_connect_generator_t*::src_req::forward_datagram::read_
      Src: /src/h2o/lib/handler/connect.c:864,1
    - Dst: h2o_socket_read_stop
      Src: /src/h2o/lib/handler/connect.c:866,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/connect.c:867,1
    - Dst: quicly_encodev
      Src: /src/h2o/lib/handler/connect.c:870,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/connect.c:871,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:878,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - _sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts:
    - condition: (payload.base >= self->udp.ingress.buf)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 881
      start: 835
    functionDepth: 9
    functionLinenumber: 835
    functionLinenumberEnd: 881
    functionName: udp_on_read
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_socket_read_stop
    - struct st_connect_generator_t*::src_req::forward_datagram::read_
    - h2o_socket_get_fd
    - h2o_timer_unlink
    - quicly_encodev
    - recv
    - memcpy
    - h2o_send
    - close_readwrite
    - H2O_PROBE_REQUEST
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void udp_on_read(h2o_socket_t *_sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:885,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/connect.c:888,1
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:889,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/lib/handler/connect.c:890,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 895
    functionName: udp_on_proceed
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - reset_io_timeout
    - H2O_STRUCT_FROM_MEMBER
    - h2o_send
    - h2o_buffer_consume
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void udp_on_proceed(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:901,1
    - Dst: H2O_PROBE_REQUEST
      Src: /src/h2o/lib/handler/connect.c:903,1
    - Dst: socket
      Src: /src/h2o/lib/handler/connect.c:905,1
    - Dst: connect
      Src: /src/h2o/lib/handler/connect.c:906,1
    - Dst: h2o_socket_get_error_string
      Src: /src/h2o/lib/handler/connect.c:909,1
    - Dst: close
      Src: /src/h2o/lib/handler/connect.c:910,1
    - Dst: set_last_error
      Src: /src/h2o/lib/handler/connect.c:912,1
    - Dst: stop_eyeballs
      Src: /src/h2o/lib/handler/connect.c:916,1
    - Dst: reset_io_timeout
      Src: /src/h2o/lib/handler/connect.c:918,1
    - Dst: h2o_uv__poll_create
      Src: /src/h2o/lib/handler/connect.c:922,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:922,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/lib/handler/connect.c:924,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:924,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:926,1
    - Dst: record_connect_success
      Src: /src/h2o/lib/handler/connect.c:932,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:936,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/connect.c:939,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:939,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/connect.c:944,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:944,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:945,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/connect.c:946,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/connect.c:947,1
    - Dst: struct st_connect_generator_t*::src_req::write_req::cb
      Src: /src/h2o/lib/handler/connect.c:950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - self
    - server_address
    argTypes:
    - struct st_connect_generator_t*
    - struct st_server_address_t*
    assertStmts:
    - condition: (self->src_req->upgrade.base != NULL)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->udp.egress.buf->size == 0)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/h2o/lib/handler/connect.c
    - condition: (self->sock != NULL)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 953
      start: 897
    functionDepth: 5
    functionLinenumber: 897
    functionLinenumberEnd: 953
    functionName: udp_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - reset_io_timeout
    - h2o_uv__poll_create
    - get_loop
    - h2o_socket_get_error_string
    - stop_eyeballs
    - connect
    - assert
    - H2O_STRLIT
    - h2o_add_header
    - h2o_send
    - record_connect_success
    - h2o_evloop_socket_create
    - close
    - h2o_add_header_by_str
    - set_last_error
    - h2o_start_response
    - struct st_connect_generator_t*::src_req::write_req::cb
    - socket
    - H2O_PROBE_REQUEST
    linkageType: ''
    returnType: int
    signature: int udp_connect(struct st_connect_generator_t *self, struct st_server_address_t
      *server_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/connect.c:957,1
    - Dst: dispose_generator
      Src: /src/h2o/lib/handler/connect.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 8
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: on_stop
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - dispose_generator
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_stop(h2o_generator_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_PROBE_REQUEST0
      Src: /src/h2o/lib/handler/connect.c:964,1
    - Dst: dispose_generator
      Src: /src/h2o/lib/handler/connect.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 961
    functionDepth: 8
    functionLinenumber: 961
    functionLinenumberEnd: 966
    functionName: on_generator_dispose
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_PROBE_REQUEST0
    - dispose_generator
    linkageType: ''
    returnType: void
    signature: void on_generator_dispose(void *_self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strstr
      Src: /src/h2o/lib/handler/connect.c:981,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:981,1
    - Dst: h2o_uri_unescape
      Src: /src/h2o/lib/handler/connect.c:983,1
    - Dst: h2o_strtosizefwd
      Src: /src/h2o/lib/handler/connect.c:990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - pool
    - _src
    - _len
    - host
    - port
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - h2o_iovec_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 971
    functionDepth: 3
    functionLinenumber: 971
    functionLinenumberEnd: 998
    functionName: masque_decode_hostport
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 1
    functionsReached:
    - h2o_uri_unescape
    - h2o_strstr
    - h2o_strtosizefwd
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int masque_decode_hostport(h2o_mem_pool_t *pool, const char *_src,
      size_t _len, h2o_iovec_t *host, uint16_t *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/connect.c:1005,1
    - Dst: memset
      Src: /src/h2o/lib/handler/connect.c:1006,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/connect.c:1014,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/connect.c:1017,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/connect.c:1021,1
    - Dst: get_loop
      Src: /src/h2o/lib/handler/connect.c:1021,1
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:1024,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/connect.c:1031,1
    - Dst: h2o_hostinfo_getaddr
      Src: /src/h2o/lib/handler/connect.c:1033,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:1034,1
    - Dst: h2o_hostinfo_getaddr
      Src: /src/h2o/lib/handler/connect.c:1036,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:1037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 6
    argNames:
    - handler
    - req
    - host
    - port
    - is_tcp
    - is_masque_draft03
    argTypes:
    - struct st_connect_handler_t*
    - h2o_req_t*
    - h2o_iovec_t
    - uint16_t
    - int
    - int
    assertStmts:
    - condition: (req->entity.base != NULL && "CONNECT must indicate existence of
        payload")
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 1041
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1041
    functionName: on_req_core
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - h2o_timer_link
    - h2o_buffer_init
    - get_loop
    - sprintf
    - h2o_hostinfo_getaddr
    - h2o_mem_alloc_shared
    - memset
    - assert
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: "int on_req_core(struct st_connect_handler_t *handler, h2o_req_t *req,
      h2o_iovec_t host, uint16_t port, int is_tcp,\n                       int is_masque_draft03)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/connect.c:1052,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:1052,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/connect.c:1055,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:1055,1
    - Dst: h2o_send_error_405
      Src: /src/h2o/lib/handler/connect.c:1059,1
    - Dst: h2o_url_parse_hostport
      Src: /src/h2o/lib/handler/connect.c:1069,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:1070,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/handler/connect.c:1071,1
    - Dst: on_req_core
      Src: /src/h2o/lib/handler/connect.c:1075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - _handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1043
    functionDepth: 5
    functionLinenumber: 1043
    functionLinenumberEnd: 1076
    functionName: on_req_classic_connect
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - on_req_core
    - h2o_send_error_405
    - record_error
    - h2o_send_error_400
    - h2o_memis
    - h2o_url_parse_hostport
    linkageType: ''
    returnType: int
    signature: int on_req_classic_connect(h2o_handler_t *_handler, h2o_req_t *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/handler/connect.c:1088,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:1088,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/connect.c:1092,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:1092,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/connect.c:1093,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/connect.c:1093,1
    - Dst: masque_decode_hostport
      Src: /src/h2o/lib/handler/connect.c:1097,1
    - Dst: record_error
      Src: /src/h2o/lib/handler/connect.c:1099,1
    - Dst: h2o_send_error_400
      Src: /src/h2o/lib/handler/connect.c:1100,1
    - Dst: on_req_core
      Src: /src/h2o/lib/handler/connect.c:1104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - _handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1081
    functionDepth: 5
    functionLinenumber: 1081
    functionLinenumberEnd: 1105
    functionName: on_req_connect_udp
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - on_req_core
    - masque_decode_hostport
    - record_error
    - h2o_lcstris
    - h2o_send_error_400
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int on_req_connect_udp(h2o_handler_t *_handler, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/connect.c:1110,1
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/connect.c:1112,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/connect.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pathconf
    - config
    - acl_entries
    - num_acl_entries
    argTypes:
    - h2o_pathconf_t*
    - h2o_proxy_config_vars_t*
    - h2o_connect_acl_entry_t*
    - size_t
    assertStmts:
    - condition: (config->max_buffer_size != 0)
      pos:
        line_end: 1109
        line_start: 1109
        source_file: /src/h2o/lib/handler/connect.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1120
    functionName: do_register
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: "void do_register(h2o_pathconf_t *pathconf, h2o_proxy_config_vars_t
      *config, h2o_connect_acl_entry_t *acl_entries,\n                        size_t
      num_acl_entries, int (*on_req)(struct st_h2o_handler_t *self, h2o_req_t *req))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_register
      Src: /src/h2o/lib/handler/connect.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pathconf
    - config
    - acl_entries
    - num_acl_entries
    argTypes:
    - h2o_pathconf_t*
    - h2o_proxy_config_vars_t*
    - h2o_connect_acl_entry_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1126
    functionName: h2o_connect_register
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - do_register
    linkageType: ''
    returnType: void
    signature: "void h2o_connect_register(h2o_pathconf_t *pathconf, h2o_proxy_config_vars_t
      *config, h2o_connect_acl_entry_t *acl_entries,\n                          size_t
      num_acl_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_register
      Src: /src/h2o/lib/handler/connect.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pathconf
    - config
    - acl_entries
    - num_acl_entries
    argTypes:
    - h2o_pathconf_t*
    - h2o_proxy_config_vars_t*
    - h2o_connect_acl_entry_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    functionName: h2o_connect_udp_register
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - do_register
    linkageType: ''
    returnType: void
    signature: "void h2o_connect_udp_register(h2o_pathconf_t *pathconf, h2o_proxy_config_vars_t
      *config, h2o_connect_acl_entry_t *acl_entries,\n                              size_t
      num_acl_entries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1153
    functionName: parse_decimal
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_decimal(const char **s, const char *end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/h2o/lib/handler/connect.c:1179,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:1181,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/connect.c:1186,1
    - Dst: parse_decimal
      Src: /src/h2o/lib/handler/connect.c:1198,1
    - Dst: parse_decimal
      Src: /src/h2o/lib/handler/connect.c:1211,1
    - Dst: parse_decimal
      Src: /src/h2o/lib/handler/connect.c:1216,1
    - Dst: parse_decimal
      Src: /src/h2o/lib/handler/connect.c:1229,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 6
    argNames:
    - s
    - len
    - host
    - addr_mask
    - port_min
    - port_max
    argTypes:
    - char*
    - size_t
    - h2o_iovec_t*
    - size_t*
    - uint16_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1235
    functionName: parse_acl_hostport
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 0
    functionsReached:
    - parse_decimal
    - memchr
    - h2o_iovec_init
    linkageType: ''
    returnType: char
    signature: "char *parse_acl_hostport(const char *s, size_t len, h2o_iovec_t *host,
      size_t *addr_mask, uint16_t *port_min,\n                                      uint16_t
      *port_max)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parse_acl_hostport
      Src: /src/h2o/lib/handler/connect.c:1255,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/connect.c:1255,1
    - Dst: alloca
      Src: /src/h2o/lib/handler/connect.c:1259,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/connect.c:1260,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/connect.c:1266,1
    - Dst: inet_pton
      Src: /src/h2o/lib/handler/connect.c:1270,1
    - Dst: ntohl
      Src: /src/h2o/lib/handler/connect.c:1277,1
    - Dst: TO_BITMASK
      Src: /src/h2o/lib/handler/connect.c:1277,1
    - Dst: inet_pton
      Src: /src/h2o/lib/handler/connect.c:1278,1
    - Dst: TO_BITMASK
      Src: /src/h2o/lib/handler/connect.c:1289,1
    - Dst: PTLS_ELEMENTSOF
      Src: /src/h2o/lib/handler/connect.c:1290,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - h2o_connect_acl_entry_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1306
    functionName: h2o_connect_parse_acl
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 1
    functionsReached:
    - PTLS_ELEMENTSOF
    - TO_BITMASK
    - ntohl
    - strcmp
    - memcpy
    - inet_pton
    - parse_acl_hostport
    - alloca
    - strlen
    linkageType: ''
    returnType: char
    signature: char *h2o_connect_parse_acl(h2o_connect_acl_entry_t *output, const
      char *input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/h2o/lib/handler/connect.c:1317,1
    - Dst: ntohs
      Src: /src/h2o/lib/handler/connect.c:1318,1
    - Dst: htons
      Src: /src/h2o/lib/handler/connect.c:1321,1
    - Dst: TO_BITMASK
      Src: /src/h2o/lib/handler/connect.c:1340,1
    - Dst: TO_BITMASK
      Src: /src/h2o/lib/handler/connect.c:1351,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 3
    argNames:
    - acl_entries
    - num_acl_entries
    - target
    argTypes:
    - h2o_connect_acl_entry_t*
    - size_t
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1362
    functionName: h2o_connect_lookup_acl
    functionSourceFile: /src/h2o/lib/handler/connect.c
    functionUses: 2
    functionsReached:
    - htons
    - ntohl
    - TO_BITMASK
    - ntohs
    linkageType: ''
    returnType: int
    signature: int h2o_connect_lookup_acl(h2o_connect_acl_entry_t *acl_entries, size_t
      num_acl_entries, struct sockaddr *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/lib/handler/headers.c:47,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/headers.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 3
    functionsReached:
    - h2o_setup_next_ostream
    - h2o_rewrite_headers
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *_self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_rewrite_headers
      Src: /src/h2o/lib/handler/headers.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: on_informational
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 1
    functionsReached:
    - h2o_rewrite_headers
    linkageType: ''
    returnType: void
    signature: void on_informational(h2o_filter_t *_self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/headers.c:70,1
    - Dst: h2o_send_informational
      Src: /src/h2o/lib/handler/headers.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: on_sender_deferred_timeout
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 0
    functionsReached:
    - h2o_send_informational
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_sender_deferred_timeout(h2o_timer_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/headers.c:84,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/headers.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - _sender
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: on_sender_dispose
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void on_sender_dispose(void *_sender)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/headers.c:92,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/handler/headers.c:95,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/headers.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc_shared
    - h2o_timer_init
    - h2o_timer_link
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_handler, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_headers_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: requires_early_hints_handler
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int requires_early_hints_handler(struct st_headers_filter_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/headers.c:113,1
    - Dst: requires_early_hints_handler
      Src: /src/h2o/lib/handler/headers.c:119,1
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/headers.c:120,1
    - Dst: memmove
      Src: /src/h2o/lib/handler/headers.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pathconf
    - cmds
    argTypes:
    - h2o_pathconf_t*
    - h2o_headers_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: h2o_headers_register
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 1
    functionsReached:
    - h2o_create_handler
    - requires_early_hints_handler
    - memmove
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_headers_register(h2o_pathconf_t *pathconf, h2o_headers_command_t
      *cmds)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - token
    argTypes:
    - h2o_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: h2o_headers_is_prohibited_name
    functionSourceFile: /src/h2o/lib/handler/headers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_headers_is_prohibited_name(const h2o_token_t *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/errordoc.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pool
    - headers
    - header
    argTypes:
    - h2o_mem_pool_t*
    - h2o_headers_t*
    - h2o_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: add_header
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 44
    functionsReached:
    - h2o_vector_reserve
    linkageType: ''
    returnType: void
    signature: void add_header(h2o_mem_pool_t *pool, h2o_headers_t *headers, const
      h2o_header_t *header)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_header
      Src: /src/h2o/lib/handler/errordoc.c:58,1
    - Dst: add_header
      Src: /src/h2o/lib/handler/errordoc.c:63,1
    - Dst: h2o_setup_next_prefilter
      Src: /src/h2o/lib/handler/errordoc.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_req_prefilter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: on_prefilter_setup_stream
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_setup_next_prefilter
    - add_header
    linkageType: ''
    returnType: void
    signature: void on_prefilter_setup_stream(h2o_req_prefilter_t *_self, h2o_req_t
      *req, h2o_ostream_t **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - self
    - req
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: on_ostream_send
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_ostream_send(h2o_ostream_t *self, h2o_req_t *req, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: prefilter_is_registered
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int prefilter_is_registered(h2o_req_t *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prefilter_is_registered
      Src: /src/h2o/lib/handler/errordoc.c:93,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/errordoc.c:103,1
    - Dst: h2o_add_prefilter
      Src: /src/h2o/lib/handler/errordoc.c:108,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/errordoc.c:108,1
    - Dst: add_header
      Src: /src/h2o/lib/handler/errordoc.c:117,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/errordoc.c:121,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/errordoc.c:121,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/errordoc.c:122,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/errordoc.c:122,1
    - Dst: h2o_send_redirect_internal
      Src: /src/h2o/lib/handler/errordoc.c:125,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/errordoc.c:127,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/errordoc.c:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - _self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 129
    functionName: on_filter_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 0
    functionsReached:
    - H2O_ALIGNOF
    - h2o_add_prefilter
    - H2O_STRLIT
    - prefilter_is_registered
    - h2o_setup_next_ostream
    - h2o_memis
    - h2o_send_redirect_internal
    - add_header
    - h2o_add_ostream
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_filter_setup_ostream(h2o_filter_t *_self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/errordoc.c:133,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/errordoc.c:137,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/errordoc.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pathconf
    - errdocs
    - cnt
    argTypes:
    - h2o_pathconf_t*
    - h2o_errordoc_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: h2o_errordoc_register
    functionSourceFile: /src/h2o/lib/handler/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_strdup
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_errordoc_register(h2o_pathconf_t *pathconf, h2o_errordoc_t
      *errdocs, size_t cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes_left
    - bytes_per_sec
    argTypes:
    - ssize_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: calc_delay
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calc_delay(ssize_t bytes_left, size_t bytes_per_sec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_now
      Src: /src/h2o/lib/handler/throttle_resp.c:51,1
    - Dst: calc_delay
      Src: /src/h2o/lib/handler/throttle_resp.c:65,1
    - Dst: assert
      Src: /src/h2o/lib/handler/throttle_resp.c:66,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/throttle_resp.c:67,1
    - Dst: h2o_ostream_send_next
      Src: /src/h2o/lib/handler/throttle_resp.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - throttle_resp_t*
    assertStmts:
    - condition: (delay > 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/lib/handler/throttle_resp.c
    constantsTouched: []
    func_position:
      end: 75
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 75
    functionName: real_send
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_ostream_send_next
    - h2o_now
    - h2o_timer_link
    - calc_delay
    linkageType: ''
    returnType: void
    signature: void real_send(throttle_resp_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/throttle_resp.c:79,1
    - Dst: real_send
      Src: /src/h2o/lib/handler/throttle_resp.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: on_timer
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - real_send
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_timer(h2o_timer_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/throttle_resp.c:87,1
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/throttle_resp.c:87,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/throttle_resp.c:90,1
    - Dst: real_send
      Src: /src/h2o/lib/handler/throttle_resp.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - _self
    - req
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (!h2o_timer_is_linked(&self->timeout_entry))
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/h2o/lib/handler/throttle_resp.c
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: on_send
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_timer_is_linked
    - assert
    - real_send
    linkageType: ''
    returnType: void
    signature: void on_send(h2o_ostream_t *_self, h2o_req_t *req, h2o_sendvec_t *inbufs,
      size_t inbufcnt, h2o_send_state_t state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/throttle_resp.c:103,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/throttle_resp.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: on_stop
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - h2o_timer_unlink
    linkageType: ''
    returnType: void
    signature: void on_stop(h2o_ostream_t *_self, h2o_req_t *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/throttle_resp.c:115,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/throttle_resp.c:115,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/throttle_resp.c:120,1
    - Dst: H2O_UNLIKELY
      Src: /src/h2o/lib/handler/throttle_resp.c:123,1
    - Dst: h2o_strtosizefwd
      Src: /src/h2o/lib/handler/throttle_resp.c:123,1
    - Dst: h2o_delete_header
      Src: /src/h2o/lib/handler/throttle_resp.c:125,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/throttle_resp.c:129,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/throttle_resp.c:129,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/handler/throttle_resp.c:132,1
    - Dst: h2o_now
      Src: /src/h2o/lib/handler/throttle_resp.c:133,1
    - Dst: memset
      Src: /src/h2o/lib/handler/throttle_resp.c:137,1
    - Dst: h2o_setup_next_ostream
      Src: /src/h2o/lib/handler/throttle_resp.c:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - self
    - req
    - slot
    argTypes:
    - h2o_filter_t*
    - h2o_req_t*
    - h2o_ostream_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 152
    functionName: on_setup_ostream
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 3
    functionsReached:
    - H2O_ALIGNOF
    - H2O_UNLIKELY
    - H2O_STRLIT
    - h2o_strtosizefwd
    - h2o_add_ostream
    - h2o_now
    - h2o_setup_next_ostream
    - h2o_find_header
    - h2o_timer_init
    - h2o_memis
    - memset
    - h2o_delete_header
    linkageType: ''
    returnType: void
    signature: void on_setup_ostream(h2o_filter_t *self, h2o_req_t *req, h2o_ostream_t
      **slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_filter
      Src: /src/h2o/lib/handler/throttle_resp.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pathconf
    argTypes:
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: h2o_throttle_resp_register
    functionSourceFile: /src/h2o/lib/handler/throttle_resp.c
    functionUses: 0
    functionsReached:
    - h2o_create_filter
    linkageType: ''
    returnType: void
    signature: void h2o_throttle_resp_register(h2o_pathconf_t *pathconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_req_t*::conn::callbacks::get_debug_state
      Src: /src/h2o/lib/handler/http2_debug_state.c:40,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/http2_debug_state.c:44,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/http2_debug_state.c:45,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/http2_debug_state.c:46,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/http2_debug_state.c:47,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/http2_debug_state.c:50,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/http2_debug_state.c:50,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/http2_debug_state.c:51,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/http2_debug_state.c:51,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/http2_debug_state.c:52,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/http2_debug_state.c:52,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/http2_debug_state.c:53,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/http2_debug_state.c:53,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/http2_debug_state.c:56,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/http2_debug_state.c:57,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/http2_debug_state.c:58,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/http2_debug_state.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/http2_debug_state.c
    functionUses: 2
    functionsReached:
    - h2o_add_header_by_str
    - H2O_STRLIT
    - h2o_mem_alloc_pool
    - h2o_start_response
    - sprintf
    - h2o_add_header
    - h2o_send
    - h2o_memis
    - h2o_req_t*::conn::callbacks::get_debug_state
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_register_path
      Src: /src/h2o/lib/handler/http2_debug_state.c:65,1
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/http2_debug_state.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conf
    - hpack_enabled
    argTypes:
    - h2o_hostconf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: h2o_http2_debug_state_register
    functionSourceFile: /src/h2o/lib/handler/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - h2o_config_register_path
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: void h2o_http2_debug_state_register(h2o_hostconf_t *conf, int hpack_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mimetype
    argTypes:
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: hash_mimemap_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: khint_t
    signature: khint_t hash_mimemap_type(h2o_mimemap_type_t *mimetype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mimemap.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - h2o_mimemap_type_t*
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: mimemap_type_equals
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int mimemap_type_equals(h2o_mimemap_type_t *x, h2o_mimemap_type_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/handler/mimemap.c:58,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mimemap.c:59,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mimemap.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: dupref
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - h2o_mem_alloc_shared
    - strlen
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t dupref(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_destroy
      Src: /src/h2o/lib/handler/mimemap.c:70,1
    - Dst: kh_foreach
      Src: /src/h2o/lib/handler/mimemap.c:71,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:72,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:73,1
    - Dst: kh_destroy
      Src: /src/h2o/lib/handler/mimemap.c:75,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - _mimemap
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: on_dispose
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - kh_foreach
    - kh_destroy
    linkageType: ''
    returnType: void
    signature: void on_dispose(void *_mimemap)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mimemap
    - type
    argTypes:
    - h2o_mimemap_t*
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: on_unlink
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_unlink(h2o_mimemap_t *mimemap, h2o_mimemap_type_t *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mimemap
    - type
    argTypes:
    - h2o_mimemap_t*
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: on_link
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_link(h2o_mimemap_t *mimemap, h2o_mimemap_type_t *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_clear
      Src: /src/h2o/lib/handler/mimemap.c:103,1
    - Dst: kh_foreach
      Src: /src/h2o/lib/handler/mimemap.c:107,1
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:109,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:110,1
    - Dst: kh_put
      Src: /src/h2o/lib/handler/mimemap.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mimemap
    argTypes:
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: rebuild_typeset
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - kh_end
    - kh_clear
    - kh_foreach
    - kh_get
    - kh_put
    linkageType: ''
    returnType: void
    signature: void rebuild_typeset(h2o_mimemap_t *mimemap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mimemap.c:120,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mimemap.c:120,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mimemap.c:123,1
    - Dst: h2o_tolower
      Src: /src/h2o/lib/handler/mimemap.c:130,1
    - Dst: h2o_mimemap_get_default_attributes
      Src: /src/h2o/lib/handler/mimemap.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - mime
    - attr
    argTypes:
    - char*
    - h2o_mime_attributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: create_extension_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_mimemap_get_default_attributes
    - h2o_tolower
    - h2o_mem_alloc_shared
    - memset
    - strlen
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *create_extension_type(const char *mime, h2o_mime_attributes_t
      *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_dispose_pathconf
      Src: /src/h2o/lib/handler/mimemap.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: dispose_dynamic_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_config_dispose_pathconf
    linkageType: ''
    returnType: void
    signature: void dispose_dynamic_type(h2o_mimemap_type_t *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mimemap.c:152,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mimemap.c:155,1
    - Dst: h2o_config_init_pathconf
      Src: /src/h2o/lib/handler/mimemap.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - globalconf
    - mimemap
    argTypes:
    - h2o_globalconf_t*
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: create_dynamic_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - h2o_config_init_pathconf
    - memset
    - h2o_mem_alloc_shared
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *create_dynamic_type(h2o_globalconf_t *globalconf,
      h2o_mimemap_t *mimemap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mimemap.c:163,1
    - Dst: kh_init
      Src: /src/h2o/lib/handler/mimemap.c:165,1
    - Dst: kh_init
      Src: /src/h2o/lib/handler/mimemap.c:166,1
    - Dst: create_extension_type
      Src: /src/h2o/lib/handler/mimemap.c:167,1
    - Dst: on_link
      Src: /src/h2o/lib/handler/mimemap.c:169,1
    - Dst: MIMEMAP
      Src: /src/h2o/lib/handler/mimemap.c:173,1
    - Dst: h2o_mimemap_define_mimetype
      Src: /src/h2o/lib/handler/mimemap.c:179,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 184
    functionName: h2o_mimemap_create
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 5
    functionsReached:
    - kh_init
    - rebuild_typeset
    - MIMEMAP
    - create_extension_type
    - h2o_mimemap_define_mimetype
    - on_link
    - h2o_mem_alloc_shared
    linkageType: ''
    returnType: h2o_mimemap_t
    signature: h2o_mimemap_t *h2o_mimemap_create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/mimemap.c:188,1
    - Dst: kh_init
      Src: /src/h2o/lib/handler/mimemap.c:192,1
    - Dst: kh_init
      Src: /src/h2o/lib/handler/mimemap.c:193,1
    - Dst: kh_foreach
      Src: /src/h2o/lib/handler/mimemap.c:194,1
    - Dst: kh_put
      Src: /src/h2o/lib/handler/mimemap.c:196,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:197,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:198,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:199,1
    - Dst: on_link
      Src: /src/h2o/lib/handler/mimemap.c:200,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:203,1
    - Dst: on_link
      Src: /src/h2o/lib/handler/mimemap.c:204,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - src
    argTypes:
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: h2o_mimemap_clone
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 2
    functionsReached:
    - kh_val
    - kh_init
    - rebuild_typeset
    - h2o_mem_addref_shared
    - kh_foreach
    - on_link
    - h2o_mem_alloc_shared
    - kh_put
    linkageType: ''
    returnType: h2o_mimemap_t
    signature: h2o_mimemap_t *h2o_mimemap_clone(h2o_mimemap_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mimemap
    - ','
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: FOREACH_TYPE
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_TYPE(mimemap, block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_TYPE
      Src: /src/h2o/lib/handler/mimemap.c:221,1
    - Dst: h2o_context_init_pathconf_context
      Src: /src/h2o/lib/handler/mimemap.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mimemap
    - ctx
    argTypes:
    - h2o_mimemap_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: h2o_mimemap_on_context_init
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached:
    - FOREACH_TYPE
    - h2o_context_init_pathconf_context
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_on_context_init(h2o_mimemap_t *mimemap, h2o_context_t
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_TYPE
      Src: /src/h2o/lib/handler/mimemap.c:234,1
    - Dst: h2o_context_dispose_pathconf_context
      Src: /src/h2o/lib/handler/mimemap.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mimemap
    - ctx
    argTypes:
    - h2o_mimemap_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: h2o_mimemap_on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached:
    - FOREACH_TYPE
    - h2o_context_dispose_pathconf_context
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_on_context_dispose(h2o_mimemap_t *mimemap, h2o_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mimemap
    argTypes:
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: h2o_mimemap_has_dynamic_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2o_mimemap_has_dynamic_type(h2o_mimemap_t *mimemap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_unlink
      Src: /src/h2o/lib/handler/mimemap.c:255,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:256,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:259,1
    - Dst: on_link
      Src: /src/h2o/lib/handler/mimemap.c:261,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mimemap
    - type
    argTypes:
    - h2o_mimemap_t*
    - h2o_mimemap_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: set_default_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 3
    functionsReached:
    - h2o_mem_release_shared
    - rebuild_typeset
    - on_unlink
    - h2o_mem_addref_shared
    - on_link
    linkageType: ''
    returnType: void
    signature: void set_default_type(h2o_mimemap_t *mimemap, h2o_mimemap_type_t *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/lib/handler/mimemap.c:270,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mimemap.c:270,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mimemap.c:270,1
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mimemap.c:271,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:272,1
    - Dst: create_extension_type
      Src: /src/h2o/lib/handler/mimemap.c:274,1
    - Dst: set_default_type
      Src: /src/h2o/lib/handler/mimemap.c:277,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - mimemap
    - mime
    - attr
    argTypes:
    - h2o_mimemap_t*
    - char*
    - h2o_mime_attributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: h2o_mimemap_set_default_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 3
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mimemap_get_type_by_mimetype
    - memcmp
    - h2o_mem_addref_shared
    - create_extension_type
    - set_default_type
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_set_default_type(h2o_mimemap_t *mimemap, const char
      *mime, h2o_mime_attributes_t *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:284,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:285,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:286,1
    - Dst: on_unlink
      Src: /src/h2o/lib/handler/mimemap.c:287,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:288,1
    - Dst: kh_put
      Src: /src/h2o/lib/handler/mimemap.c:291,1
    - Dst: dupref
      Src: /src/h2o/lib/handler/mimemap.c:291,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mimemap.c:292,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:292,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:296,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:297,1
    - Dst: on_link
      Src: /src/h2o/lib/handler/mimemap.c:298,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - mimemap
    - ext
    - type
    argTypes:
    - h2o_mimemap_t*
    - char*
    - h2o_mimemap_type_t*
    assertStmts:
    - condition: (iter != kh_end(mimemap->extmap))
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/h2o/lib/handler/mimemap.c
    constantsTouched: []
    func_position:
      end: 300
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 300
    functionName: set_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 0
    functionsReached:
    - kh_val
    - h2o_mem_release_shared
    - assert
    - on_unlink
    - rebuild_typeset
    - kh_end
    - h2o_mem_addref_shared
    - kh_put
    - on_link
    - dupref
    - kh_get
    linkageType: ''
    returnType: void
    signature: void set_type(h2o_mimemap_t *mimemap, const char *ext, h2o_mimemap_type_t
      *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_get_type_by_mimetype
      Src: /src/h2o/lib/handler/mimemap.c:306,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mimemap.c:306,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mimemap.c:306,1
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mimemap.c:307,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/mimemap.c:308,1
    - Dst: create_extension_type
      Src: /src/h2o/lib/handler/mimemap.c:310,1
    - Dst: set_type
      Src: /src/h2o/lib/handler/mimemap.c:312,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - mimemap
    - ext
    - mime
    - attr
    argTypes:
    - h2o_mimemap_t*
    - char*
    - char*
    - h2o_mime_attributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 314
    functionName: h2o_mimemap_define_mimetype
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 3
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mimemap_get_type_by_mimetype
    - memcmp
    - h2o_mem_addref_shared
    - create_extension_type
    - set_type
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_define_mimetype(h2o_mimemap_t *mimemap, const char
      *ext, const char *mime, h2o_mime_attributes_t *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_dynamic_type
      Src: /src/h2o/lib/handler/mimemap.c:321,1
    - Dst: set_default_type
      Src: /src/h2o/lib/handler/mimemap.c:327,1
    - Dst: set_type
      Src: /src/h2o/lib/handler/mimemap.c:329,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - mimemap
    - exts
    - globalconf
    argTypes:
    - h2o_mimemap_t*
    - char**
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: h2o_mimemap_define_dynamic
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 2
    functionsReached:
    - h2o_mem_release_shared
    - create_dynamic_type
    - set_type
    - set_default_type
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *h2o_mimemap_define_dynamic(h2o_mimemap_t *mimemap,
      const char **exts, h2o_globalconf_t *globalconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:338,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:339,1
    - Dst: kh_key
      Src: /src/h2o/lib/handler/mimemap.c:340,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:341,1
    - Dst: on_unlink
      Src: /src/h2o/lib/handler/mimemap.c:342,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:343,1
    - Dst: kh_del
      Src: /src/h2o/lib/handler/mimemap.c:344,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:345,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mimemap
    - ext
    argTypes:
    - h2o_mimemap_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 348
    functionName: h2o_mimemap_remove_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 2
    functionsReached:
    - kh_val
    - h2o_mem_release_shared
    - kh_del
    - on_unlink
    - rebuild_typeset
    - kh_end
    - kh_key
    - kh_get
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_remove_type(h2o_mimemap_t *mimemap, const char *ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_begin
      Src: /src/h2o/lib/handler/mimemap.c:354,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:354,1
    - Dst: kh_exist
      Src: /src/h2o/lib/handler/mimemap.c:355,1
    - Dst: kh_key
      Src: /src/h2o/lib/handler/mimemap.c:357,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:358,1
    - Dst: on_unlink
      Src: /src/h2o/lib/handler/mimemap.c:359,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:360,1
    - Dst: kh_del
      Src: /src/h2o/lib/handler/mimemap.c:361,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/mimemap.c:362,1
    - Dst: rebuild_typeset
      Src: /src/h2o/lib/handler/mimemap.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - mimemap
    argTypes:
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 365
    functionName: h2o_mimemap_clear_types
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached:
    - kh_val
    - h2o_mem_release_shared
    - on_unlink
    - rebuild_typeset
    - kh_end
    - kh_key
    - kh_begin
    - kh_exist
    - kh_del
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_clear_types(h2o_mimemap_t *mimemap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mimemap
    argTypes:
    - h2o_mimemap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: h2o_mimemap_get_default_type
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *h2o_mimemap_get_default_type(h2o_mimemap_t *mimemap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mimemap.c:377,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/handler/mimemap.c:378,1
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:380,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:381,1
    - Dst: kh_val
      Src: /src/h2o/lib/handler/mimemap.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mimemap
    - ext
    argTypes:
    - h2o_mimemap_t*
    - h2o_iovec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: h2o_mimemap_get_type_by_extension
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 3
    functionsReached:
    - kh_val
    - kh_end
    - memcpy
    - h2o_strtolower
    - kh_get
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *h2o_mimemap_get_type_by_extension(h2o_mimemap_t
      *mimemap, h2o_iovec_t ext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:395,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:395,1
    - Dst: kh_key
      Src: /src/h2o/lib/handler/mimemap.c:396,1
    - Dst: kh_get
      Src: /src/h2o/lib/handler/mimemap.c:409,1
    - Dst: kh_end
      Src: /src/h2o/lib/handler/mimemap.c:409,1
    - Dst: kh_key
      Src: /src/h2o/lib/handler/mimemap.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - mimemap
    - mime
    - exact_match_only
    argTypes:
    - h2o_mimemap_t*
    - h2o_iovec_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: h2o_mimemap_get_type_by_mimetype
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 4
    functionsReached:
    - kh_end
    - kh_key
    - kh_get
    linkageType: ''
    returnType: h2o_mimemap_type_t
    signature: h2o_mimemap_type_t *h2o_mimemap_get_type_by_mimetype(h2o_mimemap_t
      *mimemap, h2o_iovec_t mime, int exact_match_only)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:428,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:428,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:428,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:429,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:429,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:432,1
    - Dst: MIME_IS
      Src: /src/h2o/lib/handler/mimemap.c:432,1
    - Dst: MIME_STARTS_WITH
      Src: /src/h2o/lib/handler/mimemap.c:432,1
    - Dst: MIME_ENDS_WITH
      Src: /src/h2o/lib/handler/mimemap.c:432,1
    - Dst: MIME_ENDS_WITH
      Src: /src/h2o/lib/handler/mimemap.c:433,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 11
    argCount: 2
    argNames:
    - mime
    - attr
    argTypes:
    - char*
    - h2o_mime_attributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 440
    functionName: h2o_mimemap_get_default_attributes
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 3
    functionsReached:
    - MIME_IS
    - MIME_ENDS_WITH
    - MIME_STARTS_WITH
    linkageType: ''
    returnType: void
    signature: void h2o_mimemap_get_default_attributes(const char *mime, h2o_mime_attributes_t
      *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: MIME_IS
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIME_IS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: MIME_STARTS_WITH
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIME_STARTS_WITH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: MIME_ENDS_WITH
    functionSourceFile: /src/h2o/lib/handler/mimemap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIME_ENDS_WITH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct h2o_self_trace_generator*::req::conn::callbacks::get_tracer
      Src: /src/h2o/lib/handler/self_trace.c:41,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/self_trace.c:45,1
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/handler/self_trace.c:46,1
    - Dst: h2o_timer_unlink
      Src: /src/h2o/lib/handler/self_trace.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: on_generator_dispose
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 0
    functionsReached:
    - h2o_doublebuffer_dispose
    - h2o_timer_unlink
    - struct h2o_self_trace_generator*::req::conn::callbacks::get_tracer
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void on_generator_dispose(void *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_prepare
      Src: /src/h2o/lib/handler/self_trace.c:52,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/self_trace.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct h2o_self_trace_generator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: do_send
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 14
    functionsReached:
    - h2o_send
    - h2o_doublebuffer_prepare
    linkageType: ''
    returnType: void
    signature: void do_send(struct h2o_self_trace_generator *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/self_trace.c:58,1
    - Dst: assert
      Src: /src/h2o/lib/handler/self_trace.c:60,1
    - Dst: assert
      Src: /src/h2o/lib/handler/self_trace.c:61,1
    - Dst: do_send
      Src: /src/h2o/lib/handler/self_trace.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _timer
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: (self->should_send_buffered)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/h2o/lib/handler/self_trace.c
    - condition: (!self->inflight.inflight)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/lib/handler/self_trace.c
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: on_send_timeout
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 0
    functionsReached:
    - do_send
    - assert
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: void
    signature: void on_send_timeout(h2o_timer_t *_timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_timer_is_linked
      Src: /src/h2o/lib/handler/self_trace.c:69,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/self_trace.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct h2o_self_trace_generator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: adjust_send_timer
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 0
    functionsReached:
    - h2o_timer_is_linked
    - h2o_timer_link
    linkageType: ''
    returnType: void
    signature: void adjust_send_timer(struct h2o_self_trace_generator *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/h2o/lib/handler/self_trace.c:80,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/self_trace.c:82,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/handler/self_trace.c:83,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/self_trace.c:85,1
    - Dst: vsnprintf
      Src: /src/h2o/lib/handler/self_trace.c:86,1
    - Dst: assert
      Src: /src/h2o/lib/handler/self_trace.c:87,1
    - Dst: va_end
      Src: /src/h2o/lib/handler/self_trace.c:91,1
    - Dst: struct h2o_self_trace_generator*::req::conn::callbacks::num_reqs_inflight
      Src: /src/h2o/lib/handler/self_trace.c:95,1
    - Dst: adjust_send_timer
      Src: /src/h2o/lib/handler/self_trace.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - _self
    - fmt
    argTypes:
    - void*
    - char*
    assertStmts:
    - condition: (len < buf.len)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/h2o/lib/handler/self_trace.c
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: log_trace
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 0
    functionsReached:
    - va_start
    - h2o_buffer_reserve
    - vsnprintf
    - struct h2o_self_trace_generator*::req::conn::callbacks::num_reqs_inflight
    - adjust_send_timer
    - va_end
    - assert
    linkageType: ''
    returnType: void
    signature: void log_trace(void *_self, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/self_trace.c:104,1
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/handler/self_trace.c:105,1
    - Dst: adjust_send_timer
      Src: /src/h2o/lib/handler/self_trace.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _self
    - _req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts:
    - condition: (self->inflight.inflight)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/h2o/lib/handler/self_trace.c
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: do_proceed
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 2
    functionsReached:
    - h2o_doublebuffer_consume
    - adjust_send_timer
    - assert
    linkageType: ''
    returnType: void
    signature: void do_proceed(h2o_generator_t *_self, h2o_req_t *_req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/handler/self_trace.c:113,1
    - Dst: h2o_req_t*::conn::callbacks::get_tracer
      Src: /src/h2o/lib/handler/self_trace.c:117,1
    - Dst: h2o_send_error_403
      Src: /src/h2o/lib/handler/self_trace.c:119,1
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/self_trace.c:124,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/self_trace.c:128,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/handler/self_trace.c:129,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/self_trace.c:139,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/self_trace.c:139,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/self_trace.c:140,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/self_trace.c:140,1
    - Dst: h2o_buffer_append
      Src: /src/h2o/lib/handler/self_trace.c:141,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/self_trace.c:143,1
    - Dst: do_send
      Src: /src/h2o/lib/handler/self_trace.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - handler
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 2
    functionsReached:
    - H2O_STRLIT
    - h2o_send_error_403
    - h2o_buffer_init
    - do_send
    - h2o_start_response
    - h2o_doublebuffer_init
    - h2o_mem_alloc_shared
    - h2o_add_header
    - h2o_req_t*::conn::callbacks::get_tracer
    - h2o_buffer_append
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *handler, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/self_trace.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_pathconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: h2o_self_trace_register
    functionSourceFile: /src/h2o/lib/handler/self_trace.c
    functionUses: 0
    functionsReached:
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: void h2o_self_trace_register(h2o_pathconf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/proxy.c:41,1
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/proxy.c:42,1
    - Dst: h2o_build_destination
      Src: /src/h2o/lib/handler/proxy.c:57,1
    - Dst: h2o_reprocess_request
      Src: /src/h2o/lib/handler/proxy.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 61
    functionName: on_req
    functionSourceFile: /src/h2o/lib/handler/proxy.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc_pool
    - h2o_reprocess_request
    - h2o_build_destination
    - h2o_context_get_handler_context
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *_self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_register_loop
      Src: /src/h2o/lib/handler/proxy.c:68,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/proxy.c:70,1
    - Dst: memset
      Src: /src/h2o/lib/handler/proxy.c:71,1
    - Dst: h2o_httpclient_connection_pool_init
      Src: /src/h2o/lib/handler/proxy.c:72,1
    - Dst: h2o_context_set_handler_context
      Src: /src/h2o/lib/handler/proxy.c:73,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/proxy.c:86,1
    - Dst: h2o_create_proxy_http3_context
      Src: /src/h2o/lib/handler/proxy.c:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 110
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/proxy.c
    functionUses: 1
    functionsReached:
    - h2o_httpclient_connection_pool_init
    - h2o_create_proxy_http3_context
    - h2o_mem_alloc
    - h2o_socketpool_register_loop
    - memset
    - h2o_context_set_handler_context
    linkageType: ''
    returnType: void
    signature: void on_context_init(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_handler_context
      Src: /src/h2o/lib/handler/proxy.c:115,1
    - Dst: h2o_destroy_proxy_http3_context
      Src: /src/h2o/lib/handler/proxy.c:119,1
    - Dst: free
      Src: /src/h2o/lib/handler/proxy.c:120,1
    - Dst: h2o_socketpool_unregister_loop
      Src: /src/h2o/lib/handler/proxy.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - ctx
    argTypes:
    - h2o_handler_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/proxy.c
    functionUses: 1
    functionsReached:
    - h2o_socketpool_unregister_loop
    - free
    - h2o_destroy_proxy_http3_context
    - h2o_context_get_handler_context
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(h2o_handler_t *_self, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_dispose
      Src: /src/h2o/lib/handler/proxy.c:130,1
    - Dst: free
      Src: /src/h2o/lib/handler/proxy.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _self
    argTypes:
    - h2o_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: on_handler_dispose
    functionSourceFile: /src/h2o/lib/handler/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_socketpool_dispose
    - free
    linkageType: ''
    returnType: void
    signature: void on_handler_dispose(h2o_handler_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/proxy.c:136,1
    - Dst: h2o_create_handler
      Src: /src/h2o/lib/handler/proxy.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - pathconf
    - config
    - sockpool
    argTypes:
    - h2o_pathconf_t*
    - h2o_proxy_config_vars_t*
    - h2o_socketpool_t*
    assertStmts:
    - condition: (config->max_buffer_size != 0)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/h2o/lib/handler/proxy.c
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: h2o_proxy_register_reverse_proxy
    functionSourceFile: /src/h2o/lib/handler/proxy.c
    functionUses: 0
    functionsReached:
    - assert
    - h2o_create_handler
    linkageType: ''
    returnType: void
    signature: void h2o_proxy_register_reverse_proxy(h2o_pathconf_t *pathconf, h2o_proxy_config_vars_t
      *config, h2o_socketpool_t *sockpool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/sender.c:40,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/mruby/sender.c:59,1
    - Dst: h2o_sendvec
      Src: /src/h2o/lib/handler/mruby/sender.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - generator
    - bufs
    - bufcnt
    - state
    argTypes:
    - h2o_mruby_generator_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts:
    - condition: (!sender->final_sent)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/h2o/lib/handler/mruby/sender.c
    constantsTouched: []
    func_position:
      end: 63
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 63
    functionName: h2o_mruby_sender_do_send
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - h2o_send_state_is_in_progress
    - assert
    - h2o_sendvec
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_sender_do_send(h2o_mruby_generator_t *generator, h2o_sendvec_t
      *bufs, size_t bufcnt, h2o_send_state_t state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/sender.c:67,1
    - Dst: h2o_doublebuffer_prepare
      Src: /src/h2o/lib/handler/mruby/sender.c:69,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/handler/mruby/sender.c:84,1
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/sender.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - generator
    - db
    - input
    - is_final
    argTypes:
    - h2o_mruby_generator_t*
    - h2o_doublebuffer_t*
    - h2o_buffer_t**
    - int
    assertStmts:
    - condition: (!db->inflight)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/lib/handler/mruby/sender.c
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: h2o_mruby_sender_do_send_buffer
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - h2o_sendvec_init_raw
    - h2o_mruby_sender_do_send
    - assert
    - h2o_doublebuffer_prepare
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_sender_do_send_buffer(h2o_mruby_generator_t *generator,
      h2o_doublebuffer_t *db, h2o_buffer_t **input, int is_final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:93,1
    - Dst: mrb_respond_to
      Src: /src/h2o/lib/handler/mruby/sender.c:95,1
    - Dst: mrb_funcall_argv
      Src: /src/h2o/lib/handler/mruby/sender.c:96,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/sender.c:98,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sender.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 10
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: h2o_mruby_sender_close_body
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - mrb_gc_unregister
    - mrb_respond_to
    - mrb_nil_p
    - mrb_funcall_argv
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_sender_close_body(h2o_mruby_generator_t *generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool_aligned
      Src: /src/h2o/lib/handler/mruby/sender.c:105,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/sender.c:106,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:108,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/sender.c:109,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/sender.c:110,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/sender.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - generator
    - body
    - alignment
    - sz
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_value
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: h2o_mruby_sender_create
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - H2O_STRLIT
    - h2o_mem_alloc_pool_aligned
    - mrb_nil_p
    - memset
    - mrb_gc_register
    linkageType: ''
    returnType: h2o_mruby_sender_t
    signature: h2o_mruby_sender_t *h2o_mruby_sender_create(h2o_mruby_generator_t *generator,
      mrb_value body, size_t alignment, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/sender.c:120,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby/sender.c:121,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/sender.c:122,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/sender.c:123,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/sender.c:124,1
    - Dst: h2o_doublebuffer_prepare_empty
      Src: /src/h2o/lib/handler/mruby/sender.c:127,1
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/sender.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 11
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: do_callback_sender_start
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - mrb_ary_set
    - mrb_ary_entry
    - h2o_mruby_run_fiber
    - h2o_doublebuffer_prepare_empty
    - mrb_ary_new_capa
    - h2o_mruby_sender_do_send
    linkageType: ''
    returnType: void
    signature: void do_callback_sender_start(h2o_mruby_generator_t *generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/sender.c:137,1
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/handler/mruby/sender.c:139,1
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/sender.c:142,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:144,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/sender.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - _generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts:
    - condition: (!sender->super.final_sent)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/lib/handler/mruby/sender.c
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: do_callback_proceed
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - h2o_doublebuffer_consume
    - mrb_nil_p
    - h2o_mruby_sender_do_send
    - h2o_mruby_sender_do_send_buffer
    - assert
    linkageType: ''
    returnType: void
    signature: void do_callback_proceed(h2o_generator_t *_generator, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/handler/mruby/sender.c:152,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/mruby/sender.c:153,1
    - Dst: h2o_mruby_sender_close_body
      Src: /src/h2o/lib/handler/mruby/sender.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 11
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: do_callback_sender_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_sender_close_body
    - h2o_doublebuffer_dispose
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void do_callback_sender_dispose(h2o_mruby_generator_t *generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_sender_create
      Src: /src/h2o/lib/handler/mruby/sender.c:160,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/mruby/sender.c:160,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/handler/mruby/sender.c:161,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/mruby/sender.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - generator
    - body
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: callback_sender_create
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - H2O_ALIGNOF
    - h2o_buffer_init
    - h2o_doublebuffer_init
    - h2o_mruby_sender_create
    linkageType: ''
    returnType: h2o_mruby_sender_t
    signature: h2o_mruby_sender_t *callback_sender_create(h2o_mruby_generator_t *generator,
      mrb_value body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/h2o/lib/handler/mruby/sender.c:185,1
    - Dst: TRY
      Src: /src/h2o/lib/handler/mruby/sender.c:186,1
    - Dst: TRY
      Src: /src/h2o/lib/handler/mruby/sender.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - generator
    - body
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: h2o_mruby_init_sender
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 1
    functionsReached:
    - TRY
    linkageType: ''
    returnType: int
    signature: int h2o_mruby_init_sender(h2o_mruby_generator_t *generator, mrb_value
      body)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: TRY
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY(func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/sender.c:202,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/sender.c:204,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sender.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - generator
    argTypes:
    - mrb_state*
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: check_precond
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value check_precond(mrb_state *mrb, h2o_mruby_generator_t *generator)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby/sender.c:215,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby/sender.c:217,1
    - Dst: check_precond
      Src: /src/h2o/lib/handler/mruby/sender.c:220,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:221,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby/sender.c:222,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/mruby/sender.c:231,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/sender.c:232,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby/sender.c:233,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/sender.c:235,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/sender.c:238,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sender.c:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 208
    functionDepth: 9
    functionLinenumber: 208
    functionLinenumberEnd: 243
    functionName: send_chunk_method
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - check_precond
    - h2o_buffer_try_reserve
    - mrb_nil_value
    - mrb_exc_raise
    - mrb_get_args
    - memcpy
    - mrb_nil_p
    - h2o_mruby_sender_do_send_buffer
    - h2o_mruby_get_generator
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value send_chunk_method(mrb_state *mrb, mrb_value self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby/sender.c:249,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/sender.c:249,1
    - Dst: check_precond
      Src: /src/h2o/lib/handler/mruby/sender.c:252,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:253,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/sender.c:261,1
    - Dst: h2o_mruby_sender_close_body
      Src: /src/h2o/lib/handler/mruby/sender.c:262,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sender.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 11
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: send_chunk_eos_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - check_precond
    - mrb_ary_entry
    - h2o_mruby_sender_close_body
    - mrb_nil_p
    - h2o_mruby_sender_do_send_buffer
    - h2o_mruby_get_generator
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value send_chunk_eos_callback(h2o_mruby_context_t *mctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                         int
      *run_again)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/sender.c:271,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/sender.c:272,1
    - Dst: h2o_mruby_get_generator
      Src: /src/h2o/lib/handler/mruby/sender.c:273,1
    - Dst: check_precond
      Src: /src/h2o/lib/handler/mruby/sender.c:277,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sender.c:278,1
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/sender.c:286,1
    - Dst: h2o_mruby_sender_close_body
      Src: /src/h2o/lib/handler/mruby/sender.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 267
    functionDepth: 11
    functionLinenumber: 267
    functionLinenumberEnd: 292
    functionName: handle_error_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 0
    functionsReached:
    - check_precond
    - mrb_ary_entry
    - h2o_mruby_sender_close_body
    - mrb_nil_p
    - h2o_mruby_sender_do_send
    - h2o_mruby_get_generator
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value handle_error_callback(h2o_mruby_context_t *mctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                       int
      *run_again)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_eval_expr_location
      Src: /src/h2o/lib/handler/mruby/sender.c:298,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/sender.c:299,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/sender.c:301,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/lib/handler/mruby/sender.c:301,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/sender.c:302,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/sender.c:303,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/sender.c:305,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/sender.c:306,1
    - Dst: mrb_top_self
      Src: /src/h2o/lib/handler/mruby/sender.c:306,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/sender.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - shared_ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 294
    functionDepth: 11
    functionLinenumber: 294
    functionLinenumberEnd: 308
    functionName: h2o_mruby_sender_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/sender.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - mrb_ary_set
    - mrb_funcall
    - MRB_ARGS_ARG
    - h2o_mruby_eval_expr_location
    - h2o_mruby_assert
    - mrb_top_self
    - h2o_mruby_define_callback
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_sender_init_context(h2o_mruby_shared_context_t *shared_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/channel.c:40,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/channel.c:41,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/channel.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - _ctx
    argTypes:
    - mrb_state*
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/h2o/lib/handler/mruby/channel.c
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: on_gc_dispose_channel
    functionSourceFile: /src/h2o/lib/handler/mruby/channel.c
    functionUses: 0
    functionsReached:
    - mrb_gc_unregister
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_channel(mrb_state *mrb, void *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/channel.c:52,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/channel.c:54,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/channel.c:55,1
    - Dst: mrb_ary_new
      Src: /src/h2o/lib/handler/mruby/channel.c:57,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/channel.c:58,1
    - Dst: mrb_iv_set
      Src: /src/h2o/lib/handler/mruby/channel.c:60,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/channel.c:60,1
    - Dst: mrb_ary_new
      Src: /src/h2o/lib/handler/mruby/channel.c:60,1
    - Dst: mrb_data_init
      Src: /src/h2o/lib/handler/mruby/channel.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts:
    - condition: (shared_ctx->current_context != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/h2o/lib/handler/mruby/channel.c
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 9
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: channel_initialize_method
    functionSourceFile: /src/h2o/lib/handler/mruby/channel.c
    functionUses: 0
    functionsReached:
    - mrb_ary_new
    - mrb_iv_set
    - mrb_intern_lit
    - h2o_mem_alloc
    - memset
    - mrb_data_init
    - assert
    - mrb_gc_register
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value channel_initialize_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_get_ptr
      Src: /src/h2o/lib/handler/mruby/channel.c:70,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby/channel.c:72,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/channel.c:73,1
    - Dst: mrb_ary_shift
      Src: /src/h2o/lib/handler/mruby/channel.c:74,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/channel.c:75,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/channel.c:76,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/channel.c:76,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/channel.c:77,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/channel.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 11
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: channel_notify_method
    functionSourceFile: /src/h2o/lib/handler/mruby/channel.c
    functionUses: 0
    functionsReached:
    - mrb_ary_shift
    - mrb_gc_protect
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - h2o_mruby_run_fiber
    - RARRAY_LEN
    - mrb_nil_value
    - mrb_data_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value channel_notify_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/channel.c:89,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/channel.c:89,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/channel.c:90,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby/channel.c:92,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/channel.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: wait_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/channel.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - mrb_ary_push
    - mrb_data_check_get_ptr
    - mrb_nil_value
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value wait_callback(h2o_mruby_context_t *mctx, mrb_value input,
      mrb_value *receiver, mrb_value args, int *run_again)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_eval_expr_location
      Src: /src/h2o/lib/handler/mruby/channel.c:101,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/channel.c:102,1
    - Dst: mrb_define_module
      Src: /src/h2o/lib/handler/mruby/channel.c:105,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/channel.c:107,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/h2o/lib/handler/mruby/channel.c:108,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/channel.c:109,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/channel.c:109,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/channel.c:110,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/channel.c:110,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/channel.c:111,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/channel.c:111,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/channel.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - shared_ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 11
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: h2o_mruby_channel_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/channel.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - mrb_ary_set
    - h2o_mruby_eval_expr_location
    - h2o_mruby_assert
    - mrb_define_module
    - MRB_ARGS_NONE
    - h2o_mruby_define_callback
    - mrb_class_get_under
    - mrb_obj_value
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_channel_init_context(h2o_mruby_shared_context_t *shared_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:66,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:66,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/http_request.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - receiver
    argTypes:
    - struct st_h2o_mruby_http_request_context_t*
    - mrb_value
    assertStmts:
    - condition: (mrb_nil_p(ctx->receiver))
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: attach_receiver
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - assert
    - mrb_gc_register
    linkageType: ''
    returnType: void
    signature: void attach_receiver(struct st_h2o_mruby_http_request_context_t *ctx,
      mrb_value receiver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:74,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:74,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:75,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/http_request.c:76,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/http_request.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_h2o_mruby_http_request_context_t*
    assertStmts:
    - condition: (!mrb_nil_p(ret))
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: detach_receiver
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_unregister
    - mrb_nil_p
    - assert
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value detach_receiver(struct st_h2o_mruby_http_request_context_t
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:84,1
    - Dst: h2o_mruby_http_request_context_t*::client::cancel
      Src: /src/h2o/lib/handler/mruby/http_request.c:88,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:92,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/http_request.c:93,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:94,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/http_request.c:95,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/mruby/http_request.c:98,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/handler/mruby/http_request.c:100,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/http_request.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_http_request_context_t*
    assertStmts:
    - condition: (ctx->shortcut == NULL)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: dispose_context
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 1
    functionsReached:
    - h2o_mem_clear_pool
    - DATA_PTR
    - free
    - h2o_buffer_dispose
    - h2o_mruby_http_request_context_t*::client::cancel
    - mrb_nil_p
    - assert
    linkageType: ''
    returnType: void
    signature: void dispose_context(h2o_mruby_http_request_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_NIL_OR_DEAD
      Src: /src/h2o/lib/handler/mruby/http_request.c:108,1
    - Dst: IS_NIL_OR_DEAD
      Src: /src/h2o/lib/handler/mruby/http_request.c:108,1
    - Dst: dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_http_request_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: try_dispose_context
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - IS_NIL_OR_DEAD
    - dispose_context
    linkageType: ''
    returnType: int
    signature: int try_dispose_context(h2o_mruby_http_request_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: IS_NIL_OR_DEAD
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NIL_OR_DEAD(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:122,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:123,1
    - Dst: dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - _ctx
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: on_gc_dispose_request
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_nil_p
    - dispose_context
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_request(mrb_state *mrb, void *_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:134,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:135,1
    - Dst: dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - _ctx
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: on_gc_dispose_input_stream
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - mrb_nil_p
    - dispose_context
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_input_stream(mrb_state *mrb, void *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/http_request.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mrb
    argTypes:
    - mrb_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: create_already_consumed_error
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value create_already_consumed_error(mrb_state *mrb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: peek_content
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_buffer_t
    signature: h2o_buffer_t **peek_content(h2o_mruby_http_request_context_t *ctx,
      int *is_final)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:155,1
    - Dst: peek_content
      Src: /src/h2o/lib/handler/mruby/http_request.c:158,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:166,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/http_request.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts:
    - condition: (sender->client->shortcut == generator)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: on_shortcut_notify
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - h2o_mruby_sender_do_send_buffer
    - assert
    - peek_content
    linkageType: ''
    returnType: void
    signature: void on_shortcut_notify(h2o_mruby_generator_t *generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_shortcut_notify
      Src: /src/h2o/lib/handler/mruby/http_request.c:180,1
    - Dst: h2o_doublebuffer_prepare_empty
      Src: /src/h2o/lib/handler/mruby/http_request.c:183,1
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/http_request.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: do_sender_start
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - on_shortcut_notify
    - h2o_mruby_sender_do_send
    - h2o_doublebuffer_prepare_empty
    linkageType: ''
    returnType: void
    signature: void do_sender_start(h2o_mruby_generator_t *generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/handler/mruby/http_request.c:195,1
    - Dst: peek_content
      Src: /src/h2o/lib/handler/mruby/http_request.c:198,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:199,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/http_request.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - _generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts:
    - condition: (!is_final)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: do_sender_proceed
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - h2o_doublebuffer_consume
    - h2o_mruby_sender_do_send_buffer
    - assert
    - peek_content
    linkageType: ''
    returnType: void
    signature: void do_sender_proceed(h2o_generator_t *_generator, h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/handler/mruby/http_request.c:213,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/mruby/http_request.c:217,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:220,1
    - Dst: h2o_mruby_sender_close_body
      Src: /src/h2o/lib/handler/mruby/http_request.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts:
    - condition: (sender->client->shortcut == generator)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 11
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: do_sender_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_sender_close_body
    - assert
    - h2o_doublebuffer_dispose
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void do_sender_dispose(h2o_mruby_generator_t *generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:232,1
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/http_request.c:234,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:236,1
    - Dst: mrb_ptr
      Src: /src/h2o/lib/handler/mruby/http_request.c:239,1
    - Dst: create_already_consumed_error
      Src: /src/h2o/lib/handler/mruby/http_request.c:239,1
    - Dst: h2o_mruby_sender_create
      Src: /src/h2o/lib/handler/mruby/http_request.c:245,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/mruby/http_request.c:245,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - generator
    - body
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_value
    assertStmts:
    - condition: (mrb->exc == NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    - condition: (ctx->shortcut == NULL)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 257
      start: 227
    functionDepth: 6
    functionLinenumber: 227
    functionLinenumberEnd: 257
    functionName: h2o_mruby_http_sender_create
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - H2O_ALIGNOF
    - mrb_ptr
    - h2o_doublebuffer_init
    - h2o_mruby_sender_create
    - create_already_consumed_error
    - assert
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: h2o_mruby_sender_t
    signature: h2o_mruby_sender_t *h2o_mruby_http_sender_create(h2o_mruby_generator_t
      *generator, mrb_value body)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/http_request.c:263,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby/http_request.c:266,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:269,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:269,1
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/lib/handler/mruby/http_request.c:272,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/http_request.c:275,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:275,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/http_request.c:276,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:276,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:281,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:282,1
    - Dst: h2o_mruby_new_str_static
      Src: /src/h2o/lib/handler/mruby/http_request.c:284,1
    - Dst: h2o_mruby_new_str_static
      Src: /src/h2o/lib/handler/mruby/http_request.c:285,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/http_request.c:287,1
    - Dst: mrb_str_cat_lit
      Src: /src/h2o/lib/handler/mruby/http_request.c:290,1
    - Dst: mrb_str_cat
      Src: /src/h2o/lib/handler/mruby/http_request.c:291,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:293,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:295,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:298,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:298,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:301,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:303,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby/http_request.c:305,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:306,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:308,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/http_request.c:310,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby/http_request.c:312,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/http_request.c:316,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/http_request.c:316,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/http_request.c:319,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - ctx
    - status
    - headers_sorted
    - num_headers
    - header_requires_dup
    argTypes:
    - struct st_h2o_mruby_http_request_context_t*
    - int
    - h2o_header_t*
    - size_t
    - int
    assertStmts:
    - condition: (mrb_nil_p(ctx->refs.input_stream))
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 320
      start: 259
    functionDepth: 11
    functionLinenumber: 259
    functionLinenumberEnd: 320
    functionName: post_response
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - mrb_ary_entry
    - mrb_gc_arena_save
    - mrb_fixnum_value
    - mrb_nil_p
    - assert
    - mrb_hash_new_capa
    - H2O_STRLIT
    - mrb_gc_arena_restore
    - mrb_ary_set
    - mrb_str_cat
    - h2o_mruby_run_fiber
    - mrb_ary_new_capa
    - h2o_mruby_new_str_static
    - h2o_fatal
    - h2o_mruby_create_data_instance
    - detach_receiver
    - mrb_funcall
    - mrb_hash_set
    - mrb_str_cat_lit
    - h2o_memis
    linkageType: ''
    returnType: void
    signature: "void post_response(struct st_h2o_mruby_http_request_context_t *ctx,
      int status, const h2o_header_t *headers_sorted,\n                          size_t
      num_headers, int header_requires_dup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby/http_request.c:325,1
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/mruby/http_request.c:326,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/http_request.c:327,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:331,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:333,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:334,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:334,1
    - Dst: post_response
      Src: /src/h2o/lib/handler/mruby/http_request.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - errstr
    argTypes:
    - struct st_h2o_mruby_http_request_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 322
    functionDepth: 12
    functionLinenumber: 322
    functionLinenumberEnd: 338
    functionName: post_error
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - post_response
    - h2o_buffer_reserve
    - memcpy
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void post_error(struct st_h2o_mruby_http_request_context_t *ctx, const
      char *errstr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:344,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:347,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:348,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/mruby/http_request.c:349,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:353,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:355,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/mruby/http_request.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct st_h2o_mruby_http_request_context_t*
    assertStmts:
    - condition: (ctx->resp.has_content)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    - condition: ((*ctx->client->buf)->size != 0)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 362
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 362
    functionName: build_chunk
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - h2o_mruby_new_str
    - assert
    - h2o_buffer_consume
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_chunk(struct st_h2o_mruby_http_request_context_t *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: on_shortcut_notify
      Src: /src/h2o/lib/handler/mruby/http_request.c:380,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:381,1
    - Dst: build_chunk
      Src: /src/h2o/lib/handler/mruby/http_request.c:382,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/http_request.c:383,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/http_request.c:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - client
    - errstr
    argTypes:
    - h2o_httpclient_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 11
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: do_on_body
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - detach_receiver
    - h2o_mruby_run_fiber
    - on_shortcut_notify
    - build_chunk
    - mrb_nil_p
    linkageType: ''
    returnType: int
    signature: int do_on_body(h2o_httpclient_t *client, const char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: try_dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:393,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/http_request.c:396,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/http_request.c:397,1
    - Dst: do_on_body
      Src: /src/h2o/lib/handler/mruby/http_request.c:399,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/http_request.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - client
    - errstr
    - trailers
    - num_trailers
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_header_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 12
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: on_body
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 13
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_arena_restore
    - do_on_body
    - mrb_gc_arena_save
    - try_dispose_context
    linkageType: ''
    returnType: int
    signature: int on_body(h2o_httpclient_t *client, const char *errstr, h2o_header_t
      *trailers, size_t num_trailers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mruby/http_request.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: headers_sort_cb
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int headers_sort_cb(const void *_x, const void *_y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post_error
      Src: /src/h2o/lib/handler/mruby/http_request.c:424,1
    - Dst: qsort
      Src: /src/h2o/lib/handler/mruby/http_request.c:431,1
    - Dst: post_response
      Src: /src/h2o/lib/handler/mruby/http_request.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - client
    - errstr
    - args
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_httpclient_on_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 417
    functionDepth: 13
    functionLinenumber: 417
    functionLinenumberEnd: 435
    functionName: do_on_head
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - qsort
    - post_error
    - post_response
    linkageType: ''
    returnType: h2o_httpclient_body_cb
    signature: h2o_httpclient_body_cb do_on_head(h2o_httpclient_t *client, const char
      *errstr, h2o_httpclient_on_head_t *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: try_dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:440,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/http_request.c:443,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/http_request.c:444,1
    - Dst: do_on_head
      Src: /src/h2o/lib/handler/mruby/http_request.c:446,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/http_request.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - client
    - errstr
    - args
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_httpclient_on_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 14
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: on_head
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 10
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - try_dispose_context
    - do_on_head
    linkageType: ''
    returnType: h2o_httpclient_body_cb
    signature: h2o_httpclient_body_cb on_head(h2o_httpclient_t *client, const char
      *errstr, h2o_httpclient_on_head_t *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post_error
      Src: /src/h2o/lib/handler/mruby/http_request.c:461,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:466,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:466,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 10
    argNames:
    - client
    - errstr
    - method
    - url
    - headers
    - num_headers
    - body
    - proceed_req_cb
    - props
    - origin
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_iovec_t*
    - h2o_url_t*
    - h2o_header_t**
    - size_t*
    - h2o_iovec_t*
    - h2o_httpclient_proceed_req_cb*
    - h2o_httpclient_properties_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 13
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: do_on_connect
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - post_error
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_httpclient_head_cb
    signature: "h2o_httpclient_head_cb do_on_connect(h2o_httpclient_t *client, const
      char *errstr, h2o_iovec_t *method, h2o_url_t *url,\n                                            const
      h2o_header_t **headers, size_t *num_headers, h2o_iovec_t *body,\n                                            h2o_httpclient_proceed_req_cb
      *proceed_req_cb, h2o_httpclient_properties_t *props,\n                                            h2o_url_t
      *origin)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: try_dispose_context
      Src: /src/h2o/lib/handler/mruby/http_request.c:489,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/http_request.c:492,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/http_request.c:493,1
    - Dst: do_on_connect
      Src: /src/h2o/lib/handler/mruby/http_request.c:496,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/http_request.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - client
    - errstr
    - method
    - url
    - headers
    - num_headers
    - body
    - proceed_req_cb
    - props
    - origin
    argTypes:
    - h2o_httpclient_t*
    - char*
    - h2o_iovec_t*
    - h2o_url_t*
    - h2o_header_t**
    - size_t*
    - h2o_iovec_t*
    - h2o_httpclient_proceed_req_cb*
    - h2o_httpclient_properties_t*
    - h2o_url_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 483
    functionDepth: 14
    functionLinenumber: 483
    functionLinenumberEnd: 501
    functionName: on_connect
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 10
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - try_dispose_context
    - do_on_connect
    linkageType: ''
    returnType: h2o_httpclient_head_cb
    signature: "h2o_httpclient_head_cb on_connect(h2o_httpclient_t *client, const
      char *errstr, h2o_iovec_t *method, h2o_url_t *url,\n                                         const
      h2o_header_t **headers, size_t *num_headers, h2o_iovec_t *body,\n                                         h2o_httpclient_proceed_req_cb
      *proceed_req_cb, h2o_httpclient_properties_t *props,\n                                         h2o_url_t
      *origin)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/handler/mruby/http_request.c:508,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:508,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/handler/mruby/http_request.c:508,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:508,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/handler/mruby/http_request.c:511,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:511,1
    - Dst: h2o_lcstris
      Src: /src/h2o/lib/handler/mruby/http_request.c:517,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:517,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - shared_ctx
    - name
    - value
    - _ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 523
    functionName: flatten_request_header
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_lcstris
    - H2O_STRLIT
    linkageType: ''
    returnType: int
    signature: int flatten_request_header(h2o_mruby_shared_context_t *shared_ctx,
      h2o_iovec_t *name, h2o_iovec_t value, void *_ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:535,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:538,1
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby/http_request.c:539,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/http_request.c:542,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/http_request.c:543,1
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/handler/mruby/http_request.c:544,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:547,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:548,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:549,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:550,1
    - Dst: h2o_socketpool_can_keepalive
      Src: /src/h2o/lib/handler/mruby/http_request.c:551,1
    - Dst: h2o_url_parse
      Src: /src/h2o/lib/handler/mruby/http_request.c:554,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby/http_request.c:555,1
    - Dst: h2o_url_copy
      Src: /src/h2o/lib/handler/mruby/http_request.c:556,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:559,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:559,1
    - Dst: mrb_hash_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:560,1
    - Dst: mrb_hash_get
      Src: /src/h2o/lib/handler/mruby/http_request.c:561,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:561,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:562,1
    - Dst: mrb_str_to_str
      Src: /src/h2o/lib/handler/mruby/http_request.c:563,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/http_request.c:564,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/http_request.c:564,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/http_request.c:564,1
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/http_request.c:565,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/http_request.c:565,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/http_request.c:570,1
    - Dst: mrb_hash_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:573,1
    - Dst: mrb_hash_get
      Src: /src/h2o/lib/handler/mruby/http_request.c:574,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:574,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:575,1
    - Dst: h2o_mruby_iterate_rack_headers
      Src: /src/h2o/lib/handler/mruby/http_request.c:576,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:577,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby/http_request.c:579,1
    - Dst: mrb_hash_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:585,1
    - Dst: mrb_hash_get
      Src: /src/h2o/lib/handler/mruby/http_request.c:586,1
    - Dst: mrb_symbol_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:586,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:587,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:588,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/http_request.c:589,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby/http_request.c:590,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby/http_request.c:591,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/http_request.c:594,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/http_request.c:594,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/http_request.c:594,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby/http_request.c:596,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/mruby/http_request.c:597,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/mruby/http_request.c:598,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby/http_request.c:604,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:605,1
    - Dst: h2o_httpclient_connect
      Src: /src/h2o/lib/handler/mruby/http_request.c:607,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts:
    - condition: (shared_ctx->current_context != NULL)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    constantsTouched: []
    func_position:
      end: 611
      start: 525
    functionDepth: 12
    functionLinenumber: 525
    functionLinenumberEnd: 611
    functionName: http_request_method
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - h2o_mem_init_pool
    - h2o_url_copy
    - h2o_mem_alloc_pool
    - h2o_httpclient_connect
    - sprintf
    - mrb_nil_p
    - assert
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_strdup
    - mrb_raise
    - RSTRING_PTR
    - h2o_buffer_init
    - mrb_get_args
    - h2o_add_header
    - mrb_obj_value
    - memset
    - mrb_string_p
    - h2o_mruby_iterate_rack_headers
    - mrb_exc_raise
    - h2o_mem_alloc
    - mrb_hash_get
    - mrb_hash_p
    - mrb_nil_value
    - mrb_symbol_value
    - h2o_mruby_create_data_instance
    - mrb_funcall
    - mrb_str_to_str
    - RSTRING_LEN
    - h2o_socketpool_can_keepalive
    - h2o_memis
    - h2o_url_parse
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value http_request_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/http_request.c:619,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:619,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/http_request.c:621,1
    - Dst: attach_receiver
      Src: /src/h2o/lib/handler/mruby/http_request.c:624,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: http_join_response_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - attach_receiver
    - mrb_ary_entry
    - mrb_data_check_get_ptr
    - mrb_nil_value
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value http_join_response_callback(h2o_mruby_context_t *mctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                             int
      *run_again)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/http_request.c:635,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:635,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/http_request.c:637,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/http_request.c:640,1
    - Dst: mrb_bool
      Src: /src/h2o/lib/handler/mruby/http_request.c:641,1
    - Dst: create_already_consumed_error
      Src: /src/h2o/lib/handler/mruby/http_request.c:645,1
    - Dst: build_chunk
      Src: /src/h2o/lib/handler/mruby/http_request.c:651,1
    - Dst: attach_receiver
      Src: /src/h2o/lib/handler/mruby/http_request.c:654,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 659
    functionName: http_fetch_chunk_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 0
    functionsReached:
    - attach_receiver
    - mrb_ary_entry
    - mrb_bool
    - mrb_data_check_get_ptr
    - build_chunk
    - mrb_nil_value
    - create_already_consumed_error
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value http_fetch_chunk_callback(h2o_mruby_context_t *mctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                           int
      *run_again)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_eval_expr_location
      Src: /src/h2o/lib/handler/mruby/http_request.c:665,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/http_request.c:666,1
    - Dst: mrb_define_module
      Src: /src/h2o/lib/handler/mruby/http_request.c:669,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/http_request.c:671,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/lib/handler/mruby/http_request.c:671,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/http_request.c:673,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:674,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:674,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/http_request.c:676,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:677,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:677,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/http_request.c:679,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/http_request.c:680,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/http_request.c:680,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/http_request.c:682,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/http_request.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 661
    functionDepth: 11
    functionLinenumber: 661
    functionLinenumberEnd: 684
    functionName: h2o_mruby_http_request_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/http_request.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - mrb_ary_set
    - MRB_ARGS_ARG
    - h2o_mruby_eval_expr_location
    - h2o_mruby_assert
    - mrb_define_module
    - mrb_class_get_under
    - mrb_obj_value
    - h2o_mruby_define_callback
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_http_request_init_context(h2o_mruby_shared_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby/sleep.c:36,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/sleep.c:37,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/sleep.c:37,1
    - Dst: h2o_now
      Src: /src/h2o/lib/handler/mruby/sleep.c:39,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/sleep.c:41,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/sleep.c:42,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby/sleep.c:42,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/sleep.c:43,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/sleep.c:45,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/sleep.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - h2o_timer_t*
    assertStmts:
    - condition: (!mrb_nil_p(ctx->receiver))
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/h2o/lib/handler/mruby/sleep.c
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 11
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: on_sleep_timeout
    functionSourceFile: /src/h2o/lib/handler/mruby/sleep.c
    functionUses: 0
    functionsReached:
    - mrb_gc_unregister
    - h2o_now
    - H2O_STRUCT_FROM_MEMBER
    - mrb_gc_arena_restore
    - free
    - mrb_gc_arena_save
    - h2o_mruby_run_fiber
    - mrb_fixnum_value
    - mrb_nil_p
    - assert
    linkageType: ''
    returnType: void
    signature: void on_sleep_timeout(h2o_timer_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/sleep.c:53,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby/sleep.c:53,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby/sleep.c:54,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sleep.c:55,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/sleep.c:57,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/sleep.c:60,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/sleep.c:64,1
    - Dst: mrb_obj_is_kind_of
      Src: /src/h2o/lib/handler/mruby/sleep.c:65,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/sleep.c:66,1
    - Dst: mrb_float
      Src: /src/h2o/lib/handler/mruby/sleep.c:70,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/sleep.c:72,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/sleep.c:73,1
    - Dst: h2o_timer_init
      Src: /src/h2o/lib/handler/mruby/sleep.c:76,1
    - Dst: h2o_timer_link
      Src: /src/h2o/lib/handler/mruby/sleep.c:77,1
    - Dst: h2o_now
      Src: /src/h2o/lib/handler/mruby/sleep.c:79,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/sleep.c:81,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/sleep.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts:
    - condition: (mrb_array_p(args))
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/h2o/lib/handler/mruby/sleep.c
    constantsTouched: []
    func_position:
      end: 84
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 84
    functionName: sleep_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/sleep.c
    functionUses: 0
    functionsReached:
    - mrb_array_p
    - mrb_ary_entry
    - mrb_funcall
    - mrb_obj_is_kind_of
    - h2o_timer_link
    - h2o_now
    - mrb_obj_value
    - h2o_mem_alloc
    - h2o_timer_init
    - RARRAY_LEN
    - mrb_nil_value
    - memset
    - mrb_float
    - assert
    - mrb_gc_register
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value sleep_callback(h2o_mruby_context_t *mctx, mrb_value input,
      mrb_value *receiver, mrb_value args, int *run_again)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/sleep.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 11
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: h2o_mruby_sleep_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/sleep.c
    functionUses: 1
    functionsReached:
    - h2o_mruby_define_callback
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_sleep_init_context(h2o_mruby_shared_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/redis.c:52,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:52,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/redis.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - receiver
    argTypes:
    - struct st_h2o_mruby_redis_command_context_t*
    - mrb_value
    assertStmts:
    - condition: (mrb_nil_p(ctx->receiver))
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/h2o/lib/handler/mruby/redis.c
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: attach_receiver
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 2
    functionsReached:
    - mrb_nil_p
    - assert
    - mrb_gc_register
    linkageType: ''
    returnType: void
    signature: void attach_receiver(struct st_h2o_mruby_redis_command_context_t *ctx,
      mrb_value receiver)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/redis.c:60,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:60,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:61,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/redis.c:62,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/redis.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - protect
    argTypes:
    - struct st_h2o_mruby_redis_command_context_t*
    - int
    assertStmts:
    - condition: (!mrb_nil_p(ret))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/lib/handler/mruby/redis.c
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: detach_receiver
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 2
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_unregister
    - mrb_nil_p
    - assert
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value detach_receiver(struct st_h2o_mruby_redis_command_context_t
      *ctx, int protect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:72,1
    - Dst: h2o_redis_free
      Src: /src/h2o/lib/handler/mruby/redis.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - _client
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: on_gc_dispose_redis
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - h2o_redis_free
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_redis(mrb_state *mrb, void *_client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:80,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/redis.c:81,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/redis.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - _ctx
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: on_gc_dispose_command
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_nil_p
    - free
    - detach_receiver
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_command(mrb_state *mrb, void *_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/redis.c:89,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/redis.c:90,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/redis.c:90,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/redis.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - name
    argTypes:
    - mrb_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: get_error_class
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_obj_ptr
    - mrb_ary_entry
    - mrb_class_get_under
    linkageType: ''
    returnType: struct RClass
    signature: struct RClass *get_error_class(mrb_state *mrb, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:98,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/redis.c:99,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/redis.c:100,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/redis.c:102,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/redis.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - reply
    argTypes:
    - struct st_h2o_mruby_redis_command_context_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 11
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: pass_reply
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - detach_receiver
    - mrb_funcall
    - h2o_mruby_assert
    - h2o_mruby_run_fiber
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void pass_reply(struct st_h2o_mruby_redis_command_context_t *ctx, mrb_value
      reply)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/redis.c:112,1
    - Dst: h2o_redis_create_client
      Src: /src/h2o/lib/handler/mruby/redis.c:115,1
    - Dst: mrb_iv_get
      Src: /src/h2o/lib/handler/mruby/redis.c:118,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:118,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:119,1
    - Dst: mrb_float
      Src: /src/h2o/lib/handler/mruby/redis.c:120,1
    - Dst: mrb_iv_get
      Src: /src/h2o/lib/handler/mruby/redis.c:124,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:124,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/redis.c:125,1
    - Dst: mrb_float
      Src: /src/h2o/lib/handler/mruby/redis.c:126,1
    - Dst: DATA_TYPE
      Src: /src/h2o/lib/handler/mruby/redis.c:130,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/redis.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts:
    - condition: (shared->current_context != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/h2o/lib/handler/mruby/redis.c
    constantsTouched: []
    func_position:
      end: 134
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 134
    functionName: setup_method
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - DATA_TYPE
    - DATA_PTR
    - mrb_intern_lit
    - mrb_iv_get
    - mrb_nil_p
    - h2o_redis_create_client
    - mrb_float
    - assert
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value setup_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/redis.c:138,1
    - Dst: mrb_iv_get
      Src: /src/h2o/lib/handler/mruby/redis.c:142,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:142,1
    - Dst: mrb_iv_get
      Src: /src/h2o/lib/handler/mruby/redis.c:143,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:143,1
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/lib/handler/mruby/redis.c:144,1
    - Dst: mrb_fixnum
      Src: /src/h2o/lib/handler/mruby/redis.c:145,1
    - Dst: h2o_redis_connect
      Src: /src/h2o/lib/handler/mruby/redis.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 9
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: connect_method
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_string_value_cstr
    - mrb_intern_lit
    - h2o_redis_connect
    - mrb_iv_get
    - mrb_fixnum
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value connect_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/redis.c:154,1
    - Dst: mrb_bool_value
      Src: /src/h2o/lib/handler/mruby/redis.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: disconnected_method
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_bool_value
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value disconnected_method(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/redis.c:160,1
    - Dst: h2o_redis_disconnect
      Src: /src/h2o/lib/handler/mruby/redis.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: disconnect_method
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - h2o_redis_disconnect
    - DATA_PTR
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value disconnect_method(mrb_state *mrb, mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/h2o/lib/handler/mruby/redis.c:177,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby/redis.c:180,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/redis.c:183,1
    - Dst: decode_redis_reply
      Src: /src/h2o/lib/handler/mruby/redis.c:183,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby/redis.c:186,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:189,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/redis.c:192,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:192,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/redis.c:193,1
    - Dst: mrb_str_new
      Src: /src/h2o/lib/handler/mruby/redis.c:193,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/redis.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - mrb
    - reply
    - command
    argTypes:
    - mrb_state*
    - redisReply*
    - mrb_value
    assertStmts:
    - condition: (!"FIXME")
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/h2o/lib/handler/mruby/redis.c
    constantsTouched: []
    func_position:
      end: 200
      start: 170
    functionDepth: 8
    functionLinenumber: 170
    functionLinenumberEnd: 200
    functionName: decode_redis_reply
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 1
    functionsReached:
    - decode_redis_reply
    - mrb_ary_set
    - mrb_funcall
    - mrb_obj_value
    - get_error_class
    - mrb_str_new
    - mrb_fixnum_value
    - mrb_ary_new_capa
    - mrb_nil_value
    - assert
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value decode_redis_reply(mrb_state *mrb, redisReply *reply, mrb_value
      command)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:206,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/redis.c:208,1
    - Dst: decode_redis_reply
      Src: /src/h2o/lib/handler/mruby/redis.c:213,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:218,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:220,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:222,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:224,1
    - Dst: get_error_class
      Src: /src/h2o/lib/handler/mruby/redis.c:226,1
    - Dst: mrb_exc_new
      Src: /src/h2o/lib/handler/mruby/redis.c:229,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/mruby/redis.c:229,1
    - Dst: pass_reply
      Src: /src/h2o/lib/handler/mruby/redis.c:232,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/redis.c:234,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/redis.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - _reply
    - _ctx
    - errstr
    argTypes:
    - redisReply*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 202
    functionDepth: 12
    functionLinenumber: 202
    functionLinenumberEnd: 236
    functionName: on_redis_command
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new
    - mrb_gc_unregister
    - mrb_gc_arena_restore
    - pass_reply
    - mrb_gc_arena_save
    - get_error_class
    - decode_redis_reply
    - mrb_nil_value
    - strlen
    linkageType: ''
    returnType: void
    signature: void on_redis_command(redisReply *_reply, void *_ctx, const char *errstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/redis.c:240,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:245,1
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby/redis.c:246,1
    - Dst: RARRAY_LEN
      Src: /src/h2o/lib/handler/mruby/redis.c:247,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/redis.c:250,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/redis.c:251,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:253,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby/redis.c:254,1
    - Dst: mrb_funcall_with_block
      Src: /src/h2o/lib/handler/mruby/redis.c:255,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:255,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/redis.c:256,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/redis.c:258,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/redis.c:259,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/redis.c:261,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/redis.c:265,1
    - Dst: mrb_symbol_p
      Src: /src/h2o/lib/handler/mruby/redis.c:266,1
    - Dst: mrb_sym2name_len
      Src: /src/h2o/lib/handler/mruby/redis.c:268,1
    - Dst: mrb_symbol
      Src: /src/h2o/lib/handler/mruby/redis.c:268,1
    - Dst: mrb_obj_as_string
      Src: /src/h2o/lib/handler/mruby/redis.c:271,1
    - Dst: mrb_string_value_cstr
      Src: /src/h2o/lib/handler/mruby/redis.c:272,1
    - Dst: mrb_string_value_len
      Src: /src/h2o/lib/handler/mruby/redis.c:273,1
    - Dst: h2o_redis_command_argv
      Src: /src/h2o/lib/handler/mruby/redis.c:278,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/redis.c:280,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/redis.c:282,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/redis.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 238
    functionDepth: 9
    functionLinenumber: 238
    functionLinenumberEnd: 286
    functionName: call_method
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - mrb_obj_as_string
    - mrb_ary_entry
    - DATA_PTR
    - mrb_funcall_with_block
    - mrb_symbol_p
    - mrb_intern_lit
    - mrb_gc_arena_save
    - mrb_gc_register
    - mrb_gc_arena_restore
    - free
    - mrb_get_args
    - mrb_string_value_cstr
    - RARRAY_LEN
    - mrb_sym2name_len
    - memset
    - h2o_mem_alloc
    - mrb_nil_value
    - mrb_symbol
    - h2o_mruby_create_data_instance
    - mrb_string_value_len
    - h2o_redis_command_argv
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value call_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/redis.c:294,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/redis.c:294,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/redis.c:295,1
    - Dst: attach_receiver
      Src: /src/h2o/lib/handler/mruby/redis.c:297,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/redis.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: redis_join_reply_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 0
    functionsReached:
    - attach_receiver
    - mrb_ary_entry
    - mrb_data_check_get_ptr
    - mrb_nil_value
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value redis_join_reply_callback(h2o_mruby_context_t *mctx, mrb_value
      input, mrb_value *receiver, mrb_value args,\n                                           int
      *run_again)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_eval_expr_location
      Src: /src/h2o/lib/handler/mruby/redis.c:305,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/redis.c:306,1
    - Dst: mrb_define_module
      Src: /src/h2o/lib/handler/mruby/redis.c:308,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/redis.c:310,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/redis.c:312,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/redis.c:313,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/redis.c:313,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/redis.c:314,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/redis.c:314,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/redis.c:315,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/redis.c:315,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/redis.c:316,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/redis.c:316,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/redis.c:317,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/lib/handler/mruby/redis.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 301
    functionDepth: 11
    functionLinenumber: 301
    functionLinenumberEnd: 318
    functionName: h2o_mruby_redis_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/redis.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - MRB_ARGS_ARG
    - h2o_mruby_eval_expr_location
    - h2o_mruby_assert
    - mrb_define_module
    - MRB_ARGS_NONE
    - mrb_class_get_under
    - h2o_mruby_define_callback
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_redis_init_context(h2o_mruby_shared_context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:79,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:80,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:82,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/middleware.c:83,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:84,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/mruby/middleware.c:88,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:90,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:91,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:92,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:93,1
    - Dst: h2o_dispose_request
      Src: /src/h2o/lib/handler/mruby/middleware.c:95,1
    - Dst: free
      Src: /src/h2o/lib/handler/mruby/middleware.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - subreq
    argTypes:
    - struct st_mruby_subreq_t*
    assertStmts:
    - condition: (subreq->shortcut.response == NULL)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - condition: (subreq->shortcut.body == NULL)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: dispose_subreq
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_gc_unregister
    - DATA_PTR
    - free
    - h2o_buffer_dispose
    - h2o_dispose_request
    - mrb_nil_p
    - assert
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: void dispose_subreq(struct st_mruby_subreq_t *subreq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:104,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:105,1
    - Dst: dispose_subreq
      Src: /src/h2o/lib/handler/mruby/middleware.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - _subreq
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: on_gc_dispose_app_request
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - dispose_subreq
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_app_request(mrb_state *mrb, void *_subreq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:114,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:115,1
    - Dst: dispose_subreq
      Src: /src/h2o/lib/handler/mruby/middleware.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mrb
    - _subreq
    argTypes:
    - mrb_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: on_gc_dispose_app_input_stream
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_nil_value
    - dispose_subreq
    - mrb_nil_p
    linkageType: ''
    returnType: void
    signature: void on_gc_dispose_app_input_stream(mrb_state *mrb, void *_subreq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/lib/handler/mruby/middleware.c:126,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:127,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby/middleware.c:133,1
    - Dst: h2o_tolower
      Src: /src/h2o/lib/handler/mruby/middleware.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - pool
    - name
    - len
    - has_key_prefix
    argTypes:
    - h2o_mem_pool_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 147
    functionName: convert_env_key_to_header_name
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_mem_alloc_pool
    - h2o_tolower
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t convert_env_key_to_header_name(h2o_mem_pool_t *pool, const
      char *name, size_t len, int has_key_prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:152,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/mruby/middleware.c:154,1
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby/middleware.c:155,1
    - Dst: h2o_mruby_token_string
      Src: /src/h2o/lib/handler/mruby/middleware.c:156,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:158,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:160,1
    - Dst: mrb_hash_fetch
      Src: /src/h2o/lib/handler/mruby/middleware.c:162,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:162,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:163,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:164,1
    - Dst: mrb_array_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:165,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby/middleware.c:166,1
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby/middleware.c:168,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby/middleware.c:169,1
    - Dst: mrb_ary_push
      Src: /src/h2o/lib/handler/mruby/middleware.c:170,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - shared_ctx
    - pool
    - header
    - cb_data
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_mem_pool_t*
    - h2o_header_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 10
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: iterate_headers_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - h2o_mruby_new_str
    - mrb_array_p
    - H2O_STRUCT_FROM_MEMBER
    - mrb_hash_set
    - h2o_mruby_token_string
    - mrb_ary_push
    - mrb_ary_new_capa
    - mrb_obj_value
    - mrb_hash_fetch
    - mrb_nil_p
    - mrb_nil_value
    linkageType: ''
    returnType: int
    signature: "int iterate_headers_callback(h2o_mruby_shared_context_t *shared_ctx,
      h2o_mem_pool_t *pool, h2o_header_t *header,\n                                    void
      *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_new_capa
      Src: /src/h2o/lib/handler/mruby/middleware.c:184,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:187,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:187,1
    - Dst: mrb_hash_new_capa
      Src: /src/h2o/lib/handler/mruby/middleware.c:191,1
    - Dst: h2o_mruby_iterate_native_headers
      Src: /src/h2o/lib/handler/mruby/middleware.c:192,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:193,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:196,1
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:197,1
    - Dst: mrb_fixnum_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:197,1
    - Dst: mrb_hash_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:198,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:200,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby/middleware.c:205,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/middleware.c:206,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/middleware.c:207,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - subreq
    argTypes:
    - struct st_mruby_subreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 177
    functionDepth: 10
    functionLinenumber: 177
    functionLinenumberEnd: 212
    functionName: build_app_response
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - mrb_ary_set
    - mrb_hash_new_capa
    - mrb_ary_entry
    - mrb_funcall
    - mrb_hash_set
    - mrb_obj_ptr
    - h2o_mruby_to_str
    - mrb_fixnum_value
    - mrb_ary_new_capa
    - h2o_mruby_iterate_native_headers
    - h2o_mruby_create_data_instance
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_app_response(struct st_mruby_subreq_t *subreq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_reserve
      Src: /src/h2o/lib/handler/mruby/middleware.c:219,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:220,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/mruby/middleware.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - subreq
    - inbufs
    - inbufcnt
    argTypes:
    - struct st_mruby_subreq_t*
    - h2o_sendvec_t*
    - size_t
    assertStmts:
    - condition: (dst != NULL && "no memory or disk space; FIXME bail out gracefully")
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: append_bufs
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_reserve
    - assert
    - h2o_fatal
    linkageType: ''
    returnType: void
    signature: void append_bufs(struct st_mruby_subreq_t *subreq, h2o_sendvec_t *inbufs,
      size_t inbufcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:230,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:230,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:231,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/middleware.c:232,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/middleware.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - subreq
    argTypes:
    - struct st_mruby_subreq_t*
    assertStmts:
    - condition: (!mrb_nil_p(receiver))
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: detach_receiver
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 4
    functionsReached:
    - mrb_gc_protect
    - mrb_gc_unregister
    - mrb_nil_p
    - assert
    - mrb_nil_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value detach_receiver(struct st_mruby_subreq_t *subreq)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_sender_do_send
      Src: /src/h2o/lib/handler/mruby/middleware.c:252,1
    - Dst: append_bufs
      Src: /src/h2o/lib/handler/mruby/middleware.c:255,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/mruby/middleware.c:262,1
    - Dst: h2o_proceed_response_deferred
      Src: /src/h2o/lib/handler/mruby/middleware.c:263,1
    - Dst: append_bufs
      Src: /src/h2o/lib/handler/mruby/middleware.c:269,1
    - Dst: send_response_shortcutted
      Src: /src/h2o/lib/handler/mruby/middleware.c:273,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:277,1
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/middleware.c:280,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/middleware.c:284,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/middleware.c:284,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:284,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:287,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/mruby/middleware.c:288,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/middleware.c:289,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/middleware.c:289,1
    - Dst: h2o_mruby_run_fiber
      Src: /src/h2o/lib/handler/mruby/middleware.c:291,1
    - Dst: detach_receiver
      Src: /src/h2o/lib/handler/mruby/middleware.c:291,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:291,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/middleware.c:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - _self
    - _subreq
    - inbufs
    - inbufcnt
    - state
    argTypes:
    - h2o_ostream_t*
    - h2o_req_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 238
    functionDepth: 11
    functionLinenumber: 238
    functionLinenumberEnd: 295
    functionName: subreq_ostream_send
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - detach_receiver
    - mrb_gc_arena_restore
    - mrb_gc_arena_save
    - h2o_mruby_run_fiber
    - send_response_shortcutted
    - h2o_proceed_response_deferred
    - h2o_buffer_consume
    - mrb_nil_p
    - append_bufs
    - h2o_mruby_sender_do_send
    - h2o_send_state_is_in_progress
    - mrb_nil_value
    linkageType: ''
    returnType: void
    signature: "void subreq_ostream_send(h2o_ostream_t *_self, h2o_req_t *_subreq,
      h2o_sendvec_t *inbufs, size_t inbufcnt,\n                                h2o_send_state_t
      state)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:301,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:302,1
    - Dst: mrb_respond_to
      Src: /src/h2o/lib/handler/mruby/middleware.c:308,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:308,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:309,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:309,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/middleware.c:312,1
    - Dst: mrb_string_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:315,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:316,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:316,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:319,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:319,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - subreq
    - ctx
    - rack_input
    argTypes:
    - h2o_req_t*
    - h2o_mruby_context_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: prepare_subreq_entity
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_exc_new_lit
    - mrb_funcall
    - h2o_strdup
    - RSTRING_PTR
    - mrb_intern_lit
    - RSTRING_LEN
    - mrb_respond_to
    - mrb_obj_ptr
    - mrb_string_p
    - mrb_nil_p
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void prepare_subreq_entity(h2o_req_t *subreq, h2o_mruby_context_t *ctx,
      mrb_value rack_input)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/h2o/lib/handler/mruby/middleware.c:337,1
    - Dst: sscanf
      Src: /src/h2o/lib/handler/mruby/middleware.c:339,1
    - Dst: htons
      Src: /src/h2o/lib/handler/mruby/middleware.c:342,1
    - Dst: ntohl
      Src: /src/h2o/lib/handler/mruby/middleware.c:343,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby/middleware.c:352,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/middleware.c:353,1
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/mruby/middleware.c:355,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/middleware.c:356,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/middleware.c:359,1
    - Dst: getaddrinfo
      Src: /src/h2o/lib/handler/mruby/middleware.c:364,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/middleware.c:371,1
    - Dst: freeaddrinfo
      Src: /src/h2o/lib/handler/mruby/middleware.c:378,1
    - Dst: freeaddrinfo
      Src: /src/h2o/lib/handler/mruby/middleware.c:383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - pool
    - host
    - port
    - ss
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t
    - h2o_iovec_t
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 385
    functionName: parse_hostport
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 7
    functionsReached:
    - htons
    - ntohl
    - h2o_mem_alloc_pool
    - freeaddrinfo
    - getaddrinfo
    - memcpy
    - sscanf
    - memset
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t parse_hostport(h2o_mem_pool_t *pool, h2o_iovec_t host, h2o_iovec_t
      port, struct sockaddr_storage *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby/middleware.c:391,1
    - Dst: parse_hostport
      Src: /src/h2o/lib/handler/mruby/middleware.c:392,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/middleware.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: get_sockname
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 3
    functionsReached:
    - memcpy
    - parse_hostport
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_sockname(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRUCT_FROM_MEMBER
      Src: /src/h2o/lib/handler/mruby/middleware.c:403,1
    - Dst: parse_hostport
      Src: /src/h2o/lib/handler/mruby/middleware.c:404,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/mruby/middleware.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - _conn
    - sa
    argTypes:
    - h2o_conn_t*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: get_peername
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 4
    functionsReached:
    - memcpy
    - parse_hostport
    - H2O_STRUCT_FROM_MEMBER
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t get_peername(h2o_conn_t *_conn, struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: log_state
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: ptls_log_conn_state_t
    signature: ptls_log_conn_state_t *log_state(h2o_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: get_req_id
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_req_id(h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_env_key_to_header_name
      Src: /src/h2o/lib/handler/mruby/middleware.c:426,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:430,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - shared_ctx
    - raw_key
    - value
    - _req
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: handle_header_raw_key
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - convert_env_key_to_header_name
    - h2o_strdup
    linkageType: ''
    returnType: int
    signature: int handle_header_raw_key(h2o_mruby_shared_context_t *shared_ctx, h2o_iovec_t
      *raw_key, h2o_iovec_t value, void *_req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: convert_env_key_to_header_name
      Src: /src/h2o/lib/handler/mruby/middleware.c:441,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/handler/mruby/middleware.c:445,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:451,1
    - Dst: h2o_add_header
      Src: /src/h2o/lib/handler/mruby/middleware.c:452,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:455,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - shared_ctx
    - env_key
    - value
    - _req
    argTypes:
    - h2o_mruby_shared_context_t*
    - h2o_iovec_t*
    - h2o_iovec_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 460
    functionName: handle_header_env_key
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_add_header_by_str
    - h2o_strdup
    - h2o_lookup_token
    - convert_env_key_to_header_name
    - h2o_add_header
    linkageType: ''
    returnType: int
    signature: int handle_header_env_key(h2o_mruby_shared_context_t *shared_ctx, h2o_iovec_t
      *env_key, h2o_iovec_t value, void *_req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:469,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:469,1
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/mruby/middleware.c:471,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:472,1
    - Dst: mrb_funcall
      Src: /src/h2o/lib/handler/mruby/middleware.c:473,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/mruby/middleware.c:475,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:475,1
    - Dst: mrb_inspect
      Src: /src/h2o/lib/handler/mruby/middleware.c:475,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - prefix
    - msg
    argTypes:
    - void*
    - h2o_iovec_t
    - h2o_iovec_t
    assertStmts:
    - condition: (!mrb_nil_p(subreq->error_stream))
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 478
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 478
    functionName: on_subreq_error_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - h2o_error_printf
    - mrb_funcall
    - mrb_inspect
    - h2o_concat
    - RSTRING_PTR
    - mrb_obj_value
    - mrb_nil_p
    - assert
    linkageType: ''
    returnType: void
    signature: void on_subreq_error_callback(void *data, h2o_iovec_t prefix, h2o_iovec_t
      msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mruby/middleware.c:489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 500
    functionName: parse_protocol_version
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int parse_protocol_version(const char *s, size_t len)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_to_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:528,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:554,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:555,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:557,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:558,1
    - Dst: RETRIEVE_ENV_NUM
      Src: /src/h2o/lib/handler/mruby/middleware.c:559,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:560,1
    - Dst: mrb_fixnum
      Src: /src/h2o/lib/handler/mruby/middleware.c:561,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:562,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:563,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:564,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:565,1
    - Dst: h2o_mruby_iterate_header_values
      Src: /src/h2o/lib/handler/mruby/middleware.c:566,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:567,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:568,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:569,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:570,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:571,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:572,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:573,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:574,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:575,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:576,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:577,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:578,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:579,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:580,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:581,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:582,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:583,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:584,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:585,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:586,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:587,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:588,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:589,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:590,1
    - Dst: RETRIEVE_ENV_NUM
      Src: /src/h2o/lib/handler/mruby/middleware.c:591,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:592,1
    - Dst: RETRIEVE_ENV_NUM
      Src: /src/h2o/lib/handler/mruby/middleware.c:593,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:594,1
    - Dst: RETRIEVE_ENV_OBJ
      Src: /src/h2o/lib/handler/mruby/middleware.c:595,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:596,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:597,1
    - Dst: RETRIEVE_ENV_OBJ
      Src: /src/h2o/lib/handler/mruby/middleware.c:598,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:599,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:600,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:601,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:602,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:603,1
    - Dst: CHECK_KEY
      Src: /src/h2o/lib/handler/mruby/middleware.c:604,1
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mruby/middleware.c:605,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:606,1
    - Dst: h2o_mruby_iterate_header_values
      Src: /src/h2o/lib/handler/mruby/middleware.c:607,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:611,1
    - Dst: RETRIEVE_ENV_STR
      Src: /src/h2o/lib/handler/mruby/middleware.c:612,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:613,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/mruby/middleware.c:614,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:616,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:618,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:618,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:618,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 4
    argNames:
    - mrb
    - key
    - value
    - _data
    argTypes:
    - mrb_state*
    - mrb_value
    - mrb_value
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 634
    functionName: retrieve_env
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - RETRIEVE_ENV_NUM
    - RETRIEVE_ENV_OBJ
    - h2o_strdup
    - memcmp
    - RSTRING_PTR
    - RSTRING_LEN
    - h2o_mruby_iterate_header_values
    - h2o_mruby_to_str
    - mrb_fixnum
    - mrb_nil_value
    - h2o_vector_reserve
    - CHECK_KEY
    - mrb_nil_p
    - RETRIEVE_ENV_STR
    linkageType: ''
    returnType: int
    signature: int retrieve_env(mrb_state *mrb, mrb_value key, mrb_value value, void
      *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - stringify
    - ','
    - numify
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 544
    functionName: RETRIEVE_ENV
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETRIEVE_ENV(val, stringify, numify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: RETRIEVE_ENV_OBJ
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETRIEVE_ENV_OBJ(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: RETRIEVE_ENV_STR
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETRIEVE_ENV_STR(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: RETRIEVE_ENV_NUM
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETRIEVE_ENV_NUM(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - lit
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 549
    functionName: COND0
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND0(str, lit, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - lit
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: COND1
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND1(str, lit, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - lit
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 551
    functionName: COND2
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND2(str, lit, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: COND
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND(str, lit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: CHECK_KEY
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_KEY(lit)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mrb_gc_arena_save
      Src: /src/h2o/lib/handler/mruby/middleware.c:646,1
    - Dst: mrb_gc_protect
      Src: /src/h2o/lib/handler/mruby/middleware.c:647,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/mruby/middleware.c:650,1
    - Dst: memset
      Src: /src/h2o/lib/handler/mruby/middleware.c:651,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:653,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:654,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:655,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:656,1
    - Dst: h2o_init_request
      Src: /src/h2o/lib/handler/mruby/middleware.c:665,1
    - Dst: h2o_add_ostream
      Src: /src/h2o/lib/handler/mruby/middleware.c:666,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/mruby/middleware.c:666,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:676,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:677,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:678,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:679,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:680,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:681,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:682,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:683,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:684,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:685,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:686,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:687,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:688,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:689,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:690,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:691,1
    - Dst: mrb_hash_foreach
      Src: /src/h2o/lib/handler/mruby/middleware.c:695,1
    - Dst: mrb_hash_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:695,1
    - Dst: CHECK_REQUIRED
      Src: /src/h2o/lib/handler/mruby/middleware.c:710,1
    - Dst: CHECK_REQUIRED
      Src: /src/h2o/lib/handler/mruby/middleware.c:711,1
    - Dst: CHECK_REQUIRED
      Src: /src/h2o/lib/handler/mruby/middleware.c:712,1
    - Dst: CHECK_REQUIRED
      Src: /src/h2o/lib/handler/mruby/middleware.c:713,1
    - Dst: CHECK_REQUIRED
      Src: /src/h2o/lib/handler/mruby/middleware.c:714,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:717,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:717,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:718,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:718,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:721,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:721,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:722,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:722,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:725,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:725,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:725,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:726,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:726,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:734,1
    - Dst: memcmp
      Src: /src/h2o/lib/handler/mruby/middleware.c:735,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:735,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:736,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:736,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:747,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:748,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/middleware.c:748,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:749,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:750,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:752,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:753,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/middleware.c:753,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:754,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:756,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:757,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:758,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:759,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/mruby/middleware.c:759,1
    - Dst: STR_TO_IOVEC
      Src: /src/h2o/lib/handler/mruby/middleware.c:760,1
    - Dst: h2o_concat_list
      Src: /src/h2o/lib/handler/mruby/middleware.c:762,1
    - Dst: h2o_url_parse
      Src: /src/h2o/lib/handler/mruby/middleware.c:764,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:766,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:766,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:772,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:772,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:772,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:773,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:774,1
    - Dst: h2o_req_setup
      Src: /src/h2o/lib/handler/mruby/middleware.c:775,1
    - Dst: parse_protocol_version
      Src: /src/h2o/lib/handler/mruby/middleware.c:779,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:779,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:779,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:781,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:781,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:783,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:783,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:783,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:785,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:785,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:785,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:788,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:788,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:790,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:790,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:790,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/mruby/middleware.c:792,1
    - Dst: RSTRING_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:792,1
    - Dst: RSTRING_LEN
      Src: /src/h2o/lib/handler/mruby/middleware.c:792,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:795,1
    - Dst: mrb_fixnum
      Src: /src/h2o/lib/handler/mruby/middleware.c:796,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:799,1
    - Dst: mrb_fixnum
      Src: /src/h2o/lib/handler/mruby/middleware.c:800,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:804,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/middleware.c:806,1
    - Dst: prepare_subreq_entity
      Src: /src/h2o/lib/handler/mruby/middleware.c:811,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:818,1
    - Dst: dispose_subreq
      Src: /src/h2o/lib/handler/mruby/middleware.c:819,1
    - Dst: mrb_gc_arena_restore
      Src: /src/h2o/lib/handler/mruby/middleware.c:820,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 109
    argCount: 3
    argNames:
    - ctx
    - env
    - is_reprocess
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - int
    assertStmts:
    - condition: (mrb->exc != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 823
      start: 636
    functionDepth: 6
    functionLinenumber: 636
    functionLinenumberEnd: 823
    functionName: create_subreq
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - STR_TO_IOVEC
    - mrb_gc_arena_save
    - CHECK_REQUIRED
    - mrb_hash_foreach
    - mrb_nil_p
    - assert
    - mrb_gc_register
    - mrb_exc_new_lit
    - h2o_iovec_init
    - mrb_gc_protect
    - h2o_req_setup
    - H2O_STRLIT
    - h2o_strdup
    - RSTRING_PTR
    - mrb_gc_arena_restore
    - h2o_buffer_init
    - h2o_concat_list
    - mrb_hash_ptr
    - prepare_subreq_entity
    - memset
    - h2o_add_ostream
    - H2O_ALIGNOF
    - dispose_subreq
    - memcmp
    - h2o_mem_alloc
    - mrb_fixnum
    - mrb_nil_value
    - RSTRING_LEN
    - mrb_obj_ptr
    - h2o_init_request
    - parse_protocol_version
    - h2o_url_parse
    linkageType: ''
    returnType: struct st_mruby_subreq_t
    signature: struct st_mruby_subreq_t *create_subreq(h2o_mruby_context_t *ctx, mrb_value
      env, int is_reprocess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - k
    - ','
    - v
    - ','
    - non_empty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 710
    functionName: CHECK_REQUIRED
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_REQUIRED(k, v, non_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 743
    functionName: STR_TO_IOVEC
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_TO_IOVEC(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:831,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/middleware.c:831,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:833,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/middleware.c:837,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 825
    functionDepth: 5
    functionLinenumber: 825
    functionLinenumberEnd: 839
    functionName: middleware_wait_response_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - mrb_data_check_get_ptr
    - mrb_nil_value
    - mrb_gc_register
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value middleware_wait_response_callback(h2o_mruby_context_t *mctx,
      mrb_value input, mrb_value *receiver, mrb_value args,\n                                                   int
      *run_again)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:843,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby/middleware.c:845,1
    - Dst: mrb_bool_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 847
    functionName: can_build_response_method
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - mrb_bool_value
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value can_build_response_method(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:851,1
    - Dst: mrb_raise
      Src: /src/h2o/lib/handler/mruby/middleware.c:853,1
    - Dst: build_app_response
      Src: /src/h2o/lib/handler/mruby/middleware.c:855,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/middleware.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 849
    functionDepth: 11
    functionLinenumber: 849
    functionLinenumberEnd: 858
    functionName: build_response_method
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_raise
    - build_app_response
    - mrb_ary_entry
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value build_response_method(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:864,1
    - Dst: mrb_get_args
      Src: /src/h2o/lib/handler/mruby/middleware.c:868,1
    - Dst: mrb_iv_get
      Src: /src/h2o/lib/handler/mruby/middleware.c:869,1
    - Dst: mrb_intern_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:869,1
    - Dst: create_subreq
      Src: /src/h2o/lib/handler/mruby/middleware.c:872,1
    - Dst: mrb_bool
      Src: /src/h2o/lib/handler/mruby/middleware.c:872,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:874,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby/middleware.c:876,1
    - Dst: h2o_mruby_create_data_instance
      Src: /src/h2o/lib/handler/mruby/middleware.c:879,1
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/middleware.c:879,1
    - Dst: mrb_bool
      Src: /src/h2o/lib/handler/mruby/middleware.c:883,1
    - Dst: h2o_req_resolve_internal_redirect_url
      Src: /src/h2o/lib/handler/mruby/middleware.c:885,1
    - Dst: mrb_exc_raise
      Src: /src/h2o/lib/handler/mruby/middleware.c:886,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:886,1
    - Dst: h2o_reprocess_request_deferred
      Src: /src/h2o/lib/handler/mruby/middleware.c:887,1
    - Dst: h2o_delegate_request_deferred
      Src: /src/h2o/lib/handler/mruby/middleware.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 894
      start: 860
    functionDepth: 9
    functionLinenumber: 860
    functionLinenumberEnd: 894
    functionName: middleware_request_method
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_ary_entry
    - mrb_exc_raise
    - mrb_get_args
    - mrb_intern_lit
    - create_subreq
    - mrb_iv_get
    - mrb_bool
    - h2o_req_resolve_internal_redirect_url
    - h2o_delegate_request_deferred
    - mrb_obj_value
    - h2o_reprocess_request_deferred
    - assert
    - h2o_mruby_create_data_instance
    - mrb_exc_new_lit
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value middleware_request_method(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mrb_ary_entry
      Src: /src/h2o/lib/handler/mruby/middleware.c:902,1
    - Dst: DATA_PTR
      Src: /src/h2o/lib/handler/mruby/middleware.c:903,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:904,1
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:905,1
    - Dst: mrb_exc_new_lit
      Src: /src/h2o/lib/handler/mruby/middleware.c:906,1
    - Dst: h2o_mruby_new_str
      Src: /src/h2o/lib/handler/mruby/middleware.c:911,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/mruby/middleware.c:912,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:916,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:918,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:918,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/middleware.c:920,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - mctx
    - input
    - receiver
    - args
    - run_again
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    - mrb_value*
    - mrb_value
    - int*
    assertStmts:
    - condition: (mrb_nil_p(subreq->receiver))
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 923
      start: 896
    functionDepth: 5
    functionLinenumber: 896
    functionLinenumberEnd: 923
    functionName: middleware_wait_chunk_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_new_str
    - mrb_exc_new_lit
    - mrb_ary_entry
    - DATA_PTR
    - mrb_nil_p
    - h2o_buffer_consume
    - mrb_nil_value
    - assert
    - mrb_gc_register
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: mrb_value
    signature: "mrb_value middleware_wait_chunk_callback(h2o_mruby_context_t *mctx,
      mrb_value input, mrb_value *receiver, mrb_value args,\n                                                int
      *run_again)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_eval_expr
      Src: /src/h2o/lib/handler/mruby/middleware.c:929,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:930,1
    - Dst: mrb_define_module
      Src: /src/h2o/lib/handler/mruby/middleware.c:932,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/middleware.c:934,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/middleware.c:935,1
    - Dst: MRB_ARGS_ARG
      Src: /src/h2o/lib/handler/mruby/middleware.c:935,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/middleware.c:937,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:938,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:938,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/middleware.c:939,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/middleware.c:940,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/middleware.c:940,1
    - Dst: mrb_define_method
      Src: /src/h2o/lib/handler/mruby/middleware.c:941,1
    - Dst: MRB_ARGS_NONE
      Src: /src/h2o/lib/handler/mruby/middleware.c:941,1
    - Dst: mrb_class_get_under
      Src: /src/h2o/lib/handler/mruby/middleware.c:943,1
    - Dst: mrb_ary_set
      Src: /src/h2o/lib/handler/mruby/middleware.c:944,1
    - Dst: mrb_obj_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:944,1
    - Dst: h2o_mruby_define_callback
      Src: /src/h2o/lib/handler/mruby/middleware.c:945,1
    - Dst: h2o_mruby_assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - shared_ctx
    argTypes:
    - h2o_mruby_shared_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 925
    functionDepth: 11
    functionLinenumber: 925
    functionLinenumberEnd: 948
    functionName: h2o_mruby_middleware_init_context
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached:
    - mrb_define_method
    - mrb_ary_set
    - MRB_ARGS_ARG
    - h2o_mruby_assert
    - mrb_define_module
    - MRB_ARGS_NONE
    - mrb_class_get_under
    - mrb_obj_value
    - h2o_mruby_eval_expr
    - h2o_mruby_define_callback
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_middleware_init_context(h2o_mruby_shared_context_t *shared_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_prepare_empty
      Src: /src/h2o/lib/handler/mruby/middleware.c:956,1
    - Dst: h2o_send
      Src: /src/h2o/lib/handler/mruby/middleware.c:957,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/middleware.c:959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 950
    functionDepth: 5
    functionLinenumber: 950
    functionLinenumberEnd: 962
    functionName: do_sender_start
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_send
    - h2o_mruby_sender_do_send_buffer
    - h2o_doublebuffer_prepare_empty
    linkageType: ''
    returnType: void
    signature: void do_sender_start(h2o_mruby_generator_t *generator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_consume
      Src: /src/h2o/lib/handler/mruby/middleware.c:974,1
    - Dst: h2o_mruby_sender_do_send_buffer
      Src: /src/h2o/lib/handler/mruby/middleware.c:977,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/mruby/middleware.c:982,1
    - Dst: h2o_proceed_response
      Src: /src/h2o/lib/handler/mruby/middleware.c:988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - _generator
    - req
    argTypes:
    - h2o_generator_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 964
    functionDepth: 5
    functionLinenumber: 964
    functionLinenumberEnd: 989
    functionName: do_sender_proceed
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - h2o_doublebuffer_consume
    - h2o_mruby_sender_do_send_buffer
    - h2o_proceed_response
    - h2o_buffer_dispose
    linkageType: ''
    returnType: void
    signature: void do_sender_proceed(h2o_generator_t *_generator, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_doublebuffer_dispose
      Src: /src/h2o/lib/handler/mruby/middleware.c:995,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:998,1
    - Dst: mrb_nil_p
      Src: /src/h2o/lib/handler/mruby/middleware.c:998,1
    - Dst: mrb_gc_unregister
      Src: /src/h2o/lib/handler/mruby/middleware.c:999,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:1003,1
    - Dst: dispose_subreq
      Src: /src/h2o/lib/handler/mruby/middleware.c:1006,1
    - Dst: h2o_mruby_sender_close_body
      Src: /src/h2o/lib/handler/mruby/middleware.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - generator
    argTypes:
    - h2o_mruby_generator_t*
    assertStmts:
    - condition: (sender->subreq->shortcut.body == generator)
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - condition: (!mrb_nil_p(sender->subreq->refs.request))
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 1010
      start: 991
    functionDepth: 11
    functionLinenumber: 991
    functionLinenumberEnd: 1010
    functionName: do_sender_dispose
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - mrb_gc_unregister
    - dispose_subreq
    - h2o_mruby_sender_close_body
    - h2o_doublebuffer_dispose
    - mrb_nil_p
    - assert
    linkageType: ''
    returnType: void
    signature: void do_sender_dispose(h2o_mruby_generator_t *generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_sender_create
      Src: /src/h2o/lib/handler/mruby/middleware.c:1015,1
    - Dst: H2O_ALIGNOF
      Src: /src/h2o/lib/handler/mruby/middleware.c:1015,1
    - Dst: h2o_doublebuffer_init
      Src: /src/h2o/lib/handler/mruby/middleware.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - generator
    - subreq
    - body
    argTypes:
    - h2o_mruby_generator_t*
    - struct st_mruby_subreq_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1012
    functionDepth: 6
    functionLinenumber: 1012
    functionLinenumberEnd: 1027
    functionName: create_sender
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - H2O_ALIGNOF
    - h2o_doublebuffer_init
    - h2o_mruby_sender_create
    linkageType: ''
    returnType: h2o_mruby_sender_t
    signature: h2o_mruby_sender_t *create_sender(h2o_mruby_generator_t *generator,
      struct st_mruby_subreq_t *subreq, mrb_value body)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:1034,1
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:1036,1
    - Dst: create_sender
      Src: /src/h2o/lib/handler/mruby/middleware.c:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - generator
    - body
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_value
    assertStmts:
    - condition: (mrb->exc == NULL)
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 1040
      start: 1029
    functionDepth: 7
    functionLinenumber: 1029
    functionLinenumberEnd: 1040
    functionName: h2o_mruby_middleware_sender_create
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 0
    functionsReached:
    - create_sender
    - assert
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: h2o_mruby_sender_t
    signature: h2o_mruby_sender_t *h2o_mruby_middleware_sender_create(h2o_mruby_generator_t
      *generator, mrb_value body)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:1045,1
    - Dst: h2o_mruby_set_response_header
      Src: /src/h2o/lib/handler/mruby/middleware.c:1057,1
    - Dst: h2o_find_header
      Src: /src/h2o/lib/handler/mruby/middleware.c:1060,1
    - Dst: h2o_resp_add_date_header
      Src: /src/h2o/lib/handler/mruby/middleware.c:1061,1
    - Dst: create_sender
      Src: /src/h2o/lib/handler/mruby/middleware.c:1064,1
    - Dst: mrb_nil_value
      Src: /src/h2o/lib/handler/mruby/middleware.c:1064,1
    - Dst: h2o_start_response
      Src: /src/h2o/lib/handler/mruby/middleware.c:1069,1
    - Dst: h2o_mruby_generator_t*::sender::start
      Src: /src/h2o/lib/handler/mruby/middleware.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - subreq
    argTypes:
    - struct st_mruby_subreq_t*
    assertStmts:
    - condition: (generator != NULL)
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 1071
      start: 1042
    functionDepth: 7
    functionLinenumber: 1042
    functionLinenumberEnd: 1071
    functionName: send_response_shortcutted
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached:
    - h2o_mruby_set_response_header
    - h2o_start_response
    - h2o_resp_add_date_header
    - h2o_mruby_generator_t*::sender::start
    - create_sender
    - h2o_find_header
    - mrb_nil_value
    - assert
    linkageType: ''
    returnType: void
    signature: void send_response_shortcutted(struct st_mruby_subreq_t *subreq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:1075,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:1076,1
    - Dst: assert
      Src: /src/h2o/lib/handler/mruby/middleware.c:1077,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:1077,1
    - Dst: mrb_obj_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:1077,1
    - Dst: mrb_gc_register
      Src: /src/h2o/lib/handler/mruby/middleware.c:1080,1
    - Dst: send_response_shortcutted
      Src: /src/h2o/lib/handler/mruby/middleware.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - generator
    - status
    - resp
    - is_delegate
    argTypes:
    - h2o_mruby_generator_t*
    - mrb_int
    - mrb_value
    - int*
    assertStmts:
    - condition: (subreq != NULL)
      pos:
        line_end: 1075
        line_start: 1075
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - condition: (mrb_obj_ptr(subreq->refs.request) == mrb_obj_ptr(resp))
      pos:
        line_end: 1076
        line_start: 1076
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    constantsTouched: []
    func_position:
      end: 1088
      start: 1073
    functionDepth: 8
    functionLinenumber: 1073
    functionLinenumberEnd: 1088
    functionName: send_response_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached:
    - mrb_obj_ptr
    - send_response_shortcutted
    - assert
    - mrb_gc_register
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: int
    signature: int send_response_callback(h2o_mruby_generator_t *generator, mrb_int
      status, mrb_value resp, int *is_delegate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_data_check_get_ptr
      Src: /src/h2o/lib/handler/mruby/middleware.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - resp
    argTypes:
    - h2o_mruby_context_t*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1097
    functionName: h2o_mruby_middleware_get_send_response_callback
    functionSourceFile: /src/h2o/lib/handler/mruby/middleware.c
    functionUses: 1
    functionsReached:
    - mrb_data_check_get_ptr
    linkageType: ''
    returnType: h2o_mruby_send_response_callback_t
    signature: h2o_mruby_send_response_callback_t h2o_mruby_middleware_get_send_response_callback(h2o_mruby_context_t
      *ctx, mrb_value resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/compress/gzip.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _unused
    - cnt
    - sz
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: alloc_cb
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    linkageType: ''
    returnType: void
    signature: void *alloc_cb(void *_unused, unsigned int cnt, unsigned int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/compress/gzip.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _unused
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: free_cb
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_cb(void *_unused, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/compress/gzip.c:56,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/handler/compress/gzip.c:57,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/compress/gzip.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_gzip_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: expand_buf
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_vector_reserve
    - h2o_sendvec_init_raw
    linkageType: ''
    returnType: void
    signature: void expand_buf(struct st_gzip_context_t *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expand_buf
      Src: /src/h2o/lib/handler/compress/gzip.c:77,1
    - Dst: proc
      Src: /src/h2o/lib/handler/compress/gzip.c:82,1
    - Dst: assert
      Src: /src/h2o/lib/handler/compress/gzip.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - self
    - src
    - len
    - flush
    - bufindex
    - proc
    argTypes:
    - struct st_gzip_context_t*
    - void*
    - size_t
    - int
    - size_t
    - processor
    assertStmts:
    - condition: (ret == Z_OK || ret == Z_STREAM_END || ret == Z_BUF_ERROR)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/h2o/lib/handler/compress/gzip.c
    constantsTouched: []
    func_position:
      end: 89
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 89
    functionName: process_chunk
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - proc
    - assert
    - expand_buf
    linkageType: ''
    returnType: size_t
    signature: size_t process_chunk(struct st_gzip_context_t *self, const void *src,
      size_t len, int flush, size_t bufindex, processor proc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/compress/gzip.c:104,1
    - Dst: process_chunk
      Src: /src/h2o/lib/handler/compress/gzip.c:105,1
    - Dst: assert
      Src: /src/h2o/lib/handler/compress/gzip.c:107,1
    - Dst: process_chunk
      Src: /src/h2o/lib/handler/compress/gzip.c:113,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress/gzip.c:113,1
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress/gzip.c:119,1
    - Dst: deflateEnd
      Src: /src/h2o/lib/handler/compress/gzip.c:121,1
    - Dst: inflateEnd
      Src: /src/h2o/lib/handler/compress/gzip.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 7
    argNames:
    - _self
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    - proc
    argTypes:
    - h2o_compress_context_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    - processor
    assertStmts:
    - condition: (inbufs[i].callbacks->read_ == h2o_sendvec_read_raw)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/h2o/lib/handler/compress/gzip.c
    - condition: (inbufs[i].callbacks->read_ == h2o_sendvec_read_raw)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/lib/handler/compress/gzip.c
    constantsTouched: []
    func_position:
      end: 129
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 129
    functionName: do_process
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - assert
    - process_chunk
    - h2o_send_state_is_in_progress
    - inflateEnd
    - deflateEnd
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t do_process(h2o_compress_context_t *_self, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state,\n                                   h2o_sendvec_t
      **outbufs, size_t *outbufcnt, processor proc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_process
      Src: /src/h2o/lib/handler/compress/gzip.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - _self
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    argTypes:
    - h2o_compress_context_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: do_compress
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - do_process
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t do_compress(h2o_compress_context_t *_self, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state,\n                                    h2o_sendvec_t
      **outbufs, size_t *outbufcnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_process
      Src: /src/h2o/lib/handler/compress/gzip.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - _self
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    argTypes:
    - h2o_compress_context_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: do_decompress
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 0
    functionsReached:
    - do_process
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t do_decompress(h2o_compress_context_t *_self, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state,\n                                      h2o_sendvec_t
      **outbufs, size_t *outbufcnt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/h2o/lib/handler/compress/gzip.c:150,1
    - Dst: inflateEnd
      Src: /src/h2o/lib/handler/compress/gzip.c:152,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/gzip.c:157,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/gzip.c:158,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/gzip.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: do_free
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 3
    functionsReached:
    - free
    - inflateEnd
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void do_free(void *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/compress/gzip.c:164,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress/gzip.c:166,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress/gzip.c:166,1
    - Dst: memset
      Src: /src/h2o/lib/handler/compress/gzip.c:173,1
    - Dst: expand_buf
      Src: /src/h2o/lib/handler/compress/gzip.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: gzip_open
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 3
    functionsReached:
    - H2O_STRLIT
    - h2o_mem_alloc_shared
    - expand_buf
    - memset
    - h2o_iovec_init
    linkageType: ''
    returnType: struct st_gzip_context_t
    signature: struct st_gzip_context_t *gzip_open(h2o_mem_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_open
      Src: /src/h2o/lib/handler/compress/gzip.c:181,1
    - Dst: deflateInit2
      Src: /src/h2o/lib/handler/compress/gzip.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - quality
    argTypes:
    - h2o_mem_pool_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: h2o_compress_gzip_open
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 3
    functionsReached:
    - gzip_open
    - deflateInit2
    linkageType: ''
    returnType: h2o_compress_context_t
    signature: h2o_compress_context_t *h2o_compress_gzip_open(h2o_mem_pool_t *pool,
      int quality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_open
      Src: /src/h2o/lib/handler/compress/gzip.c:191,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress/gzip.c:192,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress/gzip.c:192,1
    - Dst: inflateInit2
      Src: /src/h2o/lib/handler/compress/gzip.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - h2o_mem_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: h2o_compress_gunzip_open
    functionSourceFile: /src/h2o/lib/handler/compress/gzip.c
    functionUses: 1
    functionsReached:
    - gzip_open
    - H2O_STRLIT
    - inflateInit2
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_compress_context_t
    signature: h2o_compress_context_t *h2o_compress_gunzip_open(h2o_mem_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/compress/brotli.c:36,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/handler/compress/brotli.c:37,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/compress/brotli.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_brotli_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: expand_buf
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 2
    functionsReached:
    - h2o_mem_alloc
    - h2o_vector_reserve
    - h2o_sendvec_init_raw
    linkageType: ''
    returnType: void
    signature: void expand_buf(struct st_brotli_context_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/compress/brotli.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - new_size
    argTypes:
    - struct st_brotli_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: shrink_buf
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void shrink_buf(struct st_brotli_context_t *self, size_t new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expand_buf
      Src: /src/h2o/lib/handler/compress/brotli.c:51,1
    - Dst: BrotliEncoderCompressStream
      Src: /src/h2o/lib/handler/compress/brotli.c:57,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/compress/brotli.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - op
    - src
    - srclen
    argTypes:
    - struct st_brotli_context_t*
    - BrotliEncoderOperation
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: compress_core
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 0
    functionsReached:
    - BrotliEncoderCompressStream
    - h2o_fatal
    - expand_buf
    linkageType: ''
    returnType: void
    signature: void compress_core(struct st_brotli_context_t *self, BrotliEncoderOperation
      op, const uint8_t **src, size_t *srclen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress/brotli.c:67,1
    - Dst: shrink_buf
      Src: /src/h2o/lib/handler/compress/brotli.c:71,1
    - Dst: assert
      Src: /src/h2o/lib/handler/compress/brotli.c:77,1
    - Dst: compress_core
      Src: /src/h2o/lib/handler/compress/brotli.c:82,1
    - Dst: compress_core
      Src: /src/h2o/lib/handler/compress/brotli.c:87,1
    - Dst: BrotliEncoderHasMoreOutput
      Src: /src/h2o/lib/handler/compress/brotli.c:91,1
    - Dst: compress_core
      Src: /src/h2o/lib/handler/compress/brotli.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - _self
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    argTypes:
    - h2o_compress_context_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    assertStmts:
    - condition: (inbufs[i].callbacks->read_ == h2o_sendvec_read_raw)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/lib/handler/compress/brotli.c
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: compress_
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 0
    functionsReached:
    - shrink_buf
    - BrotliEncoderHasMoreOutput
    - h2o_send_state_is_in_progress
    - compress_core
    - assert
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t compress_(h2o_compress_context_t *_self, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state,\n                                  h2o_sendvec_t
      **outbufs, size_t *outbufcnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BrotliEncoderDestroyInstance
      Src: /src/h2o/lib/handler/compress/brotli.c:107,1
    - Dst: shrink_buf
      Src: /src/h2o/lib/handler/compress/brotli.c:108,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/brotli.c:109,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/brotli.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: on_dispose
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 0
    functionsReached:
    - BrotliEncoderDestroyInstance
    - free
    - shrink_buf
    linkageType: ''
    returnType: void
    signature: void on_dispose(void *_self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/compress/brotli.c:116,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress/brotli.c:118,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress/brotli.c:118,1
    - Dst: BrotliEncoderCreateInstance
      Src: /src/h2o/lib/handler/compress/brotli.c:121,1
    - Dst: memset
      Src: /src/h2o/lib/handler/compress/brotli.c:122,1
    - Dst: expand_buf
      Src: /src/h2o/lib/handler/compress/brotli.c:130,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/h2o/lib/handler/compress/brotli.c:132,1
    - Dst: __builtin_clzll
      Src: /src/h2o/lib/handler/compress/brotli.c:135,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/h2o/lib/handler/compress/brotli.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pool
    - quality
    - estimated_content_length
    - preferred_chunk_size
    argTypes:
    - h2o_mem_pool_t*
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: h2o_compress_brotli_open
    functionSourceFile: /src/h2o/lib/handler/compress/brotli.c
    functionUses: 1
    functionsReached:
    - BrotliEncoderCreateInstance
    - H2O_STRLIT
    - BrotliEncoderSetParameter
    - __builtin_clzll
    - h2o_mem_alloc_shared
    - expand_buf
    - memset
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_compress_context_t
    signature: "h2o_compress_context_t *h2o_compress_brotli_open(h2o_mem_pool_t *pool,
      int quality, size_t estimated_content_length,\n                                                 size_t
      preferred_chunk_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/compress/zstd.c:42,1
    - Dst: h2o_sendvec_init_raw
      Src: /src/h2o/lib/handler/compress/zstd.c:43,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/compress/zstd.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct st_zstd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: acquire_buf
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - h2o_vector_reserve
    - h2o_sendvec_init_raw
    linkageType: ''
    returnType: size_t
    signature: size_t acquire_buf(struct st_zstd_context_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/compress/zstd.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - new_size
    argTypes:
    - struct st_zstd_context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: shrink_buf
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void shrink_buf(struct st_zstd_context_t *self, size_t new_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acquire_buf
      Src: /src/h2o/lib/handler/compress/zstd.c:62,1
    - Dst: ZSTD_compressStream2
      Src: /src/h2o/lib/handler/compress/zstd.c:69,1
    - Dst: ZSTD_isError
      Src: /src/h2o/lib/handler/compress/zstd.c:70,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/compress/zstd.c:71,1
    - Dst: ZSTD_getErrorName
      Src: /src/h2o/lib/handler/compress/zstd.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - self
    - src
    - len
    - directive
    argTypes:
    - struct st_zstd_context_t*
    - void*
    - size_t
    - ZSTD_EndDirective
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: compress_chunk
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    - ZSTD_isError
    - acquire_buf
    - ZSTD_compressStream2
    - ZSTD_getErrorName
    linkageType: ''
    returnType: int
    signature: int compress_chunk(struct st_zstd_context_t *self, const void *src,
      size_t len, ZSTD_EndDirective directive)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_send_state_is_in_progress
      Src: /src/h2o/lib/handler/compress/zstd.c:86,1
    - Dst: shrink_buf
      Src: /src/h2o/lib/handler/compress/zstd.c:88,1
    - Dst: assert
      Src: /src/h2o/lib/handler/compress/zstd.c:93,1
    - Dst: compress_chunk
      Src: /src/h2o/lib/handler/compress/zstd.c:95,1
    - Dst: compress_chunk
      Src: /src/h2o/lib/handler/compress/zstd.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - _self
    - inbufs
    - inbufcnt
    - state
    - outbufs
    - outbufcnt
    argTypes:
    - h2o_compress_context_t*
    - h2o_sendvec_t*
    - size_t
    - h2o_send_state_t
    - h2o_sendvec_t**
    - size_t*
    assertStmts:
    - condition: (inbufs[i].callbacks->read_ == h2o_sendvec_read_raw)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/h2o/lib/handler/compress/zstd.c
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: do_compress
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 0
    functionsReached:
    - compress_chunk
    - h2o_send_state_is_in_progress
    - assert
    - shrink_buf
    linkageType: ''
    returnType: h2o_send_state_t
    signature: "h2o_send_state_t do_compress(h2o_compress_context_t *_self, h2o_sendvec_t
      *inbufs, size_t inbufcnt, h2o_send_state_t state,\n                                    h2o_sendvec_t
      **outbufs, size_t *outbufcnt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeCStream
      Src: /src/h2o/lib/handler/compress/zstd.c:123,1
    - Dst: shrink_buf
      Src: /src/h2o/lib/handler/compress/zstd.c:124,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/zstd.c:125,1
    - Dst: free
      Src: /src/h2o/lib/handler/compress/zstd.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: on_dispose
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCStream
    - free
    - shrink_buf
    linkageType: ''
    returnType: void
    signature: void on_dispose(void *_self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_shared
      Src: /src/h2o/lib/handler/compress/zstd.c:132,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/compress/zstd.c:134,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/compress/zstd.c:134,1
    - Dst: ZSTD_createCStream
      Src: /src/h2o/lib/handler/compress/zstd.c:137,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/compress/zstd.c:139,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/h2o/lib/handler/compress/zstd.c:141,1
    - Dst: ZSTD_isError
      Src: /src/h2o/lib/handler/compress/zstd.c:142,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/compress/zstd.c:143,1
    - Dst: ZSTD_getErrorName
      Src: /src/h2o/lib/handler/compress/zstd.c:143,1
    - Dst: ZSTD_cParam_getBounds
      Src: /src/h2o/lib/handler/compress/zstd.c:150,1
    - Dst: __builtin_clzll
      Src: /src/h2o/lib/handler/compress/zstd.c:152,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/h2o/lib/handler/compress/zstd.c:156,1
    - Dst: ZSTD_isError
      Src: /src/h2o/lib/handler/compress/zstd.c:157,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/compress/zstd.c:158,1
    - Dst: ZSTD_getErrorName
      Src: /src/h2o/lib/handler/compress/zstd.c:158,1
    - Dst: memset
      Src: /src/h2o/lib/handler/compress/zstd.c:169,1
    - Dst: acquire_buf
      Src: /src/h2o/lib/handler/compress/zstd.c:170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - pool
    - quality
    - estimated_content_length
    - preferred_chunk_size
    argTypes:
    - h2o_mem_pool_t*
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 173
    functionName: h2o_compress_zstd_open
    functionSourceFile: /src/h2o/lib/handler/compress/zstd.c
    functionUses: 1
    functionsReached:
    - memset
    - ZSTD_cParam_getBounds
    - H2O_STRLIT
    - h2o_error_printf
    - ZSTD_isError
    - ZSTD_CCtx_setParameter
    - __builtin_clzll
    - ZSTD_createCStream
    - acquire_buf
    - h2o_mem_alloc_shared
    - ZSTD_getErrorName
    - h2o_fatal
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_compress_context_t
    signature: "h2o_compress_context_t *h2o_compress_zstd_open(h2o_mem_pool_t *pool,
      int quality, size_t estimated_content_length,\n                                               size_t
      preferred_chunk_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/templates.c.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: cmpstrptr
    functionSourceFile: /src/h2o/lib/handler/file/templates.c.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmpstrptr(const void *_x, const void *_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/templates.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/templates.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/templates.c.h:60,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/templates.c.h:60,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:62,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file/templates.c.h:63,1
    - Dst: qsort
      Src: /src/h2o/lib/handler/file/templates.c.h:66,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/templates.c.h:70,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/file/templates.c.h:72,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:75,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:75,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:78,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:80,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:87,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:89,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:93,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:93,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:96,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:98,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:105,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:107,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:111,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:111,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:114,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:116,1
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/handler/file/templates.c.h:122,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/file/templates.c.h:122,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/templates.c.h:123,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/templates.c.h:124,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/file/templates.c.h:124,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:126,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:126,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:129,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:131,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:138,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:140,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:144,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:144,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:147,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:149,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:156,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:158,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:162,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:162,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:165,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:167,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/file/templates.c.h:172,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/file/templates.c.h:172,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:175,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/file/templates.c.h:177,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/file/templates.c.h:183,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 107
    argCount: 3
    argNames:
    - pool
    - path_normalized
    - dp
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 185
    functionName: build_dir_listing_html
    functionSourceFile: /src/h2o/lib/handler/file/templates.c.h
    functionUses: 1
    functionsReached:
    - qsort
    - H2O_STRLIT
    - h2o_htmlescape
    - h2o_strdup
    - h2o_buffer_try_reserve
    - h2o_uri_escape
    - h2o_buffer_init
    - strcmp
    - h2o_buffer_dispose
    - memcpy
    - h2o_vector_reserve
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_buffer_t
    signature: h2o_buffer_t *build_dir_listing_html(h2o_mem_pool_t *pool, h2o_iovec_t
      path_normalized, DIR *dp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/templates.c.h:60,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/templates.c.h:60,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/file/templates.c.h:62,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file/templates.c.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/templates.c.h
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_strdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: void FOREACH_DIRENT(dp, dent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/_templates.c.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _x
    - _y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: cmpstrptr
    functionSourceFile: /src/h2o/lib/handler/file/_templates.c.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmpstrptr(const void *_x, const void *_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/_templates.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - dent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/_templates.c.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_DIRENT(dp, dent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/_templates.c.h:60,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/_templates.c.h:60,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/file/_templates.c.h:62,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file/_templates.c.h:63,1
    - Dst: qsort
      Src: /src/h2o/lib/handler/file/_templates.c.h:66,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/_templates.c.h:70,1
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/file/_templates.c.h:72,1
    - Dst: h2o_uri_escape
      Src: /src/h2o/lib/handler/file/_templates.c.h:82,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/file/_templates.c.h:82,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/_templates.c.h:83,1
    - Dst: h2o_htmlescape
      Src: /src/h2o/lib/handler/file/_templates.c.h:84,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/file/_templates.c.h:84,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/file/_templates.c.h:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - pool
    - path_normalized
    - dp
    argTypes:
    - h2o_mem_pool_t*
    - h2o_iovec_t
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 93
    functionName: build_dir_listing_html
    functionSourceFile: /src/h2o/lib/handler/file/_templates.c.h
    functionUses: 1
    functionsReached:
    - qsort
    - h2o_htmlescape
    - h2o_strdup
    - h2o_uri_escape
    - h2o_buffer_init
    - strcmp
    - h2o_buffer_dispose
    - h2o_vector_reserve
    - strlen
    linkageType: ''
    returnType: h2o_buffer_t
    signature: h2o_buffer_t *build_dir_listing_html(h2o_mem_pool_t *pool, h2o_iovec_t
      path_normalized, DIR* dp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/_templates.c.h:60,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/file/_templates.c.h:60,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/file/_templates.c.h:62,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/file/_templates.c.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: FOREACH_DIRENT
    functionSourceFile: /src/h2o/lib/handler/file/_templates.c.h
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - h2o_strdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: void FOREACH_DIRENT(dp, dent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mruby_compile_code
      Src: /src/h2o/lib/handler/configurator/mruby.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - config
    - errbuf
    argTypes:
    - mrb_state*
    - h2o_mruby_config_vars_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 17
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: compile_test
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_mruby_compile_code
    linkageType: ''
    returnType: int
    signature: int compile_test(mrb_state *mrb, h2o_mruby_config_vars_t *config, char
      *errbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mrb_open
      Src: /src/h2o/lib/handler/configurator/mruby.c:46,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/configurator/mruby.c:48,1
    - Dst: h2o_mruby_setup_globals
      Src: /src/h2o/lib/handler/configurator/mruby.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mruby_configurator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: get_mrb
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_open
    - h2o_fatal
    - h2o_mruby_setup_globals
    linkageType: ''
    returnType: mrb_state
    signature: mrb_state *get_mrb(struct mruby_configurator_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/mruby.c:60,1
    - Dst: compile_test
      Src: /src/h2o/lib/handler/configurator/mruby.c:66,1
    - Dst: get_mrb
      Src: /src/h2o/lib/handler/configurator/mruby.c:66,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/mruby.c:67,1
    - Dst: h2o_mruby_register
      Src: /src/h2o/lib/handler/configurator/mruby.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 18
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: on_config_mruby_handler
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - compile_test
    - h2o_strdup
    - h2o_mruby_register
    - get_mrb
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_mruby_handler(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/h2o/lib/handler/configurator/mruby.c:85,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/mruby.c:86,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/mruby.c:86,1
    - Dst: feof
      Src: /src/h2o/lib/handler/configurator/mruby.c:89,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/handler/configurator/mruby.c:90,1
    - Dst: fread
      Src: /src/h2o/lib/handler/configurator/mruby.c:91,1
    - Dst: ferror
      Src: /src/h2o/lib/handler/configurator/mruby.c:92,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/mruby.c:93,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/mruby.c:94,1
    - Dst: compile_test
      Src: /src/h2o/lib/handler/configurator/mruby.c:107,1
    - Dst: get_mrb
      Src: /src/h2o/lib/handler/configurator/mruby.c:107,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/mruby.c:108,1
    - Dst: h2o_mruby_register
      Src: /src/h2o/lib/handler/configurator/mruby.c:113,1
    - Dst: fclose
      Src: /src/h2o/lib/handler/configurator/mruby.c:119,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/mruby.c:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 77
    functionDepth: 18
    functionLinenumber: 77
    functionLinenumberEnd: 123
    functionName: on_config_mruby_handler_file
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - feof
    - compile_test
    - ferror
    - fread
    - h2o_mruby_register
    - free
    - h2o_mem_realloc
    - fopen
    - fclose
    - strerror
    - get_mrb
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_mruby_handler_file(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/mruby.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: on_config_mruby_handler_path
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_mruby_handler_path(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/handler/configurator/mruby.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/mruby.c:146,1
    - Dst: mrb_close
      Src: /src/h2o/lib/handler/configurator/mruby.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 0
    functionsReached:
    - free
    - mrb_close
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/mruby.c:161,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/mruby.c:167,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/mruby.c:170,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/mruby.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: h2o_mruby_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/mruby.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_mruby_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_file_register
      Src: /src/h2o/lib/handler/configurator/file.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: on_config_dir
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_file_register
    linkageType: ''
    returnType: int
    signature: int on_config_dir(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mimemap_get_type_by_extension
      Src: /src/h2o/lib/handler/configurator/file.c:48,1
    - Dst: h2o_get_filext
      Src: /src/h2o/lib/handler/configurator/file.c:48,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/file.c:48,1
    - Dst: h2o_file_register_file
      Src: /src/h2o/lib/handler/configurator/file.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: on_config_file
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_get_filext
    - strlen
    - h2o_mimemap_get_type_by_extension
    - h2o_file_register_file
    linkageType: ''
    returnType: int
    signature: int on_config_file(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/file.c:58,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/file.c:59,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/file.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: on_config_index
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - free
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_index(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/file.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: on_config_etag
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_etag(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/file.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: on_config_send_compressed
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_send_compressed(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/file.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: on_config_dir_listing
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_dir_listing(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/file.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: on_config_io_uring
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_io_uring(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/file.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: dup_strlist
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    linkageType: ''
    returnType: char
    signature: char **dup_strlist(const char **s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dup_strlist
      Src: /src/h2o/lib/handler/configurator/file.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - dup_strlist
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/file.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/file.c:182,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:189,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:192,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:195,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:199,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:203,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:207,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:211,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/file.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - globalconf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 219
    functionName: h2o_file_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/file.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_file_register_configurator(h2o_globalconf_t *globalconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/compress.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: on_config_gzip
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_gzip(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:57,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:61,1
    - Dst: sscanf
      Src: /src/h2o/lib/handler/configurator/compress.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - node
    - min_quality
    - max_quality
    - default_quality
    - slot
    argTypes:
    - yoml_t*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: obtain_quality
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int obtain_quality(yoml_t *node, int min_quality, int max_quality,
      int default_quality, int *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/compress.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: on_config_compress_min_size
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_compress_min_size(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:85,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:87,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/compress.c:90,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:98,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:100,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/compress.c:102,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/compress.c:105,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/compress.c:113,1
    - Dst: obtain_quality
      Src: /src/h2o/lib/handler/configurator/compress.c:115,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/compress.c:116,1
    - Dst: obtain_quality
      Src: /src/h2o/lib/handler/configurator/compress.c:120,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/compress.c:121,1
    - Dst: obtain_quality
      Src: /src/h2o/lib/handler/configurator/compress.c:125,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/compress.c:126,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/configurator/compress.c:132,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 137
    functionName: on_config_compress
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - strcasecmp
    - h2o_fatal
    - obtain_quality
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_compress(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/compress.c:152,1
    - Dst: h2o_compress_register
      Src: /src/h2o/lib/handler/configurator/compress.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 0
    functionsReached:
    - h2o_compress_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/compress.c:162,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/compress.c:166,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/compress.c:169,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/compress.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: h2o_compress_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/compress.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_compress_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/configurator/h2olog.c:28,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/h2olog.c:30,1
    - Dst: h2o_log_register
      Src: /src/h2o/lib/handler/configurator/h2olog.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: (node->type == YOML_TYPE_SCALAR)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/lib/handler/configurator/h2olog.c
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: on_config_h2olog
    functionSourceFile: /src/h2o/lib/handler/configurator/h2olog.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - assert
    - h2o_log_register
    linkageType: ''
    returnType: int
    signature: int on_config_h2olog(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/h2olog.c:48,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/h2olog.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: h2o_log_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/h2olog.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_log_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:40,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/expires.c:41,1
    - Dst: sscanf
      Src: /src/h2o/lib/handler/configurator/expires.c:43,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:45,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:45,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:47,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:47,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:49,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:49,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:51,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:51,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:53,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:53,1
    - Dst: strncasecmp
      Src: /src/h2o/lib/handler/configurator/expires.c:55,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/expires.c:55,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/expires.c:59,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/expires.c:64,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/expires.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 74
    functionName: on_config_expires
    functionSourceFile: /src/h2o/lib/handler/configurator/expires.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - free
    - strncasecmp
    - h2o_mem_alloc
    - sscanf
    - strcasecmp
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_expires(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/configurator/expires.c:82,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/expires.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: (self->args[0]->mode == H2O_EXPIRES_MODE_MAX_AGE)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/h2o/lib/handler/configurator/expires.c
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/expires.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/expires.c:98,1
    - Dst: h2o_expires_register
      Src: /src/h2o/lib/handler/configurator/expires.c:99,1
    - Dst: assert
      Src: /src/h2o/lib/handler/configurator/expires.c:101,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/expires.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: ((*self->args)->mode == H2O_EXPIRES_MODE_MAX_AGE)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/lib/handler/configurator/expires.c
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/expires.c
    functionUses: 0
    functionsReached:
    - free
    - assert
    - h2o_expires_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/expires.c:112,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/expires.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: h2o_expires_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/expires.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_expires_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_str_stripws
      Src: /src/h2o/lib/handler/configurator/headers_util.c:21,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/headers_util.c:25,1
    - Dst: h2o_strtolower
      Src: /src/h2o/lib/handler/configurator/headers_util.c:26,1
    - Dst: h2o_lookup_token
      Src: /src/h2o/lib/handler/configurator/headers_util.c:28,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/headers_util.c:30,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/headers_util.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - src
    - len
    - _name
    argTypes:
    - char*
    - size_t
    - h2o_iovec_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: extract_name
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_lookup_token
    - free
    - h2o_str_stripws
    - h2o_mem_alloc
    - h2o_strtolower
    linkageType: ''
    returnType: int
    signature: int extract_name(const char *src, size_t len, h2o_iovec_t **_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/h2o/lib/handler/configurator/headers_util.c:41,1
    - Dst: extract_name
      Src: /src/h2o/lib/handler/configurator/headers_util.c:46,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/lib/handler/configurator/headers_util.c:48,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/headers_util.c:48,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/headers_util.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src
    - name
    - value
    argTypes:
    - char*
    - h2o_iovec_t**
    - h2o_iovec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: extract_name_value
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - extract_name
    - h2o_strdup
    - h2o_str_stripws
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int extract_name_value(const char *src, h2o_iovec_t **name, h2o_iovec_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cmd_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: is_list_cmd
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_list_cmd(int cmd_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/configurator/headers_util.c:64,1
    - Dst: h2o_headers_is_prohibited_name
      Src: /src/h2o/lib/handler/configurator/headers_util.c:66,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/headers_util.c:67,1
    - Dst: is_list_cmd
      Src: /src/h2o/lib/handler/configurator/headers_util.c:71,1
    - Dst: h2o_headers_append_command
      Src: /src/h2o/lib/handler/configurator/headers_util.c:72,1
    - Dst: is_list_cmd
      Src: /src/h2o/lib/handler/configurator/headers_util.c:74,1
    - Dst: h2o_headers_append_command
      Src: /src/h2o/lib/handler/configurator/headers_util.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - cmd
    - cmd_id
    - args
    - num_args
    - when
    - cmds
    argTypes:
    - h2o_configurator_command_t*
    - int
    - struct headers_util_add_arg_t*
    - size_t
    - h2o_headers_command_when_t
    - h2o_headers_command_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 82
    functionName: add_cmd
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - is_list_cmd
    - h2o_headers_append_command
    - h2o_headers_is_prohibited_name
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int add_cmd(h2o_configurator_command_t *cmd, int cmd_id, struct headers_util_add_arg_t
      *args, size_t num_args,\n                   h2o_headers_command_when_t when,
      h2o_headers_command_t **cmds)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/headers_util.c:99,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/headers_util.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - cmd
    - node
    - headers
    - num_headers
    - when
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t**
    - yoml_t***
    - size_t*
    - h2o_headers_command_when_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: parse_header_node
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: "int parse_header_node(h2o_configurator_command_t *cmd, yoml_t **node,
      yoml_t ***headers, size_t *num_headers,\n                             h2o_headers_command_when_t
      *when)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_header_node
      Src: /src/h2o/lib/handler/configurator/headers_util.c:136,1
    - Dst: extract_name_value
      Src: /src/h2o/lib/handler/configurator/headers_util.c:143,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/headers_util.c:144,1
    - Dst: add_cmd
      Src: /src/h2o/lib/handler/configurator/headers_util.c:148,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/configurator/headers_util.c:150,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/headers_util.c:151,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/headers_util.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - cmd
    - ctx
    - cmd_id
    - node
    - headers_cmds
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - int
    - yoml_t*
    - h2o_headers_command_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 157
    functionName: on_config_header_2arg
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - free
    - add_cmd
    - parse_header_node
    - extract_name_value
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int on_config_header_2arg(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, int cmd_id, yoml_t *node,\n                                 h2o_headers_command_t
      **headers_cmds)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_header_node
      Src: /src/h2o/lib/handler/configurator/headers_util.c:166,1
    - Dst: extract_name
      Src: /src/h2o/lib/handler/configurator/headers_util.c:173,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/headers_util.c:173,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/headers_util.c:174,1
    - Dst: h2o_str_stripws
      Src: /src/h2o/lib/handler/configurator/headers_util.c:178,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/headers_util.c:178,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/headers_util.c:180,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/headers_util.c:183,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/headers_util.c:184,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/headers_util.c:186,1
    - Dst: add_cmd
      Src: /src/h2o/lib/handler/configurator/headers_util.c:188,1
    - Dst: struct headers_util_configurator_t*::get_commands
      Src: /src/h2o/lib/handler/configurator/headers_util.c:188,1
    - Dst: h2o_iovec_is_token
      Src: /src/h2o/lib/handler/configurator/headers_util.c:190,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/headers_util.c:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - cmd
    - ctx
    - node
    - cmd_id
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 197
    functionName: on_config_unset_core
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - h2o_iovec_is_token
    - extract_name
    - h2o_strdup
    - free
    - h2o_str_stripws
    - add_cmd
    - h2o_mem_alloc
    - parse_header_node
    - struct headers_util_configurator_t*::get_commands
    - strlen
    - h2o_configurator_errprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_config_unset_core(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node, int cmd_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_unset_core
      Src: /src/h2o/lib/handler/configurator/headers_util.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: on_config_header_unset
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - on_config_unset_core
    linkageType: ''
    returnType: int
    signature: int on_config_header_unset(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_unset_core
      Src: /src/h2o/lib/handler/configurator/headers_util.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: on_config_header_unsetunless
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - on_config_unset_core
    linkageType: ''
    returnType: int
    signature: int on_config_header_unsetunless(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_unset_core
      Src: /src/h2o/lib/handler/configurator/headers_util.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: on_config_cookie_unset
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - on_config_unset_core
    linkageType: ''
    returnType: int
    signature: int on_config_cookie_unset(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_config_unset_core
      Src: /src/h2o/lib/handler/configurator/headers_util.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: on_config_cookie_unsetunless
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - on_config_unset_core
    linkageType: ''
    returnType: int
    signature: int on_config_cookie_unsetunless(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - cmd_id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: DEFINE_2ARG
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_2ARG(fn, cmd_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/headers_util.c:235,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/headers_util.c:238,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:245,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:246,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:247,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:248,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:249,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:250,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:251,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:252,1
    - Dst: DEFINE_CMD_NAME
      Src: /src/h2o/lib/handler/configurator/headers_util.c:253,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:262,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:263,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:264,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:265,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:266,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:267,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:268,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:269,1
    - Dst: DEFINE_CMD
      Src: /src/h2o/lib/handler/configurator/headers_util.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - global_conf
    - conf
    - prefix
    - get_commands
    argTypes:
    - h2o_globalconf_t*
    - h2o_configurator_t*
    - char*
    - h2o_configurator_get_headers_commands_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 272
    functionName: h2o_configurator_define_headers_commands
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 0
    functionsReached:
    - DEFINE_CMD
    - DEFINE_CMD_NAME
    - strlen
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: "void h2o_configurator_define_headers_commands(h2o_globalconf_t *global_conf,
      h2o_configurator_t *conf, const char *prefix,\n                                              h2o_configurator_get_headers_commands_cb
      get_commands)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: DEFINE_CMD_NAME
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_CMD_NAME(name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: DEFINE_CMD
    functionSourceFile: /src/h2o/lib/handler/configurator/headers_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_CMD(name, cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/server_timing.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: on_config_server_timing
    functionSourceFile: /src/h2o/lib/handler/configurator/server_timing.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_server_timing(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/server_timing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/server_timing.c:62,1
    - Dst: h2o_server_timing_register
      Src: /src/h2o/lib/handler/configurator/server_timing.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/server_timing.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_at_extension_level
    - h2o_server_timing_register
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/server_timing.c:71,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/server_timing.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: h2o_server_timing_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/server_timing.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_server_timing_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/redirect.c:37,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/redirect.c:40,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/redirect.c:43,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/redirect.c:47,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/redirect.c:60,1
    - Dst: h2o_redirect_register
      Src: /src/h2o/lib/handler/configurator/redirect.c:64,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 67
    functionName: on_config
    functionSourceFile: /src/h2o/lib/handler/configurator/redirect.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_configurator_scanf
    - h2o_redirect_register
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/redirect.c:71,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/redirect.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: h2o_redirect_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/redirect.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_redirect_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/reproxy.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: on_config_reproxy
    functionSourceFile: /src/h2o/lib/handler/configurator/reproxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_reproxy(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/reproxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/reproxy.c:60,1
    - Dst: h2o_reproxy_register
      Src: /src/h2o/lib/handler/configurator/reproxy.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/reproxy.c
    functionUses: 0
    functionsReached:
    - h2o_reproxy_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/reproxy.c:69,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/reproxy.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: h2o_reproxy_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/reproxy.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_reproxy_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/status.c:27,1
    - Dst: h2o_status_register
      Src: /src/h2o/lib/handler/configurator/status.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: on_config_status
    functionSourceFile: /src/h2o/lib/handler/configurator/status.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_status_register
    linkageType: ''
    returnType: int
    signature: int on_config_status(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/status.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: on_config_duration_stats
    functionSourceFile: /src/h2o/lib/handler/configurator/status.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_duration_stats(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _conf
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: on_enter_status
    functionSourceFile: /src/h2o/lib/handler/configurator/status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_enter_status(h2o_configurator_t *_conf, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_duration_stats_register
      Src: /src/h2o/lib/handler/configurator/status.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - _conf
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: on_exit_status
    functionSourceFile: /src/h2o/lib/handler/configurator/status.c
    functionUses: 0
    functionsReached:
    - h2o_duration_stats_register
    linkageType: ''
    returnType: int
    signature: int on_exit_status(h2o_configurator_t *_conf, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/status.c:77,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/status.c:81,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/status.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: h2o_status_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/status.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_status_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: on_config_timeout_io
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_io(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: on_config_timeout_keepalive
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_keepalive(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:60,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:63,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:63,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: on_config_document_root
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int on_config_document_root(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: on_config_send_delegated_uri
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_send_delegated_uri(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:94,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:103,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:110,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:113,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:114,1
    - Dst: h2o_url_init_with_sun_path
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:117,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:117,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:117,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:118,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:118,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:119,1
    - Dst: sscanf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:122,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:123,1
    - Dst: h2o_url_init_with_hostport
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:126,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:126,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:126,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:127,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:127,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:129,1
    - Dst: h2o_fastcgi_register
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:133,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 137
    functionName: on_config_connect
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - free
    - h2o_configurator_errprintf
    - strcmp
    - h2o_iovec_init
    - h2o_fastcgi_register
    - sscanf
    - h2o_url_init_with_hostport
    - h2o_url_init_with_sun_path
    - strlen
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_connect(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:146,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:148,1
    - Dst: socket
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:153,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:154,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:154,1
    - Dst: bind
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:157,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:158,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:158,1
    - Dst: listen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:161,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:162,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:162,1
    - Dst: chown
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:166,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:167,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:167,1
    - Dst: pipe
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:172,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:173,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:173,1
    - Dst: fcntl
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:178,1
    - Dst: h2o_spawnp
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:187,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:189,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:189,1
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:193,1
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:195,1
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:202,1
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:204,1
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:206,1
    - Dst: unlink
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:207,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 6
    argNames:
    - cmd
    - node
    - dirname
    - argv
    - sa
    - pw
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    - char**
    - struct sockaddr_un*
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 209
    functionName: create_spawnproc
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - close
    - h2o_error_printf
    - unlink
    - bind
    - pipe
    - snprintf
    - fcntl
    - listen
    - strerror
    - socket
    - h2o_spawnp
    - h2o_configurator_errprintf
    - chown
    linkageType: ''
    returnType: int
    signature: "int create_spawnproc(h2o_configurator_command_t *cmd, yoml_t *node,
      const char *dirname, char *const *argv,\n                            struct
      sockaddr_un *sa, struct passwd *pw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - data
    argTypes:
    - h2o_fastcgi_handler_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: spawnproc_on_dispose
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void spawnproc_on_dispose(h2o_fastcgi_handler_t *handler, void *data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:231,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:239,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:246,1
    - Dst: getpwnam_r
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:253,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:255,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:264,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:269,1
    - Dst: assert
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:276,1
    - Dst: strcpy
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:283,1
    - Dst: mkdtemp
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:286,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:287,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:288,1
    - Dst: chown
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:293,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:294,1
    - Dst: strerror
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:295,1
    - Dst: create_spawnproc
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:299,1
    - Dst: h2o_url_init_with_sun_path
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:309,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:309,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:309,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:310,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:310,1
    - Dst: h2o_fastcgi_register
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:311,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:312,1
    - Dst: unlink
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:317,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:318,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:319,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts:
    - condition: (i <= sizeof(argv) / sizeof(argv[0]))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/h2o/lib/handler/configurator/fastcgi.c
    constantsTouched: []
    func_position:
      end: 321
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 321
    functionName: on_config_spawn
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - unlink
    - getpwnam_r
    - strcpy
    - h2o_configurator_get_cmd_path
    - mkdtemp
    - free
    - chown
    - h2o_iovec_init
    - h2o_fastcgi_register
    - strlen
    - h2o_url_init_with_sun_path
    - strerror
    - memset
    - create_spawnproc
    - assert
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_spawn(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:342,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:353,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:356,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:359,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:361,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:364,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/fastcgi.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 370
    functionName: h2o_fastcgi_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/fastcgi.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_fastcgi_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/access_log.c:45,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/access_log.c:49,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/access_log.c:54,1
    - Dst: h2o_access_log_open_handle
      Src: /src/h2o/lib/handler/configurator/access_log.c:67,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/configurator/access_log.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 74
    functionName: on_config
    functionSourceFile: /src/h2o/lib/handler/configurator/access_log.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_configurator_parse_mapping
    - h2o_vector_reserve
    - h2o_configurator_errprintf
    - h2o_access_log_open_handle
    linkageType: ''
    returnType: int
    signature: int on_config(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/lib/handler/configurator/access_log.c:85,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/configurator/access_log.c:86,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/configurator/access_log.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/access_log.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - memset
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/access_log.c:104,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/lib/handler/configurator/access_log.c:105,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/configurator/access_log.c:106,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/access_log.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/access_log.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - free
    - h2o_configurator_at_extension_level
    - h2o_access_log_register
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/access_log.c:119,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/access_log.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: h2o_access_log_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/access_log.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_access_log_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/configurator/headers.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/headers.c
    functionUses: 0
    functionsReached:
    - h2o_mem_addref_shared
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/headers.c:47,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/configurator/headers.c:49,1
    - Dst: h2o_headers_register
      Src: /src/h2o/lib/handler/configurator/headers.c:50,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/configurator/headers.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/headers.c
    functionUses: 0
    functionsReached:
    - h2o_mem_release_shared
    - h2o_mem_addref_shared
    - h2o_headers_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: get_headers_commands
    functionSourceFile: /src/h2o/lib/handler/configurator/headers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_headers_command_t
    signature: h2o_headers_command_t **get_headers_commands(h2o_configurator_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/headers.c:67,1
    - Dst: h2o_configurator_define_headers_commands
      Src: /src/h2o/lib/handler/configurator/headers.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: h2o_headers_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/headers.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_headers_commands
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_headers_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/errordoc.c:38,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:46,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:53,1
    - Dst: alloca
      Src: /src/h2o/lib/handler/configurator/errordoc.c:58,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:60,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:63,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:69,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/errordoc.c:75,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/configurator/errordoc.c:78,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - cmd
    - ctx
    - hash
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 85
    functionName: register_errordoc
    functionSourceFile: /src/h2o/lib/handler/configurator/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_configurator_scanf
    - h2o_vector_reserve
    - alloca
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int register_errordoc(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *hash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:95,1
    - Dst: register_errordoc
      Src: /src/h2o/lib/handler/configurator/errordoc.c:98,1
    - Dst: register_errordoc
      Src: /src/h2o/lib/handler/configurator/errordoc.c:104,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/errordoc.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: on_config_errordoc
    functionSourceFile: /src/h2o/lib/handler/configurator/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_errprintf
    - register_errordoc
    linkageType: ''
    returnType: int
    signature: int on_config_errordoc(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/handler/configurator/errordoc.c:119,1
    - Dst: memset
      Src: /src/h2o/lib/handler/configurator/errordoc.c:123,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/configurator/errordoc.c:124,1
    - Dst: h2o_memcpy
      Src: /src/h2o/lib/handler/configurator/errordoc.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_vector_reserve
    - memset
    - h2o_memcpy
    - h2o_mem_init_pool
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/errordoc.c:136,1
    - Dst: h2o_errordoc_register
      Src: /src/h2o/lib/handler/configurator/errordoc.c:137,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/handler/configurator/errordoc.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/errordoc.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_errordoc_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/errordoc.c:150,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/errordoc.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: h2o_errordoc_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/errordoc.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_errordoc_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/throttle_resp.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: on_config_throttle_resp
    functionSourceFile: /src/h2o/lib/handler/configurator/throttle_resp.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_throttle_resp(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/throttle_resp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_at_extension_level
      Src: /src/h2o/lib/handler/configurator/throttle_resp.c:56,1
    - Dst: h2o_throttle_resp_register
      Src: /src/h2o/lib/handler/configurator/throttle_resp.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - configurator
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/throttle_resp.c
    functionUses: 0
    functionsReached:
    - h2o_throttle_resp_register
    - h2o_configurator_at_extension_level
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *configurator, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/throttle_resp.c:65,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/throttle_resp.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: h2o_throttle_resp_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/throttle_resp.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_throttle_resp_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/http2_debug_state.c:27,1
    - Dst: h2o_http2_debug_state_register
      Src: /src/h2o/lib/handler/configurator/http2_debug_state.c:29,1
    - Dst: h2o_http2_debug_state_register
      Src: /src/h2o/lib/handler/configurator/http2_debug_state.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: on_config_debug_state
    functionSourceFile: /src/h2o/lib/handler/configurator/http2_debug_state.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_http2_debug_state_register
    linkageType: ''
    returnType: int
    signature: int on_config_debug_state(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/http2_debug_state.c:41,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/http2_debug_state.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: h2o_http2_debug_state_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/http2_debug_state.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_http2_debug_state_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/self_trace.c:27,1
    - Dst: h2o_self_trace_register
      Src: /src/h2o/lib/handler/configurator/self_trace.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: on_config_self_trace
    functionSourceFile: /src/h2o/lib/handler/configurator/self_trace.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - h2o_self_trace_register
    linkageType: ''
    returnType: int
    signature: int on_config_self_trace(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/self_trace.c:38,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/self_trace.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: h2o_self_trace_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/self_trace.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_self_trace_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/proxy.c:48,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - cmd
    - node
    - new_cmd
    - extra
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: warn_deprecation
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: void
    signature: void warn_deprecation(h2o_configurator_command_t *cmd, yoml_t *node,
      const char *new_cmd, const char *extra)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: on_config_timeout_io
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_io(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: on_config_timeout_connect
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_connect(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: on_config_timeout_first_byte
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_first_byte(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: on_config_timeout_keepalive
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: int on_config_timeout_keepalive(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: on_config_happy_eyeballs_name_resolution_delay
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_happy_eyeballs_name_resolution_delay(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                          yoml_t
      *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: on_config_happy_eyeballs_connection_attempt_delay
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    linkageType: ''
    returnType: int
    signature: "int on_config_happy_eyeballs_connection_attempt_delay(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx,\n                                                             yoml_t
      *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: on_config_preserve_host
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_preserve_host(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: on_config_proxy_protocol
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_proxy_protocol(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warn_deprecation
      Src: /src/h2o/lib/handler/configurator/proxy.c:122,1
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: on_config_connect_proxy_status
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - warn_deprecation
    linkageType: ''
    returnType: int
    signature: int on_config_connect_proxy_status(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: on_config_connect_proxy_masque_draft_03
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_connect_proxy_masque_draft_03(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warn_deprecation
      Src: /src/h2o/lib/handler/configurator/proxy.c:144,1
    - Dst: strlen
      Src: /src/h2o/lib/handler/configurator/proxy.c:151,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:155,1
    - Dst: strchr
      Src: /src/h2o/lib/handler/configurator/proxy.c:159,1
    - Dst: strspn
      Src: /src/h2o/lib/handler/configurator/proxy.c:159,1
    - Dst: h2o_strdup
      Src: /src/h2o/lib/handler/configurator/proxy.c:161,1
    - Dst: h2o_encode_sf_string
      Src: /src/h2o/lib/handler/configurator/proxy.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 168
    functionName: on_config_proxy_status_identity
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_strdup
    - h2o_encode_sf_string
    - strchr
    - strspn
    - warn_deprecation
    - strlen
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_proxy_status_identity(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: on_config_tunnel
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_tunnel(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/h2o/lib/handler/configurator/proxy.c:183,1
    - Dst: SSLv23_client_method
      Src: /src/h2o/lib/handler/configurator/proxy.c:183,1
    - Dst: SSL_CTX_get_options
      Src: /src/h2o/lib/handler/configurator/proxy.c:184,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/lib/handler/configurator/proxy.c:189,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/h2o/lib/handler/configurator/proxy.c:190,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/h2o/lib/handler/configurator/proxy.c:191,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/h2o/lib/handler/configurator/proxy.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: create_ssl_ctx
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_options
    - SSL_CTX_sess_set_new_cb
    - SSL_CTX_new
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_get_options
    - SSL_CTX_set_session_id_context
    - SSLv23_client_method
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *create_ssl_ctx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_cache_create
      Src: /src/h2o/lib/handler/configurator/proxy.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - capacity
    - duration
    argTypes:
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: create_ssl_session_cache
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_cache_create
    linkageType: ''
    returnType: h2o_cache_t
    signature: h2o_cache_t *create_ssl_session_cache(size_t capacity, uint64_t duration)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/lib/handler/configurator/proxy.c:203,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/h2o/lib/handler/configurator/proxy.c:207,1
    - Dst: X509_STORE_up_ref
      Src: /src/h2o/lib/handler/configurator/proxy.c:208,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/h2o/lib/handler/configurator/proxy.c:210,1
    - Dst: h2o_socket_ssl_get_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:213,1
    - Dst: create_ssl_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:215,1
    - Dst: h2o_cache_get_capacity
      Src: /src/h2o/lib/handler/configurator/proxy.c:215,1
    - Dst: h2o_cache_get_duration
      Src: /src/h2o/lib/handler/configurator/proxy.c:215,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/lib/handler/configurator/proxy.c:222,1
    - Dst: create_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:225,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/h2o/lib/handler/configurator/proxy.c:226,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/h2o/lib/handler/configurator/proxy.c:227,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/lib/handler/configurator/proxy.c:228,1
    - Dst: h2o_socket_ssl_set_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - cert_store
    - verify_mode
    - session_cache
    argTypes:
    - SSL_CTX**
    - X509_STORE*
    - int
    - h2o_cache_t**
    assertStmts:
    - condition: (*ctx != NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/h2o/lib/handler/configurator/proxy.c
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: update_ssl_ctx
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_up_ref
    - assert
    - SSL_CTX_get_verify_mode
    - create_ssl_session_cache
    - h2o_cache_get_capacity
    - SSL_CTX_get_cert_store
    - create_ssl_ctx
    - SSL_CTX_set_session_id_context
    - SSL_CTX_free
    - h2o_cache_get_duration
    - SSL_CTX_set_verify
    - h2o_socket_ssl_set_session_cache
    - h2o_socket_ssl_get_session_cache
    - SSL_CTX_set_cert_store
    linkageType: ''
    returnType: void
    signature: void update_ssl_ctx(SSL_CTX **ctx, X509_STORE *cert_store, int verify_mode,
      h2o_cache_t **session_cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:236,1
    - Dst: update_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: on_config_ssl_verify_peer
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    - update_ssl_ctx
    linkageType: ''
    returnType: int
    signature: int on_config_ssl_verify_peer(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/h2o/lib/handler/configurator/proxy.c:249,1
    - Dst: X509_STORE_load_locations
      Src: /src/h2o/lib/handler/configurator/proxy.c:252,1
    - Dst: update_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:253,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:256,1
    - Dst: ERR_print_errors_fp
      Src: /src/h2o/lib/handler/configurator/proxy.c:257,1
    - Dst: X509_STORE_free
      Src: /src/h2o/lib/handler/configurator/proxy.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: on_config_ssl_cafile
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - update_ssl_ctx
    - X509_STORE_load_locations
    - X509_STORE_new
    - X509_STORE_free
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_ssl_cafile(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_ssl_get_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:269,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/proxy.c:273,1
    - Dst: update_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:277,1
    - Dst: strcasecmp
      Src: /src/h2o/lib/handler/configurator/proxy.c:280,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:285,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/proxy.c:291,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:293,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:296,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:300,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:303,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:309,1
    - Dst: h2o_cache_get_capacity
      Src: /src/h2o/lib/handler/configurator/proxy.c:314,1
    - Dst: h2o_cache_get_duration
      Src: /src/h2o/lib/handler/configurator/proxy.c:315,1
    - Dst: create_ssl_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:322,1
    - Dst: update_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:323,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 325
    functionName: on_config_ssl_session_cache
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - update_ssl_ctx
    - create_ssl_session_cache
    - h2o_cache_get_capacity
    - h2o_configurator_scanf
    - strcasecmp
    - h2o_cache_get_duration
    - h2o_socket_ssl_get_session_cache
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_ssl_session_cache(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/lib/handler/configurator/proxy.c:334,1
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/proxy.c:342,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:346,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:349,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:356,1
    - Dst: h2o_url_parse
      Src: /src/h2o/lib/handler/configurator/proxy.c:362,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:363,1
    - Dst: h2o_socketpool_create_target
      Src: /src/h2o/lib/handler/configurator/proxy.c:367,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/lib/handler/configurator/proxy.c:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - cmd
    - backend
    argTypes:
    - h2o_configurator_command_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 372
    functionName: parse_backend
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_mem_init_pool
    - h2o_configurator_scanf
    - h2o_configurator_parse_mapping
    - h2o_socketpool_create_target
    - h2o_configurator_errprintf
    - h2o_url_parse
    linkageType: ''
    returnType: h2o_socketpool_target_t
    signature: h2o_socketpool_target_t *parse_backend(h2o_configurator_command_t *cmd,
      yoml_t *backend)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_parse_mapping
      Src: /src/h2o/lib/handler/configurator/proxy.c:393,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:404,1
    - Dst: h2o_fatal
      Src: /src/h2o/lib/handler/configurator/proxy.c:409,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:413,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/configurator/proxy.c:419,1
    - Dst: h2o_balancer_create_rr
      Src: /src/h2o/lib/handler/configurator/proxy.c:420,1
    - Dst: strcmp
      Src: /src/h2o/lib/handler/configurator/proxy.c:421,1
    - Dst: h2o_balancer_create_lc
      Src: /src/h2o/lib/handler/configurator/proxy.c:422,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:424,1
    - Dst: alloca
      Src: /src/h2o/lib/handler/configurator/proxy.c:431,1
    - Dst: parse_backend
      Src: /src/h2o/lib/handler/configurator/proxy.c:433,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:438,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:444,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:448,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/configurator/proxy.c:454,1
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/configurator/proxy.c:456,1
    - Dst: memset
      Src: /src/h2o/lib/handler/configurator/proxy.c:457,1
    - Dst: h2o_socketpool_init_specific
      Src: /src/h2o/lib/handler/configurator/proxy.c:459,1
    - Dst: h2o_socketpool_set_timeout
      Src: /src/h2o/lib/handler/configurator/proxy.c:460,1
    - Dst: h2o_socketpool_set_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:461,1
    - Dst: h2o_proxy_register_reverse_proxy
      Src: /src/h2o/lib/handler/configurator/proxy.c:462,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 464
    functionName: on_config_reverse_url
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - memset
    - h2o_balancer_create_rr
    - h2o_socketpool_set_timeout
    - parse_backend
    - h2o_mem_addref_shared
    - h2o_socketpool_init_specific
    - strcmp
    - h2o_mem_alloc
    - h2o_proxy_register_reverse_proxy
    - h2o_socketpool_set_ssl_ctx
    - alloca
    - h2o_balancer_create_lc
    - h2o_fatal
    - h2o_configurator_errprintf
    - h2o_configurator_parse_mapping
    linkageType: ''
    returnType: int
    signature: int on_config_reverse_url(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:475,1
    - Dst: h2o_connect_parse_acl
      Src: /src/h2o/lib/handler/configurator/proxy.c:478,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:480,1
    - Dst: registrar
      Src: /src/h2o/lib/handler/configurator/proxy.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: config_connect_core
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_connect_parse_acl
    - registrar
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: "int config_connect_core(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node,\n                               void (*registrar)(h2o_pathconf_t
      *, h2o_proxy_config_vars_t *, h2o_connect_acl_entry_t *, size_t))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_connect_core
      Src: /src/h2o/lib/handler/configurator/proxy.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: on_config_classic_connect
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - config_connect_core
    linkageType: ''
    returnType: int
    signature: int on_config_classic_connect(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_connect_core
      Src: /src/h2o/lib/handler/configurator/proxy.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: on_config_connect_udp
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - config_connect_core
    linkageType: ''
    returnType: int
    signature: int on_config_connect_udp(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: on_config_emit_x_forwarded_headers
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_emit_x_forwarded_headers(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: on_config_emit_via_header
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_emit_via_header(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: on_config_emit_missing_date_header
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_emit_missing_date_header(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: on_config_zerocopy
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_zerocopy(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 552
    functionName: on_config_preserve_x_forwarded_proto
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_preserve_x_forwarded_proto(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:557,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: on_config_max_buffer_size
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_max_buffer_size(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warn_deprecation
      Src: /src/h2o/lib/handler/configurator/proxy.c:568,1
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: on_config_http2_max_concurrent_streams
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - warn_deprecation
    linkageType: ''
    returnType: int
    signature: int on_config_http2_max_concurrent_streams(h2o_configurator_command_t
      *cmd, h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 582
    functionName: on_config_http2_force_cleartext
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http2_force_cleartext(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:587,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: on_config_http2_ratio
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http2_ratio(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 605
    functionName: on_config_http3_ecn
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_http3_ecn(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_scanf
      Src: /src/h2o/lib/handler/configurator/proxy.c:610,1
    - Dst: h2o_configurator_errprintf
      Src: /src/h2o/lib/handler/configurator/proxy.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 618
    functionName: on_config_http3_ratio
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_scanf
    - h2o_configurator_errprintf
    linkageType: ''
    returnType: int
    signature: int on_config_http3_ratio(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 639
    functionName: on_config_expect
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_expect(h2o_configurator_command_t *cmd, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_get_one_of
      Src: /src/h2o/lib/handler/configurator/proxy.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - ctx
    - node
    argTypes:
    - h2o_configurator_command_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 649
    functionName: on_config_forward_close_connection
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_configurator_get_one_of
    linkageType: ''
    returnType: int
    signature: int on_config_forward_close_connection(h2o_configurator_command_t *cmd,
      h2o_configurator_context_t *ctx, yoml_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/h2o/lib/handler/configurator/proxy.c:655,1
    - Dst: h2o_mem_addref_shared
      Src: /src/h2o/lib/handler/configurator/proxy.c:657,1
    - Dst: create_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:664,1
    - Dst: h2o_configurator_get_cmd_path
      Src: /src/h2o/lib/handler/configurator/proxy.c:665,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/lib/handler/configurator/proxy.c:666,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/configurator/proxy.c:667,1
    - Dst: free
      Src: /src/h2o/lib/handler/configurator/proxy.c:669,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/lib/handler/configurator/proxy.c:670,1
    - Dst: create_ssl_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:672,1
    - Dst: h2o_socket_ssl_set_session_cache
      Src: /src/h2o/lib/handler/configurator/proxy.c:673,1
    - Dst: SSL_CTX_up_ref
      Src: /src/h2o/lib/handler/configurator/proxy.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 4
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: on_config_enter
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_error_printf
    - SSL_CTX_load_verify_locations
    - create_ssl_session_cache
    - SSL_CTX_up_ref
    - free
    - h2o_configurator_get_cmd_path
    - h2o_mem_addref_shared
    - memcpy
    - create_ssl_ctx
    - h2o_socket_ssl_set_session_cache
    - SSL_CTX_set_verify
    linkageType: ''
    returnType: int
    signature: int on_config_enter(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socketpool_set_ssl_ctx
      Src: /src/h2o/lib/handler/configurator/proxy.c:695,1
    - Dst: h2o_socketpool_set_timeout
      Src: /src/h2o/lib/handler/configurator/proxy.c:696,1
    - Dst: SSL_CTX_free
      Src: /src/h2o/lib/handler/configurator/proxy.c:698,1
    - Dst: h2o_mem_release_shared
      Src: /src/h2o/lib/handler/configurator/proxy.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - _self
    - ctx
    - node
    argTypes:
    - h2o_configurator_t*
    - h2o_configurator_context_t*
    - yoml_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 705
    functionName: on_config_exit
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached:
    - h2o_socketpool_set_timeout
    - h2o_mem_release_shared
    - h2o_socketpool_set_ssl_ctx
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int on_config_exit(h2o_configurator_t *_self, h2o_configurator_context_t
      *ctx, yoml_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: get_headers_commands
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: h2o_headers_command_t
    signature: h2o_headers_command_t **get_headers_commands(h2o_configurator_t *_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_configurator_create
      Src: /src/h2o/lib/handler/configurator/proxy.c:715,1
    - Dst: h2o_socketpool_get_timeout
      Src: /src/h2o/lib/handler/configurator/proxy.c:733,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:739,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:744,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:748,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:751,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:754,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:757,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:760,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:763,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:766,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:769,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:772,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:774,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:777,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:780,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:783,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:786,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:789,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:791,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:794,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:796,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:798,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:801,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:804,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:806,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:809,1
    - Dst: h2o_configurator_define_headers_commands
      Src: /src/h2o/lib/handler/configurator/proxy.c:811,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:812,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:815,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:818,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:821,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:824,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:826,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:828,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:830,1
    - Dst: h2o_configurator_define_command
      Src: /src/h2o/lib/handler/configurator/proxy.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 713
    functionDepth: 4
    functionLinenumber: 713
    functionLinenumberEnd: 835
    functionName: h2o_proxy_register_configurator
    functionSourceFile: /src/h2o/lib/handler/configurator/proxy.c
    functionUses: 1
    functionsReached:
    - h2o_configurator_define_command
    - h2o_configurator_define_headers_commands
    - h2o_socketpool_get_timeout
    - h2o_configurator_create
    linkageType: ''
    returnType: void
    signature: void h2o_proxy_register_configurator(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_logger_context
      Src: /src/h2o/lib/handler/status/durations.c:55,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/handler/status/durations.c:56,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:64,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:65,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:66,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:67,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:68,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:69,1
    - Dst: ADD_DURATION
      Src: /src/h2o/lib/handler/status/durations.c:70,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/status/durations.c:74,1
    - Dst: h2o_evloop_get_execution_time_nanosec
      Src: /src/h2o/lib/handler/status/durations.c:76,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/handler/status/durations.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - priv
    - ctx
    argTypes:
    - void*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: durations_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - h2o_evloop_get_execution_time_nanosec
    - ADD_DURATION
    - pthread_mutex_unlock
    - h2o_vector_reserve
    - h2o_context_get_logger_context
    linkageType: ''
    returnType: void
    signature: void durations_status_per_thread(void *priv, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: ADD_DURATION
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_DURATION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:85,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:86,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:87,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:88,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:89,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:90,1
    - Dst: gkc_summary_alloc
      Src: /src/h2o/lib/handler/status/durations.c:91,1
    - Dst: memset
      Src: /src/h2o/lib/handler/status/durations.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct st_duration_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: duration_stats_init
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - gkc_summary_alloc
    - memset
    linkageType: ''
    returnType: void
    signature: void duration_stats_init(struct st_duration_stats_t *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/durations.c:99,1
    - Dst: duration_stats_init
      Src: /src/h2o/lib/handler/status/durations.c:101,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/handler/status/durations.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: durations_status_init
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - pthread_mutex_init
    - duration_stats_init
    linkageType: ''
    returnType: void
    signature: void *durations_status_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:109,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:110,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:111,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:112,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:113,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:114,1
    - Dst: gkc_summary_free
      Src: /src/h2o/lib/handler/status/durations.c:115,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/durations.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct st_duration_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: duration_stats_free
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - free
    - gkc_summary_free
    linkageType: ''
    returnType: void
    signature: void duration_stats_free(struct st_duration_stats_t *stats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/status/durations.c:135,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/durations.c:136,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:138,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:138,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:138,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:138,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:139,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:139,1
    - Dst: DURATION_FMT
      Src: /src/h2o/lib/handler/status/durations.c:139,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:140,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:140,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:140,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:140,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:141,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:141,1
    - Dst: DURATION_VALS
      Src: /src/h2o/lib/handler/status/durations.c:141,1
    - Dst: sprintf
      Src: /src/h2o/lib/handler/status/durations.c:145,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/durations.c:148,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/durations.c:152,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/durations.c:156,1
    - Dst: duration_stats_free
      Src: /src/h2o/lib/handler/status/durations.c:158,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/handler/status/durations.c:159,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/durations.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - priv
    - gconf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 163
    functionName: durations_status_final
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc_pool
    - free
    - snprintf
    - sprintf
    - DURATION_FMT
    - duration_stats_free
    - DURATION_VALS
    - pthread_mutex_destroy
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t durations_status_final(void *priv, h2o_globalconf_t *gconf,
      h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: DURATION_FMT
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DURATION_FMT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: DURATION_VALS
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DURATION_VALS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_logger_context
      Src: /src/h2o/lib/handler/status/durations.c:167,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:176,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:177,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/handler/status/durations.c:178,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:180,1
    - Dst: h2o_timeval_is_null
      Src: /src/h2o/lib/handler/status/durations.c:181,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:184,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:185,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:186,1
    - Dst: ADD_OBSERVATION
      Src: /src/h2o/lib/handler/status/durations.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - _self
    - req
    argTypes:
    - h2o_logger_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: stat_access
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 0
    functionsReached:
    - h2o_context_get_logger_context
    - ADD_OBSERVATION
    - h2o_timeval_is_null
    linkageType: ''
    returnType: void
    signature: void stat_access(h2o_logger_t *_self, h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - from
    - ','
    - until
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: ADD_OBSERVATION
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OBSERVATION(x, from, until)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/durations.c:193,1
    - Dst: duration_stats_init
      Src: /src/h2o/lib/handler/status/durations.c:194,1
    - Dst: h2o_context_set_logger_context
      Src: /src/h2o/lib/handler/status/durations.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - ctx
    argTypes:
    - struct st_h2o_logger_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: on_context_init
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached:
    - h2o_mem_alloc
    - h2o_context_set_logger_context
    - duration_stats_init
    linkageType: ''
    returnType: void
    signature: void on_context_init(struct st_h2o_logger_t *self, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_context_get_logger_context
      Src: /src/h2o/lib/handler/status/durations.c:201,1
    - Dst: duration_stats_free
      Src: /src/h2o/lib/handler/status/durations.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - ctx
    argTypes:
    - struct st_h2o_logger_t*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: on_context_dispose
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached:
    - h2o_context_get_logger_context
    - duration_stats_free
    linkageType: ''
    returnType: void
    signature: void on_context_dispose(struct st_h2o_logger_t *self, h2o_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/durations.c:211,1
    - Dst: memset
      Src: /src/h2o/lib/handler/status/durations.c:212,1
    - Dst: h2o_vector_reserve
      Src: /src/h2o/lib/handler/status/durations.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - conf
    argTypes:
    - h2o_globalconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 229
    functionName: h2o_duration_stats_register
    functionSourceFile: /src/h2o/lib/handler/status/durations.c
    functionUses: 1
    functionsReached:
    - h2o_vector_reserve
    - h2o_mem_alloc
    - memset
    linkageType: ''
    returnType: void
    signature: void h2o_duration_stats_register(h2o_globalconf_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/handler/status/events.c:55,1
    - Dst: QUICLY_STATS_FOREACH_COUNTERS
      Src: /src/h2o/lib/handler/status/events.c:81,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/handler/status/events.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - priv
    - ctx
    argTypes:
    - void*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: events_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached:
    - QUICLY_STATS_FOREACH_COUNTERS
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void events_status_per_thread(void *priv, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - _unused
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ACC
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACC(fld, _unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/events.c:91,1
    - Dst: memset
      Src: /src/h2o/lib/handler/status/events.c:92,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/handler/status/events.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: events_status_init
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - memset
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void *events_status_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/status/events.c:108,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/events.c:110,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:153,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:154,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:154,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:154,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:154,1
    - Dst: H1_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:154,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:156,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:156,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:156,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:156,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:157,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:157,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:157,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:157,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:158,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:158,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:158,1
    - Dst: H2_AGG_ERR
      Src: /src/h2o/lib/handler/status/events.c:158,1
    - Dst: QUICLY_STATS_FOREACH_COUNTERS
      Src: /src/h2o/lib/handler/status/events.c:164,1
    - Dst: ptls_log_num_lost
      Src: /src/h2o/lib/handler/status/events.c:165,1
    - Dst: assert
      Src: /src/h2o/lib/handler/status/events.c:167,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/handler/status/events.c:174,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/events.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - priv
    - gconf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts:
    - condition: (ret.len < BUFSIZE)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/h2o/lib/handler/status/events.c
    constantsTouched: []
    func_position:
      end: 177
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 177
    functionName: events_status_final
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - H1_AGG_ERR
    - h2o_mem_alloc_pool
    - free
    - snprintf
    - ptls_log_num_lost
    - QUICLY_STATS_FOREACH_COUNTERS
    - H2_AGG_ERR
    - assert
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t events_status_final(void *priv, h2o_globalconf_t *gconf,
      h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: H1_AGG_ERR
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H1_AGG_ERR(status_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: H2_AGG_ERR
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2_AGG_ERR(err_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _unused
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: QUIC_FMT
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_FMT(_unused, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - _unused
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: QUIC_VAL
    functionSourceFile: /src/h2o/lib/handler/status/events.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_VAL(fld, _unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - status
    - recycle
    argTypes:
    - struct st_recycle_status_t*
    - h2o_mem_recycle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: recycle_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void recycle_status_per_thread(struct st_recycle_status_t *status,
      h2o_mem_recycle_t *recycle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/handler/status/memory.c:47,1
    - Dst: recycle_status_per_thread
      Src: /src/h2o/lib/handler/status/memory.c:49,1
    - Dst: recycle_status_per_thread
      Src: /src/h2o/lib/handler/status/memory.c:50,1
    - Dst: recycle_status_per_thread
      Src: /src/h2o/lib/handler/status/memory.c:51,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/handler/status/memory.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - priv
    - ctx
    argTypes:
    - void*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: memory_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 0
    functionsReached:
    - recycle_status_per_thread
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void memory_status_per_thread(void *priv, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/memory.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: memory_status_init
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    linkageType: ''
    returnType: void
    signature: void *memory_status_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/status/memory.c:73,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/memory.c:74,1
    - Dst: FMT
      Src: /src/h2o/lib/handler/status/memory.c:75,1
    - Dst: FMT
      Src: /src/h2o/lib/handler/status/memory.c:75,1
    - Dst: FMT
      Src: /src/h2o/lib/handler/status/memory.c:75,1
    - Dst: ARGS
      Src: /src/h2o/lib/handler/status/memory.c:76,1
    - Dst: ARGS
      Src: /src/h2o/lib/handler/status/memory.c:76,1
    - Dst: ARGS
      Src: /src/h2o/lib/handler/status/memory.c:76,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/handler/status/memory.c:82,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/memory.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - priv
    - gconf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: memory_status_json
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 0
    functionsReached:
    - FMT
    - h2o_mem_alloc_pool
    - free
    - snprintf
    - pthread_mutex_destroy
    - ARGS
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t memory_status_json(void *priv, h2o_globalconf_t *gconf,
      h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: FMT
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FMT(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ARGS
    functionSourceFile: /src/h2o/lib/handler/status/memory.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGS(prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_log_request
      Src: /src/h2o/lib/handler/status/requests.c:43,1
    - Dst: assert
      Src: /src/h2o/lib/handler/status/requests.c:44,1
    - Dst: h2o_buffer_try_reserve
      Src: /src/h2o/lib/handler/status/requests.c:48,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/requests.c:50,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/status/requests.c:53,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/requests.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - req
    - _cbdata
    argTypes:
    - h2o_req_t*
    - void*
    assertStmts:
    - condition: (len != 0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/h2o/lib/handler/status/requests.c
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: collect_req_status
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_try_reserve
    - h2o_log_request
    - free
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int collect_req_status(h2o_req_t *req, void *_cbdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_buffer_init
      Src: /src/h2o/lib/handler/status/requests.c:71,1
    - Dst: H2O_CONN_LIST_FOREACH
      Src: /src/h2o/lib/handler/status/requests.c:73,1
    - Dst: callbacks::foreach_request
      Src: /src/h2o/lib/handler/status/requests.c:74,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/status/requests.c:75,1
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/handler/status/requests.c:82,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/lib/handler/status/requests.c:84,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/lib/handler/status/requests.c:85,1
    - Dst: memcpy
      Src: /src/h2o/lib/handler/status/requests.c:86,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/handler/status/requests.c:88,1
    - Dst: h2o_buffer_dispose
      Src: /src/h2o/lib/handler/status/requests.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - priv
    - ctx
    argTypes:
    - void*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: requests_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 0
    functionsReached:
    - h2o_buffer_init
    - callbacks::foreach_request
    - pthread_mutex_lock
    - h2o_mem_realloc
    - h2o_buffer_dispose
    - memcpy
    - pthread_mutex_unlock
    - h2o_buffer_consume
    - H2O_CONN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void requests_status_per_thread(void *priv, h2o_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/requests.c:96,1
    - Dst: ELEMENT
      Src: /src/h2o/lib/handler/status/requests.c:104,1
    - Dst: h2o_logconf_compile
      Src: /src/h2o/lib/handler/status/requests.c:136,1
    - Dst: h2o_error_printf
      Src: /src/h2o/lib/handler/status/requests.c:138,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/handler/status/requests.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 144
    functionName: requests_status_init
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 0
    functionsReached:
    - ELEMENT
    - h2o_error_printf
    - h2o_mem_alloc
    - pthread_mutex_init
    - h2o_logconf_compile
    linkageType: ''
    returnType: void
    signature: void *requests_status_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: ELEMENT
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELEMENT(key, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: X_ELEMENT
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X_ELEMENT(id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_concat
      Src: /src/h2o/lib/handler/status/requests.c:152,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status/requests.c:152,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status/requests.c:152,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/lib/handler/status/requests.c:153,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/lib/handler/status/requests.c:153,1
    - Dst: h2o_logconf_dispose
      Src: /src/h2o/lib/handler/status/requests.c:154,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/requests.c:156,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/handler/status/requests.c:157,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/requests.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - priv
    - gconf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: requests_status_final
    functionSourceFile: /src/h2o/lib/handler/status/requests.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_concat
    - free
    - h2o_logconf_dispose
    - pthread_mutex_destroy
    - h2o_iovec_init
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t requests_status_final(void *priv, h2o_globalconf_t *gconf,
      h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/h2o/lib/handler/status/ssl.c:40,1
    - Dst: pthread_mutex_unlock
      Src: /src/h2o/lib/handler/status/ssl.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - _ssc
    - ctx
    argTypes:
    - void*
    - h2o_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: ssl_status_per_thread
    functionSourceFile: /src/h2o/lib/handler/status/ssl.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ssl_status_per_thread(void *_ssc, h2o_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/lib/handler/status/ssl.c:54,1
    - Dst: pthread_mutex_init
      Src: /src/h2o/lib/handler/status/ssl.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: ssl_status_init
    functionSourceFile: /src/h2o/lib/handler/status/ssl.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void *ssl_status_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc_pool
      Src: /src/h2o/lib/handler/status/ssl.c:66,1
    - Dst: snprintf
      Src: /src/h2o/lib/handler/status/ssl.c:67,1
    - Dst: pthread_mutex_destroy
      Src: /src/h2o/lib/handler/status/ssl.c:77,1
    - Dst: free
      Src: /src/h2o/lib/handler/status/ssl.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - _ssc
    - globalconf
    - req
    argTypes:
    - void*
    - h2o_globalconf_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: ssl_status_final
    functionSourceFile: /src/h2o/lib/handler/status/ssl.c
    functionUses: 0
    functionsReached:
    - free
    - pthread_mutex_destroy
    - h2o_mem_alloc_pool
    - snprintf
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t ssl_status_final(void *_ssc, h2o_globalconf_t *globalconf,
      h2o_req_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: MQUICLY_CALLBACK_TYPE
    functionSourceFile: /src/h2o/fuzz/quicly_mock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MQUICLY_CALLBACK_TYPE(ret, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/fuzz/h3_header_generator.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: usage
    functionSourceFile: /src/h2o/fuzz/h3_header_generator.c
    functionUses: 17
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/fuzz/h3_header_generator.c:56,1
    - Dst: getopt
      Src: /src/h2o/fuzz/h3_header_generator.c:58,1
    - Dst: index
      Src: /src/h2o/fuzz/h3_header_generator.c:63,1
    - Dst: fprintf
      Src: /src/h2o/fuzz/h3_header_generator.c:64,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:69,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:70,1
    - Dst: strlen
      Src: /src/h2o/fuzz/h3_header_generator.c:70,1
    - Dst: h2o_add_header_by_str
      Src: /src/h2o/fuzz/h3_header_generator.c:71,1
    - Dst: usage
      Src: /src/h2o/fuzz/h3_header_generator.c:75,1
    - Dst: usage
      Src: /src/h2o/fuzz/h3_header_generator.c:89,1
    - Dst: usage
      Src: /src/h2o/fuzz/h3_header_generator.c:97,1
    - Dst: fopen
      Src: /src/h2o/fuzz/h3_header_generator.c:101,1
    - Dst: fprintf
      Src: /src/h2o/fuzz/h3_header_generator.c:103,1
    - Dst: strerror
      Src: /src/h2o/fuzz/h3_header_generator.c:103,1
    - Dst: h2o_qpack_create_encoder
      Src: /src/h2o/fuzz/h3_header_generator.c:107,1
    - Dst: h2o_qpack_flatten_request
      Src: /src/h2o/fuzz/h3_header_generator.c:110,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:110,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/fuzz/h3_header_generator.c:110,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:111,1
    - Dst: strlen
      Src: /src/h2o/fuzz/h3_header_generator.c:111,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:111,1
    - Dst: strlen
      Src: /src/h2o/fuzz/h3_header_generator.c:111,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:112,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/h3_header_generator.c:112,1
    - Dst: fwrite
      Src: /src/h2o/fuzz/h3_header_generator.c:113,1
    - Dst: h2o_qpack_destroy_encoder
      Src: /src/h2o/fuzz/h3_header_generator.c:115,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/fuzz/h3_header_generator.c:119,1
    - Dst: fclose
      Src: /src/h2o/fuzz/h3_header_generator.c:122,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 125
    functionName: main
    functionSourceFile: /src/h2o/fuzz/h3_header_generator.c
    functionUses: 11
    functionsReached:
    - h2o_add_header_by_str
    - getopt
    - h2o_mem_clear_pool
    - index
    - h2o_qpack_create_encoder
    - H2O_STRLIT
    - h2o_mem_init_pool
    - fwrite
    - h2o_qpack_destroy_encoder
    - fopen
    - fprintf
    - usage
    - fclose
    - strerror
    - h2o_qpack_flatten_request
    - strlen
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_init_h2o_quic_idmap
      Src: /src/h2o/fuzz/driver_h3.cc:65,1
    - Dst: kh_init_h2o_quic_acceptmap
      Src: /src/h2o/fuzz/driver_h3.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - loop
    argTypes:
    - h2o_quic_ctx_t*
    - h2o_evloop_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: quic_init_context
    functionSourceFile: /src/h2o/fuzz/driver_h3.cc
    functionUses: 2
    functionsReached:
    - kh_init_h2o_quic_acceptmap
    - kh_init_h2o_quic_idmap
    linkageType: ''
    returnType: void
    signature: void quic_init_context(h2o_quic_ctx_t *ctx, h2o_evloop_t *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: super::destroy_connection
      Src: /src/h2o/fuzz/driver_h3.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - h2o_quic_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: on_destroy_connection
    functionSourceFile: /src/h2o/fuzz/driver_h3.cc
    functionUses: 0
    functionsReached:
    - super::destroy_connection
    linkageType: ''
    returnType: void
    signature: void on_destroy_connection(h2o_quic_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - self
    - conn
    - stream
    - buff
    - 'off'
    - len
    - is_fin
    argTypes:
    - mquicly_on_stream_send_t*
    - quicly_conn_t*
    - quicly_stream_t*
    - void*
    - uint64_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: on_stream_send_cb
    functionSourceFile: /src/h2o/fuzz/driver_h3.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void on_stream_send_cb(mquicly_on_stream_send_t *self, quicly_conn_t
      *conn, quicly_stream_t *stream, const void *buff,\n                              uint64_t
      off, size_t len, int is_fin)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: h2o_barrier_init
      Src: /src/h2o/fuzz/driver_h3.cc:113,1
    - Dst: signal
      Src: /src/h2o/fuzz/driver_h3.cc:114,1
    - Dst: mkdtemp
      Src: /src/h2o/fuzz/driver_h3.cc:116,1
    - Dst: snprintf
      Src: /src/h2o/fuzz/driver_h3.cc:117,1
    - Dst: getenv
      Src: /src/h2o/fuzz/driver_h3.cc:118,1
    - Dst: atoi
      Src: /src/h2o/fuzz/driver_h3.cc:119,1
    - Dst: getenv
      Src: /src/h2o/fuzz/driver_h3.cc:123,1
    - Dst: atoi
      Src: /src/h2o/fuzz/driver_h3.cc:124,1
    - Dst: h2o_access_log_open_handle
      Src: /src/h2o/fuzz/driver_h3.cc:126,1
    - Dst: h2o_config_init
      Src: /src/h2o/fuzz/driver_h3.cc:129,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/fuzz/driver_h3.cc:130,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/driver_h3.cc:130,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/fuzz/driver_h3.cc:130,1
    - Dst: register_proxy
      Src: /src/h2o/fuzz/driver_h3.cc:132,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/fuzz/driver_h3.cc:134,1
    - Dst: h2o_file_register
      Src: /src/h2o/fuzz/driver_h3.cc:135,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/fuzz/driver_h3.cc:137,1
    - Dst: h2o_context_init
      Src: /src/h2o/fuzz/driver_h3.cc:141,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/fuzz/driver_h3.cc:141,1
    - Dst: quic_init_context
      Src: /src/h2o/fuzz/driver_h3.cc:154,1
    - Dst: h2o_http3_server_amend_quicly_context
      Src: /src/h2o/fuzz/driver_h3.cc:155,1
    - Dst: pthread_create
      Src: /src/h2o/fuzz/driver_h3.cc:156,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver_h3.cc:157,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/fuzz/driver_h3.cc:159,1
    - Dst: htonl
      Src: /src/h2o/fuzz/driver_h3.cc:164,1
    - Dst: htons
      Src: /src/h2o/fuzz/driver_h3.cc:165,1
    - Dst: htons
      Src: /src/h2o/fuzz/driver_h3.cc:166,1
    - Dst: h2o_http3_server_accept
      Src: /src/h2o/fuzz/driver_h3.cc:170,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_h3.cc:172,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_h3.cc:173,1
    - Dst: mquicly_open_stream
      Src: /src/h2o/fuzz/driver_h3.cc:175,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_h3.cc:176,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_h3.cc:177,1
    - Dst: quicly_recvstate_update
      Src: /src/h2o/fuzz/driver_h3.cc:179,1
    - Dst: quicly_stream_t*::callbacks::on_receive
      Src: /src/h2o/fuzz/driver_h3.cc:180,1
    - Dst: h2o_now
      Src: /src/h2o/fuzz/driver_h3.cc:182,1
    - Dst: h2o_now
      Src: /src/h2o/fuzz/driver_h3.cc:184,1
    - Dst: h2o_now
      Src: /src/h2o/fuzz/driver_h3.cc:187,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/fuzz/driver_h3.cc:188,1
    - Dst: quicly_sendstate_acked
      Src: /src/h2o/fuzz/driver_h3.cc:200,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_h3.cc:201,1
    - Dst: quicly_stream_t*::callbacks::on_send_shift
      Src: /src/h2o/fuzz/driver_h3.cc:203,1
    - Dst: mquicly_closed
      Src: /src/h2o/fuzz/driver_h3.cc:207,1
    - Dst: ptls_iovec_init
      Src: /src/h2o/fuzz/driver_h3.cc:207,1
    - Dst: h2o_quic_schedule_timer
      Src: /src/h2o/fuzz/driver_h3.cc:209,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/fuzz/driver_h3.cc:212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (stream != NULL)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/h2o/fuzz/driver_h3.cc
    - condition: (conn != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/h2o/fuzz/driver_h3.cc
    - condition: (ret == 0)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/h2o/fuzz/driver_h3.cc
    - condition: (ret == 0)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/h2o/fuzz/driver_h3.cc
    - condition: (&conn->super != &h2o_quic_accept_conn_decryption_failed)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/h2o/fuzz/driver_h3.cc
    constantsTouched: []
    func_position:
      end: 216
      start: 102
    functionDepth: 11
    functionLinenumber: 102
    functionLinenumberEnd: 216
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/fuzz/driver_h3.cc
    functionUses: 0
    functionsReached:
    - pthread_create
    - h2o_now
    - quicly_stream_t*::callbacks::on_send_shift
    - htonl
    - mquicly_open_stream
    - h2o_file_register
    - quic_init_context
    - h2o_barrier_wait
    - assert
    - h2o_iovec_init
    - ptls_iovec_init
    - H2O_STRLIT
    - mquicly_closed
    - h2o_quic_schedule_timer
    - h2o_barrier_init
    - signal
    - h2o_evloop_create
    - h2o_config_init
    - register_proxy
    - quicly_recvstate_update
    - htons
    - h2o_http3_server_accept
    - snprintf
    - h2o_evloop_run
    - getenv
    - h2o_config_register_host
    - mkdtemp
    - abort
    - atoi
    - quicly_stream_t*::callbacks::on_receive
    - h2o_context_init
    - quicly_sendstate_acked
    - h2o_access_log_register
    - h2o_http3_server_amend_quicly_context
    - h2o_config_register_path
    - h2o_access_log_open_handle
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_register_path
      Src: /src/h2o/fuzz/driver_common.cc:35,1
    - Dst: h2o_create_handler
      Src: /src/h2o/fuzz/driver_common.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hostconf
    - path
    argTypes:
    - h2o_hostconf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: register_handler
    functionSourceFile: /src/h2o/fuzz/driver_common.cc
    functionUses: 0
    functionsReached:
    - h2o_config_register_path
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_pathconf_t
    signature: h2o_pathconf_t *register_handler(h2o_hostconf_t *hostconf, const char
      *path, int (*on_req)(h2o_handler_t *, h2o_req_t *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/h2o/fuzz/driver_common.cc:49,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver_common.cc:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - buf
    - len
    - abort_on_err
    argTypes:
    - int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: write_fully
    functionSourceFile: /src/h2o/fuzz/driver_common.cc
    functionUses: 0
    functionsReached:
    - abort
    - write
    linkageType: ''
    returnType: void
    signature: void write_fully(int fd, char *buf, size_t len, int abort_on_err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/h2o/fuzz/driver_common.cc:73,1
    - Dst: socket
      Src: /src/h2o/fuzz/driver_common.cc:74,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver_common.cc:76,1
    - Dst: memset
      Src: /src/h2o/fuzz/driver_common.cc:79,1
    - Dst: strncpy
      Src: /src/h2o/fuzz/driver_common.cc:81,1
    - Dst: bind
      Src: /src/h2o/fuzz/driver_common.cc:82,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver_common.cc:83,1
    - Dst: listen
      Src: /src/h2o/fuzz/driver_common.cc:85,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver_common.cc:86,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/fuzz/driver_common.cc:89,1
    - Dst: accept
      Src: /src/h2o/fuzz/driver_common.cc:93,1
    - Dst: read
      Src: /src/h2o/fuzz/driver_common.cc:97,1
    - Dst: write_fully
      Src: /src/h2o/fuzz/driver_common.cc:98,1
    - Dst: close
      Src: /src/h2o/fuzz/driver_common.cc:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: upstream_thread
    functionSourceFile: /src/h2o/fuzz/driver_common.cc
    functionUses: 0
    functionsReached:
    - close
    - read
    - write_fully
    - accept
    - abort
    - snprintf
    - listen
    - bind
    - memset
    - h2o_barrier_wait
    - socket
    - strncpy
    linkageType: ''
    returnType: void
    signature: void *upstream_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/fuzz/driver_common.cc:110,1
    - Dst: h2o_url_parse
      Src: /src/h2o/fuzz/driver_common.cc:118,1
    - Dst: strlen
      Src: /src/h2o/fuzz/driver_common.cc:118,1
    - Dst: h2o_socketpool_t::h2o_socketpool_t
      Src: /src/h2o/fuzz/driver_common.cc:119,1
    - Dst: h2o_socketpool_create_target
      Src: /src/h2o/fuzz/driver_common.cc:120,1
    - Dst: h2o_socketpool_init_specific
      Src: /src/h2o/fuzz/driver_common.cc:121,1
    - Dst: h2o_socketpool_set_timeout
      Src: /src/h2o/fuzz/driver_common.cc:122,1
    - Dst: h2o_socketpool_set_ssl_ctx
      Src: /src/h2o/fuzz/driver_common.cc:123,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/fuzz/driver_common.cc:124,1
    - Dst: h2o_proxy_register_reverse_proxy
      Src: /src/h2o/fuzz/driver_common.cc:125,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/fuzz/driver_common.cc:127,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/fuzz/driver_common.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - hostconf
    - unix_path
    - logfh
    argTypes:
    - h2o_hostconf_t*
    - char*
    - h2o_access_log_filehandle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: register_proxy
    functionSourceFile: /src/h2o/fuzz/driver_common.cc
    functionUses: 1
    functionsReached:
    - h2o_mem_clear_pool
    - h2o_socketpool_set_timeout
    - h2o_mem_init_pool
    - h2o_socketpool_init_specific
    - h2o_config_register_path
    - h2o_socketpool_t::h2o_socketpool_t
    - h2o_socketpool_set_ssl_ctx
    - h2o_proxy_register_reverse_proxy
    - h2o_access_log_register
    - h2o_socketpool_create_target
    - strlen
    - h2o_url_parse
    linkageType: ''
    returnType: void
    signature: void register_proxy(h2o_hostconf_t *hostconf, const char *unix_path,
      h2o_access_log_filehandle_t *logfh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/fuzz/quicly_mock.c:54,1
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:55,1
    - Dst: kh_init
      Src: /src/h2o/fuzz/quicly_mock.c:68,1
    - Dst: memset
      Src: /src/h2o/fuzz/quicly_mock.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - is_client
    - remote_addr
    - local_addr
    argTypes:
    - quicly_context_t*
    - int
    - struct sockaddr*
    - struct sockaddr*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: create_connection
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 9
    functionsReached:
    - memset
    - calloc
    - assert
    - kh_init
    linkageType: ''
    returnType: quicly_conn_t
    signature: "quicly_conn_t *create_connection(quicly_context_t *ctx, int is_client,
      struct sockaddr *remote_addr,\n                                        struct
      sockaddr *local_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_connection
      Src: /src/h2o/fuzz/quicly_mock.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - conn
    - ctx
    - dest_addr
    - src_addr
    - packet
    - address_token
    - new_cid
    - handshake_properties
    - appdata
    argTypes:
    - quicly_conn_t**
    - quicly_context_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    - quicly_address_token_plaintext_t*
    - quicly_cid_plaintext_t*
    - ptls_handshake_properties_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: quicly_accept
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 13
    functionsReached:
    - create_connection
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_accept(quicly_conn_t **conn, quicly_context_t
      *ctx, struct sockaddr *dest_addr, struct sockaddr *src_addr,\n                             quicly_decoded_packet_t
      *packet, quicly_address_token_plaintext_t *address_token,\n                             const
      quicly_cid_plaintext_t *new_cid, ptls_handshake_properties_t *handshake_properties,\n
      \                            void *appdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_activate
      Src: /src/h2o/fuzz/quicly_mock.c:93,1
    - Dst: quicly_stream_scheduler_t*::update_state
      Src: /src/h2o/fuzz/quicly_mock.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - stream
    - activate
    argTypes:
    - quicly_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: quicly_stream_sync_sendbuf
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 11
    functionsReached:
    - quicly_stream_scheduler_t*::update_state
    - quicly_sendstate_activate
    linkageType: ''
    returnType: int
    signature: int quicly_stream_sync_sendbuf(quicly_stream_t *stream, int activate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - shift_amount
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: quicly_stream_sync_recvbuf
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_sync_recvbuf(quicly_stream_t *stream, size_t shift_amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - at_stream_level
    argTypes:
    - quicly_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: quicly_stream_can_send
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_stream_can_send(quicly_stream_t *stream, int at_stream_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: quicly_get_tls
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: ptls_t
    signature: ptls_t *quicly_get_tls(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: quicly_is_blocked
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_is_blocked(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: quicly_get_sockname
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *quicly_get_sockname(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: quicly_get_peername
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *quicly_get_peername(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: quicly_request_stop
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_request_stop(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_reset
      Src: /src/h2o/fuzz/quicly_mock.c:144,1
    - Dst: quicly_stream_scheduler_t*::update_state
      Src: /src/h2o/fuzz/quicly_mock.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: quicly_reset_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 9
    functionsReached:
    - quicly_stream_scheduler_t*::update_state
    - quicly_sendstate_reset
    linkageType: ''
    returnType: void
    signature: void quicly_reset_stream(quicly_stream_t *stream, quicly_error_t err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts:
    - condition: (!"unexpected socket type")
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: quicly_get_socklen
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t quicly_get_socklen(struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - packet
    - datagram
    - datagram_size
    - 'off'
    argTypes:
    - quicly_context_t*
    - quicly_decoded_packet_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: quicly_decode_packet
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_decode_packet(quicly_context_t *ctx, quicly_decoded_packet_t
      *packet, const uint8_t *datagram, size_t datagram_size,\n                            size_t
      *off)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/fuzz/quicly_mock.c:183,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/fuzz/quicly_mock.c:192,1
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:193,1
    - Dst: quicly_stream_t*::callbacks::on_send_emit
      Src: /src/h2o/fuzz/quicly_mock.c:201,1
    - Dst: quicly_sendstate_is_open
      Src: /src/h2o/fuzz/quicly_mock.c:206,1
    - Dst: on_stream_send::cb
      Src: /src/h2o/fuzz/quicly_mock.c:215,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/fuzz/quicly_mock.c:220,1
    - Dst: quicly_ranges_subtract
      Src: /src/h2o/fuzz/quicly_mock.c:223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - stream
    - s
    argTypes:
    - quicly_stream_t*
    - quicly_send_context_t*
    assertStmts:
    - condition: (range_capacity > 1)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 228
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 228
    functionName: quicly_send_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached:
    - quicly_ranges_subtract
    - on_stream_send::cb
    - quicly_stream_t*::callbacks::on_send_emit
    - quicly_sendstate_is_open
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_send_stream(quicly_stream_t *stream, quicly_send_context_t
      *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - frame_type
    - reason_phrase
    - is_remote
    argTypes:
    - quicly_conn_t*
    - uint64_t*
    - char**
    - int*
    assertStmts:
    - condition: (conn->super.state >= QUICLY_STATE_CLOSING)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: quicly_get_close_reason
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_close_reason(quicly_conn_t *conn, uint64_t
      *frame_type, const char **reason_phrase, int *is_remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/h2o/fuzz/quicly_mock.c:246,1
    - Dst: kh_put
      Src: /src/h2o/fuzz/quicly_mock.c:254,1
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:255,1
    - Dst: kh_end
      Src: /src/h2o/fuzz/quicly_mock.c:255,1
    - Dst: kh_val
      Src: /src/h2o/fuzz/quicly_mock.c:256,1
    - Dst: quicly_is_client
      Src: /src/h2o/fuzz/quicly_mock.c:258,1
    - Dst: quicly_stream_has_send_side
      Src: /src/h2o/fuzz/quicly_mock.c:260,1
    - Dst: quicly_sendstate_init
      Src: /src/h2o/fuzz/quicly_mock.c:261,1
    - Dst: quicly_sendstate_init_closed
      Src: /src/h2o/fuzz/quicly_mock.c:263,1
    - Dst: quicly_stream_has_receive_side
      Src: /src/h2o/fuzz/quicly_mock.c:265,1
    - Dst: quicly_recvstate_init
      Src: /src/h2o/fuzz/quicly_mock.c:266,1
    - Dst: quicly_recvstate_init_closed
      Src: /src/h2o/fuzz/quicly_mock.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    assertStmts:
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 272
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 272
    functionName: open_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 23
    functionsReached:
    - kh_val
    - quicly_sendstate_init
    - quicly_is_client
    - calloc
    - kh_end
    - quicly_sendstate_init_closed
    - kh_put
    - quicly_recvstate_init
    - quicly_stream_has_receive_side
    - quicly_recvstate_init_closed
    - quicly_stream_has_send_side
    - assert
    linkageType: ''
    returnType: quicly_stream_t
    signature: quicly_stream_t *open_stream(quicly_conn_t *conn, quicly_stream_id_t
      stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/fuzz/quicly_mock.c:276,1
    - Dst: quicly_stream_is_client_initiated
      Src: /src/h2o/fuzz/quicly_mock.c:276,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/fuzz/quicly_mock.c:277,1
    - Dst: quicly_stream_is_unidirectional
      Src: /src/h2o/fuzz/quicly_mock.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: get_streamgroup_state
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 3
    functionsReached:
    - quicly_stream_is_client_initiated
    - quicly_is_client
    - quicly_stream_is_unidirectional
    linkageType: ''
    returnType: struct st_quicly_conn_streamgroup_state_t
    signature: struct st_quicly_conn_streamgroup_state_t *get_streamgroup_state(quicly_conn_t
      *conn, quicly_stream_id_t stream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_stream
      Src: /src/h2o/fuzz/quicly_mock.c:293,1
    - Dst: quicly_conn_t*::super::ctx::stream_open::cb
      Src: /src/h2o/fuzz/quicly_mock.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - stream
    - is_remote_initiated
    - unidirectional
    argTypes:
    - quicly_conn_t*
    - quicly_stream_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: mquicly_open_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 1
    functionsReached:
    - quicly_conn_t*::super::ctx::stream_open::cb
    - open_stream
    linkageType: ''
    returnType: int
    signature: int mquicly_open_stream(quicly_conn_t *conn, quicly_stream_t **stream,
      int is_remote_initiated, int unidirectional)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_stream_t*::callbacks::on_destroy
      Src: /src/h2o/fuzz/quicly_mock.c:307,1
    - Dst: kh_get
      Src: /src/h2o/fuzz/quicly_mock.c:309,1
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:310,1
    - Dst: kh_end
      Src: /src/h2o/fuzz/quicly_mock.c:310,1
    - Dst: kh_del
      Src: /src/h2o/fuzz/quicly_mock.c:311,1
    - Dst: get_streamgroup_state
      Src: /src/h2o/fuzz/quicly_mock.c:313,1
    - Dst: quicly_sendstate_dispose
      Src: /src/h2o/fuzz/quicly_mock.c:316,1
    - Dst: quicly_recvstate_dispose
      Src: /src/h2o/fuzz/quicly_mock.c:317,1
    - Dst: free
      Src: /src/h2o/fuzz/quicly_mock.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - int
    assertStmts:
    - condition: (iter != kh_end(conn->streams))
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 320
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 320
    functionName: destroy_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 7
    functionsReached:
    - quicly_stream_t*::callbacks::on_destroy
    - kh_del
    - kh_end
    - quicly_recvstate_dispose
    - quicly_sendstate_dispose
    - free
    - kh_get
    - get_streamgroup_state
    - assert
    linkageType: ''
    returnType: void
    signature: void destroy_stream(quicly_stream_t *stream, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/h2o/fuzz/quicly_mock.c:325,1
    - Dst: destroy_stream
      Src: /src/h2o/fuzz/quicly_mock.c:325,1
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:326,1
    - Dst: quicly_num_streams
      Src: /src/h2o/fuzz/quicly_mock.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - err
    argTypes:
    - quicly_conn_t*
    - int
    assertStmts:
    - condition: (quicly_num_streams(conn) == 0)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: destroy_all_streams
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached:
    - quicly_num_streams
    - kh_foreach_value
    - assert
    - destroy_stream
    linkageType: ''
    returnType: void
    signature: void destroy_all_streams(quicly_conn_t *conn, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:332,1
    - Dst: malloc
      Src: /src/h2o/fuzz/quicly_mock.c:336,1
    - Dst: memcpy
      Src: /src/h2o/fuzz/quicly_mock.c:337,1
    - Dst: destroy_all_streams
      Src: /src/h2o/fuzz/quicly_mock.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - conn
    - err
    - frame_type
    - reason_phrase
    - is_remote
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - uint64_t
    - ptls_iovec_t
    - int
    assertStmts:
    - condition: (conn->super.ctx->closed == NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: mquicly_closed
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 1
    functionsReached:
    - memcpy
    - malloc
    - assert
    - destroy_all_streams
    linkageType: ''
    returnType: void
    signature: void mquicly_closed(quicly_conn_t *conn, quicly_error_t err, uint64_t
      frame_type, ptls_iovec_t reason_phrase, int is_remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mquicly_open_stream
      Src: /src/h2o/fuzz/quicly_mock.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - stream
    - unidirectional
    argTypes:
    - quicly_conn_t*
    - quicly_stream_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: quicly_open_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 17
    functionsReached:
    - mquicly_open_stream
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_open_stream(quicly_conn_t *conn, quicly_stream_t
      **stream, int unidirectional)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - stream_id
    - stream
    argTypes:
    - quicly_conn_t*
    - uint64_t
    - quicly_stream_t**
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: quicly_get_or_open_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_or_open_stream(quicly_conn_t *conn, uint64_t
      stream_id, quicly_stream_t **stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - conn
    - dest_addr
    - src_addr
    - decoded
    argTypes:
    - quicly_conn_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: quicly_is_destination
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int quicly_is_destination(quicly_conn_t *conn, struct sockaddr *dest_addr,
      struct sockaddr *src_addr,\n                          quicly_decoded_packet_t
      *decoded)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_is_client
      Src: /src/h2o/fuzz/quicly_mock.c:366,1
    - Dst: get_streamgroup_state
      Src: /src/h2o/fuzz/quicly_mock.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - uni
    - locally_initiated
    argTypes:
    - quicly_conn_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: quicly_num_streams_by_group
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached:
    - get_streamgroup_state
    - quicly_is_client
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t quicly_num_streams_by_group(quicly_conn_t *conn, int uni,
      int locally_initiated)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - delivery_rate
    argTypes:
    - quicly_conn_t*
    - quicly_rate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: quicly_get_delivery_rate
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_delivery_rate(quicly_conn_t *conn, quicly_rate_t
      *delivery_rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/fuzz/quicly_mock.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - stats
    argTypes:
    - quicly_conn_t*
    - quicly_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: quicly_get_stats
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 9
    functionsReached:
    - memset
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_get_stats(quicly_conn_t *conn, quicly_stats_t
      *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: quicly_stream_noop_on_destroy
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_destroy(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - delta
    argTypes:
    - quicly_stream_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: quicly_stream_noop_on_send_shift
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_shift(quicly_stream_t *stream, size_t
      delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - stream
    - 'off'
    - dst
    - len
    - wrote_all
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: quicly_stream_noop_on_send_emit
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_emit(quicly_stream_t *stream, size_t
      off, void *dst, size_t *len, int *wrote_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: quicly_stream_noop_on_send_stop
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_send_stop(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - stream
    - 'off'
    - src
    - len
    argTypes:
    - quicly_stream_t*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: quicly_stream_noop_on_receive
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_receive(quicly_stream_t *stream, size_t
      off, const void *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stream
    - err
    argTypes:
    - quicly_stream_t*
    - quicly_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: quicly_stream_noop_on_receive_reset
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_stream_noop_on_receive_reset(quicly_stream_t *stream, quicly_error_t
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - dest_cid
    - src_cid
    - versions
    - payload
    argTypes:
    - quicly_context_t*
    - ptls_iovec_t
    - ptls_iovec_t
    - uint32_t*
    - void*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: quicly_send_version_negotiation
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t quicly_send_version_negotiation(quicly_context_t *ctx, ptls_iovec_t
      dest_cid, ptls_iovec_t src_cid, const uint32_t *versions,\n                                       void
      *payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - src_cid
    - payload
    argTypes:
    - quicly_context_t*
    - void*
    - void*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: quicly_send_stateless_reset
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t quicly_send_stateless_reset(quicly_context_t *ctx, const void
      *src_cid, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - s
    argTypes:
    - quicly_conn_t*
    - quicly_send_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: quicly_can_send_data
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quicly_can_send_data(quicly_conn_t *conn, quicly_send_context_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 10
    argNames:
    - conn
    - ctx
    - server_name
    - dest_addr
    - src_addr
    - new_cid
    - address_token
    - handshake_properties
    - resumed_transport_params
    - appdata
    argTypes:
    - quicly_conn_t**
    - quicly_context_t*
    - char*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_cid_plaintext_t*
    - ptls_iovec_t
    - ptls_handshake_properties_t*
    - quicly_transport_parameters_t*
    - void*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: quicly_connect
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 13
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_connect(quicly_conn_t **conn, quicly_context_t
      *ctx, const char *server_name, struct sockaddr *dest_addr,\n                              struct
      sockaddr *src_addr, const quicly_cid_plaintext_t *new_cid, ptls_iovec_t address_token,\n
      \                             ptls_handshake_properties_t *handshake_properties,\n
      \                             const quicly_transport_parameters_t *resumed_transport_params,
      void *appdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: quicly_connection_is_ready
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int quicly_connection_is_ready(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ptls
    argTypes:
    - ptls_context_t*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: quicly_amend_ptls_context
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_amend_ptls_context(ptls_context_t *ptls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - conn
    - dest_addr
    - src_addr
    - packet
    argTypes:
    - quicly_conn_t*
    - struct sockaddr*
    - struct sockaddr*
    - quicly_decoded_packet_t*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 456
    functionName: quicly_receive
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 12
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_receive(quicly_conn_t *conn, struct sockaddr
      *dest_addr, struct sockaddr *src_addr,\n                              quicly_decoded_packet_t
      *packet)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - err
    - reason_phrase
    argTypes:
    - quicly_conn_t*
    - quicly_error_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 465
    functionName: quicly_close
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_close(quicly_conn_t *conn, quicly_error_t err,
      const char *reason_phrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quicly_conn_t*::super::ctx::now::cb
      Src: /src/h2o/fuzz/quicly_mock.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: quicly_get_first_timeout
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 12
    functionsReached:
    - quicly_conn_t*::super::ctx::now::cb
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_get_first_timeout(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_all_streams
      Src: /src/h2o/fuzz/quicly_mock.c:475,1
    - Dst: kh_destroy
      Src: /src/h2o/fuzz/quicly_mock.c:476,1
    - Dst: free
      Src: /src/h2o/fuzz/quicly_mock.c:477,1
    - Dst: free
      Src: /src/h2o/fuzz/quicly_mock.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: quicly_free
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 10
    functionsReached:
    - free
    - kh_destroy
    - destroy_all_streams
    linkageType: ''
    returnType: void
    signature: void quicly_free(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quicly_conn_t*::super::ctx::stream_scheduler::do_send
      Src: /src/h2o/fuzz/quicly_mock.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - conn
    - dest
    - src
    - datagrams
    - num_datagrams
    - buf
    - bufsize
    argTypes:
    - quicly_conn_t*
    - quicly_address_t*
    - quicly_address_t*
    - struct iovec*
    - size_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 495
    functionName: quicly_send
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 17
    functionsReached:
    - quicly_conn_t*::super::ctx::stream_scheduler::do_send
    linkageType: ''
    returnType: quicly_error_t
    signature: "quicly_error_t quicly_send(quicly_conn_t *conn, quicly_address_t *dest,
      quicly_address_t *src, struct iovec *datagrams,\n                           size_t
      *num_datagrams, void *buf, size_t bufsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: quicly_send_get_ecn_bits
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t quicly_send_get_ecn_bits(quicly_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - thunk
    argTypes:
    - quicly_conn_t*
    - void*
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: quicly_foreach_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: int64_t
    signature: int64_t quicly_foreach_stream(quicly_conn_t *conn, void *thunk, int64_t
      (*cb)(void *thunk, quicly_stream_t *stream))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - stream_id
    argTypes:
    - quicly_conn_t*
    - quicly_stream_id_t
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: quicly_get_stream
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 27
    functionsReached:
    - assert
    linkageType: ''
    returnType: quicly_stream_t
    signature: quicly_stream_t *quicly_get_stream(quicly_conn_t *conn, quicly_stream_id_t
      stream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/h2o/fuzz/quicly_mock.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - datagrams
    - num_datagrams
    argTypes:
    - quicly_conn_t*
    - ptls_iovec_t*
    - size_t
    assertStmts:
    - condition: (0 && "unimplemented")
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/h2o/fuzz/quicly_mock.c
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: quicly_send_datagram_frames
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void quicly_send_datagram_frames(quicly_conn_t *conn, ptls_iovec_t
      *datagrams, size_t num_datagrams)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - conn
    - send_permitted
    - sent
    - consumed
    - shifted
    argTypes:
    - quicly_conn_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: quicly_get_max_data
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quicly_get_max_data(quicly_conn_t *conn, uint64_t *send_permitted,
      uint64_t *sent, uint64_t *consumed, uint64_t *shifted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - quicly_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: quicly_send_resumption_token
    functionSourceFile: /src/h2o/fuzz/quicly_mock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: quicly_error_t
    signature: quicly_error_t quicly_send_resumption_token(quicly_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/fuzz/driver.cc:73,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/fuzz/driver.cc:73,1
    - Dst: h2o_strdup
      Src: /src/h2o/fuzz/driver.cc:76,1
    - Dst: h2o_add_header
      Src: /src/h2o/fuzz/driver.cc:79,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/fuzz/driver.cc:79,1
    - Dst: h2o_start_response
      Src: /src/h2o/fuzz/driver.cc:80,1
    - Dst: h2o_send
      Src: /src/h2o/fuzz/driver.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: chunked_test
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - h2o_start_response
    - h2o_add_header
    - h2o_send
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int chunked_test(h2o_handler_t *self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/fuzz/driver.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: drain
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int drain(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/h2o/fuzz/driver.cc:115,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver.cc:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: read_fully
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - abort
    - read
    linkageType: ''
    returnType: void
    signature: void read_fully(int fd, char *buf, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_fully
      Src: /src/h2o/fuzz/driver.cc:139,1
    - Dst: memmem
      Src: /src/h2o/fuzz/driver.cc:156,1
    - Dst: write
      Src: /src/h2o/fuzz/driver.cc:159,1
    - Dst: shutdown
      Src: /src/h2o/fuzz/driver.cc:165,1
    - Dst: FD_ZERO
      Src: /src/h2o/fuzz/driver.cc:175,1
    - Dst: FD_SET
      Src: /src/h2o/fuzz/driver.cc:176,1
    - Dst: select
      Src: /src/h2o/fuzz/driver.cc:179,1
    - Dst: FD_ISSET
      Src: /src/h2o/fuzz/driver.cc:180,1
    - Dst: drain
      Src: /src/h2o/fuzz/driver.cc:180,1
    - Dst: close
      Src: /src/h2o/fuzz/driver.cc:185,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/fuzz/driver.cc:186,1
    - Dst: h2o_barrier_dispose
      Src: /src/h2o/fuzz/driver.cc:187,1
    - Dst: free
      Src: /src/h2o/fuzz/driver.cc:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 190
    functionName: writer_thread
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - FD_SET
    - close
    - h2o_barrier_dispose
    - select
    - FD_ZERO
    - free
    - FD_ISSET
    - write
    - drain
    - shutdown
    - memmem
    - h2o_barrier_wait
    - read_fully
    linkageType: ''
    returnType: void
    signature: void *writer_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/h2o/fuzz/driver.cc:201,1
    - Dst: malloc
      Src: /src/h2o/fuzz/driver.cc:204,1
    - Dst: h2o_barrier_init
      Src: /src/h2o/fuzz/driver.cc:208,1
    - Dst: write_fully
      Src: /src/h2o/fuzz/driver.cc:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - sfd
    - buf
    - len
    - barrier
    argTypes:
    - int
    - char*
    - size_t
    - h2o_barrier_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: feeder
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - h2o_barrier_init
    - malloc
    - socketpair
    - write_fully
    linkageType: ''
    returnType: int
    signature: int feeder(int sfd, char *buf, size_t len, h2o_barrier_t **barrier)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_gettimeofday
      Src: /src/h2o/fuzz/driver.cc:224,1
    - Dst: feeder
      Src: /src/h2o/fuzz/driver.cc:227,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver.cc:229,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/fuzz/driver.cc:233,1
    - Dst: h2o_http1_accept
      Src: /src/h2o/fuzz/driver.cc:236,1
    - Dst: h2o_http2_accept
      Src: /src/h2o/fuzz/driver.cc:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - sfd
    - buf
    - len
    - barrier
    argTypes:
    - int
    - char*
    - size_t
    - h2o_barrier_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: create_accepted
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - h2o_http2_accept
    - abort
    - h2o_http1_accept
    - feeder
    - h2o_gettimeofday
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: int
    signature: int create_accepted(int sfd, char *buf, size_t len, h2o_barrier_t **barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/h2o/fuzz/driver.cc:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: is_valid_fd
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int is_valid_fd(int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_barrier_init
      Src: /src/h2o/fuzz/driver.cc:274,1
    - Dst: signal
      Src: /src/h2o/fuzz/driver.cc:275,1
    - Dst: mkdtemp
      Src: /src/h2o/fuzz/driver.cc:277,1
    - Dst: snprintf
      Src: /src/h2o/fuzz/driver.cc:278,1
    - Dst: getenv
      Src: /src/h2o/fuzz/driver.cc:279,1
    - Dst: atoi
      Src: /src/h2o/fuzz/driver.cc:280,1
    - Dst: h2o_config_init
      Src: /src/h2o/fuzz/driver.cc:285,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/fuzz/driver.cc:288,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/fuzz/driver.cc:288,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/fuzz/driver.cc:288,1
    - Dst: register_handler
      Src: /src/h2o/fuzz/driver.cc:289,1
    - Dst: register_proxy
      Src: /src/h2o/fuzz/driver.cc:290,1
    - Dst: h2o_file_register
      Src: /src/h2o/fuzz/driver.cc:291,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/fuzz/driver.cc:291,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/fuzz/driver.cc:293,1
    - Dst: h2o_context_init
      Src: /src/h2o/fuzz/driver.cc:294,1
    - Dst: socketpair
      Src: /src/h2o/fuzz/driver.cc:300,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver.cc:301,1
    - Dst: pthread_create
      Src: /src/h2o/fuzz/driver.cc:303,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver.cc:304,1
    - Dst: pthread_create
      Src: /src/h2o/fuzz/driver.cc:306,1
    - Dst: abort
      Src: /src/h2o/fuzz/driver.cc:307,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/fuzz/driver.cc:309,1
    - Dst: create_accepted
      Src: /src/h2o/fuzz/driver.cc:318,1
    - Dst: is_valid_fd
      Src: /src/h2o/fuzz/driver.cc:324,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/fuzz/driver.cc:325,1
    - Dst: h2o_barrier_wait
      Src: /src/h2o/fuzz/driver.cc:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 258
    functionDepth: 11
    functionLinenumber: 258
    functionLinenumberEnd: 332
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/fuzz/driver.cc
    functionUses: 0
    functionsReached:
    - pthread_create
    - h2o_file_register
    - h2o_barrier_wait
    - h2o_iovec_init
    - H2O_STRLIT
    - h2o_barrier_init
    - signal
    - h2o_evloop_create
    - is_valid_fd
    - h2o_config_init
    - register_handler
    - socketpair
    - register_proxy
    - create_accepted
    - snprintf
    - h2o_evloop_run
    - getenv
    - h2o_config_register_host
    - mkdtemp
    - abort
    - atoi
    - h2o_context_init
    - h2o_config_register_path
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_init_pool
      Src: /src/h2o/fuzz/driver_url.cc:37,1
    - Dst: h2o_url_parse
      Src: /src/h2o/fuzz/driver_url.cc:39,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_url.cc:42,1
    - Dst: assert
      Src: /src/h2o/fuzz/driver_url.cc:52,1
    - Dst: h2o_mem_clear_pool
      Src: /src/h2o/fuzz/driver_url.cc:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (url.scheme != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/fuzz/driver_url.cc
    - condition: (total <= Size * 2)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/h2o/fuzz/driver_url.cc
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/h2o/fuzz/driver_url.cc
    functionUses: 0
    functionsReached:
    - h2o_mem_clear_pool
    - assert
    - h2o_mem_init_pool
    - h2o_url_parse
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_register_path
      Src: /src/h2o/examples/libh2o/simple.c:40,1
    - Dst: h2o_create_handler
      Src: /src/h2o/examples/libh2o/simple.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hostconf
    - path
    argTypes:
    - h2o_hostconf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: register_handler
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 1
    functionsReached:
    - h2o_config_register_path
    - h2o_create_handler
    linkageType: ''
    returnType: h2o_pathconf_t
    signature: h2o_pathconf_t *register_handler(h2o_hostconf_t *hostconf, const char
      *path, int (*on_req)(h2o_handler_t *, h2o_req_t *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/examples/libh2o/simple.c:50,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:50,1
    - Dst: h2o_strdup
      Src: /src/h2o/examples/libh2o/simple.c:53,1
    - Dst: h2o_add_header
      Src: /src/h2o/examples/libh2o/simple.c:56,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:56,1
    - Dst: h2o_start_response
      Src: /src/h2o/examples/libh2o/simple.c:57,1
    - Dst: h2o_send
      Src: /src/h2o/examples/libh2o/simple.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: chunked_test
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_strdup
    - h2o_start_response
    - h2o_add_header
    - h2o_send
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int chunked_test(h2o_handler_t *self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/examples/libh2o/simple.c:65,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:65,1
    - Dst: h2o_add_header
      Src: /src/h2o/examples/libh2o/simple.c:70,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:70,1
    - Dst: h2o_send_inline
      Src: /src/h2o/examples/libh2o/simple.c:71,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: reproxy_test
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - h2o_memis
    - h2o_add_header
    - H2O_STRLIT
    - h2o_send_inline
    linkageType: ''
    returnType: int
    signature: int reproxy_test(h2o_handler_t *self, h2o_req_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_memis
      Src: /src/h2o/examples/libh2o/simple.c:78,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:78,1
    - Dst: h2o_memis
      Src: /src/h2o/examples/libh2o/simple.c:79,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:79,1
    - Dst: h2o_add_header
      Src: /src/h2o/examples/libh2o/simple.c:83,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:83,1
    - Dst: h2o_start_response
      Src: /src/h2o/examples/libh2o/simple.c:84,1
    - Dst: h2o_send
      Src: /src/h2o/examples/libh2o/simple.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: post_test
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_start_response
    - h2o_add_header
    - h2o_send
    - h2o_memis
    linkageType: ''
    returnType: int
    signature: int post_test(h2o_handler_t *self, h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/examples/libh2o/simple.c:107,1
    - Dst: uv_tcp_init
      Src: /src/h2o/examples/libh2o/simple.c:108,1
    - Dst: uv_accept
      Src: /src/h2o/examples/libh2o/simple.c:110,1
    - Dst: uv_close
      Src: /src/h2o/examples/libh2o/simple.c:111,1
    - Dst: h2o_uv_socket_create
      Src: /src/h2o/examples/libh2o/simple.c:115,1
    - Dst: h2o_accept
      Src: /src/h2o/examples/libh2o/simple.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - listener
    - status
    argTypes:
    - uv_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: on_accept
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - h2o_uv_socket_create
    - h2o_accept
    - uv_accept
    - h2o_mem_alloc
    - uv_close
    - uv_tcp_init
    linkageType: ''
    returnType: void
    signature: void on_accept(uv_stream_t *listener, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uv_tcp_init
      Src: /src/h2o/examples/libh2o/simple.c:125,1
    - Dst: uv_ip4_addr
      Src: /src/h2o/examples/libh2o/simple.c:126,1
    - Dst: uv_tcp_bind
      Src: /src/h2o/examples/libh2o/simple.c:127,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:128,1
    - Dst: uv_strerror
      Src: /src/h2o/examples/libh2o/simple.c:128,1
    - Dst: uv_listen
      Src: /src/h2o/examples/libh2o/simple.c:131,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:132,1
    - Dst: uv_strerror
      Src: /src/h2o/examples/libh2o/simple.c:132,1
    - Dst: uv_close
      Src: /src/h2o/examples/libh2o/simple.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: create_listener
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - uv_strerror
    - uv_listen
    - fprintf
    - uv_ip4_addr
    - uv_close
    - uv_tcp_init
    - uv_tcp_bind
    linkageType: ''
    returnType: int
    signature: int create_listener(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop_socket_accept
      Src: /src/h2o/examples/libh2o/simple.c:152,1
    - Dst: h2o_accept
      Src: /src/h2o/examples/libh2o/simple.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - listener
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: on_accept
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - h2o_accept
    - h2o_evloop_socket_accept
    linkageType: ''
    returnType: void
    signature: void on_accept(h2o_socket_t *listener, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/examples/libh2o/simple.c:163,1
    - Dst: htonl
      Src: /src/h2o/examples/libh2o/simple.c:165,1
    - Dst: htons
      Src: /src/h2o/examples/libh2o/simple.c:166,1
    - Dst: socket
      Src: /src/h2o/examples/libh2o/simple.c:168,1
    - Dst: setsockopt
      Src: /src/h2o/examples/libh2o/simple.c:169,1
    - Dst: bind
      Src: /src/h2o/examples/libh2o/simple.c:170,1
    - Dst: listen
      Src: /src/h2o/examples/libh2o/simple.c:170,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/examples/libh2o/simple.c:174,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/simple.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: create_listener
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - htons
    - listen
    - htonl
    - h2o_socket_read_start
    - bind
    - memset
    - socket
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: int
    signature: int create_listener(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_load_error_strings
      Src: /src/h2o/examples/libh2o/simple.c:184,1
    - Dst: SSL_library_init
      Src: /src/h2o/examples/libh2o/simple.c:185,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/examples/libh2o/simple.c:186,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/examples/libh2o/simple.c:188,1
    - Dst: SSLv23_server_method
      Src: /src/h2o/examples/libh2o/simple.c:188,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/examples/libh2o/simple.c:189,1
    - Dst: h2o_accept_setup_memcached_ssl_resumption
      Src: /src/h2o/examples/libh2o/simple.c:193,1
    - Dst: h2o_memcached_create_context
      Src: /src/h2o/examples/libh2o/simple.c:193,1
    - Dst: h2o_socket_ssl_async_resumption_setup_ctx
      Src: /src/h2o/examples/libh2o/simple.c:195,1
    - Dst: SSL_CTX_set_ecdh_auto
      Src: /src/h2o/examples/libh2o/simple.c:199,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/examples/libh2o/simple.c:203,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:204,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/examples/libh2o/simple.c:207,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:208,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/h2o/examples/libh2o/simple.c:212,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:213,1
    - Dst: h2o_ssl_register_npn_protocols
      Src: /src/h2o/examples/libh2o/simple.c:219,1
    - Dst: h2o_ssl_register_alpn_protocols
      Src: /src/h2o/examples/libh2o/simple.c:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - cert_file
    - key_file
    - ciphers
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 226
    functionName: setup_ssl
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 1
    functionsReached:
    - h2o_ssl_register_npn_protocols
    - SSL_CTX_set_options
    - SSL_CTX_use_PrivateKey_file
    - SSL_CTX_set_ecdh_auto
    - h2o_accept_setup_memcached_ssl_resumption
    - SSL_CTX_new
    - SSL_CTX_set_cipher_list
    - SSLv23_server_method
    - OpenSSL_add_all_algorithms
    - SSL_CTX_use_certificate_chain_file
    - h2o_memcached_create_context
    - fprintf
    - h2o_ssl_register_alpn_protocols
    - h2o_socket_ssl_async_resumption_setup_ctx
    - SSL_load_error_strings
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int setup_ssl(const char *cert_file, const char *key_file, const char
      *ciphers)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2o_access_log_open_handle
      Src: /src/h2o/examples/libh2o/simple.c:231,1
    - Dst: signal
      Src: /src/h2o/examples/libh2o/simple.c:234,1
    - Dst: h2o_config_init
      Src: /src/h2o/examples/libh2o/simple.c:236,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/examples/libh2o/simple.c:237,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/simple.c:237,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/simple.c:237,1
    - Dst: register_handler
      Src: /src/h2o/examples/libh2o/simple.c:239,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/examples/libh2o/simple.c:241,1
    - Dst: register_handler
      Src: /src/h2o/examples/libh2o/simple.c:243,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/examples/libh2o/simple.c:245,1
    - Dst: register_handler
      Src: /src/h2o/examples/libh2o/simple.c:247,1
    - Dst: h2o_reproxy_register
      Src: /src/h2o/examples/libh2o/simple.c:248,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/examples/libh2o/simple.c:250,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/examples/libh2o/simple.c:252,1
    - Dst: h2o_file_register
      Src: /src/h2o/examples/libh2o/simple.c:253,1
    - Dst: h2o_access_log_register
      Src: /src/h2o/examples/libh2o/simple.c:255,1
    - Dst: uv_loop_init
      Src: /src/h2o/examples/libh2o/simple.c:259,1
    - Dst: h2o_context_init
      Src: /src/h2o/examples/libh2o/simple.c:260,1
    - Dst: h2o_context_init
      Src: /src/h2o/examples/libh2o/simple.c:262,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/examples/libh2o/simple.c:262,1
    - Dst: h2o_multithread_register_receiver
      Src: /src/h2o/examples/libh2o/simple.c:265,1
    - Dst: setup_ssl
      Src: /src/h2o/examples/libh2o/simple.c:267,1
    - Dst: create_listener
      Src: /src/h2o/examples/libh2o/simple.c:274,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/simple.c:275,1
    - Dst: strerror
      Src: /src/h2o/examples/libh2o/simple.c:275,1
    - Dst: uv_run
      Src: /src/h2o/examples/libh2o/simple.c:280,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/examples/libh2o/simple.c:282,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 228
    functionDepth: 11
    functionLinenumber: 228
    functionLinenumberEnd: 288
    functionName: main
    functionSourceFile: /src/h2o/examples/libh2o/simple.c
    functionUses: 11
    functionsReached:
    - create_listener
    - h2o_file_register
    - h2o_iovec_init
    - setup_ssl
    - H2O_STRLIT
    - h2o_reproxy_register
    - uv_loop_init
    - signal
    - h2o_evloop_create
    - fprintf
    - h2o_config_init
    - strerror
    - register_handler
    - uv_run
    - h2o_evloop_run
    - h2o_config_register_host
    - h2o_context_init
    - h2o_access_log_register
    - h2o_multithread_register_receiver
    - h2o_config_register_path
    - h2o_access_log_open_handle
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:35,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/redis-client.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: usage
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 18
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:42,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:47,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:50,1
    - Dst: dump_reply
      Src: /src/h2o/examples/libh2o/redis-client.c:52,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:56,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:59,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:62,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:65,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - reply
    - indent
    argTypes:
    - redisReply*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: dump_reply
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 1
    functionsReached:
    - dump_reply
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_reply(redisReply *reply, unsigned indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:75,1
    - Dst: dump_reply
      Src: /src/h2o/examples/libh2o/redis-client.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - reply
    - cb_data
    - errstr
    argTypes:
    - redisReply*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: on_redis_command
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 0
    functionsReached:
    - dump_reply
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_redis_command(redisReply *reply, void *cb_data, const char
      *errstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:85,1
    - Dst: h2o_redis_command
      Src: /src/h2o/examples/libh2o/redis-client.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: on_redis_connect
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 0
    functionsReached:
    - h2o_redis_command
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_redis_connect(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:92,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/redis-client.c:94,1
    - Dst: usleep
      Src: /src/h2o/examples/libh2o/redis-client.c:96,1
    - Dst: h2o_redis_connect
      Src: /src/h2o/examples/libh2o/redis-client.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - errstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: on_redis_close
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 0
    functionsReached:
    - h2o_redis_connect
    - usleep
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_redis_close(const char *errstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/h2o/examples/libh2o/redis-client.c:107,1
    - Dst: usage
      Src: /src/h2o/examples/libh2o/redis-client.c:109,1
    - Dst: sscanf
      Src: /src/h2o/examples/libh2o/redis-client.c:112,1
    - Dst: uv_loop_new
      Src: /src/h2o/examples/libh2o/redis-client.c:117,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/examples/libh2o/redis-client.c:119,1
    - Dst: h2o_redis_create_client
      Src: /src/h2o/examples/libh2o/redis-client.c:122,1
    - Dst: h2o_redis_connect
      Src: /src/h2o/examples/libh2o/redis-client.c:126,1
    - Dst: h2o_redis_command
      Src: /src/h2o/examples/libh2o/redis-client.c:127,1
    - Dst: uv_run
      Src: /src/h2o/examples/libh2o/redis-client.c:131,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/examples/libh2o/redis-client.c:133,1
    - Dst: h2o_redis_free
      Src: /src/h2o/examples/libh2o/redis-client.c:141,1
    - Dst: uv_loop_delete
      Src: /src/h2o/examples/libh2o/redis-client.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 101
    functionDepth: 11
    functionLinenumber: 101
    functionLinenumberEnd: 152
    functionName: main
    functionSourceFile: /src/h2o/examples/libh2o/redis-client.c
    functionUses: 11
    functionsReached:
    - uv_run
    - h2o_redis_free
    - uv_loop_new
    - h2o_redis_connect
    - h2o_evloop_run
    - sscanf
    - h2o_evloop_create
    - usage
    - h2o_redis_command
    - h2o_redis_create_client
    - uv_loop_delete
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/examples/libh2o/latency-optimization.c:58,1
    - Dst: memset
      Src: /src/h2o/examples/libh2o/latency-optimization.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: prepare_write_buf
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - h2o_mem_alloc
    - memset
    linkageType: ''
    returnType: h2o_iovec_t
    signature: h2o_iovec_t prepare_write_buf(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:68,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:69,1
    - Dst: server_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: server_on_write_ready
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - server_write
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void server_on_write_ready(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:78,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:79,1
    - Dst: h2o_socket_notify_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: server_on_write_complete
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - h2o_socket_notify_write
    linkageType: ''
    returnType: void
    signature: void server_on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_socket_prepare_for_latency_optimized_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:87,1
    - Dst: prepare_write_buf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:88,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:95,1
    - Dst: h2o_socket_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - h2o_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: server_write
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 1
    functionsReached:
    - h2o_socket_write
    - h2o_socket_prepare_for_latency_optimized_write
    - fprintf
    - prepare_write_buf
    linkageType: ''
    returnType: void
    signature: void server_write(h2o_socket_t *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:102,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:103,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: server_on_read_second
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void server_on_read_second(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:114,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:115,1
    - Dst: server_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:119,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/latency-optimization.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: server_on_read_first
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - server_write
    - exit
    - fprintf
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void server_on_read_first(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:128,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/latency-optimization.c:129,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: client_on_write_complete
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - h2o_socket_close
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void client_on_write_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:138,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:139,1
    - Dst: h2o_now
      Src: /src/h2o/examples/libh2o/latency-optimization.c:146,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/examples/libh2o/latency-optimization.c:146,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/examples/libh2o/latency-optimization.c:153,1
    - Dst: h2o_now
      Src: /src/h2o/examples/libh2o/latency-optimization.c:156,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/examples/libh2o/latency-optimization.c:156,1
    - Dst: printf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:157,1
    - Dst: printf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:159,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 162
    functionName: client_on_read_second
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - h2o_now
    - h2o_socket_get_loop
    - exit
    - printf
    - fprintf
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void client_on_read_second(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:167,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:168,1
    - Dst: h2o_now
      Src: /src/h2o/examples/libh2o/latency-optimization.c:172,1
    - Dst: h2o_socket_get_loop
      Src: /src/h2o/examples/libh2o/latency-optimization.c:172,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/examples/libh2o/latency-optimization.c:175,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/latency-optimization.c:177,1
    - Dst: h2o_socket_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:178,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/latency-optimization.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: client_on_read_first
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - H2O_STRLIT
    - h2o_now
    - h2o_socket_get_loop
    - exit
    - fprintf
    - h2o_buffer_consume
    - h2o_socket_write
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void client_on_read_first(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:186,1
    - Dst: ERR_print_errors_fp
      Src: /src/h2o/examples/libh2o/latency-optimization.c:187,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/latency-optimization.c:188,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:189,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/latency-optimization.c:194,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/latency-optimization.c:196,1
    - Dst: h2o_socket_write
      Src: /src/h2o/examples/libh2o/latency-optimization.c:197,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/latency-optimization.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 7
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: on_handshake_complete
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 3
    functionsReached:
    - ERR_print_errors_fp
    - H2O_STRLIT
    - h2o_socket_close
    - exit
    - fprintf
    - h2o_socket_write
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_handshake_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:206,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/latency-optimization.c:207,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:208,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/examples/libh2o/latency-optimization.c:213,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/latency-optimization.c:213,1
    - Dst: on_handshake_complete
      Src: /src/h2o/examples/libh2o/latency-optimization.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 13
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: on_connect
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 10
    functionsReached:
    - h2o_socket_close
    - exit
    - on_handshake_complete
    - fprintf
    - h2o_socket_ssl_handshake
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_connect(h2o_socket_t *sock, const char *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop_socket_accept
      Src: /src/h2o/examples/libh2o/latency-optimization.c:224,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/latency-optimization.c:225,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/examples/libh2o/latency-optimization.c:227,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/latency-optimization.c:227,1
    - Dst: on_handshake_complete
      Src: /src/h2o/examples/libh2o/latency-optimization.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - listener
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 13
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: on_accept
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 0
    functionsReached:
    - h2o_evloop_socket_accept
    - h2o_socket_close
    - on_handshake_complete
    - h2o_socket_ssl_handshake
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_accept(h2o_socket_t *listener, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:237,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: usage
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 19
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/h2o/examples/libh2o/latency-optimization.c:265,1
    - Dst: sscanf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:277,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:278,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:279,1
    - Dst: sscanf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:283,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:284,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:285,1
    - Dst: sscanf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:289,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:290,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:291,1
    - Dst: usage
      Src: /src/h2o/examples/libh2o/latency-optimization.c:295,1
    - Dst: usage
      Src: /src/h2o/examples/libh2o/latency-optimization.c:304,1
    - Dst: strchr
      Src: /src/h2o/examples/libh2o/latency-optimization.c:307,1
    - Dst: strdup
      Src: /src/h2o/examples/libh2o/latency-optimization.c:309,1
    - Dst: SSL_load_error_strings
      Src: /src/h2o/examples/libh2o/latency-optimization.c:319,1
    - Dst: SSL_library_init
      Src: /src/h2o/examples/libh2o/latency-optimization.c:320,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/examples/libh2o/latency-optimization.c:321,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/examples/libh2o/latency-optimization.c:323,1
    - Dst: SSLv23_server_method
      Src: /src/h2o/examples/libh2o/latency-optimization.c:323,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/examples/libh2o/latency-optimization.c:324,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/examples/libh2o/latency-optimization.c:325,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/examples/libh2o/latency-optimization.c:327,1
    - Dst: SSLv23_client_method
      Src: /src/h2o/examples/libh2o/latency-optimization.c:327,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/h2o/examples/libh2o/latency-optimization.c:330,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:332,1
    - Dst: OBJ_nid2sn
      Src: /src/h2o/examples/libh2o/latency-optimization.c:332,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:333,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/h2o/examples/libh2o/latency-optimization.c:335,1
    - Dst: EC_KEY_free
      Src: /src/h2o/examples/libh2o/latency-optimization.c:336,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/examples/libh2o/latency-optimization.c:337,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/h2o/examples/libh2o/latency-optimization.c:338,1
    - Dst: uv_loop_new
      Src: /src/h2o/examples/libh2o/latency-optimization.c:342,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/examples/libh2o/latency-optimization.c:344,1
    - Dst: memset
      Src: /src/h2o/examples/libh2o/latency-optimization.c:348,1
    - Dst: getaddrinfo
      Src: /src/h2o/examples/libh2o/latency-optimization.c:352,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:353,1
    - Dst: gai_strerror
      Src: /src/h2o/examples/libh2o/latency-optimization.c:353,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:354,1
    - Dst: socket
      Src: /src/h2o/examples/libh2o/latency-optimization.c:359,1
    - Dst: setsockopt
      Src: /src/h2o/examples/libh2o/latency-optimization.c:360,1
    - Dst: bind
      Src: /src/h2o/examples/libh2o/latency-optimization.c:361,1
    - Dst: listen
      Src: /src/h2o/examples/libh2o/latency-optimization.c:361,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:362,1
    - Dst: strerror
      Src: /src/h2o/examples/libh2o/latency-optimization.c:362,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:363,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/examples/libh2o/latency-optimization.c:365,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/latency-optimization.c:366,1
    - Dst: h2o_socket_connect
      Src: /src/h2o/examples/libh2o/latency-optimization.c:368,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/latency-optimization.c:369,1
    - Dst: strerror
      Src: /src/h2o/examples/libh2o/latency-optimization.c:369,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/latency-optimization.c:370,1
    - Dst: uv_run
      Src: /src/h2o/examples/libh2o/latency-optimization.c:376,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/examples/libh2o/latency-optimization.c:378,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 252
    functionDepth: 11
    functionLinenumber: 252
    functionLinenumberEnd: 383
    functionName: main
    functionSourceFile: /src/h2o/examples/libh2o/latency-optimization.c
    functionUses: 11
    functionsReached:
    - getopt_long
    - OBJ_nid2sn
    - EC_KEY_free
    - SSL_CTX_set_cipher_list
    - getaddrinfo
    - SSLv23_server_method
    - SSL_CTX_use_certificate_chain_file
    - gai_strerror
    - sscanf
    - SSLv23_client_method
    - SSL_load_error_strings
    - listen
    - h2o_socket_read_start
    - setsockopt
    - bind
    - uv_loop_new
    - fprintf
    - usage
    - strchr
    - h2o_evloop_create
    - memset
    - strerror
    - h2o_evloop_socket_create
    - uv_run
    - exit
    - SSL_CTX_new
    - h2o_socket_connect
    - OpenSSL_add_all_algorithms
    - h2o_evloop_run
    - SSL_CTX_set_tmp_ecdh
    - SSL_CTX_set_options
    - strdup
    - SSL_CTX_use_PrivateKey_file
    - EC_KEY_new_by_curve_name
    - socket
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:41,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/socket-client.c:42,1
    - Dst: fwrite
      Src: /src/h2o/examples/libh2o/socket-client.c:47,1
    - Dst: h2o_buffer_consume
      Src: /src/h2o/examples/libh2o/socket-client.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 7
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: on_read
    functionSourceFile: /src/h2o/examples/libh2o/socket-client.c
    functionUses: 7
    functionsReached:
    - h2o_socket_close
    - fwrite
    - fprintf
    - h2o_buffer_consume
    linkageType: ''
    returnType: void
    signature: void on_read(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:55,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/socket-client.c:56,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/socket-client.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 7
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: on_write
    functionSourceFile: /src/h2o/examples/libh2o/socket-client.c
    functionUses: 5
    functionsReached:
    - h2o_socket_close
    - fprintf
    - h2o_socket_read_start
    linkageType: ''
    returnType: void
    signature: void on_write(h2o_socket_t *sock, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:68,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/socket-client.c:69,1
    - Dst: h2o_socket_write
      Src: /src/h2o/examples/libh2o/socket-client.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 7
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: on_handshake_complete
    functionSourceFile: /src/h2o/examples/libh2o/socket-client.c
    functionUses: 5
    functionsReached:
    - h2o_socket_close
    - h2o_socket_write
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_handshake_complete(h2o_socket_t *sock, const char *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:81,1
    - Dst: h2o_socket_close
      Src: /src/h2o/examples/libh2o/socket-client.c:82,1
    - Dst: h2o_socket_ssl_handshake
      Src: /src/h2o/examples/libh2o/socket-client.c:88,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/socket-client.c:88,1
    - Dst: h2o_socket_write
      Src: /src/h2o/examples/libh2o/socket-client.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 13
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: on_connect
    functionSourceFile: /src/h2o/examples/libh2o/socket-client.c
    functionUses: 10
    functionsReached:
    - h2o_socket_close
    - h2o_socket_ssl_handshake
    - h2o_socket_write
    - fprintf
    - h2o_iovec_init
    linkageType: ''
    returnType: void
    signature: void on_connect(h2o_socket_t *sock, const char *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/socket-client.c:99,1
    - Dst: getopt_long
      Src: /src/h2o/examples/libh2o/socket-client.c:106,1
    - Dst: SSL_load_error_strings
      Src: /src/h2o/examples/libh2o/socket-client.c:109,1
    - Dst: SSL_library_init
      Src: /src/h2o/examples/libh2o/socket-client.c:110,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/examples/libh2o/socket-client.c:111,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/examples/libh2o/socket-client.c:112,1
    - Dst: SSLv23_client_method
      Src: /src/h2o/examples/libh2o/socket-client.c:112,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/h2o/examples/libh2o/socket-client.c:113,1
    - Dst: H2O_TO_STR
      Src: /src/h2o/examples/libh2o/socket-client.c:113,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/socket-client.c:119,1
    - Dst: h2o_mem_realloc
      Src: /src/h2o/examples/libh2o/socket-client.c:122,1
    - Dst: fread
      Src: /src/h2o/examples/libh2o/socket-client.c:123,1
    - Dst: printf
      Src: /src/h2o/examples/libh2o/socket-client.c:130,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/socket-client.c:138,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/socket-client.c:140,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:147,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/socket-client.c:148,1
    - Dst: SSL_CTX_set_verify
      Src: /src/h2o/examples/libh2o/socket-client.c:153,1
    - Dst: uv_loop_new
      Src: /src/h2o/examples/libh2o/socket-client.c:156,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/examples/libh2o/socket-client.c:158,1
    - Dst: memset
      Src: /src/h2o/examples/libh2o/socket-client.c:162,1
    - Dst: getaddrinfo
      Src: /src/h2o/examples/libh2o/socket-client.c:166,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:167,1
    - Dst: gai_strerror
      Src: /src/h2o/examples/libh2o/socket-client.c:167,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/socket-client.c:168,1
    - Dst: h2o_socket_connect
      Src: /src/h2o/examples/libh2o/socket-client.c:171,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/socket-client.c:172,1
    - Dst: strerror
      Src: /src/h2o/examples/libh2o/socket-client.c:172,1
    - Dst: exit
      Src: /src/h2o/examples/libh2o/socket-client.c:173,1
    - Dst: uv_run
      Src: /src/h2o/examples/libh2o/socket-client.c:179,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/examples/libh2o/socket-client.c:181,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 94
    functionDepth: 11
    functionLinenumber: 94
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/h2o/examples/libh2o/socket-client.c
    functionUses: 11
    functionsReached:
    - SSL_CTX_load_verify_locations
    - getopt_long
    - getaddrinfo
    - gai_strerror
    - SSLv23_client_method
    - SSL_CTX_set_verify
    - h2o_iovec_init
    - H2O_STRLIT
    - H2O_TO_STR
    - uv_loop_new
    - printf
    - fprintf
    - h2o_evloop_create
    - strerror
    - memset
    - uv_run
    - fread
    - SSL_CTX_new
    - exit
    - h2o_mem_realloc
    - h2o_socket_connect
    - OpenSSL_add_all_algorithms
    - h2o_evloop_run
    - SSL_load_error_strings
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_websocket_close
      Src: /src/h2o/examples/libh2o/websocket.c:34,1
    - Dst: wslay_is_ctrl_frame
      Src: /src/h2o/examples/libh2o/websocket.c:38,1
    - Dst: wslay_event_queue_msg
      Src: /src/h2o/examples/libh2o/websocket.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - arg
    argTypes:
    - h2o_websocket_conn_t*
    - struct wslay_event_on_msg_recv_arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: on_ws_message
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 0
    functionsReached:
    - wslay_is_ctrl_frame
    - h2o_websocket_close
    - wslay_event_queue_msg
    linkageType: ''
    returnType: void
    signature: void on_ws_message(h2o_websocket_conn_t *conn, const struct wslay_event_on_msg_recv_arg
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_is_websocket_handshake
      Src: /src/h2o/examples/libh2o/websocket.c:48,1
    - Dst: h2o_upgrade_to_websocket
      Src: /src/h2o/examples/libh2o/websocket.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - req
    argTypes:
    - h2o_handler_t*
    - h2o_req_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: on_req
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 2
    functionsReached:
    - h2o_upgrade_to_websocket
    - h2o_is_websocket_handshake
    linkageType: ''
    returnType: int
    signature: int on_req(h2o_handler_t *self, h2o_req_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_load_error_strings
      Src: /src/h2o/examples/libh2o/websocket.c:61,1
    - Dst: SSL_library_init
      Src: /src/h2o/examples/libh2o/websocket.c:62,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/h2o/examples/libh2o/websocket.c:63,1
    - Dst: SSL_CTX_new
      Src: /src/h2o/examples/libh2o/websocket.c:65,1
    - Dst: SSLv23_server_method
      Src: /src/h2o/examples/libh2o/websocket.c:65,1
    - Dst: SSL_CTX_set_options
      Src: /src/h2o/examples/libh2o/websocket.c:66,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/h2o/examples/libh2o/websocket.c:69,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/websocket.c:70,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/h2o/examples/libh2o/websocket.c:73,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/websocket.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - cert_file
    - key_file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: setup_ssl
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_options
    - SSL_CTX_new
    - SSLv23_server_method
    - OpenSSL_add_all_algorithms
    - SSL_CTX_use_certificate_chain_file
    - fprintf
    - SSL_CTX_use_PrivateKey_file
    - SSL_load_error_strings
    - SSL_library_init
    linkageType: ''
    returnType: int
    signature: int setup_ssl(const char *cert_file, const char *key_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_mem_alloc
      Src: /src/h2o/examples/libh2o/websocket.c:90,1
    - Dst: uv_tcp_init
      Src: /src/h2o/examples/libh2o/websocket.c:91,1
    - Dst: uv_accept
      Src: /src/h2o/examples/libh2o/websocket.c:93,1
    - Dst: uv_close
      Src: /src/h2o/examples/libh2o/websocket.c:94,1
    - Dst: h2o_uv_socket_create
      Src: /src/h2o/examples/libh2o/websocket.c:98,1
    - Dst: h2o_accept
      Src: /src/h2o/examples/libh2o/websocket.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - listener
    - status
    argTypes:
    - uv_stream_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: on_accept
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_uv_socket_create
    - h2o_accept
    - uv_accept
    - h2o_mem_alloc
    - uv_close
    - uv_tcp_init
    linkageType: ''
    returnType: void
    signature: void on_accept(uv_stream_t *listener, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uv_tcp_init
      Src: /src/h2o/examples/libh2o/websocket.c:108,1
    - Dst: uv_ip4_addr
      Src: /src/h2o/examples/libh2o/websocket.c:109,1
    - Dst: uv_tcp_bind
      Src: /src/h2o/examples/libh2o/websocket.c:110,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/websocket.c:111,1
    - Dst: uv_strerror
      Src: /src/h2o/examples/libh2o/websocket.c:111,1
    - Dst: uv_listen
      Src: /src/h2o/examples/libh2o/websocket.c:114,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/websocket.c:115,1
    - Dst: uv_strerror
      Src: /src/h2o/examples/libh2o/websocket.c:115,1
    - Dst: uv_close
      Src: /src/h2o/examples/libh2o/websocket.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: create_listener
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 1
    functionsReached:
    - uv_strerror
    - uv_listen
    - fprintf
    - uv_ip4_addr
    - uv_close
    - uv_tcp_init
    - uv_tcp_bind
    linkageType: ''
    returnType: int
    signature: int create_listener(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2o_evloop_socket_accept
      Src: /src/h2o/examples/libh2o/websocket.c:135,1
    - Dst: h2o_accept
      Src: /src/h2o/examples/libh2o/websocket.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - listener
    - err
    argTypes:
    - h2o_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: on_accept
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 0
    functionsReached:
    - h2o_accept
    - h2o_evloop_socket_accept
    linkageType: ''
    returnType: void
    signature: void on_accept(h2o_socket_t *listener, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/h2o/examples/libh2o/websocket.c:146,1
    - Dst: htonl
      Src: /src/h2o/examples/libh2o/websocket.c:148,1
    - Dst: htons
      Src: /src/h2o/examples/libh2o/websocket.c:149,1
    - Dst: socket
      Src: /src/h2o/examples/libh2o/websocket.c:151,1
    - Dst: setsockopt
      Src: /src/h2o/examples/libh2o/websocket.c:152,1
    - Dst: bind
      Src: /src/h2o/examples/libh2o/websocket.c:153,1
    - Dst: listen
      Src: /src/h2o/examples/libh2o/websocket.c:153,1
    - Dst: h2o_evloop_socket_create
      Src: /src/h2o/examples/libh2o/websocket.c:157,1
    - Dst: h2o_socket_read_start
      Src: /src/h2o/examples/libh2o/websocket.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 161
    functionName: create_listener
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 1
    functionsReached:
    - setsockopt
    - htons
    - listen
    - htonl
    - h2o_socket_read_start
    - bind
    - memset
    - socket
    - h2o_evloop_socket_create
    linkageType: ''
    returnType: int
    signature: int create_listener(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2o_config_init
      Src: /src/h2o/examples/libh2o/websocket.c:170,1
    - Dst: h2o_config_register_host
      Src: /src/h2o/examples/libh2o/websocket.c:171,1
    - Dst: h2o_iovec_init
      Src: /src/h2o/examples/libh2o/websocket.c:171,1
    - Dst: H2O_STRLIT
      Src: /src/h2o/examples/libh2o/websocket.c:171,1
    - Dst: h2o_config_register_path
      Src: /src/h2o/examples/libh2o/websocket.c:172,1
    - Dst: h2o_create_handler
      Src: /src/h2o/examples/libh2o/websocket.c:173,1
    - Dst: uv_loop_init
      Src: /src/h2o/examples/libh2o/websocket.c:177,1
    - Dst: h2o_context_init
      Src: /src/h2o/examples/libh2o/websocket.c:178,1
    - Dst: h2o_context_init
      Src: /src/h2o/examples/libh2o/websocket.c:180,1
    - Dst: h2o_evloop_create
      Src: /src/h2o/examples/libh2o/websocket.c:180,1
    - Dst: create_listener
      Src: /src/h2o/examples/libh2o/websocket.c:192,1
    - Dst: fprintf
      Src: /src/h2o/examples/libh2o/websocket.c:193,1
    - Dst: strerror
      Src: /src/h2o/examples/libh2o/websocket.c:193,1
    - Dst: uv_run
      Src: /src/h2o/examples/libh2o/websocket.c:198,1
    - Dst: h2o_evloop_run
      Src: /src/h2o/examples/libh2o/websocket.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 165
    functionDepth: 11
    functionLinenumber: 165
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/h2o/examples/libh2o/websocket.c
    functionUses: 11
    functionsReached:
    - h2o_config_register_host
    - H2O_STRLIT
    - uv_run
    - create_listener
    - uv_loop_init
    - strerror
    - h2o_evloop_run
    - h2o_context_init
    - h2o_evloop_create
    - h2o_create_handler
    - h2o_config_init
    - fprintf
    - h2o_config_register_path
    - h2o_iovec_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/h2o/deps/quicly/fuzz/packet.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- winerror.h
- ../../../../lib/handler/throttle_resp.c
- ../../../../lib/common/hostinfo.c
- yoml-parser.h
- h2o/multithread.h
- ../lib/hpke.c
- mrbconf.h
- ../../src/standalone.h
- h2o/file.h
- arm/unacl/scalarmult.c
- openssl/chacha.h
- arpa/inet.h
- quicly/sendstate.h
- mbedtls/mbedtls_config.h
- BaseTsd.h
- h2o/http2_scheduler.h
- vector
- ../../../../lib/handler/compress/gzip.c
- dlfcn.h
- h2o-probes.h
- salsa20.h
- quicly/cid.h
- sys/time.h
- glib.h
- cilk/cilk_api.h
- ../../../../lib/http2/hpack.c
- standalone.h
- openssl/x509v3.h
- mruby/data.h
- sha3.h
- ../lib/picotls.c
- ../../../src/ssl.c
- h2o/cache.h
- khash.h
- apibreak.h
- aes.h
- mbedtls/ecdh.h
- ./quiclb-impl.h
- ../../../../lib/common/url.c
- picotest/picotest.h
- CommonCrypto/CommonDigest.h
- brotli/encode.h
- mruby/re.h
- picohttpparser.h
- ../hiredis.h
- getopt.h
- boxing_no.h
- http2_common.h
- ksw.h
- openssl/ec.h
- ../lib/ptlsbcrypt.c
- adapters/macosx.h
- ../lib/cifra.c
- h2o/url.h
- sys/eventfd.h
- openssl/opensslconf.h
- h2o/hiredis_.h
- oniguruma.h
- targetver.h
- bgzf.h
- win32.h
- spawn.h
- neverbleed.h
- ../../include/picotls/pembase64.h
- zstd.h
- mruby/version.h
- stdbool.h
- sys/un.h
- h2o/mruby_.h
- ../lib/fusion.c
- h2o/http2_internal.h
- grp.h
- AvailabilityMacros.h
- opcode.h
- ksort.h
- cilk/cilk.h
- h2o/configurator.h
- resolv.h
- picotls-probes.h
- cstddef
- priv.h
- zlib.h
- mbedtls/chacha20.h
- openssl/hmac.h
- limits.h
- quicly.h
- sys/file.h
- picotls/openssl.h
- mruby/khash.h
- knhx.h
- sys/byteorder.h
- winsock.h
- ../../../../lib/common/multithread.c
- ./../probes_.h
- kvec.h
- socket/uv-binding.c.h
- sys/procctl.h
- socket/uv-binding.h
- util.h
- openssl/bn.h
- exception
- khmm.h
- ws2tcpip.h
- kgraph.h
- gf128.h
- mruby/hash.h
- ../../../../lib/common/socket.c
- boxing_word.h
- wmmintrin.h
- ruby.pb.h
- yaml_private.h
- kmath.h
- sys/capability.h
- kurl.h
- linux/errqueue.h
- quicly/remote_cid.h
- ../../../../lib/common/serverutil.c
- h2o/hostinfo.h
- sys/syscall.h
- hiredis.h
- picotls/asn1.h
- example-qt.h
- h2o/openssl_backport.h
- libintl.h
- h2o/http2_common.h
- qat_bssl.h
- ../../../../lib/http3/server.c
- netinet/udp.h
- quicly/constants.h
- picotls/minicrypto.h
- async.h
- ../../../../lib/common/cache.c
- test.h
- quicly/frame.h
- ctype.h
- mach-o/getsect.h
- uECC_vli.h
- net.h
- adapters/libsdevent.h
- openssl/bio.h
- ./libaegis.h
- mruby/presym/disable.h
- read.h
- sys/sysctl.h
- yrmcds_portability.h
- h2o/version.h
- semihost.h
- norx.h
- libkern/OSByteOrder.h
- ../src/yaml_private.h
- mbedtls/build_info.h
- stdint.h
- sdsalloc.h
- platform-specific.inc
- sys/endian.h
- fcntl.h
- lex.def
- string.h
- mruby/throw.h
- h2o/socket.h
- strings.h
- h2o/socketpool.h
- yoml.h
- gkc.h
- socket/evloop.c.h
- evloop/epoll.c.h
- brotli/decode.h
- handy.h
- ../../../../lib/http2/casper.c
- adapters/libhv.h
- mruby/numeric.h
- mruby/time.h
- h2o/filecache.h
- openssl/evp.h
- mruby/dump.h
- drbg.h
- ../../../../lib/handler/compress.c
- io.h
- adapters/glib.h
- mruby/presym/table.h
- kbtree.h
- ../probes_.h
- quicly-tracer.h
- h2o/qpack.h
- picotls/pembase64.h
- mruby.h
- quicly/loss.h
- ../picotls.h
- sys/types.h
- openssl/dh.h
- ../../../../lib/handler/redirect.c
- string
- float.h
- bcrypt.h
- mruby/ext/io.h
- ../../include/picotls/minicrypto.h
- mbedtls/error.h
- openssl_hostname_validation.h
- stdio.h
- common.h
- ../libaegis.h
- poly1305.h
- ./chacha20poly1305.h
- intrin.h
- yrmcds.h
- h2o/linklist.h
- sstream
- socket/evloop.h
- quicly/sentmap.h
- poll.h
- yrmcds_text.h
- h2o/http1.h
- h2o/balancer.h
- h2o/cache_digests.h
- src/libfuzzer/libfuzzer_macro.h
- ./test.h
- dict.h
- netdb.h
- Win/dirent.c
- h2o-gitrev.h
- openssl/provider.h
- fstream
- TargetConditionals.h
- h2o/timerwheel.h
- shitlisp.h
- mruby/endian.h
- ../../../../lib/core/util.c
- mruby/irep.h
- sys/param.h
- mruby/error.h
- openssl/x509.h
- sys/sendfile.h
- ./probes_.h
- ../../../../lib/common/time.c
- theft.h
- ../test.h
- nmmintrin.h
- proto_to_ruby.h
- chash.h
- alloc.h
- ../../../../lib/common/timerwheel.c
- ../../../../lib/common/absprio.c
- mruby/array.h
- ../lib/probes_.h
- openssl/mlkem.h
- QSocketNotifier
- knetfile.h
- const.cstub
- setjmp.h
- ../../../../lib/http2/scheduler.c
- apistring.h
- openssl/rand.h
- prp.h
- endian.h
- mrdbconf.h
- adapters/libuv.h
- picotls/fusion.h
- x86intrin.h
- signal.h
- node.h
- ../semihost.h
- cstdint
- openssl/curve25519.h
- basetsd.h
- apilist.h
- hmac.h
- testsha.h
- sys/select.h
- ../../include/picotls.h
- quicly_mock.h
- blockwise.h
- h2o/send_state.h
- psa/crypto_values.h
- sys/epoll.h
- wincrypt.h
- h2o/http2.h
- ev.h
- evloop/kqueue.c.h
- Winsock2.h
- pthread.h
- embedded.c.h
- kson.h
- psa/crypto_struct.h
- MRB_READLINE_HISTORY
- iostream
- ../lib/quicly.c
- wincompat.h
- mruby/compile.h
- openssl/rsa.h
- adapters/libev.h
- h2o/pipe_sender.h
- uv.h
- yaml.h
- openssl/poly1305.h
- sys/mman.h
- mruby_input_stream.h
- openssl/x509_vfy.h
- ../../../../lib/handler/file.c
- quicly/recvstate.h
- h2o/hpack.h
- config.h
- file/templates.c.h
- event2/event.h
- quicly/ranges.h
- mruby/presym/scanning.h
- h2o/token.h
- alloca.h
- bigint.h
- sys/ptrace.h
- CoreFoundation/CoreFoundation.h
- linux/tls.h
- liburing.h
- sys/utsname.h
- QTimer
- mruby/proc.h
- h2o/http2_casper.h
- picotls/ffx.h
- curve-specific.inc
- picotest.h
- quicly/maxsender.h
- async_private.h
- uECC.h
- ../../test.h
- ../lib/openssl.c
- dict.c
- onigmo.h
- mruby/common.h
- emmintrin.h
- ../../../../lib/common/rand.c
- netinet/in.h
- sys/prctl.h
- adapters/ivykis.h
- chacha20poly1305.h
- stdlib.h
- libgen.h
- tmmintrin.h
- pbkdf2.h
- quicly/local_cid.h
- systemd/sd-event.h
- pthread_np.h
- asm_arm.inc
- h2o/memcached.h
- bitops.h
- mstcpip.h
- ae.h
- netinet/tcp.h
- adapters/ae.h
- ../../../../lib/handler/headers.c
- openssl/pem.h
- picotls/certificate_compression.h
- h2o/memory.h
- unistd.h
- quicly-probes.h
- mrdberror.h
- fmacros.h
- quicly/defaults.h
- sockcompat.h
- err.h
- inttypes.h
- malloc.h
- h2o/httpclient.h
- stdarg.h
- ../../../../lib/handler/fastcgi.c
- immintrin.h
- mruby/presym.h
- sys/event.h
- memory.h
- sys/wait.h
- ../../../../lib/http3/qpack.c
- h2o/http3_common.h
- mruby/string.h
- mruby/value.h
- ../async.h
- sha1.h
- mbedtls/pem.h
- adapters/qt.h
- types.h
- stack
- openssl/ecdh.h
- picotls.h
- apiprint.h
- picotls/ptlsbcrypt.h
- ../chacha20poly1305.h
- kseq.h
- mruby/presym/id.h
- h2o/time_.h
- mrdb.h
- openssl/sha.h
- openssl/err.h
- adapters/redismoduleapi.h
- ../../../../lib/handler/mimemap.c
- sys/ioctl.h
- curl/curl.h
- kbit.h
- mruby/presym/enable.h
- h2o/http3_server.h
- known_errors_def.cstub
- psa/crypto.h
- cf_config.h
- ostream
- stddef.h
- ../deps/picotest/picotest.h
- evloop/poll.c.h
- quicly/linklist.h
- adapters/poll.h
- klist.h
- lz4/lib/lz4.h
- dstr.h
- assert.h
- hiredis_ssl.h
- aegis.h
- ../lib/uecc.c
- mruby/variable.h
- direct.h
- h2o/serverutil.h
- pwd.h
- mruby/internal.h
- openssl/crypto.h
- h2o/io_uring.h
- ../../include/picotls/openssl.h
- redismodule.h
- ../../../../lib/http2/cache_digests.c
- ../../../../../lib/common/balancer/roundrobin.c
- _mingw.h
- ../../../../lib/handler/connect.c
- ../deps/cifra/src/ext/handy.h
- parson.h
- mbedtls/pk.h
- mruby/istruct.h
- testutil.h
- hpack_huffman_table.h
- ../../../../lib/common/httpclient.c
- winsock2.h
- sys/sysmacros.h
- modes.h
- ../../../../lib/common/string.c
- sds.h
- curve25519.h
- h2o/absprio.h
- driver_common.h
- errno.h
- asm_avr.inc
- sys/resource.h
- h2o/websocket.h
- mruby/gc.h
- boxing_nan.h
- arpa/nameser.h
- openssl/async.h
- sys/stat.h
- openssl/objects.h
- h2o/token_table.h
- kstring.h
- execinfo.h
- sys/socket.h
- quicly/cc.h
- mruby/class.h
- mruby/debug.h
- linenoise.h
- SDKDDKVer.h
- stdafx.h
- cutest.h
- aes-common.h
- wslay/wslay.h
- h2o/redis.h
- hv/hloop.h
- picohash.h
- ../../deps/ssl-conservatory/openssl/openssl_hostname_validation.c
- dirent.h
- ../../../../lib/core/proxy.c
- testnorx.katdata.inc
- curve25519.tweetnacl.c
- token_table.h
- ../../../../../lib/common/balancer/least_conn.c
- windows.h
- CommonCrypto/CommonHMAC.h
- mruby/object.h
- picotls/mbedtls.h
- ../../include/picotls/asn1.h
- h2o.h
- ../deps/picotls/t/util.h
- cloexec.h
- h2o/header.h
- mruby/ops.h
- h2o/http3_internal.h
- sys/uio.h
- MRB_READLINE_HEADER
- openssl/ssl.h
- openssl/engine.h
- quicly/rate.h
- tassert.h
- netinet/ip.h
- ../sockcompat.h
- math.h
- adapters/libevent.h
- sha2.h
- error.h
- value_array.h
- testhelp.h
- QCoreApplication
- h2o/rand.h
- quicly/pacer.h
- algorithm
- iv.h
- t.h
- ../../../../lib/http3/frame.c
- ../picotls/wincompat.h
- openssl/opensslv.h
- complex.h
- time.h
- quicly/streambuf.h
- mruby/range.h
- ../../../test.h
- h2o/string_.h
- mruby/embedded.c.h
- golombset.h
- osreldate.h
- mruby/opcode.h
- ../../../../lib/core/headers.c
report: name
sources:
- function_names:
  - write_int
  - read_int
  - get_headers_payload
  - encode_qif
  - CLEAR
  - EMIT
  - decode_header_block
  - retry_blocked
  - decode_qif
  - usage
  - main
  source_file: /src/h2o/t/qif.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REQUIRED_PSEUDO_HEADERS
      pos:
        line_end: 248
        line_start: 245
        source_file: /src/h2o/t/qif.c
      type_or_value: "(H2O_HPACK_PARSE_HEADERS_METHOD_EXISTS | H2O_HPACK_PARSE_HEADERS_SCHEME_EXISTS
        | H2O_HPACK_PARSE_HEADERS_AUTHORITY_EXISTS |    \\\n     H2O_HPACK_PARSE_HEADERS_PATH_EXISTS)"
    structs:
    - fields:
      - name: headers
        type: h2o_headers_t
      item_type: struct
      name: message
      pos:
        line_end: 84
        line_start: 72
        source_file: /src/h2o/t/qif.c
    - fields:
      - name: stream_id
        type: uint64_t
      - name: blocked_ref
        type: uint64_t
      - name: '*buf'
        type: uint8_t
      - name: len
        type: size_t
      item_type: struct
      name: blocked_header_t
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/h2o/t/qif.c
    typedefs:
    - item_type: typedef
      name: (struct blocked_header_t)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/h2o/t/qif.c
      type: H2O_VECTOR
    union: []
- function_names:
  - die
  - dief
  - getaddrinfo
  - freeaddrinfo
  source_file: /src/h2o/t/injectaddr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - header_len_high
  - header_len_low
  - fill_header
  - output
  - main
  source_file: /src/h2o/t/quic-ndec-initial-gen.c
  types:
    enum:
    - enumerators:
      - name: SCID_NORMAL
      - name: SCID_FLIP
      - name: SCID_ZERO_LEN
      item_type: enum
      name: scid_mode
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
    preproc_defs:
    - item_type: preproc_def
      name: PACKET_LEN
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
      type_or_value: '1280'
    - item_type: preproc_def
      name: HEADER_LEN_MAX
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
      type_or_value: '35'
    - item_type: preproc_def
      name: DCID_LEN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/t/quic-ndec-initial-gen.c
      type_or_value: '17'
    structs: []
    typedefs: []
    union: []
- function_names:
  - timer_cb
  - prop_wake_time_should_be_before_expiry
  - prop_inserted_timer_should_run_at_expiry
  - prop_inserted_timer_should_not_run_before_expiry
  - prop_inserted_timer_should_not_run_before_reaching_expiry
  - alloc_cb
  - free_cb
  - print_cb
  - TEST
  - main
  source_file: /src/h2o/t/00prop/prop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMER_MAX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/t/00prop/prop.c
      type_or_value: ((1UL << 36) - 1)
    structs:
    - fields:
      - name: t
        type: h2o_timerwheel_entry_t
      - name: called
        type: int
      item_type: struct
      name: test_timer
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/h2o/t/00prop/prop.c
    - fields:
      - name: init_time
        type: uint64_t
      - name: first_time
        type: uint64_t
      - name: second_time
        type: uint64_t
      item_type: struct
      name: test_input
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/h2o/t/00prop/prop.c
    typedefs: []
    union: []
- function_names:
  - loopback_on_send
  - get_sockname
  - get_peername
  - h2o_loopback_create
  - h2o_loopback_destroy
  - h2o_loopback_run_loop
  - sha1sum
  - test_loopback
  - main
  source_file: /src/h2o/t/00unit/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/t/00unit/test.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_conn_t
      - name: '*body'
        type: h2o_buffer_t
      - name: _ostr_final
        type: h2o_ostream_t
      - name: _is_complete
        type: int
      - name: req
        type: h2o_req_t
      item_type: struct
      name: st_h2o_loopback_conn_t
      pos:
        line_end: 40
        line_start: 27
        source_file: /src/h2o/t/00unit/test.h
    typedefs: []
    union: []
- function_names:
  - encrypt_and_decrypt_ticket_once
  - test_encrypt_ticket_ptls
  - test_load_tickets_file
  - test_serialize_tickets
  - OK_VALUE
  - OK_MEMCMP
  - OK_MEMCMPF
  - test_memcached_ticket_update
  - test_src__ssl_c
  source_file: /src/h2o/t/00unit/src/ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_KEY
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/h2o/t/00unit/src/ssl.c
      type_or_value: '"h2o:session-ticket-test"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_authority
  - check
  - test_issues293
  source_file: /src/h2o/t/00unit/issues/293.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_percent_encode_zero_byte
  source_file: /src/h2o/t/00unit/issues/percent-encode-zero-byte.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_parse_proxy_line
  - check_path
  - test_extract_push_path_from_link_header
  - DO_CHECK
  - test_build_destination
  - test_build_destination_escaping
  - test_lib__core__util_c
  source_file: /src/h2o/t/00unit/lib/core/util.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: is_critical
        type: int
      item_type: struct
      name: expected_t
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/h2o/t/00unit/lib/core/util.c
    - fields:
      - name: '*pathconf'
        type: char
      - name: '*dest'
        type: char
      - name: '*input'
        type: char
      - name: '*output'
        type: char
      item_type: struct
      name: "tests[] = {\n        {\"/abc\", \"/def\", \"/abc/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/%61bc/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/%61%62c/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/%61%62%63/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/./%61%62%63/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/../%61%62%63/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/././%61%62%63/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/./.././%61%62%63/xyz?query&m=n/o\", \"/def/xyz?query&m=n/o\"},\n
        \       {\"/abc\", \"/def\", \"/./../blah/../%61%62%63/xyz?query&m=n/o\",
        \"/def/xyz?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/./../blah/.././%61%62c/xyz?query&m=n/o\",
        \"/def/xyz?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/./../blah/.././../../%61b%63/xyz?query&m=n/o\",
        \"/def/xyz?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/?query&m=n/o\",
        \"/def/xyz/?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/.?query&m=n/o\",
        \"/def/xyz/.?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/./?query&m=n/o\",
        \"/def/xyz/./?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/..?query&m=n/o\",
        \"/def/xyz/..?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/../?query&m=n/o\",
        \"/def/xyz/../?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/xyz/../a?query&m=n/o\",
        \"/def/xyz/../a?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/%yz/?query&m=n/o\",
        \"/def/%yz/?query&m=n/o\"},\n        {\"/abc\", \"/def\", \"/abc/%78yz/?query&m=n/o\",
        \"/def/%78yz/?query&m=n/o\"},\n        {\"/\", \"/\", \"/xyz/../mno\", \"/xyz/../mno\"},\n
        \       {\"/\", \"/\", \"/xyz/../mno/..\", \"/xyz/../mno/..\"},\n        {\"/\",
        \"/def\", \"/xyz/../mno\", \"/def/xyz/../mno\"},\n        {\"/\", \"/def/\",
        \"/xyz/../mno\", \"/def/xyz/../mno\"},\n        {\"/\", \"/def\", \"/xyz/../\",
        \"/def/xyz/../\"},\n        {\"/\", \"/def/\", \"/xyz/..\", \"/def/xyz/..\"},\n
        \   }"
      pos:
        line_end: 215
        line_start: 210
        source_file: /src/h2o/t/00unit/lib/core/util.c
    typedefs: []
    union: []
- function_names:
  - test_register_path
  - CHECK
  - test_lib__core_config_c
  source_file: /src/h2o/t/00unit/lib/core/config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_set_header_token
  - test_lib__core__headers_c
  source_file: /src/h2o/t/00unit/lib/core/headers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_rewrite_location
  - test_lib__core__proxy_c
  source_file: /src/h2o/t/00unit/lib/core/proxy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib__http3_frames
  source_file: /src/h2o/t/00unit/lib/http3/frame.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_payload
  - do_test_simple
  - test_simple
  - do_test_decode_request
  - test_decode_literal_invalid_name
  - test_decode_literal_invalid_value
  - test_decode_referred
  - feed_encoder_stream
  - do_test_decode_field_section
  - test_rfc9204_appendix_b
  - do_test_decoder_stream_error
  - do_test_decode_context_error
  - do_test_decode_header_error
  - test_decode_errors
  - test_decode_edge_cases
  - test_lib__http3_qpack
  source_file: /src/h2o/t/00unit/lib/http3/qpack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare_node
  - get_top_node
  - run_once
  - test_scheduler
  - test_lib__http3_server
  source_file: /src/h2o/t/00unit/lib/http3/server.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: struct st_h2o_http3_req_scheduler_node_t
      - name: id
        type: unsigned
      item_type: struct
      name: sched_node_t
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/h2o/t/00unit/lib/http3/server.c
    typedefs: []
    union: []
- function_names:
  - send_empty_message
  - pop_empty_message
  - on_ping
  - on_pong
  - on_shutdown
  - create_loop
  - destroy_loop
  - destroy_loop
  - worker_main
  - test_lib__common__multithread_c
  source_file: /src/h2o/t/00unit/lib/common/multithread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: create_loop
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/t/00unit/lib/common/multithread.c
      type_or_value: h2o_evloop_create
    structs:
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: '*queue'
        type: h2o_multithread_queue_t
      item_type: struct
      name: st_thread_t
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/h2o/t/00unit/lib/common/multithread.c
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: '*queue'
        type: h2o_multithread_queue_t
      - name: pong_receiver
        type: h2o_multithread_receiver_t
      - name: shutdown_receiver
        type: h2o_multithread_receiver_t
      - name: received_shutdown
        type: int
      item_type: struct
      name: main_thread
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/h2o/t/00unit/lib/common/multithread.c
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: '*queue'
        type: h2o_multithread_queue_t
      - name: ping_receiver
        type: h2o_multithread_receiver_t
      - name: num_ping_received
        type: size_t
      - name: should_exit
        type: int
      item_type: struct
      name: worker_thread
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/h2o/t/00unit/lib/common/multithread.c
    typedefs: []
    union: []
- function_names:
  - test_normalize_path
  - test_hostport
  - test_parse
  - test_parse_relative
  - test_resolve
  - test_lib__common__url_c
  source_file: /src/h2o/t/00unit/lib/common/url.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_should_use_h2
  - test_lib__common__httpclient_c
  source_file: /src/h2o/t/00unit/lib/common/httpclient.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_on_alpn_select
  - test_sliding_counter
  - test_adjust_notsent_lowat
  - test_prepare_for_latency_optimization
  - test_zerocopy_buffers
  - test_zerocopy_buffers_random
  - RAND
  - test_lib__common__socket_c
  source_file: /src/h2o/t/00unit/lib/common/socket.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fetch_tcp_info
        type: "struct {\n        int ret;\n    }"
      - name: minimize_notsent_lowat
        type: "struct {\n        int ret;\n        unsigned cur;\n        size_t call_cnt;\n
          \   }"
      - name: get_cipher
        type: "struct {\n        unsigned long ret;\n    }"
      item_type: struct
      name: cb_ret_vars
      pos:
        line_end: 86
        line_start: 74
        source_file: /src/h2o/t/00unit/lib/common/socket.c
    typedefs: []
    union: []
- function_names:
  - test_strstr
  - test_stripws
  - test_get_filext
  - test_next_token
  - NEXT
  - test_next_token2
  - NEXT
  - test_next_token3
  - NEXT
  - test_decode_base64
  - test_htmlescape
  - TEST
  - test_uri_escape
  - TEST
  - test_uri_unescape
  - TEST
  - test_at_position
  - test_join_list
  - test_split
  - TEST
  - test_lib__common__string_c
  source_file: /src/h2o/t/00unit/lib/common/string.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DUMP_WHEEL
  - DUMP_WHEEL
  - my_callback
  - lcg_rand
  - test_slot_calc
  - test_add_fixed_timers
  - test_del_timers
  - test_add_rand_timers
  - test_invalid_timer
  - test_exhaustive_on_expire
  - test_exhaustive
  - test_get_wake_at
  - OK
  - test_overflow
  - test_multiple_cascade_in_sparse_wheels
  - test_lib__common__timerwheel_c
  source_file: /src/h2o/t/00unit/lib/common/timerwheel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/t/00unit/lib/common/timerwheel.c
      type_or_value: '14000'
    - item_type: preproc_def
      name: NTIMERS
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/h2o/t/00unit/lib/common/timerwheel.c
      type_or_value: '54'
    structs:
    - fields:
      - name: now
        type: uint64_t
      - name: num_linked
        type: size_t
      - name: unused
        type: h2o_linklist_t
      item_type: struct
      name: test_exhaustive_data
      pos:
        line_end: 186
        line_start: 182
        source_file: /src/h2o/t/00unit/lib/common/timerwheel.c
    typedefs: []
    union: []
- function_names:
  - test_format_uuid_rfc4122
  - test_lib__common__rand_c
  source_file: /src/h2o/t/00unit/lib/common/rand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_aton
  - test_lib__common__hostinfo_c
  source_file: /src/h2o/t/00unit/lib/common/hostinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_server_starter
  - test_read_command_basic
  - test_read_command_stdin
  - test_read_command
  - test_lib__common__serverutil_c
  source_file: /src/h2o/t/00unit/lib/common/serverutil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_parser
  - test_urgency_to_weight
  - test_lib__common__absprio_c
  source_file: /src/h2o/t/00unit/lib/common/absprio.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib__common__time_c
  source_file: /src/h2o/t/00unit/lib/common/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_destroy
  - test_lib__common__cache_c
  source_file: /src/h2o/t/00unit/lib/common/cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_targets
  - free_targets
  - test_when_backend_down
  - check_if_acceptable
  - test_least_conn
  - test_least_conn_weighted
  - test_lib__common__balancer__least_conn_c
  source_file: /src/h2o/t/00unit/lib/common/balancer/least_conn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_targets
  - free_targets
  - test_when_backend_down
  - check_weight_distribution
  - test_round_robin
  - test_round_robin_weighted
  - test_lib__common__balancer__roundrobin_c
  source_file: /src/h2o/t/00unit/lib/common/balancer/roundrobin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_request
  - check_flatten
  - test_hpack
  - TEST
  - TEST
  - parse_and_compare_request
  - test_hpack_push
  - test_hpack_dynamic_table
  - test_token_wo_hpack_id
  - do_test_inherit_invalid
  - test_inherit_invalid
  - test_dynamic_table_size_update
  - do_test_more_soft_error
  - test_more_soft_errors
  - test_lib__http2__hpack
  source_file: /src/h2o/t/00unit/lib/http2/hpack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_calc_hash
  - test_decode
  - test_lib__http2__cache_digests
  source_file: /src/h2o/t/00unit/lib/http2/cache_digests.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_end_of_cookie_value
  - test_calc_key
  - test_lookup
  - test_cookie
  - test_cookie_merge
  - test_lib__http2__casper
  source_file: /src/h2o/t/00unit/lib/http2/casper.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_queue
  - iterate_cb
  - test_round_robin
  - test_priority
  - test_dependency
  - test_exclusive
  - test_firefox
  - dump_tree
  - test_reprioritize
  - test_change_weight
  - test_exclusive_at_current_pos
  - test_lib__http2__scheduler
  source_file: /src/h2o/t/00unit/lib/http2/scheduler.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_http2_scheduler_queue_node_t
      - name: weight
        type: uint16_t
      - name: cnt
        type: size_t
      item_type: struct
      name: node_t
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/h2o/t/00unit/lib/http2/scheduler.c
    - fields:
      - name: ref
        type: h2o_http2_scheduler_openref_t
      - name: '*name'
        type: char
      - name: still_is_active
        type: int
      - name: bail_out
        type: int
      item_type: struct
      name: node_t
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/h2o/t/00unit/lib/http2/scheduler.c
    typedefs: []
    union: []
- function_names:
  - check_header
  - check_multirange_body
  - test_process_range
  - test_if_modified_since
  - test_if_match
  - test_if_range
  - test_range_req
  - test_strong_etag_cmp
  - test_lib__handler__file_c
  source_file: /src/h2o/t/00unit/lib/handler/file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_result
  - test_gzip_simple
  - test_gzip_multi
  - test_lib__handler__gzip_c
  source_file: /src/h2o/t/00unit/lib/handler/compress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/t/00unit/lib/handler/compress.c
      type_or_value: '256'
    - item_type: preproc_def
      name: P1
      pos:
        line_end: 87
        line_start: 83
        source_file: /src/h2o/t/00unit/lib/handler/compress.c
      type_or_value: "\"Alice was beginning to get very tired of sitting by her sister
        on the bank, and of having nothing to do: once or twice she \"  \\\n    \"had
        peeped into the book her sister was reading, but it had no pictures or conversations
        in it, `and what is the use of a \"   \\\n    \"book,' thought Alice `without
        pictures or conversation?'\\n\\n\""
    - item_type: preproc_def
      name: P2
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/h2o/t/00unit/lib/handler/compress.c
      type_or_value: "\"So she was considering in her own mind (as well as she could,
        for the hot day made her feel very sleepy and stupid), \"        \\\n    \"whether
        the pleasure of making a daisy-chain would be worth the trouble of getting
        up and picking the daisies, when \"         \\\n    \"suddenly a White Rabbit
        with pink eyes ran close by her.\\n\\n\""
    - item_type: preproc_def
      name: P3
      pos:
        line_end: 99
        line_start: 91
        source_file: /src/h2o/t/00unit/lib/handler/compress.c
      type_or_value: "\"There was nothing so very remarkable in that; nor did Alice
        think it so very much out of the way to hear the Rabbit say to \"  \\\n    \"itself,
        `Oh dear! Oh dear! I shall be late!' (when she thought it over afterwards,
        it occurred to her that she ought to \"     \\\n    \"have wondered at this,
        but at the time it all seemed quite natural); but when the Rabbit actually
        took a watch out of its \"   \\\n    \"waistcoat-pocket, and looked at it,
        and then hurried on, Alice started to her feet, for it flashed across her
        mind that she \" \\\n    \"had never before seen a rabbit with either a waistcoat-pocket,
        or a watch to take out of it, and burning with curiosity, \"    \\\n    \"she
        ran across the field after it, and fortunately was just in time to see it
        pop down a large rabbit-hole under the \"        \\\n    \"hedge.\\n\\n\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_header
  - test_lib__handler__redirect_c
  source_file: /src/h2o/t/00unit/lib/handler/redirect.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_params
  - DECODE_UINT16
  - test_build_request
  - test_lib__handler__fastcgi_c
  source_file: /src/h2o/t/00unit/lib/handler/fastcgi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_to_bitmask
  - add_ipv4_dest_addr
  - add_ipv6_dest_addr
  - get_port
  - test_get_next_server_address_for_connect
  - test_lib__handler__connect_c
  source_file: /src/h2o/t/00unit/lib/handler/connect.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - headers_are
  - setup_headers
  - test_lib__handler__headers_c
  source_file: /src/h2o/t/00unit/lib/handler/headers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib__handler__throttle_resp_c
  source_file: /src/h2o/t/00unit/lib/handler/throttle_resp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_default_attributes
  - is_mimetype
  - test_basic
  - test_dynamic
  - test_lib__handler__mimemap_c
  source_file: /src/h2o/t/00unit/lib/handler/mimemap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_session
  - save_session
  - load_http3_session_cb
  - save_http3_token_cb
  - save_http3_ticket_cb
  - add_header
  - create_timeout
  - on_exit_deferred
  - on_error
  - input_on_read
  - build_capsule_header
  - tunnel_on_udp_sock_read
  - tunnel_on_udp_read
  - input_proceed_request
  - start_request
  - on_next_request
  - print_headers
  - on_body
  - print_status_line
  - on_informational
  - on_head
  - filler_remaining_bytes
  - filler_on_io_timeout
  - filler_proceed_request
  - on_connect
  - usage
  - create_udp_socket
  - on_sigfatal
  - main
  source_file: /src/h2o/src/httpclient.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_IO_TIMEOUT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/src/httpclient.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: CA_PATH
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/h2o/src/httpclient.c
      type_or_value: '"/share/h2o/ca-bundle.crt"'
    structs:
    - fields:
      - name: '*target'
        type: char
      - name: '*method'
        type: char
      - name: headers[256]
        type: "struct {\n        h2o_iovec_t name;\n        h2o_iovec_t value;\n    }"
      - name: num_headers
        type: size_t
      - name: body_size
        type: size_t
      - name: '*connect_to'
        type: h2o_url_t
      item_type: struct
      name: req = {NULL, "GET"}
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/h2o/src/httpclient.c
    - fields:
      - name: '*sock'
        type: h2o_socket_t
      - name: closed
        type: int
      item_type: struct
      name: input
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/h2o/src/httpclient.c
    - fields:
      - name: tls_session
        type: ptls_iovec_t
      - name: quic_tp
        type: quicly_transport_parameters_t
      item_type: struct
      name: loaded
      pos:
        line_end: 175
        line_start: 172
        source_file: /src/h2o/src/httpclient.c
    - fields:
      - name: timeout
        type: h2o_timer_t
      - name: '*ptr'
        type: void
      item_type: struct
      name: st_timeout
      pos:
        line_end: 259
        line_start: 256
        source_file: /src/h2o/src/httpclient.c
    typedefs: []
    union: []
- function_names:
  - set_cloexec
  - on_neverbleed_fork
  - get_localstate_path
  - on_config_acme
  - get_acme_cert_and_key
  - spawn_acme_loader
  - close_acme_loader_pipe
  - async_nb_get
  - async_nb_pop
  - async_nb_push
  - async_nb_on_write_complete
  - async_nb_submit_write_pending
  - async_nb_run_sync
  - async_nb_read_ready
  - async_nb_notify_fd
  - async_nb_do_async_transaction
  - async_nb_transaction
  - async_nb_job_free
  - async_nb_job_set_completion_callback
  - async_nb_job_handle_response
  - async_nb_job_new
  - async_nb_job_submit
  - async_nb_picotls_sign
  - async_nb_quic_resume_handshake
  - async_nb_quic_start
  - async_nb_boringssl_free_key_callback
  - async_nb_boringssl_get_key_index
  - async_nb_boringssl_sign
  - async_nb_boringssl_decrypt
  - async_nb_boringssl_complete
  - async_nb_boringssl_setup_key_method
  - on_openssl_print_errors
  - setup_ecc_key
  - recalc_log_state
  - resolve_sni
  - set_tcp_congestion_controller
  - on_sni_callback
  - on_client_hello_ptls
  - build_compressed_certificate_ptls
  - build_ssl_dynamic_data
  - get_ocsp_response
  - ocsp_updater_thread
  - on_staple_ocsp_ossl
  - on_emit_certificate_ptls
  - replace_ciphersuites
  - listener_setup_ssl_picotls
  - listener_setup_ssl_add_host
  - build_http2_origin_frame
  - parse_tls13_ciphers
  - ssl_identity_is_equal
  - load_ssl_identity
  - ech_create_opener
  - on_config_one_ech
  - on_config_ech
  - listener_setup_ssl
  - MAP
  - find_listener
  - add_listener
  - find_listener_from_server_starter
  - open_unix_listener
  - socket_reuseport
  - open_listener
  - protocol_to_string
  - open_inet_listener
  - set_quic_sockopts
  - resolve_address
  - notify_all_threads
  - num_connections
  - num_quic_connections
  - num_sessions
  - on_http3_conn_destroy
  - parse_quic_enable_ratio
  - on_config_listen_element
  - APPLY_RATIO
  - on_config_listen
  - on_config_listen_enter
  - on_config_listen_exit
  - on_config_user
  - on_config_capabilities
  - capabilities_set_keepcaps
  - capabilities_drop
  - on_config_pid_file
  - on_config_error_log
  - on_config_max_connections
  - on_config_max_quic_connections
  - on_config_soft_connection_limit
  - on_config_soft_connection_limit_min_age
  - on_config_num_threads_add_cpu
  - on_config_num_threads
  - on_config_num_quic_threads
  - on_config_num_name_resolution_threads
  - on_config_tcp_fastopen
  - configure_quic_forward_node
  - on_config_quic_nodes
  - on_config_num_ocsp_updaters
  - on_config_temp_buffer_path
  - on_config_temp_buffer_threshold
  - on_config_crash_handler
  - on_config_onoff
  - on_config_crash_handler_wait_pipe_close
  - on_tcp_reuseport
  - on_config_ssl_offload
  - on_config_neverbleed_offload
  - on_config_io_uring_batch_size
  - load_config
  - resolve_file_tag
  - resolve_env_tag
  - resolve_tag
  - dispose_resolve_tag_arg
  - on_sigterm
  - on_sigterm_set_flag_only
  - on_sigterm_set_flag_notify_threads
  - popen_crash_handler
  - on_sigfatal
  - setup_signal_handlers
  - encode_quic_address
  - decode_quic_address
  - encode_quic_forwarded_header
  - decode_quic_forwarded_header
  - forward_quic_packets
  - rewrite_forwarded_quic_datagram
  - forwarded_quic_socket_on_read
  - on_socketclose
  - close_idle_connections
  - on_accept
  - validate_token
  - on_http3_accept
  - update_listener_state
  - on_server_notification
  - run_loop
  - build_server_starter_argv
  - run_using_server_starter
  - extra_status_jemalloc_cb
  - JSON_ESCAPE
  - on_extra_status
  - setup_configurators
  - dup_listener
  - create_per_thread_listeners
  - main
  source_file: /src/h2o/src/main.c
  types:
    enum:
    - enumerators:
      - name: RUN_MODE_WORKER
        value: '0'
      - name: RUN_MODE_DAEMON
      - name: RUN_MODE_MASTER
      - name: RUN_MODE_TEST
      item_type: enum
      name: en_run_mode_t
      pos:
        line_end: 261
        line_start: 256
        source_file: /src/h2o/src/main.c
    preproc_defs:
    - item_type: preproc_def
      name: ASYNC_NB_USE_EVENTFD
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/h2o/src/main.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_DEFAULT_LENGTH_TCP_FASTOPEN_QUEUE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/src/main.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: H2O_DEFAULT_LENGTH_TCP_FASTOPEN_QUEUE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/h2o/src/main.c
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_REUSEPORT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/h2o/src/main.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_SO_REUSEPORT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/h2o/src/main.c
      type_or_value: SO_REUSEPORT
    - item_type: preproc_def
      name: H2O_USE_REUSEPORT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/h2o/src/main.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_SO_REUSEPORT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/h2o/src/main.c
      type_or_value: SO_REUSEPORT_LB
    - item_type: preproc_def
      name: H2O_USE_REUSEPORT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/h2o/src/main.c
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_HAS_PTHREAD_SETAFFINITY_NP
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/h2o/src/main.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_DEFAULT_NUM_NAME_RESOLUTION_THREADS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/h2o/src/main.c
      type_or_value: '32'
    - item_type: preproc_def
      name: H2O_DEFAULT_OCSP_UPDATER_MAX_THREADS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/h2o/src/main.c
      type_or_value: '10'
    - item_type: preproc_def
      name: NEVERBLEED_MAX_IN_FLIGHT_TX
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/h2o/src/main.c
      type_or_value: '200'
    - item_type: preproc_def
      name: H2O_QUIC_FORWARDED_HEADER_MAX_SIZE
      pos:
        line_end: 4059
        line_start: 4058
        source_file: /src/h2o/src/main.c
      type_or_value: (1 + 4 + (1 + 16 + 2) * 2 + 1)
    - item_type: preproc_def
      name: H2O_QUIC_FORWARDED_VERSION
      pos:
        line_end: 4060
        line_start: 4059
        source_file: /src/h2o/src/main.c
      type_or_value: '0x91c17000'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 4817
        line_start: 4816
        source_file: /src/h2o/src/main.c
      type_or_value: (16 * 1024)
    structs:
    - fields:
      - name: certificate_file
        type: "struct {\n        char *str;\n        yoml_t **node;\n    }"
      item_type: struct
      name: listener_ssl_parsed_identity_t
      pos:
        line_end: 137
        line_start: 132
        source_file: /src/h2o/src/main.c
    - fields:
      - name: interval
        type: uint64_t
      - name: max_failures
        type: unsigned
      - name: '*cmd'
        type: char
      item_type: struct
      name: listener_ssl_ocsp_stapling_t
      pos:
        line_end: 143
        line_start: 139
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*certificate_file'
        type: char
      - name: '*key_file'
        type: char
      - name: '*ossl'
        type: SSL_CTX
      - name: cert_chain_pem
        type: h2o_iovec_t
      - name: ptls
        type: "struct {\n        ptls_context_t *ctx;\n        const ptls_openssl_signature_scheme_t
          *signature_schemes;\n    }"
      - name: '*ocsp_stapling'
        type: struct listener_ssl_ocsp_stapling_t
      - name: dynamic
        type: "struct {\n        pthread_mutex_t mutex;\n        h2o_buffer_t *ocsp_status;\n
          \       ptls_emit_compressed_certificate_t *emit_compressed_ptls;\n    }"
      item_type: struct
      name: listener_ssl_identity_t
      pos:
        line_end: 184
        line_start: 148
        source_file: /src/h2o/src/main.c
    - fields:
      - name: (h2o_iovec_t)
        type: H2O_VECTOR
      - name: '*identities'
        type: struct listener_ssl_identity_t
      - name: '*http2_origin_frame'
        type: h2o_iovec_t
      - name: cc
        type: "struct {\n        h2o_iovec_t tcp;\n        quicly_cc_type_t *quic;\n
          \   }"
      item_type: struct
      name: listener_ssl_config_t
      pos:
        line_end: 202
        line_start: 186
        source_file: /src/h2o/src/main.c
    - fields:
      - name: fds
        type: H2O_VECTOR
      - name: addr
        type: struct sockaddr_storage
      - name: addrlen
        type: socklen_t
      - name: '**hosts'
        type: h2o_hostconf_t
      - name: quic
        type: "struct {\n        quicly_context_t *ctx;\n        /**\n         * an
          array of file descriptors (size: `num_threads`) used for packet forwarding
          between threads\n         */\n        int *thread_fds;\n        /**\n         *
          whether to send retry\n         */\n        unsigned send_retry : 1;\n        /**\n
          \        * QPACK settings\n         */\n        h2o_http3_qpack_context_t
          qpack;\n        /**\n         * the matching ipv6 listener for an ipv4 listener
          and vice versa\n         */\n        struct listener_config_t *sibling;\n
          \   }"
      - name: sndbuf
        type: unsigned
      - name: proxy_protocol
        type: int
      - name: tcp_congestion_controller
        type: h2o_iovec_t
      item_type: struct
      name: listener_config_t
      pos:
        line_end: 235
        line_start: 204
        source_file: /src/h2o/src/main.c
    - fields:
      - name: listener_index
        type: size_t
      - name: accept_ctx
        type: h2o_accept_ctx_t
      - name: '*sock'
        type: h2o_socket_t
      - name: http3
        type: "struct {\n        h2o_http3_server_ctx_t ctx;\n        h2o_socket_t
          *forwarded_sock;\n    }"
      item_type: struct
      name: listener_ctx_t
      pos:
        line_end: 245
        line_start: 237
        source_file: /src/h2o/src/main.c
    - fields:
      - name: filename
        type: h2o_iovec_t
      - name: '*node'
        type: yoml_t
      item_type: struct
      name: st_resolve_tag_node_cache_entry_t
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/h2o/src/main.c
    - fields:
      - name: (resolve_tag_node_cache_entry_t)
        type: H2O_VECTOR
      item_type: struct
      name: st_resolve_tag_arg_t
      pos:
        line_end: 254
        line_start: 252
        source_file: /src/h2o/src/main.c
    - fields:
      - name: globalconf
        type: h2o_globalconf_t
      - name: run_mode
        type: run_mode_t
      - name: server_starter
        type: "struct {\n        int *fds;\n        /**\n         * List of booleans
          corresponding to each element of `server_starter.fds` indicating if a H2O
          listener has been mapped to\n         * the file descriptor. The list is
          used to check if all the file descriptors opened by Server::Starter have
          been assigned\n         * H2O listeners.\n         */\n        char *bound_fd_map;\n
          \       size_t num_fds;\n    }"
      - name: '**listeners'
        type: struct listener_config_t
      - name: num_listeners
        type: size_t
      - name: '*pid_file'
        type: char
      - name: '*error_log'
        type: char
      - name: max_connections
        type: int
      - name: max_quic_connections
        type: int
      - name: soft_connection_limit
        type: int
      - name: soft_connection_limit_min_age
        type: int
      - name: thread_map
        type: H2O_VECTOR
      - name: quic
        type: "struct {\n        size_t num_threads;\n        h2o_http3_conn_callbacks_t
          conn_callbacks;\n        uint64_t node_id;\n        h2o_quic_forward_node_vector_t
          forward_nodes;\n    }"
      - name: tfo_queues
        type: int
      - name: launch_time
        type: time_t
      - name: '*threads'
        type: "struct {\n        h2o_context_t ctx;\n        h2o_multithread_receiver_t
          server_notifications;\n        h2o_multithread_receiver_t memcached;\n    }"
      - name: shutdown_requested
        type: sig_atomic_t
      - name: startup_sync_barrier_init
        type: h2o_barrier_t
      - name: startup_sync_barrier_post
        type: h2o_barrier_t
      - name: state
        type: "struct {\n        /* unused buffers exist to avoid false sharing of
          the cache line */\n        char _unused1_avoir_false_sharing[32];\n        /**\n
          \        * Number of currently handled incoming connections. Should use
          atomic functions to update the value.\n         */\n        int _num_connections;\n
          \       /* unused buffers exist to avoid false sharing of the cache line
          */\n        char _unused2_avoir_false_sharing[32];\n        /**\n         *
          Number of currently handled incoming QUIC connections.\n         */\n        int
          _num_quic_connections;\n        char _unused3_avoir_false_sharing[32];\n
          \       /**\n         * Total number of opened incoming connections. Should
          use atomic functions to update the value.\n         */\n        unsigned
          long _num_sessions;\n        char _unused4_avoir_false_sharing[32];\n    }"
      - name: '*crash_handler'
        type: char
      - name: crash_handler_wait_pipe_close
        type: int
      - name: tcp_reuseport
        type: int
      - name: ssl_zerocopy
        type: int
      - name: ocsp_updater
        type: "struct {\n        h2o_sem_t semaphore;\n        unsigned capacity;\n
          \   }"
      - name: acme
        type: "struct {\n        char *email;\n        char *loader;\n        H2O_VECTOR(char
          *) hosts;\n    }"
      - name: '*yoml'
        type: yoml_t
      item_type: struct
      name: "conf = {\n    .globalconf = {0},\n    .run_mode = RUN_MODE_WORKER,\n
        \   .server_starter = {0},\n    .listeners = NULL,\n    .num_listeners = 0,\n
        \   .pid_file = NULL,\n    .error_log = NULL,\n    .max_connections = 1024,\n
        \   .max_quic_connections = INT_MAX, /* (INT_MAX = i.e., allow up to max_connections)
        */\n    .soft_connection_limit = INT_MAX,\n    .soft_connection_limit_min_age
        = 30,\n    .thread_map = {0}, /* initialized in main() */\n    .quic = {0},
        \      /* 0 defaults to all, conn_callbacks (initialized in main() */\n    .tfo_queues
        = 0,   /* initialized in main() */\n    .launch_time = 0,  /* initialized
        in main() */\n    .threads = NULL,\n    .shutdown_requested = 0,\n    .state
        = {{0}},\n    .crash_handler = \"share/h2o/annotate-backtrace-symbols\",\n
        \   .crash_handler_wait_pipe_close = 0,\n    .tcp_reuseport = 0,\n    .ssl_zerocopy
        = 0,\n    .ocsp_updater = {.capacity = H2O_DEFAULT_OCSP_UPDATER_MAX_THREADS},\n}"
      pos:
        line_end: 345
        line_start: 263
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*buf'
        type: neverbleed_iobuf_t
      - name: write_size
        type: size_t
      - name: link
        type: h2o_linklist_t
      - name: responseless
        type: int
      - name: (*on_read_complete)(struct async_nb_transaction_t *transaction)
        type: void
      item_type: struct
      name: async_nb_transaction_t
      pos:
        line_end: 663
        line_start: 657
        source_file: /src/h2o/src/main.c
    - fields:
      - name: anchor
        type: h2o_linklist_t
      - name: len
        type: size_t
      item_type: struct
      name: async_nb_queue_t
      pos:
        line_end: 668
        line_start: 665
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*sock'
        type: h2o_socket_t
      - name: write_queue
        type: struct async_nb_queue_t
      - name: read_queue
        type: struct async_nb_queue_t
      item_type: struct
      name: async_nb = {NULL}
      pos:
        line_end: 674
        line_start: 670
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: struct async_nb_transaction_t
      - name: notify_fd
        type: int
      item_type: struct
      name: async_nb_transaction_fd_notify_t
      pos:
        line_end: 810
        line_start: 807
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: ptls_sign_certificate_t
      - name: '*key'
        type: EVP_PKEY
      - name: '*schemes'
        type: ptls_openssl_signature_scheme_t
      item_type: struct
      name: async_nb_picotls_context_t
      pos:
        line_end: 936
        line_start: 932
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: ptls_async_job_t
      - name: transaction
        type: struct async_nb_transaction_t
      - name: on_complete
        type: "struct {\n        void (*func)(void *);\n        void *data;\n    }"
      - name: ptls
        type: "struct {\n        uint16_t scheme_id;\n    }"
      - name: buf
        type: neverbleed_iobuf_t
      item_type: struct
      name: async_nb_job_t
      pos:
        line_end: 949
        line_start: 938
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: ptls_on_client_hello_t
      - name: '*listener'
        type: struct listener_config_t
      item_type: struct
      name: st_on_client_hello_ptls_t
      pos:
        line_end: 1235
        line_start: 1232
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: ptls_emit_certificate_t
      - name: '*conf'
        type: struct listener_ssl_identity_t
      item_type: struct
      name: st_emit_certificate_ptls_t
      pos:
        line_end: 1484
        line_start: 1481
        source_file: /src/h2o/src/main.c
    - fields:
      - name: ctx
        type: ptls_context_t
      - name: ch
        type: struct st_on_client_hello_ptls_t
      - name: ec
        type: struct st_emit_certificate_ptls_t
      - name: sc
        type: "struct {\n            ptls_openssl_sign_certificate_t ossl;\n            struct
          async_nb_picotls_context_t async_digestsign;\n        }"
      - name: vc
        type: ptls_openssl_verify_certificate_t
      item_type: struct
      name: st_fat_context_t
      pos:
        line_end: 1561
        line_start: 1552
        source_file: /src/h2o/src/main.c
    - fields:
      - name: super
        type: ptls_ech_create_opener_t
      - name: configs[1]
        type: "struct ech_opener_config_t {\n        ptls_key_exchange_context_t *keyex;
          /* NULL indicates end of configs */\n        uint8_t config_id;\n        ptls_hpke_kem_t
          *kem;\n        ptls_hpke_cipher_suite_t **cipher_suites;\n        uint8_t
          max_name_length;\n        ptls_iovec_t ech_config;\n        unsigned advertise
          : 1;\n    }"
      item_type: struct
      name: ech_create_opener_t
      pos:
        line_end: 1918
        line_start: 1907
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*keyex'
        type: ptls_key_exchange_context_t
      - name: config_id
        type: uint8_t
      - name: '*kem'
        type: ptls_hpke_kem_t
      - name: '**cipher_suites'
        type: ptls_hpke_cipher_suite_t
      - name: max_name_length
        type: uint8_t
      - name: ech_config
        type: ptls_iovec_t
      - name: advertise
        type: unsigned
      item_type: struct
      name: ech_opener_config_t
      pos:
        line_end: 1917
        line_start: 1909
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*create_opener'
        type: ptls_ech_create_opener_t
      - name: retry_configs
        type: ptls_iovec_t
      item_type: struct
      name: ech = {NULL}
      pos:
        line_end: 2134
        line_start: 2131
        source_file: /src/h2o/src/main.c
    - fields:
      - name: addr
        type: "union {\n                struct sockaddr sa;\n                struct
          sockaddr_storage ss;\n            }"
      - name: type
        type: int
      item_type: struct
      name: actual
      pos:
        line_end: 2670
        line_start: 2664
        source_file: /src/h2o/src/main.c
    - fields:
      - name: destaddr
        type: quicly_address_t
      - name: ttl
        type: uint8_t
      - name: offset
        type: size_t
      item_type: struct
      name: encapsulated
      pos:
        line_end: 4240
        line_start: 4236
        source_file: /src/h2o/src/main.c
    - fields:
      - name: '*v1'
        type: ptls_aead_context_t
      - name: '*draft29'
        type: ptls_aead_context_t
      - name: '*draft27'
        type: ptls_aead_context_t
      item_type: struct
      name: retry_integrity_aead_cache
      pos:
        line_end: 4436
        line_start: 4432
        source_file: /src/h2o/src/main.c
    - fields:
      - name: outbuf
        type: h2o_iovec_t
      - name: err
        type: int
      - name: written
        type: size_t
      item_type: struct
      name: extra_status_jemalloc_cb_arg
      pos:
        line_end: 4762
        line_start: 4758
        source_file: /src/h2o/src/main.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/src/setuidgid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EX_OSERR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/src/setuidgid.c
      type_or_value: '71'
    - item_type: preproc_def
      name: EX_CONFIG
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/src/setuidgid.c
      type_or_value: '78'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/src/standalone.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_SESSION_TICKETS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/src/standalone.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_SESSION_TICKETS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/src/standalone.h
      type_or_value: '0'
    structs:
    - fields:
      - name: is_clustered
        type: int
      item_type: struct
      name: st_h2o_quic_resumption_args_t
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/h2o/src/standalone.h
    - fields:
      - name: id
        type: uint64_t
      - name: fd
        type: int
      item_type: struct
      name: st_h2o_quic_forward_node_t
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/h2o/src/standalone.h
    typedefs:
    - item_type: typedef
      name: (struct st_h2o_quic_forward_node_t)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/src/standalone.h
      type: H2O_VECTOR
    union: []
- function_names:
  - cache_cleanup_thread
  - spawn_cache_cleanup_thread
  - setup_cache_disable
  - setup_cache_enable
  - setup_cache_internal
  - setup_cache_memcached
  - setup_cache_redis
  - cache_init_defaults
  - session_ticket_get_cipher_key
  - session_ticket_get_hmac_key
  - new_ticket
  - free_ticket
  - ticket_sort_compare
  - free_tickets
  - find_ticket_for_encryption
  - ticket_key_callback
  - ticket_key_callback_ossl
  - calculate_quic_tag
  - encrypt_ticket_ptls
  - create_encrypt_ticket_ptls
  - update_tickets
  - register_session_tickets
  - do_swap_register_session_tickets
  - swap_register_session_tickets
  - do_internal_update
  - ticket_internal_updater
  - serialize_ticket_entry
  - parse_ticket_entry
  - FETCH
  - parse_tickets
  - serialize_tickets
  - ticket_memcached_update_tickets
  - ticket_memcached_updater
  - ticket_redis_update_tickets
  - ticket_redis_updater
  - load_tickets_file
  - ticket_file_updater
  - ticket_init_defaults
  - ssl_session_resumption_on_config
  - ssl_setup_session_resumption
  - ssl_setup_session_resumption_ptls
  - lock_callback
  - thread_id_callback
  - add_lock_callback
  - init_openssl
  - init_quic_keyset
  - dispose_quic_keyset
  - update_quic_keys
  - find_quic_keyset
  - encrypt_cid
  - decrypt_cid
  - generate_stateless_reset_token
  - quic_decrypt_address_token
  - quic_get_address_token_encryptor
  - generate_resumption_token
  source_file: /src/h2o/src/ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERR_PREFIX
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/h2o/src/ssl.c
      type_or_value: '"failed to load session ticket secrets from file:%s:"'
    structs:
    - fields:
      - name: '*cipher'
        type: EVP_CIPHER
      - name: '*md'
        type: EVP_MD
      item_type: struct
      name: st_session_ticket_generating_updater_conf_t
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: '*filename'
        type: char
      item_type: struct
      name: st_session_ticket_file_updater_conf_t
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: cache
        type: "struct {\n        void (*setup)(SSL_CTX **contexts, size_t num_contexts);\n
          \       union {\n            struct {\n                char *prefix;\n                size_t
          num_threads;\n            } memcached;\n            struct {\n                char
          *prefix;\n            } redis;\n        } vars;\n    }"
      - name: ticket
        type: "struct {\n        void *(*update_thread)(void *conf);\n        union
          {\n            struct st_session_ticket_generating_updater_conf_t generating;\n
          \           struct {\n                struct st_session_ticket_generating_updater_conf_t
          generating; /* at same address as conf.ticket.vars.generating */\n                h2o_iovec_t
          key;\n            } memcached;\n            struct {\n                struct
          st_session_ticket_generating_updater_conf_t generating; /* same as above
          */\n                h2o_iovec_t key;\n            } redis;\n            struct
          st_session_ticket_file_updater_conf_t file;\n        } vars;\n    }"
      - name: lifetime
        type: unsigned
      - name: store
        type: "union {\n        struct {\n            char *host;\n            uint16_t
          port;\n            int text_protocol;\n        } memcached;\n        struct
          {\n            char *host;\n            uint16_t port;\n        } redis;\n
          \   }"
      item_type: struct
      name: conf
      pos:
        line_end: 99
        line_start: 59
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: name[16]
        type: unsigned char
      - name: '*cipher'
        type: EVP_CIPHER
      - name: '*hmac'
        type: EVP_MD
      - name: not_before
        type: uint64_t
      - name: not_after
        type: uint64_t
      - name: keybuf[1]
        type: unsigned char
      item_type: struct
      name: st_session_ticket_t
      pos:
        line_end: 183
        line_start: 176
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: generation
        type: unsigned
      - name: '*barrier'
        type: h2o_barrier_t
      - name: rwlock
        type: pthread_rwlock_t
      - name: tickets
        type: session_ticket_vector_t
      item_type: struct
      name: "session_tickets = {0, NULL,\n/* we need writer-preferred lock, but on
        linux PTHREAD_RWLOCK_INITIALIZER is reader-preferred */\n#ifdef PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP\n
        \                    PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP\n#else\n
        \                    PTHREAD_RWLOCK_INITIALIZER\n#endif\n}"
      pos:
        line_end: 192
        line_start: 187
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: super
        type: ptls_encrypt_ticket_t
      - name: is_quic
        type: uint8_t
      - name: quic_tag[8]
        type: uint8_t
      item_type: struct
      name: encrypt_ticket_ptls_t
      pos:
        line_end: 358
        line_start: 354
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: name
        type: uint8_t
      - name: '*cid'
        type: quicly_cid_encryptor_t
      - name: address_token
        type: "struct {\n        ptls_aead_context_t *enc;\n        ptls_aead_context_t
          *dec;\n    }"
      item_type: struct
      name: st_quic_keyset_t
      pos:
        line_end: 1212
        line_start: 1205
        source_file: /src/h2o/src/ssl.c
    - fields:
      - name: generation
        type: unsigned
      item_type: struct
      name: quic_keys = {UINT_MAX /* the value needs to be one smaller than session_tickets.generation
        */}
      pos:
        line_end: 1217
        line_start: 1214
        source_file: /src/h2o/src/ssl.c
    typedefs:
    - item_type: typedef
      name: (struct st_session_ticket_t *)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/h2o/src/ssl.c
      type: H2O_VECTOR
    union: []
- function_names:
  - NOPAREN
  - H2O_CONN_LIST_FOREACH
  - H2O_SEND_ERROR_XXX
  - h2o_conn_get_uuid
  - h2o_conn_is_early_data
  - h2o_proceed_response
  - h2o_req_getenv
  - h2o_req_unsetenv
  - h2o_send_state_is_in_progress
  - h2o_setup_next_ostream
  - h2o_setup_next_prefilter
  - h2o_get_timestamp
  - h2o_context_get_handler_context
  - h2o_context_set_handler_context
  - h2o_context_get_filter_context
  - h2o_context_set_filter_context
  - h2o_context_get_logger_context
  - h2o_context_get_storage
  - h2o_context_set_logger_context
  - h2o_req_can_stream_request
  - h2o_req_should_forward_expect
  - COMPUTE_DURATION
  source_file: /src/h2o/include/h2o.h
  types:
    enum:
    - enumerators:
      - name: H2O_SEND_INFORMATIONAL_MODE_EXCEPT_H1
      - name: H2O_SEND_INFORMATIONAL_MODE_NONE
      - name: H2O_SEND_INFORMATIONAL_MODE_ALL
      item_type: enum
      name: h2o_send_informational_mode
      pos:
        line_end: 326
        line_start: 322
        source_file: /src/h2o/include/h2o.h
    - enumerators:
      - name: H2O_PROXY_ZEROCOPY_DISABLED
      - name: H2O_PROXY_ZEROCOPY_ENABLED
      - name: H2O_PROXY_ZEROCOPY_ALWAYS
      item_type: enum
      name: h2o_proxy_zerocopy_mode
      pos:
        line_end: 337
        line_start: 333
        source_file: /src/h2o/include/h2o.h
    - enumerators:
      - name: H2O_PROXY_EXPECT_OFF
      - name: H2O_PROXY_EXPECT_FORWARD
      - name: H2O_PROXY_EXPECT_ON
      item_type: enum
      name: h2o_proxy_expect_mode
      pos:
        line_end: 354
        line_start: 339
        source_file: /src/h2o/include/h2o.h
    - enumerators:
      - name: H2O_CONN_STATE_IDLE
      - name: H2O_CONN_STATE_SHUTDOWN
      - name: H2O_CONN_STATE_ACTIVE
      item_type: enum
      name: h2o_conn_state
      pos:
        line_end: 658
        line_start: 654
        source_file: /src/h2o/include/h2o.h
    - enumerators:
      - name: H2O_HEADERS_CMD_WHEN_FINAL
      - name: H2O_HEADERS_CMD_WHEN_ALL
      - name: H2O_HEADERS_CMD_WHEN_EARLY
      item_type: enum
      name: h2o_headers_command_when
      pos:
        line_end: 2267
        line_start: 2263
        source_file: /src/h2o/include/h2o.h
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_BROTLI
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/include/h2o.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_ZSTD
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/include/h2o.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_SOMAXCONN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: H2O_HTTP2_MIN_STREAM_WINDOW_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/include/h2o.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: H2O_HTTP2_MAX_STREAM_WINDOW_SIZE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/include/h2o.h
      type_or_value: '16777216'
    - item_type: preproc_def
      name: H2O_DEFAULT_MAX_REQUEST_ENTITY_SIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/include/h2o.h
      type_or_value: (1024 * 1024 * 1024)
    - item_type: preproc_def
      name: H2O_DEFAULT_MAX_DELEGATIONS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/include/h2o.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_DEFAULT_MAX_REPROCESSES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/include/h2o.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_DEFAULT_HANDSHAKE_TIMEOUT_IN_SECS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/include/h2o.h
      type_or_value: '10'
    - item_type: preproc_def
      name: H2O_DEFAULT_HANDSHAKE_TIMEOUT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_HANDSHAKE_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP1_REQ_TIMEOUT_IN_SECS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/include/h2o.h
      type_or_value: '10'
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP1_REQ_TIMEOUT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_HTTP1_REQ_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP1_REQ_IO_TIMEOUT_IN_SECS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/include/h2o.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP1_REQ_IO_TIMEOUT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_HTTP1_REQ_IO_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP1_UPGRADE_TO_HTTP2
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/include/h2o.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP2_IDLE_TIMEOUT_IN_SECS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/include/h2o.h
      type_or_value: '10'
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP2_IDLE_TIMEOUT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_HTTP2_IDLE_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP2_GRACEFUL_SHUTDOWN_TIMEOUT_IN_SECS
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/include/h2o.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP2_GRACEFUL_SHUTDOWN_TIMEOUT
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_HTTP2_GRACEFUL_SHUTDOWN_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP2_ACTIVE_STREAM_WINDOW_SIZE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/include/h2o.h
      type_or_value: H2O_HTTP2_MAX_STREAM_WINDOW_SIZE
    - item_type: preproc_def
      name: H2O_DEFAULT_HTTP3_ACTIVE_STREAM_WINDOW_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/include/h2o.h
      type_or_value: H2O_DEFAULT_HTTP2_ACTIVE_STREAM_WINDOW_SIZE
    - item_type: preproc_def
      name: H2O_DEFAULT_PROXY_IO_TIMEOUT_IN_SECS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/include/h2o.h
      type_or_value: '30'
    - item_type: preproc_def
      name: H2O_DEFAULT_PROXY_IO_TIMEOUT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/include/h2o.h
      type_or_value: (H2O_DEFAULT_PROXY_IO_TIMEOUT_IN_SECS * 1000)
    - item_type: preproc_def
      name: H2O_DEFAULT_HAPPY_EYEBALLS_NAME_RESOLUTION_DELAY
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/include/h2o.h
      type_or_value: '50'
    - item_type: preproc_def
      name: H2O_DEFAULT_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/include/h2o.h
      type_or_value: '250'
    - item_type: preproc_def
      name: H2O_DEFAULT_PROXY_SSL_SESSION_CACHE_CAPACITY
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/include/h2o.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: H2O_DEFAULT_PROXY_SSL_SESSION_CACHE_DURATION
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/h2o/include/h2o.h
      type_or_value: '86400000 '
    - item_type: preproc_def
      name: H2O_DEFAULT_PROXY_HTTP2_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/h2o/include/h2o.h
      type_or_value: '100'
    - item_type: preproc_def
      name: H2O_LOG_URI_PATH
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/include/h2o.h
      type_or_value: '"/.well-known/h2olog"'
    - item_type: preproc_def
      name: H2O_SEND_SERVER_TIMING_BASIC
      pos:
        line_end: 1201
        line_start: 1200
        source_file: /src/h2o/include/h2o.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_SEND_SERVER_TIMING_PROXY
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/h2o/include/h2o.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_PROXY_HEADER_MAX_LENGTH
      pos:
        line_end: 1534
        line_start: 1532
        source_file: /src/h2o/include/h2o.h
      type_or_value: (sizeof("PROXY TCP6 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
        65535 65535\r\n") - 1)
    - item_type: preproc_def
      name: H2O_COMPRESSIBLE_GZIP
      pos:
        line_end: 1547
        line_start: 1546
        source_file: /src/h2o/include/h2o.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_COMPRESSIBLE_BROTLI
      pos:
        line_end: 1548
        line_start: 1547
        source_file: /src/h2o/include/h2o.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_COMPRESSIBLE_ZSTD
      pos:
        line_end: 1549
        line_start: 1548
        source_file: /src/h2o/include/h2o.h
      type_or_value: '4'
    - item_type: preproc_def
      name: H2O_DEFAULT_FASTCGI_IO_TIMEOUT
      pos:
        line_end: 2177
        line_start: 2176
        source_file: /src/h2o/include/h2o.h
      type_or_value: '30000'
    structs:
    - fields:
      - name: _config_slot
        type: size_t
      - name: (*on_context_init)(struct st_h2o_handler_t *self, h2o_context_t *ctx)
        type: void
      - name: (*on_context_dispose)(struct st_h2o_handler_t *self, h2o_context_t *ctx)
        type: void
      - name: (*dispose)(struct st_h2o_handler_t *self)
        type: void
      - name: (*on_req)(struct st_h2o_handler_t *self, h2o_req_t *req)
        type: int
      - name: supports_request_streaming
        type: unsigned
      - name: handles_expect
        type: unsigned
      item_type: struct
      name: st_h2o_handler_t
      pos:
        line_end: 136
        line_start: 116
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: _config_slot
        type: size_t
      - name: (*on_context_init)(struct st_h2o_filter_t *self, h2o_context_t *ctx)
        type: void
      - name: (*on_context_dispose)(struct st_h2o_filter_t *self, h2o_context_t *ctx)
        type: void
      - name: (*dispose)(struct st_h2o_filter_t *self)
        type: void
      - name: (*on_setup_ostream)(struct st_h2o_filter_t *self, h2o_req_t *req, h2o_ostream_t
          **slot)
        type: void
      - name: (*on_informational)(struct st_h2o_filter_t *self, h2o_req_t *req)
        type: void
      item_type: struct
      name: st_h2o_filter_t
      pos:
        line_end: 149
        line_start: 142
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: _config_slot
        type: size_t
      - name: (*on_context_init)(struct st_h2o_logger_t *self, h2o_context_t *ctx)
        type: void
      - name: (*on_context_dispose)(struct st_h2o_logger_t *self, h2o_context_t *ctx)
        type: void
      - name: (*dispose)(struct st_h2o_logger_t *self)
        type: void
      - name: (*log_access)(struct st_h2o_logger_t *self, h2o_req_t *req)
        type: void
      item_type: struct
      name: st_h2o_logger_t
      pos:
        line_end: 161
        line_start: 155
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: rfc1123[H2O_TIMESTR_RFC1123_LEN + 1]
        type: char
      - name: log[H2O_TIMESTR_LOG_LEN + 1]
        type: char
      item_type: struct
      name: st_h2o_timestamp_string_t
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: at
        type: struct timeval
      - name: '*str'
        type: h2o_timestamp_string_t
      item_type: struct
      name: st_h2o_timestamp_t
      pos:
        line_end: 178
        line_start: 175
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: capacity_bits
        type: unsigned
      - name: track_all_types
        type: int
      item_type: struct
      name: st_h2o_casper_conf_t
      pos:
        line_end: 189
        line_start: 180
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*parent'
        type: struct st_h2o_envconf_t
      - name: unsets
        type: h2o_iovec_vector_t
      - name: sets
        type: h2o_iovec_vector_t
      item_type: struct
      name: st_h2o_envconf_t
      pos:
        line_end: 204
        line_start: 191
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*global'
        type: h2o_globalconf_t
      - name: path
        type: h2o_iovec_t
      - name: '*mimemap'
        type: h2o_mimemap_t
      - name: '*env'
        type: h2o_envconf_t
      - name: error_log
        type: "struct {\n        /**\n         * if request-level errors should be
          emitted to stderr\n         */\n        unsigned emit_request_errors : 1;\n
          \   }"
      item_type: struct
      name: st_h2o_pathconf_t
      pos:
        line_end: 246
        line_start: 206
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*global'
        type: h2o_globalconf_t
      - name: authority
        type: "struct {\n        /**\n         * host and port (in lower-case; base
          is NULL-terminated)\n         */\n        h2o_iovec_t hostport;\n        /**\n
          \        *  in lower-case; base is NULL-terminated\n         */\n        h2o_iovec_t
          host;\n        /**\n         * port number (or 65535 if default)\n         */\n
          \       uint16_t port;\n    }"
      - name: strict_match
        type: uint8_t
      - name: fallback_path
        type: h2o_pathconf_t
      - name: '*mimemap'
        type: h2o_mimemap_t
      - name: http2
        type: "struct {\n        /**\n         * whether if blocking assets being
          pulled should be given highest priority in case of clients that do not implement\n
          \        * dependency-based prioritization\n         */\n        unsigned
          reprioritize_blocking_assets : 1;\n        /**\n         * if server push
          should be used\n         */\n        unsigned push_preload : 1;\n        /**\n
          \        * if cross origin pushes should be authorized\n         */\n        unsigned
          allow_cross_origin_push : 1;\n        /**\n         * casper settings\n
          \        */\n        h2o_casper_conf_t casper;\n    }"
      item_type: struct
      name: st_h2o_hostconf_t
      pos:
        line_end: 310
        line_start: 248
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: name
        type: h2o_iovec_t
      - name: (*final)(void *ctx, h2o_globalconf_t *gconf, h2o_req_t *req)
        type: h2o_iovec_t
      - name: '*(*init)(void)'
        type: void
      - name: (*per_thread)(void *priv, h2o_context_t *ctx)
        type: void
      item_type: struct
      name: st_h2o_status_handler_t
      pos:
        line_end: 318
        line_start: 313
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '**hosts'
        type: h2o_hostconf_t
      - name: '*fallback_host'
        type: h2o_hostconf_t
      - name: configurators
        type: h2o_linklist_t
      - name: server_name
        type: h2o_iovec_t
      - name: proxy_status_identity
        type: h2o_iovec_t
      - name: max_request_entity_size
        type: size_t
      - name: max_delegations
        type: unsigned
      - name: max_reprocesses
        type: unsigned
      - name: '*user'
        type: char
      - name: handshake_timeout
        type: uint64_t
      - name: max_spare_pipes
        type: size_t
      - name: http1
        type: "struct {\n        /**\n         * request timeout (in milliseconds)\n
          \        */\n        uint64_t req_timeout;\n        /**\n         * request
          io timeout (in milliseconds)\n         */\n        uint64_t req_io_timeout;\n
          \       /**\n         * a boolean value indicating whether or not to upgrade
          to HTTP/2\n         */\n        int upgrade_to_http2;\n    }"
      - name: http2
        type: "struct {\n        /**\n         * idle timeout (in milliseconds)\n
          \        */\n        uint64_t idle_timeout;\n        /**\n         * graceful
          shutdown timeout (in milliseconds)\n         */\n        uint64_t graceful_shutdown_timeout;\n
          \       /**\n         * maximum number of HTTP2 streams to accept and advertise
          via HTTP2 SETTINGS.\n         *\n         * See max_concurrent_requests_per_connection
          and max_concurrent_streaming_requests_per_connection below for more info
          on\n         * the actual number of requests that h2o is willing to process
          concurrently.\n         */\n        uint32_t max_streams;\n        /**\n
          \        * maximum number of HTTP2 requests (per connection) to be handled
          simultaneously internally.\n         * H2O accepts at most `max_streams`
          requests over HTTP/2, but internally limits the number of in-flight requests
          to the\n         * value specified by this property in order to limit the
          resources allocated to a single connection.\n         */\n        size_t
          max_concurrent_requests_per_connection;\n        /**\n         * maximum
          number of HTTP2 streaming requests (per connection) to be handled simultaneously
          internally.\n         */\n        size_t max_concurrent_streaming_requests_per_connection;\n
          \       /**\n         * maximum nuber of streams (per connection) to be
          allowed in IDLE / CLOSED state (used for tracking dependencies).\n         */\n
          \       size_t max_streams_for_priority;\n        /**\n         * size of
          the stream-level flow control window (once it becomes active)\n         */\n
          \       uint32_t active_stream_window_size;\n        /**\n         * conditions
          for latency optimization\n         */\n        h2o_socket_latency_optimization_conditions_t
          latency_optimization;\n        /* */\n        h2o_iovec_t origin_frame;\n
          \       /**\n         * milliseconds to delay processing requests when suspicious
          behavior is detected\n         */\n        uint64_t dos_delay;\n    }"
      - name: http3
        type: "struct {\n        /**\n         * idle timeout (in milliseconds)\n
          \        */\n        uint64_t idle_timeout;\n        /**\n         * graceful
          shutdown timeout (in milliseconds)\n         */\n        uint64_t graceful_shutdown_timeout;\n
          \       /**\n         * receive window size of the unblocked request stream\n
          \        */\n        uint32_t active_stream_window_size;\n        /**\n
          \        * See quicly_context_t::ack_frequency\n         */\n        uint16_t
          ack_frequency;\n        /**\n         * a boolean indicating if the delayed
          ack extension should be used (default true)\n         */\n        uint8_t
          allow_delayed_ack : 1;\n        /**\n         * a boolean indicating if
          UDP GSO should be used when possible\n         */\n        uint8_t use_gso
          : 1;\n        /**\n         * maximum number of HTTP3 streaming requests
          (per connection) to be handled simultaneously internally.\n         */\n
          \       size_t max_concurrent_streaming_requests_per_connection;\n    }"
      - name: proxy
        type: "struct {\n        /**\n         * io timeout (in milliseconds)\n         */\n
          \       uint64_t io_timeout;\n        /**\n         * io timeout (in milliseconds)\n
          \        */\n        uint64_t connect_timeout;\n        /**\n         *
          io timeout (in milliseconds)\n         */\n        uint64_t first_byte_timeout;\n
          \       /**\n         * keepalive timeout (in milliseconds)\n         */\n
          \       uint64_t keepalive_timeout;\n        /**\n         * a boolean flag
          if set to true, instructs the proxy to preserve the x-forwarded-proto header
          passed by the client\n         */\n        unsigned preserve_x_forwarded_proto
          : 1;\n        /**\n         * a boolean flag if set to true, instructs the
          proxy to preserve the server header passed by the origin\n         */\n
          \       unsigned preserve_server_header : 1;\n        /**\n         * a
          boolean flag if set to true, instructs the proxy to emit x-forwarded-proto
          and x-forwarded-for headers\n         */\n        unsigned emit_x_forwarded_headers
          : 1;\n        /**\n         * a boolean flag if set to true, instructs the
          proxy to emit a via header\n         */\n        unsigned emit_via_header
          : 1;\n        /**\n         * a boolean flag if set to true, instructs the
          proxy to emit a date header, if it's missing from the upstream response\n
          \        */\n        unsigned emit_missing_date_header : 1;\n        /**\n
          \        * maximum size to buffer for the response\n         */\n        size_t
          max_buffer_size;\n        /**\n         * a boolean flag if set to true,
          instructs to use zero copy (i.e., splice to pipe then splice to socket)
          if possible\n         */\n        h2o_proxy_zerocopy_mode_t zerocopy;\n\n
          \       struct {\n            uint32_t max_concurrent_streams;\n        }
          http2;\n        struct {\n            unsigned ecn : 1;\n        } http3;\n\n
          \       /**\n         * See the documentation of `h2o_httpclient_t::protocol_selector.ratio`.\n
          \        */\n        struct {\n            int8_t http2;\n            int8_t
          http3;\n        } protocol_ratio;\n\n        /**\n         * global socketpool\n
          \        */\n        h2o_socketpool_t global_socketpool;\n    }"
      - name: send_informational_mode
        type: h2o_send_informational_mode_t
      - name: '*mimemap'
        type: h2o_mimemap_t
      - name: filecache
        type: "struct {\n        /* capacity of the filecache */\n        size_t capacity;\n
          \   }"
      - name: statuses
        type: h2o_status_callbacks_t
      - name: _num_config_slots
        type: size_t
      item_type: struct
      name: st_h2o_globalconf_t
      pos:
        line_end: 584
        line_start: 356
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: is_compressible
        type: char
      - name: priority
        type: enum { H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL = 0, H2O_MIME_ATTRIBUTE_PRIORITY_HIGHEST
          }
      item_type: struct
      name: st_h2o_mime_attributes_t
      pos:
        line_end: 607
        line_start: 598
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: type
        type: enum { H2O_MIMEMAP_TYPE_MIMETYPE = 0, H2O_MIMEMAP_TYPE_DYNAMIC = 1 }
      - name: data
        type: "union {\n        struct {\n            h2o_iovec_t mimetype;\n            h2o_mime_attributes_t
          attr;\n        };\n        struct {\n            h2o_pathconf_t pathconf;\n
          \       } dynamic;\n    }"
      item_type: struct
      name: st_h2o_mimemap_type_t
      pos:
        line_end: 625
        line_start: 614
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: (*dispose)(void *data)
        type: void
      - name: '*data'
        type: void
      item_type: struct
      name: st_h2o_context_storage_item_t
      pos:
        line_end: 650
        line_start: 647
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: '*globalconf'
        type: h2o_globalconf_t
      - name: '*queue'
        type: h2o_multithread_queue_t
      - name: receivers
        type: "struct {\n        h2o_multithread_receiver_t hostinfo_getaddr;\n    }"
      - name: '*filecache'
        type: h2o_filecache_t
      - name: spare_pipes
        type: "struct {\n        int (*pipes)[2];\n        size_t count;\n    }"
      - name: storage
        type: h2o_context_storage_t
      - name: shutdown_requested
        type: int
      - name: _conns
        type: "struct {\n        /**\n         * link-list of h2o_conn_t\n         *\n
          \        * list of connections in each state\n         *\n         * idle:\n
          \        *  - newly created connections are `idle`\n         *  - `idle`
          connections become `active` as they receive requests\n         *  - `active`
          connections become `idle` when there are no pending requests\n         *
          active:\n         *  - connections that contain pending requests\n         *
          shutdown:\n         *  - connections that are shutting down\n         */\n
          \       h2o_linklist_t idle, active, shutdown;\n        /**\n         *
          number of connections in each state\n         */\n        union {\n            /**\n
          \            * counters (the order MUST match that of h2o_connection_state_t;
          it is accessed by index via the use of counters[])\n             */\n            struct
          {\n                size_t idle, active, shutdown;\n            };\n            size_t
          counters[1];\n        } num_conns;\n    }"
      - name: http1
        type: "struct {\n\n        struct {\n            uint64_t request_timeouts;\n
          \           uint64_t request_io_timeouts;\n        } events;\n    }"
      - name: http2
        type: "struct {\n        struct {\n            /**\n             * counter
          for http2 errors internally emitted by h2o\n             */\n            uint64_t
          protocol_level_errors[H2O_HTTP2_ERROR_MAX];\n            /**\n             *
          premature close on read\n             */\n            uint64_t read_closed;\n
          \           /**\n             * premature close on write\n             */\n
          \           uint64_t write_closed;\n            /**\n             * counter
          for http2 idle timeouts\n             */\n            uint64_t idle_timeouts;\n
          \           /**\n             * streaming request counter\n             */\n
          \           uint64_t streaming_requests;\n        } events;\n    }"
      - name: http3
        type: "struct {\n        /**\n         * thread-local variable shared by multiple
          instances of `h2o_quic_ctx_t::next_cid`\n         */\n        quicly_cid_plaintext_t
          next_cid;\n        /**\n         *\n         */\n        struct {\n            /**\n
          \            * number of packets forwarded to another node in a cluster\n
          \            */\n            uint64_t packet_forwarded;\n            /**\n
          \            * number of forwarded packets received from another node in
          a cluster\n             */\n            uint64_t forwarded_packet_received;\n
          \       } events;\n    }"
      - name: proxy
        type: "struct {\n        /**\n         * the default client context for proxy\n
          \        */\n        h2o_httpclient_ctx_t client_ctx;\n        /**\n         *
          the default connection pool for proxy\n         */\n        h2o_httpclient_connection_pool_t
          connpool;\n    }"
      - name: ssl
        type: "struct {\n        /**\n         * counter for SSL errors\n         */\n
          \       uint64_t errors;\n        /**\n         * counter for selected ALPN
          protocols\n         */\n        uint64_t alpn_h1;\n        uint64_t alpn_h2;\n
          \       /**\n         * counter for handshakes\n         */\n        uint64_t
          handshake_full;\n        uint64_t handshake_resume;\n        /**\n         *
          summations of handshake latency in microsecond\n         */\n        uint64_t
          handshake_accum_time_full;\n        uint64_t handshake_accum_time_resume;\n
          \   }"
      - name: quic_stats
        type: h2o_quic_stats_t
      - name: connection_stats
        type: "struct {\n        uint64_t idle_closed;\n    }"
      - name: '**_module_configs'
        type: void
      - name: _timestamp_cache
        type: "struct {\n        struct timeval tv_at;\n        h2o_timestamp_string_t
          *value;\n    }"
      - name: emitted_error_status[H2O_STATUS_ERROR_MAX]
        type: uint64_t
      item_type: struct
      name: st_h2o_context_t
      pos:
        line_end: 847
        line_start: 663
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: (*proceed)(struct st_h2o_generator_t *self, h2o_req_t *req)
        type: void
      - name: (*stop)(struct st_h2o_generator_t *self, h2o_req_t *req)
        type: void
      item_type: struct
      name: st_h2o_generator_t
      pos:
        line_end: 862
        line_start: 853
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*next'
        type: struct st_h2o_ostream_t
      - name: (*do_send)(struct st_h2o_ostream_t *self, h2o_req_t *req, h2o_sendvec_t
          *bufs, size_t bufcnt, h2o_send_state_t state)
        type: void
      - name: (*stop)(struct st_h2o_ostream_t *self, h2o_req_t *req)
        type: void
      - name: (*send_informational)(struct st_h2o_ostream_t *self, h2o_req_t *req)
        type: void
      item_type: struct
      name: st_h2o_ostream_t
      pos:
        line_end: 888
        line_start: 868
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: status
        type: int
      - name: '*reason'
        type: char
      - name: content_length
        type: size_t
      - name: headers
        type: h2o_headers_t
      - name: trailers
        type: h2o_headers_t
      - name: '*mime_attr'
        type: h2o_mime_attributes_t
      - name: original
        type: "struct {\n        int status;\n        h2o_headers_t headers;\n    }"
      item_type: struct
      name: st_h2o_res_t
      pos:
        line_end: 927
        line_start: 893
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: json
        type: h2o_iovec_vector_t
      - name: conn_flow_in
        type: ssize_t
      - name: conn_flow_out
        type: ssize_t
      item_type: struct
      name: st_h2o_http2_debug_state_t
      pos:
        line_end: 936
        line_start: 932
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: (*get_sockname)(h2o_conn_t *conn, struct sockaddr *sa)
        type: socklen_t
      - name: (*get_peername)(h2o_conn_t *conn, struct sockaddr *sa)
        type: socklen_t
      - name: '*(*get_ptls)(h2o_conn_t *conn)'
        type: ptls_t
      - name: '*(*get_ssl_server_name)(h2o_conn_t *conn)'
        type: char
      - name: '*(*log_state)(h2o_conn_t *conn)'
        type: ptls_log_conn_state_t
      - name: (*push_path)(h2o_req_t *req, const char *abspath, size_t abspath_len,
          int is_critical)
        type: void
      - name: '*(*get_debug_state)(h2o_req_t *req, int hpack_enabled)'
        type: h2o_http2_debug_state_t
      - name: (*close_idle_connection)(h2o_conn_t *conn)
        type: void
      - name: (*request_shutdown)(h2o_conn_t *conn)
        type: void
      - name: (*foreach_request)(h2o_conn_t *conn, int (*cb)(h2o_req_t *req, void
          *cbdata), void *cbdata)
        type: int
      - name: (*num_reqs_inflight)(h2o_conn_t *conn)
        type: uint32_t
      - name: '*(*get_tracer)(h2o_conn_t *conn)'
        type: quicly_tracer_t
      - name: (*get_rtt)(h2o_conn_t *conn)
        type: int64_t
      - name: (*can_zerocopy)(h2o_conn_t *conn)
        type: int
      - name: (*get_req_id)(h2o_req_t *req)
        type: uint64_t
      - name: '*(*steal_socket)(h2o_conn_t *conn)'
        type: h2o_socket_t
      - name: log_
        type: "union {\n        struct {\n            h2o_iovec_t (*extensible_priorities)(h2o_req_t
          *req);\n            /* protocol-agnostic per-message metrics; only h3 implements
          the new ones initially */\n            h2o_iovec_t (*request_header_bytes)(h2o_req_t
          *req);\n            h2o_iovec_t (*request_header_text_bytes)(h2o_req_t *req);\n
          \           h2o_iovec_t (*request_header_count)(h2o_req_t *req);\n            h2o_iovec_t
          (*response_header_text_bytes)(h2o_req_t *req);\n            h2o_iovec_t
          (*response_header_count)(h2o_req_t *req);\n            struct {\n                h2o_iovec_t
          (*cc_name)(h2o_req_t *req);\n                h2o_iovec_t (*delivery_rate)(h2o_req_t
          *req);\n            } transport;\n            struct {\n                h2o_iovec_t
          (*protocol_version)(h2o_req_t *req);\n                h2o_iovec_t (*session_reused)(h2o_req_t
          *req);\n                h2o_iovec_t (*cipher)(h2o_req_t *req);\n                h2o_iovec_t
          (*cipher_bits)(h2o_req_t *req);\n                h2o_iovec_t (*session_id)(h2o_req_t
          *req);\n                h2o_iovec_t (*negotiated_protocol)(h2o_req_t *req);\n
          \               h2o_iovec_t (*ech_config_id)(h2o_req_t *req);\n                h2o_iovec_t
          (*ech_kem)(h2o_req_t *req);\n                h2o_iovec_t (*ech_cipher)(h2o_req_t
          *req);\n                h2o_iovec_t (*ech_cipher_bits)(h2o_req_t *req);\n
          \               h2o_iovec_t (*backend)(h2o_req_t *req);\n            } ssl;\n
          \           struct {\n                h2o_iovec_t (*request_index)(h2o_req_t
          *req);\n            } http1;\n            struct {\n                h2o_iovec_t
          (*stream_id)(h2o_req_t *req);\n                h2o_iovec_t (*priority_received)(h2o_req_t
          *req);\n                h2o_iovec_t (*priority_received_exclusive)(h2o_req_t
          *req);\n                h2o_iovec_t (*priority_received_parent)(h2o_req_t
          *req);\n                h2o_iovec_t (*priority_received_weight)(h2o_req_t
          *req);\n                h2o_iovec_t (*priority_actual)(h2o_req_t *req);\n
          \               h2o_iovec_t (*priority_actual_parent)(h2o_req_t *req);\n
          \               h2o_iovec_t (*priority_actual_weight)(h2o_req_t *req);\n
          \           } http2;\n            struct {\n                h2o_iovec_t
          (*stream_id)(h2o_req_t *req);\n                h2o_iovec_t (*quic_stats)(h2o_req_t
          *req);\n                h2o_iovec_t (*quic_version)(h2o_req_t *req);\n                h2o_iovec_t
          (*qpack_blocked)(h2o_req_t *req);\n                /* per-request QUIC-stream
          byte counters */\n                h2o_iovec_t (*request_stream_bytes)(h2o_req_t
          *req);\n                h2o_iovec_t (*response_stream_bytes)(h2o_req_t *req);\n
          \           } http3;\n        };\n        h2o_iovec_t (*callbacks[1])(h2o_req_t
          *req);\n    }"
      item_type: struct
      name: st_h2o_conn_callbacks_t
      pos:
        line_end: 1061
        line_start: 938
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*ctx'
        type: h2o_context_t
      - name: '**hosts'
        type: h2o_hostconf_t
      - name: connected_at
        type: struct timeval
      - name: id
        type: uint64_t
      - name: '*callbacks'
        type: h2o_conn_callbacks_t
      - name: _uuid
        type: "struct {\n        char str[H2O_UUID_STR_RFC4122_LEN + 1];\n        uint8_t
          is_initialized;\n    }"
      - name: state
        type: h2o_conn_state_t
      - name: _conns
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_conn_t
      pos:
        line_end: 1097
        line_start: 1066
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*next'
        type: struct st_h2o_req_prefilter_t
      - name: (*on_setup_ostream)(struct st_h2o_req_prefilter_t *self, h2o_req_t *req,
          h2o_ostream_t **slot)
        type: void
      item_type: struct
      name: st_h2o_req_prefilter_t
      pos:
        line_end: 1123
        line_start: 1120
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*client_ctx'
        type: h2o_httpclient_ctx_t
      - name: '*connpool'
        type: h2o_httpclient_connection_pool_t
      - name: '*upstream'
        type: h2o_url_t
      - name: location_rewrite
        type: "struct {\n        /**\n         * if the prefix of the location header
          matches the url, then the header will be rewritten\n         */\n        h2o_url_t
          *match;\n        /**\n         * path prefix to be inserted upon rewrite\n
          \        */\n        h2o_iovec_t path_prefix;\n    }"
      - name: proxy_expect_mode
        type: h2o_proxy_expect_mode_t
      - name: use_proxy_protocol
        type: unsigned
      - name: proxy_preserve_host
        type: unsigned
      - name: forward_close_connection
        type: unsigned
      - name: '*headers_cmds'
        type: h2o_headers_command_t
      item_type: struct
      name: st_h2o_req_overrides_t
      pos:
        line_end: 1171
        line_start: 1125
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: script_name
        type: h2o_iovec_t
      - name: path_info
        type: h2o_iovec_t
      - name: local_path
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_filereq_t
      pos:
        line_end: 1180
        line_start: 1176
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*conn'
        type: h2o_conn_t
      - name: input
        type: "struct {\n        /**\n         * scheme (http, https, etc.)\n         */\n
          \       const h2o_url_scheme_t *scheme;\n        /**\n         * authority
          (a.k.a. the Host header; the value is supplemented if missing before the
          handlers are being called)\n         */\n        h2o_iovec_t authority;\n
          \       /**\n         * method\n         */\n        h2o_iovec_t method;\n
          \       /**\n         * abs-path of the request (unmodified)\n         */\n
          \       h2o_iovec_t path;\n        /**\n         * offset of '?' within
          path, or SIZE_MAX if not found\n         */\n        size_t query_at;\n
          \   }"
      - name: '*hostconf'
        type: h2o_hostconf_t
      - name: '*pathconf'
        type: h2o_pathconf_t
      - name: '**filters'
        type: h2o_filter_t
      - name: num_filters
        type: size_t
      - name: '**loggers'
        type: h2o_logger_t
      - name: num_loggers
        type: size_t
      - name: '*handler'
        type: h2o_handler_t
      - name: '*scheme'
        type: h2o_url_scheme_t
      - name: authority
        type: h2o_iovec_t
      - name: method
        type: h2o_iovec_t
      - name: path
        type: h2o_iovec_t
      - name: query_at
        type: size_t
      - name: path_normalized
        type: h2o_iovec_t
      - name: '*norm_indexes'
        type: size_t
      - name: authority_wildcard_match
        type: h2o_iovec_t
      - name: '*prefilters'
        type: h2o_req_prefilter_t
      - name: '*filereq'
        type: h2o_filereq_t
      - name: '*overrides'
        type: h2o_req_overrides_t
      - name: version
        type: int
      - name: headers
        type: h2o_headers_t
      - name: entity
        type: h2o_iovec_t
      - name: req_body_bytes_received
        type: size_t
      - name: content_length
        type: size_t
      - name: processed_at
        type: h2o_timestamp_t
      - name: timestamps
        type: "struct {\n        struct timeval request_begin_at;\n        struct
          timeval request_body_begin_at;\n        struct timeval response_start_at;\n
          \       struct timeval response_end_at;\n    }"
      - name: proxy_stats
        type: "struct {\n        struct {\n            uint64_t total;\n            uint64_t
          header;\n            uint64_t body;\n        } bytes_written;\n        struct
          {\n            uint64_t total;\n            uint64_t header;\n            uint64_t
          body;\n        } bytes_read;\n        h2o_httpclient_timings_t timestamps;\n
          \       h2o_httpclient_conn_properties_t conn;\n    }"
      - name: res
        type: h2o_res_t
      - name: bytes_sent
        type: uint64_t
      - name: header_bytes_sent
        type: uint64_t
      - name: remaining_reprocesses
        type: unsigned
      - name: remaining_delegations
        type: unsigned
      - name: env
        type: h2o_iovec_vector_t
      - name: '*error_logs'
        type: h2o_buffer_t
      - name: error_log_delegate
        type: "struct {\n        void (*cb)(void *data, h2o_iovec_t prefix, h2o_iovec_t
          msg);\n        void *data;\n    }"
      - name: http1_is_persistent
        type: unsigned char
      - name: res_is_delegated
        type: unsigned char
      - name: reprocess_if_too_early
        type: unsigned char
      - name: upstream_refused
        type: unsigned char
      - name: process_called
        type: unsigned char
      - name: is_tunnel_req
        type: unsigned char
      - name: path_normalized_has_null_char
        type: unsigned
      - name: send_server_timing
        type: unsigned
      - name: compress_hint
        type: char
      - name: upgrade
        type: h2o_iovec_t
      - name: preferred_chunk_size
        type: size_t
      - name: write_req
        type: "struct {\n        h2o_write_req_cb cb;\n        void *ctx;\n    }"
      - name: proceed_req
        type: h2o_proceed_req_cb
      - name: forward_datagram
        type: "struct {\n        h2o_forward_datagram_cb write_, read_;\n    }"
      - name: '*_generator'
        type: h2o_generator_t
      - name: '*_ostr_top'
        type: h2o_ostream_t
      - name: _next_filter_index
        type: size_t
      - name: _timeout_entry
        type: h2o_timer_t
      - name: pool
        type: h2o_mem_pool_t
      item_type: struct
      name: st_h2o_req_t
      pos:
        line_end: 1477
        line_start: 1206
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*ctx'
        type: h2o_context_t
      - name: '**hosts'
        type: h2o_hostconf_t
      - name: '*ssl_ctx'
        type: SSL_CTX
      - name: '*http2_origin_frame'
        type: h2o_iovec_t
      - name: expect_proxy_line
        type: int
      - name: '*libmemcached_receiver'
        type: h2o_multithread_receiver_t
      item_type: struct
      name: st_h2o_accept_ctx_t
      pos:
        line_end: 1486
        line_start: 1479
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: name
        type: h2o_iovec_t
      - name: "(*do_transform)(struct st_h2o_compress_context_t *self, h2o_sendvec_t
          *inbufs, size_t inbufcnt,\n                                     h2o_send_state_t
          state, h2o_sendvec_t **outbufs, size_t *outbufcnt)"
        type: h2o_send_state_t
      - name: '*push_buf'
        type: char
      item_type: struct
      name: st_h2o_compress_context_t
      pos:
        line_end: 2078
        line_start: 2064
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: min_size
        type: size_t
      - name: gzip
        type: "struct {\n        int quality; /* -1 if disabled */\n    }"
      - name: brotli
        type: "struct {\n        int quality; /* -1 if disabled */\n    }"
      - name: zstd
        type: "struct {\n        int quality; /* -1 if disabled */\n    }"
      item_type: struct
      name: st_h2o_compress_args_t
      pos:
        line_end: 2091
        line_start: 2080
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: status
        type: int
      - name: url
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_errordoc_t
      pos:
        line_end: 2140
        line_start: 2137
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: mode
        type: int
      - name: data
        type: "union {\n        const char *absolute;\n        uint64_t max_age;\n
          \   }"
      item_type: struct
      name: st_h2o_expires_args_t
      pos:
        line_end: 2161
        line_start: 2155
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: io_timeout
        type: uint64_t
      - name: keepalive_timeout
        type: uint64_t
      - name: document_root
        type: h2o_iovec_t
      - name: send_delegated_uri
        type: int
      - name: callbacks
        type: "struct {\n        void (*dispose)(h2o_fastcgi_handler_t *handler, void
          *data);\n        void *data;\n    }"
      item_type: struct
      name: st_h2o_fastcgi_config_vars_t
      pos:
        line_end: 2187
        line_start: 2178
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: '*name'
        type: h2o_iovec_t
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_headers_command_arg_t
      pos:
        line_end: 2272
        line_start: 2269
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: cmd
        type: int
      - name: '*args'
        type: h2o_headers_command_arg_t
      - name: num_args
        type: size_t
      - name: when
        type: h2o_headers_command_when_t
      item_type: struct
      name: st_h2o_headers_command_t
      pos:
        line_end: 2279
        line_start: 2274
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: io_timeout
        type: uint64_t
      - name: connect_timeout
        type: uint64_t
      - name: first_byte_timeout
        type: uint64_t
      - name: keepalive_timeout
        type: uint64_t
      - name: happy_eyeballs
        type: "struct {\n        uint64_t name_resolution_delay;\n        uint64_t
          connection_attempt_delay;\n    }"
      - name: expect_mode
        type: h2o_proxy_expect_mode_t
      - name: preserve_host
        type: unsigned
      - name: use_proxy_protocol
        type: unsigned
      - name: tunnel_enabled
        type: unsigned
      - name: connect_proxy_status_enabled
        type: unsigned
      - name: support_masque_draft_03
        type: unsigned
      - name: forward_close_connection
        type: unsigned
      - name: '*headers_cmds'
        type: h2o_headers_command_t
      - name: max_buffer_size
        type: size_t
      - name: http2
        type: "struct {\n        uint32_t max_concurrent_streams;\n        unsigned
          force_cleartext : 1;\n    }"
      - name: http3
        type: "struct {\n        unsigned ecn : 1;\n    }"
      - name: protocol_ratio
        type: h2o_httpclient_protocol_ratio_t
      item_type: struct
      name: st_h2o_proxy_config_vars_t
      pos:
        line_end: 2325
        line_start: 2296
        source_file: /src/h2o/include/h2o.h
    - fields:
      - name: allow_
        type: uint8_t
      - name: addr_family
        type: enum { H2O_CONNECT_ACL_ADDRESS_ANY, H2O_CONNECT_ACL_ADDRESS_V4, H2O_CONNECT_ACL_ADDRESS_V6
          }
      - name: addr
        type: "union {\n        uint32_t v4;\n        uint8_t v6[16];\n    }"
      - name: addr_mask
        type: size_t
      - name: port_min
        type: uint16_t
      - name: port_max
        type: uint16_t
      item_type: struct
      name: st_h2o_connect_acl_entry_t
      pos:
        line_end: 2380
        line_start: 2368
        source_file: /src/h2o/include/h2o.h
    typedefs:
    - item_type: typedef
      name: h2o_conn_t
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_conn_t
    - item_type: typedef
      name: h2o_context_t
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_context_t
    - item_type: typedef
      name: h2o_req_t
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_req_t
    - item_type: typedef
      name: h2o_ostream_t
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_ostream_t
    - item_type: typedef
      name: h2o_configurator_command_t
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_configurator_command_t
    - item_type: typedef
      name: h2o_configurator_t
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_configurator_t
    - item_type: typedef
      name: h2o_pathconf_t
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_pathconf_t
    - item_type: typedef
      name: h2o_hostconf_t
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_hostconf_t
    - item_type: typedef
      name: h2o_globalconf_t
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_globalconf_t
    - item_type: typedef
      name: h2o_mimemap_t
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_mimemap_t
    - item_type: typedef
      name: h2o_logconf_t
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_logconf_t
    - item_type: typedef
      name: h2o_headers_command_t
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_headers_command_t
    - item_type: typedef
      name: (*final_status_handler_cb)(void *ctx, h2o_globalconf_t *gconf, h2o_req_t
        *req)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/h2o/include/h2o.h
      type: h2o_iovec_t
    - item_type: typedef
      name: (h2o_status_handler_t *)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/h2o/include/h2o.h
      type: H2O_VECTOR
    - item_type: typedef
      name: (h2o_context_storage_item_t)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/h2o/include/h2o.h
      type: H2O_VECTOR
    - item_type: typedef
      name: (*h2o_write_req_cb)(void *ctx, int is_end_stream)
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/h2o/include/h2o.h
      type: int
    - item_type: typedef
      name: (*h2o_proceed_req_cb)(h2o_req_t *req, const char *errstr)
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/h2o/include/h2o.h
      type: void
    - item_type: typedef
      name: (*h2o_forward_datagram_cb)(h2o_req_t *req, h2o_iovec_t *datagrams, size_t
        num_datagrams)
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/h2o/include/h2o.h
      type: void
    - item_type: typedef
      name: h2o_access_log_filehandle_t
      pos:
        line_end: 2046
        line_start: 2046
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_access_log_filehandle_t
    - item_type: typedef
      name: h2o_fastcgi_handler_t
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_fastcgi_handler_t
    - item_type: typedef
      name: h2o_file_handler_t
      pos:
        line_end: 2212
        line_start: 2212
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_file_handler_t
    - item_type: typedef
      name: h2o_redirect_handler_t
      pos:
        line_end: 2338
        line_start: 2338
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_redirect_handler_t
    - item_type: typedef
      name: h2o_reproxy_handler_t
      pos:
        line_end: 2355
        line_start: 2355
        source_file: /src/h2o/include/h2o.h
      type: st_h2o_reproxy_handler_t
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/filecache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_FILECACHE_ETAG_MAXLEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/filecache.h
      type_or_value: (sizeof("\"deadbeef-deadbeefdeadbeef\"") - 1)
    structs:
    - fields:
      - name: fd
        type: int
      - name: _refcnt
        type: size_t
      - name: _lru
        type: h2o_linklist_t
      - name: _path[1]
        type: char
      item_type: struct
      name: st_h2o_filecache_ref_t
      pos:
        line_end: 54
        line_start: 33
        source_file: /src/h2o/include/h2o/filecache.h
    typedefs:
    - item_type: typedef
      name: h2o_filecache_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/h2o/include/h2o/filecache.h
      type: st_h2o_filecache_t
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/http2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_HEADER_TABLE_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_ENABLE_PUSH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: '100'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_CONNECTION_WINDOW_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: H2O_HTTP2_MAX_STREAM_WINDOW_SIZE
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_STREAM_INITIAL_WINDOW_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: H2O_HTTP2_MIN_STREAM_WINDOW_SIZE
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HOST_MAX_FRAME_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: H2O_HTTP2_DEFAULT_MAX_CONCURRENT_STREAMING_REQUESTS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/http2.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/http1.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*h2o_http1_upgrade_cb)(void *user_data, h2o_socket_t *sock, size_t reqsize)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/include/h2o/http1.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/memcached.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_MEMCACHED_ENCODE_KEY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/memcached.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: H2O_MEMCACHED_ENCODE_VALUE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/include/h2o/memcached.h
      type_or_value: '0x2'
    structs: []
    typedefs:
    - item_type: typedef
      name: h2o_memcached_context_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/h2o/include/h2o/memcached.h
      type: st_h2o_memcached_context_t
    - item_type: typedef
      name: h2o_memcached_req_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/include/h2o/memcached.h
      type: st_h2o_memcached_req_t
    - item_type: typedef
      name: (*h2o_memcached_get_cb)(h2o_iovec_t value, void *cb_data)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/include/h2o/memcached.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/file.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_rand
  source_file: /src/h2o/include/h2o/rand.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_RAND_MAX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/rand.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: H2O_RAND_MAX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/rand.h
      type_or_value: RAND_MAX
    - item_type: preproc_def
      name: H2O_DEFINE_RAND
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/include/h2o/rand.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_UUID_STR_RFC4122_LEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/include/h2o/rand.h
      type_or_value: (sizeof("01234567-0123-4000-8000-0123456789ab") - 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/http3_internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*quic'
        type: quicly_stream_t
      - name: '*bytes_sent'
        type: uint64_t
      - name: '*sendbuf'
        type: h2o_buffer_t
      item_type: struct
      name: st_h2o_http3_egress_unistream_t
      pos:
        line_end: 44
        line_start: 31
        source_file: /src/h2o/include/h2o/http3_internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_VERSION_BASE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '"2.3.0-DEV"'
    - item_type: preproc_def
      name: H2O_VERSION_MAJOR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_VERSION_MINOR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_VERSION_PATCH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: H2O_VERSION_BASE "@" H2O_TO_STR(H2O_GITREV)
    - item_type: preproc_def
      name: H2O_VERSION
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: H2O_VERSION_BASE
    - item_type: preproc_def
      name: H2O_LIBRARY_VERSION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '"0.16.0"'
    - item_type: preproc_def
      name: H2O_LIBRARY_VERSION_MAJOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_LIBRARY_VERSION_MINOR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '16'
    - item_type: preproc_def
      name: H2O_LIBRARY_VERSION_PATCH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/include/h2o/version.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/token_table.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_TOKEN_AUTHORITY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 0)
    - item_type: preproc_def
      name: H2O_TOKEN_METHOD
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 1)
    - item_type: preproc_def
      name: H2O_TOKEN_PATH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 2)
    - item_type: preproc_def
      name: H2O_TOKEN_PROTOCOL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 3)
    - item_type: preproc_def
      name: H2O_TOKEN_SCHEME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 4)
    - item_type: preproc_def
      name: H2O_TOKEN_STATUS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 5)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCEPT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 6)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCEPT_CHARSET
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 7)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCEPT_ENCODING
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 8)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCEPT_LANGUAGE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 9)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCEPT_RANGES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 10)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_ALLOW_CREDENTIALS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 11)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_ALLOW_HEADERS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 12)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_ALLOW_METHODS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 13)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_ALLOW_ORIGIN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 14)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_EXPOSE_HEADERS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 15)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_REQUEST_HEADERS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 16)
    - item_type: preproc_def
      name: H2O_TOKEN_ACCESS_CONTROL_REQUEST_METHOD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 17)
    - item_type: preproc_def
      name: H2O_TOKEN_AGE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 18)
    - item_type: preproc_def
      name: H2O_TOKEN_ALLOW
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 19)
    - item_type: preproc_def
      name: H2O_TOKEN_ALT_SVC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 20)
    - item_type: preproc_def
      name: H2O_TOKEN_AUTHORIZATION
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 21)
    - item_type: preproc_def
      name: H2O_TOKEN_CACHE_CONTROL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 22)
    - item_type: preproc_def
      name: H2O_TOKEN_CACHE_DIGEST
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 23)
    - item_type: preproc_def
      name: H2O_TOKEN_CONNECTION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 24)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_DISPOSITION
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 25)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_ENCODING
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 26)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_LANGUAGE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 27)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_LENGTH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 28)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_LOCATION
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 29)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_RANGE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 30)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_SECURITY_POLICY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 31)
    - item_type: preproc_def
      name: H2O_TOKEN_CONTENT_TYPE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 32)
    - item_type: preproc_def
      name: H2O_TOKEN_COOKIE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 33)
    - item_type: preproc_def
      name: H2O_TOKEN_DATAGRAM_FLOW_ID
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 34)
    - item_type: preproc_def
      name: H2O_TOKEN_DATE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 35)
    - item_type: preproc_def
      name: H2O_TOKEN_EARLY_DATA
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 36)
    - item_type: preproc_def
      name: H2O_TOKEN_ETAG
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 37)
    - item_type: preproc_def
      name: H2O_TOKEN_EXPECT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 38)
    - item_type: preproc_def
      name: H2O_TOKEN_EXPECT_CT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 39)
    - item_type: preproc_def
      name: H2O_TOKEN_EXPIRES
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 40)
    - item_type: preproc_def
      name: H2O_TOKEN_FORWARDED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 41)
    - item_type: preproc_def
      name: H2O_TOKEN_FROM
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 42)
    - item_type: preproc_def
      name: H2O_TOKEN_HOST
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 43)
    - item_type: preproc_def
      name: H2O_TOKEN_HTTP2_SETTINGS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 44)
    - item_type: preproc_def
      name: H2O_TOKEN_IF_MATCH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 45)
    - item_type: preproc_def
      name: H2O_TOKEN_IF_MODIFIED_SINCE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 46)
    - item_type: preproc_def
      name: H2O_TOKEN_IF_NONE_MATCH
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 47)
    - item_type: preproc_def
      name: H2O_TOKEN_IF_RANGE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 48)
    - item_type: preproc_def
      name: H2O_TOKEN_IF_UNMODIFIED_SINCE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 49)
    - item_type: preproc_def
      name: H2O_TOKEN_KEEP_ALIVE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 50)
    - item_type: preproc_def
      name: H2O_TOKEN_LAST_MODIFIED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 51)
    - item_type: preproc_def
      name: H2O_TOKEN_LINK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 52)
    - item_type: preproc_def
      name: H2O_TOKEN_LOCATION
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 53)
    - item_type: preproc_def
      name: H2O_TOKEN_MAX_FORWARDS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 54)
    - item_type: preproc_def
      name: H2O_TOKEN_NO_EARLY_HINTS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 55)
    - item_type: preproc_def
      name: H2O_TOKEN_ORIGIN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 56)
    - item_type: preproc_def
      name: H2O_TOKEN_PRIORITY
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 57)
    - item_type: preproc_def
      name: H2O_TOKEN_PROXY_AUTHENTICATE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 58)
    - item_type: preproc_def
      name: H2O_TOKEN_PROXY_AUTHORIZATION
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 59)
    - item_type: preproc_def
      name: H2O_TOKEN_PROXY_CONNECTION
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 60)
    - item_type: preproc_def
      name: H2O_TOKEN_PURPOSE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 61)
    - item_type: preproc_def
      name: H2O_TOKEN_RANGE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 62)
    - item_type: preproc_def
      name: H2O_TOKEN_REFERER
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 63)
    - item_type: preproc_def
      name: H2O_TOKEN_REFRESH
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 64)
    - item_type: preproc_def
      name: H2O_TOKEN_RETRY_AFTER
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 65)
    - item_type: preproc_def
      name: H2O_TOKEN_SERVER
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 66)
    - item_type: preproc_def
      name: H2O_TOKEN_SET_COOKIE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 67)
    - item_type: preproc_def
      name: H2O_TOKEN_STRICT_TRANSPORT_SECURITY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 68)
    - item_type: preproc_def
      name: H2O_TOKEN_TE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 69)
    - item_type: preproc_def
      name: H2O_TOKEN_TIMING_ALLOW_ORIGIN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 70)
    - item_type: preproc_def
      name: H2O_TOKEN_TRANSFER_ENCODING
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 71)
    - item_type: preproc_def
      name: H2O_TOKEN_UPGRADE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 72)
    - item_type: preproc_def
      name: H2O_TOKEN_UPGRADE_INSECURE_REQUESTS
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 73)
    - item_type: preproc_def
      name: H2O_TOKEN_USER_AGENT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 74)
    - item_type: preproc_def
      name: H2O_TOKEN_VARY
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 75)
    - item_type: preproc_def
      name: H2O_TOKEN_VIA
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 76)
    - item_type: preproc_def
      name: H2O_TOKEN_WWW_AUTHENTICATE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 77)
    - item_type: preproc_def
      name: H2O_TOKEN_X_COMPRESS_HINT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 78)
    - item_type: preproc_def
      name: H2O_TOKEN_X_CONTENT_TYPE_OPTIONS
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 79)
    - item_type: preproc_def
      name: H2O_TOKEN_X_FORWARDED_FOR
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 80)
    - item_type: preproc_def
      name: H2O_TOKEN_X_FRAME_OPTIONS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 81)
    - item_type: preproc_def
      name: H2O_TOKEN_X_REPROXY_URL
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 82)
    - item_type: preproc_def
      name: H2O_TOKEN_X_TRAFFIC
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 83)
    - item_type: preproc_def
      name: H2O_TOKEN_X_XSS_PROTECTION
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/include/h2o/token_table.h
      type_or_value: (h2o__tokens + 84)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*h2o_qpack_lookup_static_cb)(h2o_iovec_t value, int *is_exact)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/h2o/include/h2o/token_table.h
      type: int32_t
    union: []
- function_names:
  - h2o_linklist_init_anchor
  - h2o_linklist_is_linked
  - h2o_linklist_is_empty
  - h2o_linklist_insert
  - h2o_linklist_insert_list
  - h2o_linklist_unlink
  source_file: /src/h2o/include/h2o/linklist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct st_h2o_linklist_t
      - name: '*prev'
        type: struct st_h2o_linklist_t
      item_type: struct
      name: st_h2o_linklist_t
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/h2o/include/h2o/linklist.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/hpack.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HPACK_MAX_HEADERS_HARD_LIMIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: H2O_HPACK_ENCODE_INT_MAX_LENGTH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: H2O_HPACK_SOFT_ERROR_BIT_INVALID_NAME
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: H2O_HPACK_SOFT_ERROR_BIT_INVALID_VALUE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: H2O_HPACK_PARSE_HEADERS_METHOD_EXISTS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HPACK_PARSE_HEADERS_SCHEME_EXISTS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_HPACK_PARSE_HEADERS_PATH_EXISTS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '4'
    - item_type: preproc_def
      name: H2O_HPACK_PARSE_HEADERS_AUTHORITY_EXISTS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '8'
    - item_type: preproc_def
      name: H2O_HPACK_PARSE_HEADERS_PROTOCOL_EXISTS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/include/h2o/hpack.h
      type_or_value: '16'
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*h2o_hpack_decode_header_cb)(h2o_mem_pool_t *pool, void *ctx, h2o_iovec_t
        **name, h2o_iovec_t *value,\n                                          const
        uint8_t **const src, const uint8_t *src_end, const char **err_desc)"
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/include/h2o/hpack.h
      type: int
    union: []
- function_names:
  - h2o_mruby_assert
  - h2o_mruby_new_str
  - h2o_mruby_new_str_static
  - H2O_MRUBY_EXEC_GUARD
  source_file: /src/h2o/include/h2o/mruby_.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_MRUBY_MODULE_NAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/include/h2o/mruby_.h
      type_or_value: '"h2o_mruby"'
    structs:
    - fields:
      - name: source
        type: h2o_iovec_t
      - name: '*path'
        type: char
      - name: lineno
        type: int
      item_type: struct
      name: st_h2o_mruby_config_vars_t
      pos:
        line_end: 88
        line_start: 84
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: super
        type: h2o_handler_t
      - name: config
        type: h2o_mruby_config_vars_t
      - name: '*pathconf'
        type: h2o_pathconf_t
      item_type: struct
      name: st_h2o_mruby_handler_t
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: '*ctx'
        type: h2o_context_t
      - name: '*mrb'
        type: mrb_state
      - name: constants
        type: mrb_value
      - name: '*current_context'
        type: struct st_h2o_mruby_context_t
      - name: symbols
        type: "struct {\n        mrb_sym sym_call;\n        mrb_sym sym_close;\n        mrb_sym
          sym_method;\n        mrb_sym sym_headers;\n        mrb_sym sym_body;\n        mrb_sym
          sym_async;\n    }"
      - name: callbacks
        type: h2o_mruby_callbacks_t
      item_type: struct
      name: st_h2o_mruby_shared_context_t
      pos:
        line_end: 115
        line_start: 101
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: '*handler'
        type: h2o_mruby_handler_t
      - name: proc
        type: mrb_value
      - name: '*shared'
        type: h2o_mruby_shared_context_t
      - name: blocking_reqs
        type: mrb_value
      - name: resumers
        type: mrb_value
      item_type: struct
      name: st_h2o_mruby_context_t
      pos:
        line_end: 123
        line_start: 117
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: body_obj
        type: mrb_value
      - name: bytes_left
        type: size_t
      - name: (*start)(h2o_mruby_generator_t *generator)
        type: void
      - name: (*proceed)(h2o_generator_t *generator, h2o_req_t *req)
        type: void
      - name: (*dispose)(h2o_mruby_generator_t *generator)
        type: void
      - name: final_sent
        type: unsigned char
      item_type: struct
      name: st_h2o_mruby_sender_t
      pos:
        line_end: 158
        line_start: 133
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: '*generator'
        type: h2o_mruby_generator_t
      item_type: struct
      name: st_h2o_mruby_error_stream_t
      pos:
        line_end: 163
        line_start: 160
        source_file: /src/h2o/include/h2o/mruby_.h
    - fields:
      - name: super
        type: h2o_generator_t
      - name: '*req'
        type: h2o_req_t
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: rack_input
        type: mrb_value
      - name: '*sender'
        type: h2o_mruby_sender_t
      - name: '*error_stream'
        type: h2o_mruby_error_stream_t
      - name: refs
        type: "struct {\n        mrb_value generator;\n        mrb_value error_stream;\n
          \   }"
      item_type: struct
      name: st_h2o_mruby_generator_t
      pos:
        line_end: 176
        line_start: 165
        source_file: /src/h2o/include/h2o/mruby_.h
    typedefs:
    - item_type: typedef
      name: h2o_mruby_context_t
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/include/h2o/mruby_.h
      type: st_h2o_mruby_context_t
    - item_type: typedef
      name: "(*h2o_mruby_callback_t)(h2o_mruby_context_t *ctx, mrb_value input, mrb_value
        *receiver, mrb_value args,\n                                          int
        *run_again)"
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/include/h2o/mruby_.h
      type: mrb_value
    - item_type: typedef
      name: (h2o_mruby_callback_t)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/include/h2o/mruby_.h
      type: H2O_VECTOR
    - item_type: typedef
      name: h2o_mruby_sender_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/h2o/include/h2o/mruby_.h
      type: st_h2o_mruby_sender_t
    - item_type: typedef
      name: h2o_mruby_http_request_context_t
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/h2o/include/h2o/mruby_.h
      type: st_h2o_mruby_http_request_context_t
    - item_type: typedef
      name: h2o_mruby_channel_context_t
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/h2o/include/h2o/mruby_.h
      type: st_h2o_mruby_channel_context_t
    - item_type: typedef
      name: h2o_mruby_generator_t
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/h2o/include/h2o/mruby_.h
      type: st_h2o_mruby_generator_t
    - item_type: typedef
      name: "(*h2o_mruby_send_response_callback_t)(h2o_mruby_generator_t *generator,
        mrb_int status, mrb_value resp,\n                                                  int
        *is_delegate)"
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/h2o/include/h2o/mruby_.h
      type: int
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/qpack.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count
        type: size_t
      - name: text_bytes
        type: size_t
      item_type: struct
      name: st_h2o_qpack_section_stats_t
      pos:
        line_end: 53
        line_start: 44
        source_file: /src/h2o/include/h2o/qpack.h
    typedefs:
    - item_type: typedef
      name: h2o_qpack_decoder_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/h2o/include/h2o/qpack.h
      type: st_h2o_qpack_decoder_t
    - item_type: typedef
      name: h2o_qpack_encoder_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/include/h2o/qpack.h
      type: st_h2o_qpack_encoder_t
    union: []
- function_names:
  - h2o_absprio_urgency_to_chromium_weight
  source_file: /src/h2o/include/h2o/absprio.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_ABSPRIO_DEFAULT_URGENCY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/absprio.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_ABSPRIO_NUM_URGENCY_LEVELS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/include/h2o/absprio.h
      type_or_value: '8'
    structs:
    - fields:
      - name: urgency
        type: uint8_t
      - name: incremental
        type: uint8_t
      item_type: struct
      name: h2o_absprio_t
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/h2o/include/h2o/absprio.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/http3_server.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_quic_ctx_t
      - name: '*accept_ctx'
        type: h2o_accept_ctx_t
      - name: send_retry
        type: unsigned
      - name: qpack
        type: h2o_http3_qpack_context_t
      item_type: struct
      name: st_h2o_http3_server_ctx_t
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/h2o/include/h2o/http3_server.h
    typedefs: []
    union: []
- function_names:
  - H2O_STRLIT
  - h2o_concat
  - h2o_tolower
  - h2o_strtolower
  - h2o_strcopytolower
  - h2o_toupper
  - h2o_strtoupper
  - h2o_lcstris
  - h2o_base64_encode_capacity
  source_file: /src/h2o/include/h2o/string_.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_INT8_LONGEST_STR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"-127"'
    - item_type: preproc_def
      name: H2O_UINT8_LONGEST_STR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"255"'
    - item_type: preproc_def
      name: H2O_INT16_LONGEST_STR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"-32768"'
    - item_type: preproc_def
      name: H2O_UINT16_LONGEST_STR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"65535"'
    - item_type: preproc_def
      name: H2O_INT32_LONGEST_STR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"-2147483648"'
    - item_type: preproc_def
      name: H2O_UINT32_LONGEST_STR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"4294967295"'
    - item_type: preproc_def
      name: H2O_INT64_LONGEST_STR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"-9223372036854775808"'
    - item_type: preproc_def
      name: H2O_UINT64_LONGEST_STR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"18446744073709551615"'
    - item_type: preproc_def
      name: H2O_UINT64_LONGEST_HEX_STR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: '"FFFFFFFFFFFFFFFF"'
    - item_type: preproc_def
      name: H2O_SIZE_T_LONGEST_STR
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/h2o/include/h2o/string_.h
      type_or_value: 'H2O_UINT64_LONGEST_STR '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/hiredis_.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/io_uring.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*head'
        type: struct st_h2o_io_uring_cmd_t
      - name: '**tail'
        type: struct st_h2o_io_uring_cmd_t
      - name: size
        type: size_t
      item_type: struct
      name: st_h2o_io_uring_queue_t
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/h2o/include/h2o/io_uring.h
    - fields:
      - name: uring
        type: struct io_uring
      - name: '*sock_notify'
        type: h2o_socket_t
      - name: submission
        type: struct st_h2o_io_uring_queue_t
      - name: delayed
        type: h2o_timer_t
      item_type: struct
      name: st_h2o_io_uring_t
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/h2o/include/h2o/io_uring.h
    - fields:
      - name: cb
        type: "struct {\n        h2o_io_uring_cb func;\n        void *data;\n    }"
      - name: result
        type: int
      - name: '*next'
        type: struct st_h2o_io_uring_cmd_t
      - name: splice_
        type: "struct {\n        int fd_in;\n        int64_t off_in;\n        int
          fd_out;\n        int64_t off_out;\n        unsigned nbytes;\n        unsigned
          splice_flags;\n    }"
      item_type: struct
      name: st_h2o_io_uring_cmd_t
      pos:
        line_end: 65
        line_start: 50
        source_file: /src/h2o/include/h2o/io_uring.h
    typedefs:
    - item_type: typedef
      name: h2o_io_uring_cmd_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/h2o/include/h2o/io_uring.h
      type: st_h2o_io_uring_cmd_t
    - item_type: typedef
      name: (*h2o_io_uring_cb)(h2o_io_uring_cmd_t *)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/h2o/include/h2o/io_uring.h
      type: void
    union: []
- function_names:
  - h2o_http2_encode_rst_stream_frame
  - h2o_http2_window_init
  - h2o_http2_window_update
  - h2o_http2_window_get_avail
  - h2o_http2_window_consume_window
  - h2o_http2_decode16u
  - h2o_http2_decode24u
  - h2o_http2_decode32u
  - h2o_http2_encode16u
  - h2o_http2_encode24u
  - h2o_http2_encode32u
  - h2o_hpack_header_table_get
  source_file: /src/h2o/include/h2o/http2_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_HEADER_TABLE_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_ENABLE_PUSH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_INITIAL_WINDOW_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_MAX_FRAME_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '6'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_NONE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_PROTOCOL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_INTERNAL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_FLOW_CONTROL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_SETTINGS_TIMEOUT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-4'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_STREAM_CLOSED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-5'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_FRAME_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-6'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_REFUSED_STREAM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-7'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_CANCEL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-8'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_COMPRESSION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-9'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_CONNECT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-10'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_ENHANCE_YOUR_CALM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-11'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_INADEQUATE_SECURITY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-12'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_MAX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '13'
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_INVALID_HEADER_CHAR
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-254 '
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_INCOMPLETE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-255 '
    - item_type: preproc_def
      name: H2O_HTTP2_ERROR_PROTOCOL_CLOSE_IMMEDIATELY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '-256'
    - item_type: preproc_def
      name: H2O_HTTP2_DEFAULT_OUTBUF_SIZE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '81920 '
    - item_type: preproc_def
      name: H2O_HTTP2_DEFAULT_OUTBUF_SOFT_MAX_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '524288 '
    - item_type: preproc_def
      name: H2O_HTTP2_DEFAULT_OUTBUF_WRITE_TIMEOUT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '60000  '
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_HEADER_SIZE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '9'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_DATA
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_HEADERS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_PRIORITY
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_RST_STREAM
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_SETTINGS
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_PUSH_PROMISE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_PING
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '6'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_GOAWAY
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '7'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_WINDOW_UPDATE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_CONTINUATION
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '9'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_TYPE_ORIGIN
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '12'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_FLAG_END_STREAM
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_FLAG_ACK
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_FLAG_END_HEADERS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_FLAG_PADDED
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: H2O_HTTP2_FRAME_FLAG_PRIORITY
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/h2o/include/h2o/http2_common.h
      type_or_value: '0x20'
    structs:
    - fields:
      - name: header_table_size
        type: uint32_t
      - name: enable_push
        type: uint32_t
      - name: max_concurrent_streams
        type: uint32_t
      - name: initial_window_size
        type: uint32_t
      - name: max_frame_size
        type: uint32_t
      item_type: struct
      name: st_h2o_http2_settings_t
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: exclusive
        type: int
      - name: dependency
        type: uint32_t
      - name: weight
        type: uint16_t
      item_type: struct
      name: st_h2o_http2_priority_t
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: '*entries'
        type: struct st_h2o_hpack_header_table_entry_t
      - name: num_entries
        type: size_t
      - name: hpack_size
        type: size_t
      - name: hpack_capacity
        type: size_t
      - name: hpack_max_capacity
        type: size_t
      item_type: struct
      name: st_h2o_hpack_header_table_t
      pos:
        line_end: 93
        line_start: 85
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: '*name'
        type: h2o_iovec_t
      - name: '*value'
        type: h2o_iovec_t
      - name: soft_errors
        type: unsigned
      item_type: struct
      name: st_h2o_hpack_header_table_entry_t
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: length
        type: uint32_t
      - name: type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: stream_id
        type: uint32_t
      - name: '*payload'
        type: uint8_t
      item_type: struct
      name: st_h2o_http2_frame_t
      pos:
        line_end: 147
        line_start: 141
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: '*data'
        type: uint8_t
      - name: length
        type: size_t
      item_type: struct
      name: st_h2o_http2_data_payload_t
      pos:
        line_end: 152
        line_start: 149
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: priority
        type: h2o_http2_priority_t
      - name: '*headers'
        type: uint8_t
      - name: headers_len
        type: size_t
      item_type: struct
      name: st_h2o_http2_headers_payload_t
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: error_code
        type: uint32_t
      item_type: struct
      name: st_h2o_http2_rst_stream_payload_t
      pos:
        line_end: 162
        line_start: 160
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: data[8]
        type: uint8_t
      item_type: struct
      name: st_h2o_http2_ping_payload_t
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: last_stream_id
        type: uint32_t
      - name: error_code
        type: uint32_t
      - name: debug_data
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_http2_goaway_payload_t
      pos:
        line_end: 172
        line_start: 168
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: window_size_increment
        type: uint32_t
      item_type: struct
      name: st_h2o_http2_window_update_payload_t
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: key
        type: uint16_t
      - name: value
        type: uint32_t
      item_type: struct
      name: st_h2o_http2_settings_kvpair
      pos:
        line_end: 181
        line_start: 178
        source_file: /src/h2o/include/h2o/http2_common.h
    - fields:
      - name: _avail
        type: ssize_t
      item_type: struct
      name: st_h2o_http2_window_t
      pos:
        line_end: 208
        line_start: 206
        source_file: /src/h2o/include/h2o/http2_common.h
    typedefs: []
    union: []
- function_names:
  - BIO_get_data
  - BIO_set_data
  - BIO_get_init
  - BIO_set_init
  - BIO_get_shutdown
  - BIO_set_shutdown
  - BIO_meth_new
  - BIO_meth_set_write
  - BIO_meth_set_read
  - BIO_meth_set_puts
  - BIO_meth_set_ctrl
  - SSL_CTX_up_ref
  - X509_up_ref
  - X509_STORE_up_ref
  - EVP_PKEY_up_ref
  - X509_STORE_get0_param
  - SSL_is_server
  source_file: /src/h2o/include/h2o/openssl_backport.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_VERSION
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/include/h2o/openssl_backport.h
      type_or_value: SSLEAY_VERSION
    - item_type: preproc_def
      name: OpenSSL_version
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/include/h2o/openssl_backport.h
      type_or_value: SSLeay_version
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_httpclient__tunnel_is_ready
  source_file: /src/h2o/include/h2o/httpclient.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*proxy_protocol'
        type: h2o_iovec_t
      - name: '*chunked'
        type: int
      - name: '*connection_header'
        type: h2o_iovec_t
      - name: prefer_pipe_reader
        type: unsigned
      - name: send_own_expect
        type: unsigned
      item_type: struct
      name: st_h2o_httpclient_properties_t
      pos:
        line_end: 74
        line_start: 47
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: version
        type: int
      - name: status
        type: int
      - name: msg
        type: h2o_iovec_t
      - name: '*headers'
        type: h2o_header_t
      - name: num_headers
        type: size_t
      - name: header_requires_dup
        type: int
      - name: forward_datagram
        type: "struct {\n        h2o_httpclient_forward_datagram_cb write_, *read_;\n
          \   }"
      - name: '*pipe_reader'
        type: h2o_httpclient_pipe_reader_t
      item_type: struct
      name: st_h2o_httpclient_on_head_t
      pos:
        line_end: 95
        line_start: 78
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: fd
        type: int
      - name: on_body_piped
        type: h2o_httpclient_body_cb
      item_type: struct
      name: st_h2o_httpclient_pipe_reader_t
      pos:
        line_end: 118
        line_start: 115
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: '*socketpool'
        type: h2o_socketpool_t
      - name: http2
        type: "struct {\n        h2o_linklist_t conns;\n    }"
      - name: http3
        type: "struct {\n        h2o_linklist_t conns;\n    }"
      item_type: struct
      name: st_h2o_httpclient_connection_pool_t
      pos:
        line_end: 135
        line_start: 120
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: http2
        type: int8_t
      - name: http3
        type: int8_t
      item_type: struct
      name: st_h2o_httpclient_protocol_ratio_t
      pos:
        line_end: 150
        line_start: 137
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: '*getaddr_receiver'
        type: h2o_multithread_receiver_t
      - name: io_timeout
        type: uint64_t
      - name: connect_timeout
        type: uint64_t
      - name: first_byte_timeout
        type: uint64_t
      - name: keepalive_timeout
        type: uint64_t
      - name: max_buffer_size
        type: size_t
      - name: tunnel_enabled
        type: unsigned
      - name: force_cleartext_http2
        type: unsigned
      - name: protocol_selector
        type: "struct st_h2o_httpclient_protocol_selector_t {\n        h2o_httpclient_protocol_ratio_t
          ratio;\n        /**\n         * Each deficit is initialized to zero, then
          incremented by the respective percentage, and the protocol corresponding
          to the\n         * one with the highest value is chosen. Then, the chosen
          variable is decremented by 100.\n         */\n        int16_t _deficits[4];\n
          \   }"
      - name: http2
        type: "struct {\n        h2o_socket_latency_optimization_conditions_t latency_optimization;\n
          \       uint32_t max_concurrent_streams;\n    }"
      - name: '*http3'
        type: h2o_http3client_ctx_t
      item_type: struct
      name: st_h2o_httpclient_ctx_t
      pos:
        line_end: 187
        line_start: 154
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: ratio
        type: h2o_httpclient_protocol_ratio_t
      - name: _deficits[4]
        type: int16_t
      item_type: struct
      name: st_h2o_httpclient_protocol_selector_t
      pos:
        line_end: 172
        line_start: 165
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: verify_cert
        type: ptls_openssl_verify_certificate_t
      - name: tls
        type: ptls_context_t
      - name: quic
        type: quicly_context_t
      - name: h3
        type: h2o_quic_ctx_t
      - name: qpack
        type: h2o_http3_qpack_context_t
      - name: max_frame_payload_size
        type: uint64_t
      - name: "(*load_session)(h2o_httpclient_ctx_t *ctx, struct sockaddr *server_addr,
          const char *server_name,\n                        ptls_iovec_t *address_token,
          ptls_iovec_t *session_ticket, quicly_transport_parameters_t *resumed_tp)"
        type: int
      item_type: struct
      name: st_h2o_http3client_ctx_t
      pos:
        line_end: 205
        line_start: 189
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: start_at
        type: struct timeval
      - name: request_begin_at
        type: struct timeval
      - name: request_end_at
        type: struct timeval
      - name: response_start_at
        type: struct timeval
      - name: response_end_at
        type: struct timeval
      item_type: struct
      name: st_h2o_httpclient_timings_t
      pos:
        line_end: 213
        line_start: 207
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: ssl
        type: "struct {\n        const char *protocol_version;\n        int session_reused;\n
          \       const char *cipher;\n        int cipher_bits;\n    }"
      - name: '*sock'
        type: h2o_socket_t
      item_type: struct
      name: st_h2o_httpclient_conn_properties_t
      pos:
        line_end: 232
        line_start: 218
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: '*pool'
        type: h2o_mem_pool_t
      - name: '*ctx'
        type: h2o_httpclient_ctx_t
      - name: '*connpool'
        type: h2o_httpclient_connection_pool_t
      - name: '**buf'
        type: h2o_buffer_t
      - name: '*data'
        type: void
      - name: informational_cb
        type: h2o_httpclient_informational_cb
      - name: timings
        type: h2o_httpclient_timings_t
      - name: '*upgrade_to'
        type: char
      - name: bytes_written
        type: "struct {\n        uint64_t header;\n        uint64_t body;\n        uint64_t
          total;\n    }"
      - name: bytes_read
        type: "struct {\n        uint64_t header;\n        uint64_t body;\n        uint64_t
          total;\n    }"
      - name: (*cancel)(h2o_httpclient_t *client)
        type: void
      - name: (*get_conn_properties)(h2o_httpclient_t *client, h2o_httpclient_conn_properties_t
          *properties)
        type: void
      - name: (*update_window)(h2o_httpclient_t *client)
        type: void
      - name: (*write_req)(h2o_httpclient_t *client, h2o_iovec_t chunk, int is_end_stream)
        type: int
      - name: _timeout
        type: h2o_timer_t
      - name: '*_connect_req'
        type: h2o_socketpool_connect_request_t
      - name: _cb
        type: "union {\n        h2o_httpclient_connect_cb on_connect;\n        h2o_httpclient_head_cb
          on_head;\n        h2o_httpclient_body_cb on_body;\n    }"
      item_type: struct
      name: st_h2o_httpclient_t
      pos:
        line_end: 313
        line_start: 234
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: '*ctx'
        type: h2o_httpclient_ctx_t
      - name: origin_url
        type: h2o_url_t
      - name: '*sock'
        type: h2o_socket_t
      - name: num_streams
        type: size_t
      - name: link
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_httpclient__h2_conn_t
      pos:
        line_end: 340
        line_start: 318
        source_file: /src/h2o/include/h2o/httpclient.h
    - fields:
      - name: super
        type: h2o_http3_conn_t
      - name: '*ctx'
        type: h2o_httpclient_ctx_t
      - name: server
        type: "struct {\n        /**\n         * the origin URL; null-termination
          of authority and host is guaranteed\n         */\n        h2o_url_t origin_url;\n
          \       /**\n         * port number in C string\n         */\n        char
          named_serv[sizeof(H2O_UINT16_LONGEST_STR)];\n    }"
      - name: handshake_properties
        type: ptls_handshake_properties_t
      - name: timeout
        type: h2o_timer_t
      - name: '*getaddr_req'
        type: h2o_hostinfo_getaddr_req_t
      - name: link
        type: h2o_linklist_t
      - name: pending_requests
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_httpclient__h3_conn_t
      pos:
        line_end: 370
        line_start: 342
        source_file: /src/h2o/include/h2o/httpclient.h
    typedefs:
    - item_type: typedef
      name: h2o_httpclient_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/h2o/include/h2o/httpclient.h
      type: st_h2o_httpclient_t
    - item_type: typedef
      name: (*h2o_httpclient_forward_datagram_cb)(h2o_httpclient_t *client, h2o_iovec_t
        *datagrams, size_t num_datagrams)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/h2o/include/h2o/httpclient.h
      type: void
    - item_type: typedef
      name: h2o_httpclient_pipe_reader_t
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/include/h2o/httpclient.h
      type: st_h2o_httpclient_pipe_reader_t
    - item_type: typedef
      name: (*h2o_httpclient_proceed_req_cb)(h2o_httpclient_t *client, const char
        *errstr)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/h2o/include/h2o/httpclient.h
      type: void
    - item_type: typedef
      name: (*h2o_httpclient_body_cb)(h2o_httpclient_t *client, const char *errstr,
        h2o_header_t *trailers, size_t num_trailers)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/h2o/include/h2o/httpclient.h
      type: int
    - item_type: typedef
      name: "(*h2o_httpclient_head_cb)(h2o_httpclient_t *client, const char *errstr,\n
        \                                                        h2o_httpclient_on_head_t
        *args)"
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/h2o/include/h2o/httpclient.h
      type: h2o_httpclient_body_cb
    - item_type: typedef
      name: "(*h2o_httpclient_connect_cb)(h2o_httpclient_t *client, const char *errstr,
        h2o_iovec_t *method,\n                                                            h2o_url_t
        *url, const h2o_header_t **headers, size_t *num_headers,\n                                                            h2o_iovec_t
        *body, h2o_httpclient_proceed_req_cb *proceed_req_cb,\n                                                            h2o_httpclient_properties_t
        *props, h2o_url_t *origin)"
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/h2o/include/h2o/httpclient.h
      type: h2o_httpclient_head_cb
    - item_type: typedef
      name: "(*h2o_httpclient_informational_cb)(h2o_httpclient_t *client, int version,
        int status, h2o_iovec_t msg,\n                                               h2o_header_t
        *headers, size_t num_headers)"
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/include/h2o/httpclient.h
      type: int
    - item_type: typedef
      name: (*h2o_httpclient_finish_cb)(h2o_httpclient_t *client)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/h2o/include/h2o/httpclient.h
      type: void
    - item_type: typedef
      name: h2o_http3client_ctx_t
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/h2o/include/h2o/httpclient.h
      type: st_h2o_http3client_ctx_t
    union: []
- function_names:
  - h2o_pipe_sender_init
  - h2o_pipe_sender_in_use
  source_file: /src/h2o/include/h2o/pipe_sender.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fds[2]
        type: int
      - name: inflight
        type: int
      - name: bytes_sent
        type: size_t
      item_type: struct
      name: st_h2o_pipe_sender_t
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/h2o/include/h2o/pipe_sender.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/cache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vec
        type: h2o_iovec_t
      - name: hash
        type: h2o_cache_hashcode_t
      item_type: struct
      name: st_h2o_cache_key_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/h2o/include/h2o/cache.h
    - fields:
      - name: key
        type: h2o_iovec_t
      - name: keyhash
        type: h2o_cache_hashcode_t
      - name: at
        type: uint64_t
      - name: value
        type: h2o_iovec_t
      - name: _requested_early_update
        type: int
      - name: _lru_link
        type: h2o_linklist_t
      - name: _age_link
        type: h2o_linklist_t
      - name: _refcnt
        type: size_t
      item_type: struct
      name: st_h2o_cache_ref_t
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/h2o/include/h2o/cache.h
    typedefs:
    - item_type: typedef
      name: h2o_cache_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/include/h2o/cache.h
      type: st_h2o_cache_t
    - item_type: typedef
      name: h2o_cache_hashcode_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/h2o/include/h2o/cache.h
      type: uint32_t
    union: []
- function_names:
  - H2O_MULTITHREAD_ONCE
  - H2O_ERROR_REPORTER_INITIALIZER
  - h2o_error_reporter_record_success
  source_file: /src/h2o/include/h2o/multithread.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*queue'
        type: h2o_multithread_queue_t
      - name: _link
        type: h2o_linklist_t
      - name: _messages
        type: h2o_linklist_t
      - name: cb
        type: h2o_multithread_receiver_cb
      item_type: struct
      name: st_h2o_multithread_receiver_t
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/h2o/include/h2o/multithread.h
    - fields:
      - name: link
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_multithread_message_t
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/h2o/include/h2o/multithread.h
    - fields:
      - name: _mutex
        type: pthread_mutex_t
      - name: _cond
        type: pthread_cond_t
      - name: _cur
        type: ssize_t
      - name: _capacity
        type: ssize_t
      item_type: struct
      name: st_h2o_sem_t
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/h2o/include/h2o/multithread.h
    - fields:
      - name: _mutex
        type: pthread_mutex_t
      - name: _cond
        type: pthread_cond_t
      - name: _count
        type: size_t
      - name: _out_of_wait
        type: size_t
      item_type: struct
      name: st_h2o_barrier_t
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/h2o/include/h2o/multithread.h
    - fields:
      - name: cur_errors
        type: uint64_t
      - name: prev_successes
        type: uint64_t
      - name: data
        type: uintptr_t
      - name: _total_successes
        type: uint64_t
      - name: _mutex
        type: pthread_mutex_t
      - name: _timer
        type: h2o_timer_t
      - name: (*_report_errors)(struct st_h2o_error_reporter_t *reporter, uint64_t
          tocal_succeses, uint64_t cur_successes)
        type: void
      item_type: struct
      name: st_h2o_error_reporter_t
      pos:
        line_end: 77
        line_start: 69
        source_file: /src/h2o/include/h2o/multithread.h
    typedefs:
    - item_type: typedef
      name: h2o_multithread_receiver_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/include/h2o/multithread.h
      type: st_h2o_multithread_receiver_t
    - item_type: typedef
      name: h2o_multithread_queue_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/h2o/include/h2o/multithread.h
      type: st_h2o_multithread_queue_t
    - item_type: typedef
      name: (*h2o_multithread_receiver_cb)(h2o_multithread_receiver_t *receiver, h2o_linklist_t
        *messages)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/h2o/include/h2o/multithread.h
      type: void
    union: []
- function_names:
  - H2O_HTTP3_CHECK_SUCCESS
  - h2o_http3_has_received_settings
  - h2o_http3_calc_min_flow_control_size
  source_file: /src/h2o/include/h2o/http3_common.h
  types:
    enum:
    - enumerators:
      - name: H2O_HTTP3_PRIORITY_ELEMENT_TYPE_REQUEST_STREAM
      - name: H2O_HTTP3_PRIORITY_ELEMENT_TYPE_ROOT
      - name: H2O_HTTP3_PRIORITY_ELEMENT_TYPE_PLACEHOLDER
      - name: H2O_HTTP3_PRIORITY_ELEMENT_TYPE_PUSH_STREAM
      item_type: enum
      name: en_h2o_http3_priority_element_type_t
      pos:
        line_end: 98
        line_start: 90
        source_file: /src/h2o/include/h2o/http3_common.h
    - enumerators:
      - name: H2O_HTTP3_CONN_STATE_OPEN
      - name: H2O_HTTP3_CONN_STATE_IS_CLOSING
      - name: H2O_HTTP3_CONN_STATE_HALF_CLOSED
      item_type: enum
      name: enum_h2o_http3_conn_state_t
      pos:
        line_end: 259
        line_start: 255
        source_file: /src/h2o/include/h2o/http3_common.h
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_DATA
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_HEADERS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_CANCEL_PUSH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_SETTINGS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_PUSH_PROMISE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_GOAWAY
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '7'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_MAX_PUSH_ID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '13'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_PRIORITY_UPDATE_REQUEST
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0xF0700'
    - item_type: preproc_def
      name: H2O_HTTP3_FRAME_TYPE_PRIORITY_UPDATE_PUSH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0xF0701'
    - item_type: preproc_def
      name: H2O_HTTP3_STREAM_TYPE_CONTROL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_HTTP3_STREAM_TYPE_PUSH_STREAM
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HTTP3_STREAM_TYPE_QPACK_ENCODER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2O_HTTP3_STREAM_TYPE_QPACK_DECODER
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: H2O_HTTP3_STREAM_TYPE_REQUEST
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0x4000000000000000 '
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_MAX_FIELD_SECTION_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '6'
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '7'
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_ENABLE_CONNECT_PROTOCOL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_H3_DATAGRAM_DRAFT03
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0x276'
    - item_type: preproc_def
      name: H2O_HTTP3_SETTINGS_H3_DATAGRAM
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '0x33'
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_NONE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x100)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_GENERAL_PROTOCOL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x101)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_INTERNAL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x102)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_STREAM_CREATION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x103)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_CLOSED_CRITICAL_STREAM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x104)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_FRAME_UNEXPECTED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x105)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_FRAME
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x106)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_EXCESSIVE_LOAD
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x107)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_ID
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x108)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_SETTINGS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x109)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_MISSING_SETTINGS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10a)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_REQUEST_REJECTED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10b)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_REQUEST_CANCELLED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10c)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_REQUEST_INCOMPLETE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10d)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_EARLY_RESPONSE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10e)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_CONNECT_ERROR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x10f)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_VERSION_FALLBACK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x110)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_QPACK_DECOMPRESSION_FAILED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x200)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_QPACK_ENCODER_STREAM
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x201)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_QPACK_DECODER_STREAM
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x202)
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_INCOMPLETE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_TRANSPORT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: H2O_HTTP3_ERROR_USER1
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '-256'
    - item_type: preproc_def
      name: H2O_HTTP3_DEFAULT_MAX_CONCURRENT_STREAMING_REQUESTS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/include/h2o/http3_common.h
      type_or_value: '1'
    structs:
    - fields:
      - name: element_is_push
        type: uint64_t
      - name: element
        type: uint64_t
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_http3_priority_update_frame_t
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: stream_or_push_id
        type: uint64_t
      item_type: struct
      name: st_h2o_http3_goaway_frame_t
      pos:
        line_end: 108
        line_start: 106
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: packet_received
        type: uint64_t
      - name: packet_processed
        type: uint64_t
      - name: num_sentmap_packets_largest
        type: size_t
      - name: quicly
        type: "struct {\n        QUICLY_STATS_PREBUILT_COUNTERS;\n    }"
      item_type: struct
      name: st_h2o_quic_stats_t
      pos:
        line_end: 174
        line_start: 154
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: '*sock'
        type: h2o_socket_t
      - name: addr
        type: struct sockaddr_storage
      - name: '*port'
        type: in_port_t
      item_type: struct
      name: st_h2o_quic_socket_t
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: sock
        type: h2o_quic_socket_t
      - name: sock_alt_family
        type: h2o_quic_socket_t
      - name: '*quic'
        type: quicly_context_t
      - name: '*next_cid'
        type: quicly_cid_plaintext_t
      - name: '*conns_by_id'
        type: struct kh_h2o_quic_idmap_s
      - name: '*conns_accepting'
        type: struct kh_h2o_quic_acceptmap_s
      - name: notify_conn_update
        type: h2o_quic_notify_connection_update_cb
      - name: acceptor
        type: h2o_quic_accept_cb
      - name: accept_thread_divisor
        type: uint32_t
      - name: forward_packets
        type: h2o_quic_forward_packets_cb
      - name: default_ttl
        type: uint8_t
      - name: use_gso
        type: uint8_t
      - name: preprocess_packet
        type: h2o_quic_preprocess_packet_cb
      - name: '*quic_stats'
        type: h2o_quic_stats_t
      item_type: struct
      name: st_h2o_quic_ctx_t
      pos:
        line_end: 245
        line_start: 182
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: (*destroy_connection)(h2o_quic_conn_t *conn)
        type: void
      item_type: struct
      name: st_h2o_quic_conn_callbacks_t
      pos:
        line_end: 249
        line_start: 247
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: '*ctx'
        type: h2o_quic_ctx_t
      - name: '*quic'
        type: quicly_conn_t
      - name: '*callbacks'
        type: h2o_quic_conn_callbacks_t
      - name: _timeout
        type: h2o_timer_t
      - name: _accept_hashkey
        type: uint64_t
      item_type: struct
      name: st_h2o_quic_conn_t
      pos:
        line_end: 282
        line_start: 261
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: encoder_table_capacity
        type: uint32_t
      - name: decoder_table_capacity
        type: uint32_t
      item_type: struct
      name: st_h2o_http3_qpack_context_t
      pos:
        line_end: 294
        line_start: 284
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: super
        type: h2o_quic_conn_callbacks_t
      - name: (*handle_control_stream_frame)(h2o_http3_conn_t *conn, uint64_t type,
          const uint8_t *payload, size_t len)
        type: void
      - name: (*qpack_unblock_streams)(h2o_http3_conn_t *conn, uint64_t insert_count)
        type: void
      item_type: struct
      name: st_h2o_http3_conn_callbacks_t
      pos:
        line_end: 300
        line_start: 296
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: super
        type: h2o_quic_conn_t
      - name: state
        type: h2o_http3_conn_state_t
      - name: qpack
        type: "struct {\n        const h2o_http3_qpack_context_t *ctx;\n        h2o_qpack_encoder_t
          *enc;\n        h2o_qpack_decoder_t *dec;\n    }"
      - name: peer_settings
        type: "struct {\n        uint64_t max_field_section_size;\n        unsigned
          h3_datagram : 1;\n    }"
      - name: _control_streams
        type: "struct {\n        struct {\n            struct st_h2o_http3_ingress_unistream_t
          *control;\n            struct st_h2o_http3_ingress_unistream_t *qpack_encoder;\n
          \           struct st_h2o_http3_ingress_unistream_t *qpack_decoder;\n        }
          ingress;\n        struct {\n            struct st_h2o_http3_egress_unistream_t
          *control;\n            struct st_h2o_http3_egress_unistream_t *qpack_encoder;\n
          \           struct st_h2o_http3_egress_unistream_t *qpack_decoder;\n        }
          egress;\n    }"
      - name: stats
        type: "struct {\n        /**\n         * Byte counters for control and QPACK
          unidirectional streams. Kept on the connection because H3S_DESTROY is emitted
          after\n         * quicly_stream_t and the unistream wrappers might already
          have been destroyed.\n         */\n        struct {\n            uint64_t
          control_stream;\n            uint64_t qpack_encoder;\n            uint64_t
          qpack_decoder;\n        } bytes_received, bytes_sent;\n    }"
      - name: max_frame_payload_size
        type: size_t
      item_type: struct
      name: st_h2o_http3_conn_t
      pos:
        line_end: 356
        line_start: 302
        source_file: /src/h2o/include/h2o/http3_common.h
    - fields:
      - name: type
        type: uint64_t
      - name: _header_size
        type: uint8_t
      - name: '*payload'
        type: uint8_t
      - name: length
        type: uint64_t
      item_type: struct
      name: st_h2o_http3_read_frame_t
      pos:
        line_end: 369
        line_start: 364
        source_file: /src/h2o/include/h2o/http3_common.h
    typedefs:
    - item_type: typedef
      name: h2o_quic_ctx_t
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/h2o/include/h2o/http3_common.h
      type: st_h2o_quic_ctx_t
    - item_type: typedef
      name: h2o_quic_conn_t
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/h2o/include/h2o/http3_common.h
      type: st_h2o_quic_conn_t
    - item_type: typedef
      name: h2o_http3_conn_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/h2o/include/h2o/http3_common.h
      type: st_h2o_http3_conn_t
    - item_type: typedef
      name: "*(*h2o_quic_accept_cb)(h2o_quic_ctx_t *ctx, quicly_address_t *destaddr,
        quicly_address_t *srcaddr,\n                                               quicly_decoded_packet_t
        *packet)"
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/h2o/include/h2o/http3_common.h
      type: h2o_quic_conn_t
    - item_type: typedef
      name: (*h2o_quic_notify_connection_update_cb)(h2o_quic_ctx_t *ctx, h2o_quic_conn_t
        *conn)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/h2o/include/h2o/http3_common.h
      type: void
    - item_type: typedef
      name: "(*h2o_quic_forward_packets_cb)(h2o_quic_ctx_t *ctx, const uint64_t *node_id,
        uint32_t thread_id,\n                                           quicly_address_t
        *destaddr, quicly_address_t *srcaddr, uint8_t ttl,\n                                           quicly_decoded_packet_t
        *packets, size_t num_packets)"
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/h2o/include/h2o/http3_common.h
      type: int
    - item_type: typedef
      name: "(*h2o_quic_preprocess_packet_cb)(h2o_quic_ctx_t *ctx, struct msghdr *msghdr,
        quicly_address_t *destaddr,\n                                             quicly_address_t
        *srcaddr, uint8_t *ttl)"
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/h2o/include/h2o/http3_common.h
      type: int
    union: []
- function_names:
  - H2O_STRUCT_FROM_MEMBER
  - H2O_ALIGNOF
  - H2O_LIKELY
  - H2O_UNLIKELY
  - H2O_LIKELY
  - H2O_UNLIKELY
  - H2O_TO__STR
  - H2O_TO_STR
  - H2O_BUILD_ASSERT
  - h2o_error_printf
  - H2O_VECTOR
  - h2o_fatal
  - h2o_mem_alloc_pool
  - h2o_vector_reserve
  - h2o_vector_erase
  - h2o_memcpy
  - h2o_mem_recycle_is_empty
  - h2o_iovec_init
  - h2o_mem_alloc
  - h2o_mem_aligned_alloc
  - h2o_mem_realloc
  - h2o_mem_alloc_pool_aligned
  - h2o_mem_addref_shared
  - h2o_mem_release_shared
  - h2o_buffer_init
  - h2o_buffer_dispose
  - h2o_buffer_set_prototype
  - h2o_buffer_link_to_pool
  - h2o_buffer_append
  - h2o_buffer_try_append
  - h2o_doublebuffer_init
  - h2o_doublebuffer_dispose
  - h2o_doublebuffer_prepare
  - h2o_doublebuffer_prepare_empty
  - h2o_doublebuffer_consume
  - h2o_vector__reserve
  - h2o_vector__erase
  - h2o_memis
  - h2o_memrchr
  - h2o_mem_set_secure
  source_file: /src/h2o/include/h2o/memory.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_GNUC_VERSION
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: ((__GNUC__ << 16) | (__GNUC_MINOR__ << 8) | __GNUC_PATCHLEVEL__)
    - item_type: preproc_def
      name: H2O_GNUC_VERSION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_NORETURN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: H2O_NORETURN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: _Noreturn
    - item_type: preproc_def
      name: H2O_RETURNS_NONNULL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: __attribute__((returns_nonnull))
    - item_type: preproc_def
      name: H2O_TMP_FILE_TEMPLATE_MAX
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/h2o/include/h2o/memory.h
      type_or_value: '256'
    structs:
    - fields:
      - name: '*base'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: st_h2o_iovec_t
      pos:
        line_end: 92
        line_start: 89
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: memsize
        type: size_t
      - name: align_bits
        type: uint8_t
      item_type: struct
      name: st_h2o_mem_recycle_conf_t
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: '*conf'
        type: h2o_mem_recycle_conf_t
      - name: low_watermark
        type: size_t
      item_type: struct
      name: st_h2o_mem_recycle_t
      pos:
        line_end: 114
        line_start: 110
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: refcnt
        type: size_t
      - name: (*dispose)(void *)
        type: void
      - name: bytes[1]
        type: char
      item_type: struct
      name: st_h2o_mem_pool_shared_entry_t
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: '*chunks'
        type: union un_h2o_mem_pool_chunk_t
      - name: chunk_offset
        type: size_t
      - name: '*shared_refs'
        type: struct st_h2o_mem_pool_shared_ref_t
      - name: '*directs'
        type: struct st_h2o_mem_pool_direct_t
      item_type: struct
      name: st_h2o_mem_pool_t
      pos:
        line_end: 131
        line_start: 126
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: capacity
        type: size_t
      - name: size
        type: size_t
      - name: '*bytes'
        type: char
      - name: '*_prototype'
        type: h2o_buffer_prototype_t
      - name: _fd
        type: int
      - name: _buf[1]
        type: char
      item_type: struct
      name: st_h2o_buffer_t
      pos:
        line_end: 162
        line_start: 136
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: threshold
        type: size_t
      - name: fn_template[H2O_TMP_FILE_TEMPLATE_MAX]
        type: char
      item_type: struct
      name: st_h2o_buffer_mmap_settings_t
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: _initial_buf
        type: h2o_buffer_t
      - name: '*mmap_settings'
        type: h2o_buffer_mmap_settings_t
      item_type: struct
      name: st_h2o_buffer_prototype_t
      pos:
        line_end: 173
        line_start: 170
        source_file: /src/h2o/include/h2o/memory.h
    - fields:
      - name: '*buf'
        type: h2o_buffer_t
      - name: inflight
        type: unsigned char
      - name: _bytes_inflight
        type: size_t
      item_type: struct
      name: st_h2o_doublebuffer_t
      pos:
        line_end: 179
        line_start: 175
        source_file: /src/h2o/include/h2o/memory.h
    typedefs:
    - item_type: typedef
      name: h2o_buffer_prototype_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/h2o/include/h2o/memory.h
      type: st_h2o_buffer_prototype_t
    - item_type: typedef
      name: h2o_vector_t
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/h2o/include/h2o/memory.h
      type: H2O_VECTOR
    - item_type: typedef
      name: h2o_byte_vector_t
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/h2o/include/h2o/memory.h
      type: H2O_VECTOR
    - item_type: typedef
      name: (h2o_iovec_t)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/h2o/include/h2o/memory.h
      type: H2O_VECTOR
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/send_state.h
  types:
    enum:
    - enumerators:
      - name: H2O_SEND_STATE_IN_PROGRESS
      - name: H2O_SEND_STATE_FINAL
      - name: H2O_SEND_STATE_ERROR
      item_type: enum
      name: h2o_send_state
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/h2o/include/h2o/send_state.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_socketpool_get_timeout
  - h2o_socketpool_set_timeout
  - h2o_socketpool_is_owned_socket
  source_file: /src/h2o/include/h2o/socketpool.h
  types:
    enum:
    - enumerators:
      - name: H2O_SOCKETPOOL_TYPE_NAMED
      - name: H2O_SOCKETPOOL_TYPE_SOCKADDR
      item_type: enum
      name: en_h2o_socketpool_target_type_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/h2o/include/h2o/socketpool.h
    preproc_defs:
    - item_type: preproc_def
      name: H2O_SOCKETPOOL_TARGET_MAX_WEIGHT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/include/h2o/socketpool.h
      type_or_value: '256'
    structs:
    - fields:
      - name: weight_m1
        type: uint8_t
      item_type: struct
      name: st_h2o_socketpool_target_conf_t
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/h2o/include/h2o/socketpool.h
    - fields:
      - name: url
        type: h2o_url_t
      - name: type
        type: h2o_socketpool_target_type_t
      - name: peer
        type: "union {\n        /* used to specify servname passed to getaddrinfo
          */\n        h2o_iovec_t named_serv;\n        /* if type is sockaddr, the
          `host` is not resolved but is used for TLS SNI and hostname verification
          */\n        struct {\n            struct sockaddr_storage bytes;\n            socklen_t
          len;\n        } sockaddr;\n    }"
      - name: conf
        type: h2o_socketpool_target_conf_t
      - name: _shared
        type: "struct {\n        h2o_linklist_t sockets;\n        /**\n         *
          number of connections being _leased_ to the applications (i.e. not including
          the number of connections being pooled).\n         * Synchronous operation
          must be used to access the variable.\n         */\n        size_t leased_count;\n
          \   }"
      item_type: struct
      name: st_h2o_socketpool_target_t
      pos:
        line_end: 90
        line_start: 53
        source_file: /src/h2o/include/h2o/socketpool.h
    - fields:
      - name: targets
        type: h2o_socketpool_target_vector_t
      - name: capacity
        type: size_t
      - name: timeout
        type: uint64_t
      - name: _interval_cb
        type: "struct {\n        h2o_loop_t *loop;\n        h2o_timer_t timeout;\n
          \   }"
      - name: '*_ssl_ctx'
        type: SSL_CTX
      - name: address_family
        type: int
      - name: _shared
        type: "struct {\n        pthread_mutex_t mutex;\n        /**\n         * list
          of struct pool_entry_t\n         */\n        h2o_linklist_t sockets;\n        /**\n
          \        * number of connections governed by the pool, includes sockets
          being pool and the ones trying to connect. Synchronous\n         * operation
          must be used to access the variable.\n         */\n        size_t count;\n
          \       /**\n         * number of pooled connections governed by the pool\n
          \        */\n        size_t pooled_count;\n    }"
      - name: '*balancer'
        type: h2o_balancer_t
      item_type: struct
      name: st_h2o_socketpool_t
      pos:
        line_end: 134
        line_start: 96
        source_file: /src/h2o/include/h2o/socketpool.h
    typedefs:
    - item_type: typedef
      name: (h2o_socketpool_target_t *)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/h2o/include/h2o/socketpool.h
      type: H2O_VECTOR
    - item_type: typedef
      name: h2o_balancer_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/h2o/include/h2o/socketpool.h
      type: st_h2o_balancer_t
    - item_type: typedef
      name: h2o_socketpool_connect_request_t
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/include/h2o/socketpool.h
      type: st_h2o_socketpool_connect_request_t
    - item_type: typedef
      name: (*h2o_socketpool_connect_cb)(h2o_socket_t *sock, const char *errstr, void
        *data, h2o_url_t *url)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/h2o/include/h2o/socketpool.h
      type: void
    union: []
- function_names:
  - h2o_timerwheel_init_entry
  - h2o_timerwheel_is_linked
  - h2o_timerwheel_unlink
  source_file: /src/h2o/include/h2o/timerwheel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_TIMERWHEEL_BITS_PER_WHEEL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/include/h2o/timerwheel.h
      type_or_value: '5'
    - item_type: preproc_def
      name: H2O_TIMERWHEEL_SLOTS_PER_WHEEL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/include/h2o/timerwheel.h
      type_or_value: (1 << H2O_TIMERWHEEL_BITS_PER_WHEEL)
    structs:
    - fields:
      - name: _link
        type: h2o_linklist_t
      - name: expire_at
        type: uint64_t
      - name: cb
        type: h2o_timerwheel_cb
      item_type: struct
      name: st_h2o_timerwheel_entry_t
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/h2o/include/h2o/timerwheel.h
    typedefs:
    - item_type: typedef
      name: h2o_timerwheel_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/h2o/include/h2o/timerwheel.h
      type: st_h2o_timerwheel_t
    - item_type: typedef
      name: (*h2o_timerwheel_cb)(struct st_h2o_timerwheel_entry_t *entry)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/include/h2o/timerwheel.h
      type: void
    union: []
- function_names:
  - h2o_header_name_is_equal
  source_file: /src/h2o/include/h2o/header.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_MAX_HEADERS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/include/h2o/header.h
      type_or_value: '100'
    - item_type: preproc_def
      name: H2O_MAX_REQLEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/include/h2o/header.h
      type_or_value: (8192 + 4096 * (H2O_MAX_HEADERS))
    structs:
    - fields:
      - name: dont_compress
        type: unsigned char
      item_type: struct
      name: st_h2o_header_flags_t
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/h2o/include/h2o/header.h
    - fields:
      - name: '*name'
        type: h2o_iovec_t
      - name: '*orig_name'
        type: char
      - name: value
        type: h2o_iovec_t
      - name: flags
        type: h2o_header_flags_t
      item_type: struct
      name: st_h2o_header_t
      pos:
        line_end: 71
        line_start: 54
        source_file: /src/h2o/include/h2o/header.h
    typedefs:
    - item_type: typedef
      name: (h2o_header_t)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/include/h2o/header.h
      type: H2O_VECTOR
    union: []
- function_names:
  - h2o_hostinfo_select_one
  source_file: /src/h2o/include/h2o/hostinfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: h2o_hostinfo_getaddr_req_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/include/h2o/hostinfo.h
      type: st_h2o_hostinfo_getaddr_req_t
    - item_type: typedef
      name: (*h2o_hostinfo_getaddr_cb)(h2o_hostinfo_getaddr_req_t *req, const char
        *errstr, struct addrinfo *res, void *cbdata)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/h2o/include/h2o/hostinfo.h
      type: void
    union: []
- function_names:
  - h2o_http2_conn_get_stream
  - h2o_http2_stream_is_push
  - h2o_http2_conn_get_buffer_window
  - h2o_http2_conn_init_casper
  - h2o_http2_stream_update_open_slot
  - h2o_http2_stream_set_blocked_by_server
  - h2o_http2_stream_set_state
  - h2o_http2_stream_prepare_for_request
  - h2o_http2_stream_has_pending_data
  - h2o_http2_stream_send_push_promise
  source_file: /src/h2o/include/h2o/http2_internal.h
  types:
    enum:
    - enumerators:
      - name: H2O_HTTP2_STREAM_STATE_IDLE
      - name: H2O_HTTP2_STREAM_STATE_RECV_HEADERS
      - name: H2O_HTTP2_STREAM_STATE_SEND_HEADERS
      - name: H2O_HTTP2_STREAM_STATE_REQ_PENDING
      - name: H2O_HTTP2_STREAM_STATE_RECV_BODY
      - name: H2O_HTTP2_STREAM_STATE_SEND_BODY
      - name: H2O_HTTP2_STREAM_STATE_SEND_BODY_IS_FINAL
      - name: H2O_HTTP2_STREAM_STATE_END_STREAM
      item_type: enum
      name: enum_h2o_http2_stream_state_t
      pos:
        line_end: 67
        line_start: 34
        source_file: /src/h2o/include/h2o/http2_internal.h
    - enumerators:
      - name: H2O_HTTP2_REQ_BODY_NONE
      - name: H2O_HTTP2_REQ_BODY_CLOSE_DELIVERED
      - name: H2O_HTTP2_REQ_BODY_OPEN
      - name: H2O_HTTP2_REQ_BODY_CLOSE_QUEUED
      - name: H2O_HTTP2_REQ_BODY_OPEN_BEFORE_FIRST_FRAME
      item_type: enum
      name: en_h2o_req_body_state_t
      pos:
        line_end: 145
        line_start: 139
        source_file: /src/h2o/include/h2o/http2_internal.h
    - enumerators:
      - name: H2O_HTTP2_CONN_STATE_OPEN
      - name: H2O_HTTP2_CONN_STATE_HALF_CLOSED
      - name: H2O_HTTP2_CONN_STATE_IS_CLOSING
      item_type: enum
      name: enum_h2o_http2_conn_state_t
      pos:
        line_end: 163
        line_start: 159
        source_file: /src/h2o/include/h2o/http2_internal.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP2_CLOSED_STREAM_PRIORITIES
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/h2o/include/h2o/http2_internal.h
      type_or_value: '10'
    structs:
    - fields:
      - name: open
        type: uint32_t
      - name: half_closed
        type: uint32_t
      - name: send_body
        type: uint32_t
      item_type: struct
      name: st_h2o_http2_conn_num_streams_t
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/h2o/include/h2o/http2_internal.h
    - fields:
      - name: stream_id
        type: uint32_t
      - name: _scheduler
        type: h2o_http2_scheduler_openref_t
      - name: _link
        type: h2o_linklist_t
      - name: _ostr_final
        type: h2o_ostream_t
      - name: state
        type: h2o_http2_stream_state_t
      - name: output_window
        type: h2o_http2_window_t
      - name: input_window
        type: "struct {\n        h2o_http2_window_t window;\n        size_t bytes_unnotified;\n
          \   }"
      - name: received_priority
        type: h2o_http2_priority_t
      - name: (h2o_sendvec_t)
        type: H2O_VECTOR
      - name: '*_num_streams_slot'
        type: h2o_http2_conn_num_streams_t
      - name: '*cache_digests'
        type: h2o_cache_digests_t
      - name: blocked_by_server
        type: unsigned
      - name: reset_by_peer
        type: unsigned
      - name: reset_by_peer_action
        type: unsigned
      - name: delayed_rst_stream_no_error
        type: unsigned
      - name: send_state
        type: h2o_send_state_t
      - name: req_body
        type: "struct {\n        h2o_buffer_t *buf;\n        enum en_h2o_req_body_state_t
          {\n            H2O_HTTP2_REQ_BODY_NONE,\n            H2O_HTTP2_REQ_BODY_OPEN_BEFORE_FIRST_FRAME,\n
          \           H2O_HTTP2_REQ_BODY_OPEN,\n            H2O_HTTP2_REQ_BODY_CLOSE_QUEUED,\n
          \           H2O_HTTP2_REQ_BODY_CLOSE_DELIVERED\n        } state;\n        /**\n
          \        * if the response body is streaming or was streamed, including
          tunnels\n         */\n        unsigned streamed : 1;\n    }"
      - name: req
        type: h2o_req_t
      item_type: struct
      name: st_h2o_http2_stream_t
      pos:
        line_end: 155
        line_start: 75
        source_file: /src/h2o/include/h2o/http2_internal.h
    - fields:
      - name: super
        type: h2o_conn_t
      - name: '*sock'
        type: h2o_socket_t
      - name: peer_settings
        type: h2o_http2_settings_t
      - name: '* streams'
        type: khash_t
      - name: pull_stream_ids
        type: "struct {\n        uint32_t max_open;\n        uint32_t max_processed;\n
          \   }"
      - name: push_stream_ids
        type: "struct {\n        uint32_t max_open;\n    }"
      - name: num_streams
        type: "struct {\n        h2o_http2_conn_num_streams_t priority;\n        h2o_http2_conn_num_streams_t
          pull;\n        h2o_http2_conn_num_streams_t push;\n        /**\n         *
          number of streams current blocked due to the internal concurrency limit\n
          \        */\n        uint32_t blocked_by_server;\n        /**\n         *
          number of streams that have the flag with the same name being set\n         */\n
          \       uint32_t _req_streaming_in_progress;\n        /**\n         * number
          of CONNECT tunnels inflight (this is a proper subset of `_req_streaming_in_progress`)\n
          \        */\n        uint32_t tunnel;\n    }"
      - name: scheduler
        type: h2o_http2_scheduler_node_t
      - name: state
        type: h2o_http2_conn_state_t
      - name: is_chromium_dependency_tree
        type: unsigned
      - name: received_any_request
        type: unsigned
      - name: (*_read_expect)(h2o_http2_conn_t *conn, const uint8_t *src, size_t len,
          const char **err_desc)
        type: ssize_t
      - name: '*_http1_req_input'
        type: h2o_buffer_t
      - name: _input_header_table
        type: h2o_hpack_header_table_t
      - name: _input_window
        type: h2o_http2_window_t
      - name: _output_header_table
        type: h2o_hpack_header_table_t
      - name: _pending_reqs
        type: h2o_linklist_t
      - name: _timeout_entry
        type: h2o_timer_t
      - name: '*_headers_unparsed'
        type: h2o_buffer_t
      - name: _write
        type: "struct {\n        h2o_buffer_t *buf;\n        h2o_buffer_t *buf_in_flight;\n
          \       h2o_linklist_t streams_to_proceed;\n        h2o_timer_t timeout_entry;\n
          \       h2o_http2_window_t window;\n    }"
      - name: '*push_memo'
        type: h2o_cache_t
      - name: '*casper'
        type: h2o_http2_casper_t
      - name: early_data
        type: "struct {\n        h2o_linklist_t blocked_streams;\n    }"
      - name: '*http2_origin_frame'
        type: h2o_iovec_t
      - name: _recently_closed_streams
        type: "struct {\n#define HTTP2_CLOSED_STREAM_PRIORITIES 10\n        h2o_http2_stream_t
          *streams[HTTP2_CLOSED_STREAM_PRIORITIES];\n        size_t next_slot;\n    }"
      - name: timestamps
        type: "struct {\n        struct timeval settings_sent_at;\n        struct
          timeval settings_acked_at;\n    }"
      - name: _graceful_shutdown_timeout
        type: h2o_timer_t
      - name: dos_mitigation
        type: "struct {\n        h2o_timer_t process_delay;\n        size_t reset_budget;
          /* RST_STREAM frames are considered suspicious when this value goes down
          to zero */\n    }"
      item_type: struct
      name: st_h2o_http2_conn_t
      pos:
        line_end: 252
        line_start: 165
        source_file: /src/h2o/include/h2o/http2_internal.h
    typedefs:
    - item_type: typedef
      name: h2o_http2_conn_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/h2o/include/h2o/http2_internal.h
      type: st_h2o_http2_conn_t
    - item_type: typedef
      name: h2o_http2_stream_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/include/h2o/http2_internal.h
      type: st_h2o_http2_stream_t
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/websocket.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*sock'
        type: h2o_socket_t
      - name: ws_ctx
        type: wslay_event_context_ptr
      - name: ws_callbacks
        type: struct wslay_event_callbacks
      - name: '*data'
        type: void
      - name: cb
        type: h2o_websocket_msg_callback
      - name: _write_buf
        type: "struct {\n        size_t cnt;\n        h2o_iovec_t bufs[4];\n    }"
      item_type: struct
      name: st_h2o_websocket_conn_t
      pos:
        line_end: 47
        line_start: 37
        source_file: /src/h2o/include/h2o/websocket.h
    typedefs:
    - item_type: typedef
      name: h2o_websocket_conn_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/include/h2o/websocket.h
      type: st_h2o_websocket_conn_t
    - item_type: typedef
      name: (*h2o_websocket_msg_callback)(h2o_websocket_conn_t *conn, const struct
        wslay_event_on_msg_recv_arg *arg)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/include/h2o/websocket.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/cache_digests.h
  types:
    enum:
    - enumerators:
      - name: H2O_CACHE_DIGESTS_STATE_UNKNOWN
      - name: H2O_CACHE_DIGESTS_STATE_STALE
      - name: H2O_CACHE_DIGESTS_STATE_FRESH
      - name: H2O_CACHE_DIGESTS_STATE_NOT_CACHED
      item_type: enum
      name: en_h2o_cache_digests_state_t
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/h2o/include/h2o/cache_digests.h
    preproc_defs: []
    structs:
    - fields:
      - name: fresh
        type: "struct {\n        h2o_cache_digests_frame_vector_t url_only;\n        h2o_cache_digests_frame_vector_t
          url_and_etag;\n        int complete;\n    }"
      item_type: struct
      name: st_h2o_cache_digests_t
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/h2o/include/h2o/cache_digests.h
    typedefs:
    - item_type: typedef
      name: h2o_cache_digests_frame_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/include/h2o/cache_digests.h
      type: st_h2o_cache_digests_frame_t
    - item_type: typedef
      name: (h2o_cache_digests_frame_t)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/include/h2o/cache_digests.h
      type: H2O_VECTOR
    union: []
- function_names:
  - h2o_configurator_parse_mapping
  - h2o_configurator_at_extension_level
  source_file: /src/h2o/include/h2o/configurator.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_CONFIGURATOR_NUM_LEVELS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/include/h2o/configurator.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*globalconf'
        type: h2o_globalconf_t
      - name: '*hostconf'
        type: h2o_hostconf_t
      - name: '*pathconf'
        type: h2o_pathconf_t
      - name: '**mimemap'
        type: h2o_mimemap_t
      - name: '*env'
        type: h2o_envconf_t
      - name: dry_run
        type: int
      - name: '*parent'
        type: struct st_h2o_configurator_context_t
      item_type: struct
      name: st_h2o_configurator_context_t
      pos:
        line_end: 72
        line_start: 43
        source_file: /src/h2o/include/h2o/configurator.h
    - fields:
      - name: '*configurator'
        type: h2o_configurator_t
      - name: '*name'
        type: char
      - name: flags
        type: int
      - name: cb
        type: h2o_configurator_command_cb
      item_type: struct
      name: st_h2o_configurator_command_t
      pos:
        line_end: 97
        line_start: 80
        source_file: /src/h2o/include/h2o/configurator.h
    - fields:
      - name: _link
        type: h2o_linklist_t
      - name: dispose
        type: h2o_configurator_dispose_cb
      - name: enter
        type: h2o_configurator_enter_cb
      - name: exit
        type: h2o_configurator_exit_cb
      - name: (h2o_configurator_command_t)
        type: H2O_VECTOR
      item_type: struct
      name: st_h2o_configurator_t
      pos:
        line_end: 120
        line_start: 102
        source_file: /src/h2o/include/h2o/configurator.h
    typedefs:
    - item_type: typedef
      name: (*h2o_configurator_dispose_cb)(h2o_configurator_t *configurator)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/include/h2o/configurator.h
      type: int
    - item_type: typedef
      name: (*h2o_configurator_enter_cb)(h2o_configurator_t *configurator, h2o_configurator_context_t
        *ctx, yoml_t *node)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/include/h2o/configurator.h
      type: int
    - item_type: typedef
      name: (*h2o_configurator_exit_cb)(h2o_configurator_t *configurator, h2o_configurator_context_t
        *ctx, yoml_t *node)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/include/h2o/configurator.h
      type: int
    - item_type: typedef
      name: (*h2o_configurator_command_cb)(h2o_configurator_command_t *cmd, h2o_configurator_context_t
        *ctx, yoml_t *node)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/include/h2o/configurator.h
      type: int
    - item_type: typedef
      name: '**(*h2o_configurator_get_headers_commands_cb)(h2o_configurator_t *conf)'
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/include/h2o/configurator.h
      type: h2o_headers_command_t
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/redis.h
  types:
    enum:
    - enumerators:
      - name: H2O_REDIS_COMMAND_TYPE_NORMAL
        value: '1'
      - name: H2O_REDIS_COMMAND_TYPE_UNSUBSCRIBE
      - name: H2O_REDIS_COMMAND_TYPE_SUBSCRIBE
      - name: H2O_REDIS_COMMAND_TYPE_PUNSUBSCRIBE
      - name: H2O_REDIS_COMMAND_TYPE_PSUBSCRIBE
      - name: H2O_REDIS_COMMAND_TYPE_MONITOR
      - name: H2O_REDIS_COMMAND_TYPE_ERROR
      item_type: enum
      name: enum_h2o_redis_command_type_t
      pos:
        line_end: 62
        line_start: 54
        source_file: /src/h2o/include/h2o/redis.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*loop'
        type: h2o_loop_t
      - name: state
        type: h2o_redis_connection_state_t
      - name: (*on_connect)(void)
        type: void
      - name: (*on_close)(const char *errstr)
        type: void
      - name: connect_timeout
        type: uint64_t
      - name: command_timeout
        type: uint64_t
      - name: '*_redis'
        type: struct redisAsyncContext
      - name: _timeout_entry
        type: h2o_timer_t
      item_type: struct
      name: st_h2o_redis_client_t
      pos:
        line_end: 50
        line_start: 40
        source_file: /src/h2o/include/h2o/redis.h
    - fields:
      - name: '*client'
        type: h2o_redis_client_t
      - name: cb
        type: h2o_redis_command_cb
      - name: '*data'
        type: void
      - name: type
        type: h2o_redis_command_type_t
      - name: _command_timeout
        type: h2o_timer_t
      item_type: struct
      name: st_h2o_redis_command_t
      pos:
        line_end: 70
        line_start: 64
        source_file: /src/h2o/include/h2o/redis.h
    typedefs:
    - item_type: typedef
      name: (*h2o_redis_command_cb)(struct redisReply *reply, void *cb_data, const
        char *errstr)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/h2o/include/h2o/redis.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/token.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_MAX_TOKENS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o/token.h
      type_or_value: '100'
    structs:
    - fields:
      - name: http2_static_table_name_index
        type: char
      - name: proxy_should_drop_for_req
        type: unsigned char
      - name: proxy_should_drop_for_res
        type: unsigned char
      - name: is_init_header_special
        type: unsigned char
      - name: is_hpack_special
        type: unsigned char
      - name: copy_for_push_request
        type: unsigned char
      - name: dont_compress
        type: unsigned char
      - name: likely_to_repeat
        type: unsigned char
      item_type: struct
      name: st_h2o_token_flags_t
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/h2o/include/h2o/token.h
    - fields:
      - name: buf
        type: h2o_iovec_t
      - name: flags
        type: h2o_token_flags_t
      item_type: struct
      name: st_h2o_token_t
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/h2o/include/h2o/token.h
    - fields:
      - name: '*name'
        type: h2o_token_t
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_hpack_static_table_entry_t
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/h2o/include/h2o/token.h
    - fields:
      - name: '*name'
        type: h2o_token_t
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_qpack_static_table_entry_t
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/h2o/include/h2o/token.h
    typedefs: []
    union: []
- function_names:
  - h2o_http2_scheduler_is_open
  - h2o_http2_scheduler_get_weight
  - h2o_http2_scheduler_get_parent
  source_file: /src/h2o/include/h2o/http2_scheduler.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: _link
        type: h2o_linklist_t
      - name: _deficit
        type: size_t
      item_type: struct
      name: st_h2o_http2_scheduler_queue_node_t
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/include/h2o/http2_scheduler.h
    - fields:
      - name: '*_parent'
        type: struct st_h2o_http2_scheduler_node_t
      - name: _all_refs
        type: h2o_linklist_t
      - name: '*_queue'
        type: h2o_http2_scheduler_queue_t
      item_type: struct
      name: st_h2o_http2_scheduler_node_t
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/h2o/include/h2o/http2_scheduler.h
    - fields:
      - name: node
        type: h2o_http2_scheduler_node_t
      - name: weight
        type: uint16_t
      - name: _all_link
        type: h2o_linklist_t
      - name: _active_cnt
        type: size_t
      - name: _self_is_active
        type: int
      - name: _queue_node
        type: h2o_http2_scheduler_queue_node_t
      - name: _is_relocated
        type: int
      item_type: struct
      name: st_h2o_http2_scheduler_openref_t
      pos:
        line_end: 56
        line_start: 48
        source_file: /src/h2o/include/h2o/http2_scheduler.h
    typedefs:
    - item_type: typedef
      name: h2o_http2_scheduler_queue_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/include/h2o/http2_scheduler.h
      type: st_h2o_http2_scheduler_queue_t
    - item_type: typedef
      name: (*h2o_http2_scheduler_run_cb)(h2o_http2_scheduler_openref_t *ref, int
        *still_is_active, void *cb_arg)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/h2o/include/h2o/http2_scheduler.h
      type: int
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/http2_casper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: h2o_http2_casper_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/include/h2o/http2_casper.h
      type: st_h2o_http2_casper_t
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/serverutil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EX_SOFTWARE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/serverutil.h
      type_or_value: '70'
    - item_type: preproc_def
      name: EX_OSERR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/serverutil.h
      type_or_value: '71'
    - item_type: preproc_def
      name: EX_TEMPFAIL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/serverutil.h
      type_or_value: '75'
    - item_type: preproc_def
      name: EX_CONFIG
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/include/h2o/serverutil.h
      type_or_value: '78'
    - item_type: preproc_def
      name: SERVER_STARTER_PORT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/include/h2o/serverutil.h
      type_or_value: '"SERVER_STARTER_PORT"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_socket_is_writing
  - h2o_socket_is_reading
  - h2o_socket_prepare_for_latency_optimized_write
  - h2o_socket_log_ssl_protocol_version
  - h2o_socket_log_ssl_session_reused
  - h2o_socket_log_ssl_cipher
  - h2o_socket_log_ssl_server_name
  - h2o_socket_log_ssl_negotiated_protocol
  - h2o_sliding_counter_is_running
  - h2o_sliding_counter_start
  - h2o_socket_log_state
  source_file: /src/h2o/include/h2o/socket.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_LIBUV
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_LIBUV
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_MSG_ZEROCOPY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_ALPN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_NPN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_NPN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_ALPN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_NPN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_ALPN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_NPN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_OPENSSL_CLIENT_HELLO_CB
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_CAN_OSSL_ASYNC
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_PULL_SENDVEC_MAX_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: H2O_SOCKET_DEFAULT_SSL_BUFFER_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: ((5 + 16384 + 32) * 4)
    - item_type: preproc_def
      name: H2O_SOCKET_INITIAL_INPUT_BUFFER_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: H2O_SESSID_CTX
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: ((const uint8_t *)"h2o")
    - item_type: preproc_def
      name: H2O_SESSID_CTX_LEN
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: (sizeof("h2o") - 1)
    - item_type: preproc_def
      name: H2O_SOCKET_SENDVEC_FLAG_REPORT_PROGRESS
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/h2o/include/h2o/socket.h
      type_or_value: '0x1'
    structs:
    - fields:
      - name: average
        type: uint64_t
      - name: prev
        type: "struct {\n        uint64_t sum;\n        uint64_t slots[8];\n        size_t
          index;\n    }"
      - name: cur
        type: "struct {\n        uint64_t start_at;\n    }"
      item_type: struct
      name: st_h2o_sliding_counter_t
      pos:
        line_end: 98
        line_start: 88
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: len
        type: socklen_t
      - name: addr
        type: struct sockaddr
      item_type: struct
      name: st_h2o_socket_addr_t
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: (*read_)(h2o_sendvec_t *vec, void *dst, size_t len)
        type: int
      - name: (*send_)(h2o_sendvec_t *vec, int sockfd, size_t len)
        type: size_t
      item_type: struct
      name: st_h2o_sendvec_callbacks_t
      pos:
        line_end: 158
        line_start: 146
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: '*callbacks'
        type: h2o_sendvec_callbacks_t
      - name: len
        type: size_t
      item_type: struct
      name: st_h2o_sendvec_t
      pos:
        line_end: 180
        line_start: 164
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: '*data'
        type: void
      - name: '*ssl'
        type: struct st_h2o_socket_ssl_t
      - name: '*input'
        type: h2o_buffer_t
      - name: bytes_read
        type: uint64_t
      - name: bytes_written
        type: uint64_t
      - name: _log_state
        type: ptls_log_conn_state_t
      - name: on_close
        type: "struct {\n        void (*cb)(void *data);\n        void *data;\n    }"
      - name: _cb
        type: "struct {\n        h2o_socket_cb read;\n        h2o_socket_cb write;\n
          \       unsigned write_flags;\n    }"
      - name: '*_peername'
        type: struct st_h2o_socket_addr_t
      - name: '*_sockname'
        type: struct st_h2o_socket_addr_t
      - name: _write_buf
        type: "struct {\n        size_t cnt;\n        h2o_iovec_t *bufs;\n        union
          {\n            h2o_iovec_t *alloced_ptr;\n            h2o_iovec_t smallbufs[4];\n
          \       };\n        char *flattened;\n    }"
      - name: _latency_optimization
        type: "struct {\n        uint8_t state; /* one of H2O_SOCKET_LATENCY_STATE_*
          */\n        uint8_t notsent_is_minimized : 1;\n        size_t suggested_tls_payload_size;
          /* suggested TLS record payload size, or SIZE_MAX when no need to restrict
          */\n        size_t suggested_write_size;       /* SIZE_MAX if no need to
          optimize for latency */\n    }"
      - name: '*_zerocopy'
        type: struct st_h2o_socket_zerocopy_buffers_t
      item_type: struct
      name: st_h2o_socket_t
      pos:
        line_end: 229
        line_start: 185
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: fd
        type: int
      - name: '*ssl'
        type: struct st_h2o_socket_ssl_t
      - name: '*input'
        type: h2o_buffer_t
      item_type: struct
      name: st_h2o_socket_export_t
      pos:
        line_end: 235
        line_start: 231
        source_file: /src/h2o/include/h2o/socket.h
    - fields:
      - name: min_rtt
        type: unsigned
      - name: max_additional_delay
        type: unsigned
      - name: max_cwnd
        type: unsigned
      item_type: struct
      name: st_h2o_socket_latency_optimization_conditions_t
      pos:
        line_end: 253
        line_start: 240
        source_file: /src/h2o/include/h2o/socket.h
    typedefs:
    - item_type: typedef
      name: h2o_socket_t
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/h2o/include/h2o/socket.h
      type: st_h2o_socket_t
    - item_type: typedef
      name: (*h2o_socket_cb)(h2o_socket_t *sock, const char *err)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/h2o/include/h2o/socket.h
      type: void
    - item_type: typedef
      name: h2o_sendvec_t
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/include/h2o/socket.h
      type: st_h2o_sendvec_t
    - item_type: typedef
      name: (*h2o_socket_ssl_resumption_get_async_cb)(h2o_socket_t *sock, h2o_iovec_t
        session_id)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/h2o/include/h2o/socket.h
      type: void
    - item_type: typedef
      name: (*h2o_socket_ssl_resumption_new_cb)(h2o_socket_t *sock, h2o_iovec_t session_id,
        h2o_iovec_t session_data)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/h2o/include/h2o/socket.h
      type: void
    - item_type: typedef
      name: (*h2o_socket_ssl_resumption_remove_cb)(h2o_iovec_t session_id)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/h2o/include/h2o/socket.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/include/h2o/balancer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: select_
        type: h2o_balancer_selector
      - name: destroy
        type: h2o_balancer_destroyer
      item_type: struct
      name: st_h2o_balancer_callbacks_t
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/h2o/include/h2o/balancer.h
    - fields:
      - name: '*callbacks'
        type: h2o_balancer_callbacks_t
      item_type: struct
      name: st_h2o_balancer_t
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/h2o/include/h2o/balancer.h
    typedefs:
    - item_type: typedef
      name: (*h2o_balancer_selector)(h2o_balancer_t *balancer, h2o_socketpool_target_vector_t
        *targets, char *tried)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/h2o/include/h2o/balancer.h
      type: size_t
    - item_type: typedef
      name: (*h2o_balancer_destroyer)(h2o_balancer_t *balancer)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/include/h2o/balancer.h
      type: void
    union: []
- function_names:
  - h2o_url_init
  - h2o_url_get_port
  - h2o_url_stringify
  - h2o_url_host_is_unix_path
  - h2o_url_hosts_are_equal
  source_file: /src/h2o/include/h2o/url.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name
        type: h2o_iovec_t
      - name: default_port
        type: uint16_t
      - name: is_ssl
        type: int
      item_type: struct
      name: st_h2o_url_scheme_t
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/h2o/include/h2o/url.h
    - fields:
      - name: '*scheme'
        type: h2o_url_scheme_t
      - name: authority
        type: h2o_iovec_t
      - name: host
        type: h2o_iovec_t
      - name: path
        type: h2o_iovec_t
      - name: _port
        type: uint16_t
      item_type: struct
      name: st_h2o_url_t
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/h2o/include/h2o/url.h
    typedefs: []
    union: []
- function_names:
  - h2o_timeval_subtract
  - h2o_timeval_is_null
  source_file: /src/h2o/include/h2o/time_.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_TIMESTR_RFC1123_LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/time_.h
      type_or_value: (sizeof("Sun, 06 Nov 1994 08:49:37 GMT") - 1)
    - item_type: preproc_def
      name: H2O_TIMESTR_LOG_LEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/time_.h
      type_or_value: (sizeof("29/Aug/2014:15:34:38 +0900") - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_gettimeofday
  - h2o_now
  - h2o_now_nanosec
  - h2o_timer_init
  - h2o_timer_is_linked
  source_file: /src/h2o/include/h2o/socket/uv-binding.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*uv_timer'
        type: uv_timer_t
      - name: is_linked
        type: int
      - name: cb
        type: h2o_timer_cb
      item_type: struct
      name: st_h2o_timer_t
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/h2o/include/h2o/socket/uv-binding.h
    typedefs:
    - item_type: typedef
      name: h2o_loop_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/include/h2o/socket/uv-binding.h
      type: uv_loop_t
    - item_type: typedef
      name: h2o_timer_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/include/h2o/socket/uv-binding.h
      type: st_h2o_timer_t
    - item_type: typedef
      name: (*h2o_timer_cb)(h2o_timer_t *timer)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/h2o/include/h2o/socket/uv-binding.h
      type: void
    union: []
- function_names:
  - h2o_gettimeofday
  - h2o_now
  - h2o_now_nanosec
  - h2o_evloop_get_execution_time_millisec
  - h2o_evloop_get_execution_time_nanosec
  - h2o_timer_link
  source_file: /src/h2o/include/h2o/socket/evloop.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_DISPOSED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_READ_READY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_WRITE_NOTIFY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_POLLED_FOR_READ
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_POLLED_FOR_WRITE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_DONT_READ
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_CONNECTING
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_ACCEPTED_CONNECTION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG_IS_CONNECTING_CONNECTED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: H2O_SOCKET_FLAG__EPOLL_IS_REGISTERED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: h2o_timer_init
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: h2o_timerwheel_init_entry
    - item_type: preproc_def
      name: h2o_timer_is_linked
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: h2o_timerwheel_is_linked
    - item_type: preproc_def
      name: h2o_timer_unlink
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type_or_value: h2o_timerwheel_unlink
    structs:
    - fields:
      - name: '*_pending_as_client'
        type: struct st_h2o_evloop_socket_t
      - name: '*_pending_as_server'
        type: struct st_h2o_evloop_socket_t
      - name: _statechanged
        type: "struct {\n        struct st_h2o_evloop_socket_t *head;\n        struct
          st_h2o_evloop_socket_t **tail_ref;\n    }"
      - name: _now_millisec
        type: uint64_t
      - name: _now_nanosec
        type: uint64_t
      - name: _tv_at
        type: struct timeval
      - name: '*_timeouts'
        type: h2o_timerwheel_t
      - name: exec_time_nanosec_counter
        type: h2o_sliding_counter_t
      - name: run_count
        type: uint64_t
      item_type: struct
      name: st_h2o_evloop_t
      pos:
        line_end: 55
        line_start: 42
        source_file: /src/h2o/include/h2o/socket/evloop.h
    typedefs:
    - item_type: typedef
      name: h2o_loop_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type: h2o_evloop_t
    - item_type: typedef
      name: h2o_timer_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type: h2o_timerwheel_entry_t
    - item_type: typedef
      name: h2o_timer_cb
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/h2o/include/h2o/socket/evloop.h
      type: h2o_timerwheel_cb
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/picohttpparser/bench.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: q
      pos:
        line_end: 45
        line_start: 30
        source_file: /src/h2o/deps/picohttpparser/bench.c
      type_or_value: "=0.8\\r\\n\"                                                  \\\n
        \   \"Accept-Language: ja,en-us;q=0.7,en;q=0.3\\r\\n\"                                                                                 \\\n
        \   \"Accept-Encoding: gzip,deflate\\r\\n\"                                                                                            \\\n
        \   \"Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7\\r\\n\"                                                                            \\\n
        \   \"Keep-Alive: 115\\r\\n\"                                                                                                          \\\n
        \   \"Connection: keep-alive\\r\\n\"                                                                                                   \\\n
        \   \"Cookie: wp_ozh_wsa_visits=2; wp_ozh_wsa_visit_lasttime=xxxxxxxxxx; \"
        \                                                         \\\n    \"__utma=xxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.x;
        \"                                                             \\\n    \"__utmz=xxxxxxxxx.xxxxxxxxxx.x.x.utmccn=(referral)|utmcsr=reader.livedoor.com|utmcct=/reader/|utmcmd=referral\\r\\n\"
        \            \\\n    \"\\r\\n\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufis
  - test_request
  - PARSE
  - test_response
  - PARSE
  - test_headers
  - PARSE
  - test_chunked_at_once
  - test_chunked_per_byte
  - test_chunked_failure
  - test_chunked
  - test_chunked_consume_trailer
  - test_chunked_leftdata
  - do_test_chunked_overhead
  - test_chunked_overhead
  - main
  source_file: /src/h2o/deps/picohttpparser/test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEXT_REQ
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/h2o/deps/picohttpparser/test.c
      type_or_value: '"GET / HTTP/1.1\r\n\r\n"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picohttpparser/picohttpparser.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/picohttpparser/picohttpparser.h
      type_or_value: intptr_t
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: name_len
        type: size_t
      - name: '*value'
        type: char
      - name: value_len
        type: size_t
      item_type: struct
      name: phr_header
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/h2o/deps/picohttpparser/picohttpparser.h
    - fields:
      - name: bytes_left_in_chunk
        type: size_t
      - name: consume_trailer
        type: char
      - name: _hex_count
        type: char
      - name: _state
        type: char
      - name: _total_read
        type: uint64_t
      - name: _total_overhead
        type: uint64_t
      item_type: struct
      name: phr_chunked_decoder
      pos:
        line_end: 69
        line_start: 62
        source_file: /src/h2o/deps/picohttpparser/picohttpparser.h
    typedefs: []
    union: []
- function_names:
  - likely
  - unlikely
  - likely
  - unlikely
  - ALIGNED
  - ALIGNED
  - IS_PRINTABLE_ASCII
  - CHECK_EOF
  - EXPECT_CHAR_NO_CHECK
  - EXPECT_CHAR
  - ADVANCE_TOKEN
  - findchar_fast
  - get_token_to_eol
  - DOIT
  - is_complete
  - PARSE_INT
  - PARSE_INT_3
  - parse_token
  - parse_http_version
  - parse_headers
  - parse_request
  - phr_parse_request
  - parse_response
  - phr_parse_response
  - phr_parse_headers
  - decode_hex
  - phr_decode_chunked
  - phr_decode_chunked_is_in_data
  source_file: /src/h2o/deps/picohttpparser/picohttpparser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_error_codes
  - test_enable_with_ratio255_get_random
  - test_enable_with_ratio255
  - test_adjust_stream_frame_layout
  - TEST
  - get_now_cb
  - on_destroy
  - on_egress_stop
  - on_ingress_receive
  - on_ingress_reset
  - new_master_id
  - on_stream_open
  - test_vector
  - test_retry_aead
  - test_transport_parameters
  - decode_packets
  - buffer_is
  - transmit
  - exchange_until_idle
  - max_data_is_equal
  - test_next_packet_number
  - test_address_token_codec_decode
  - test_address_token_codec
  - do_test_record_receipt
  - do_test_ack_frequency_ack_logic
  - test_record_receipt
  - test_ack_frequency
  - test_cid
  - test_nondecryptable_initial
  - test_set_cc
  - test_ecn_index_from_bits
  - test_jumpstart_cwnd
  - test_setup_connected_peers
  - test_setup_send_context
  - test_state_exhaustion
  - do_test_migration_during_handshake
  - test_migration_during_handshake
  - test_stats_foreach_field
  - test_stats_foreach
  - CHECK
  - main
  source_file: /src/h2o/deps/quicly/t/test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_PRIVATE_KEY
      pos:
        line_end: 68
        line_start: 40
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: "\"-----BEGIN RSA PRIVATE KEY-----\\n\"                                                                                            \\\n
        \   \"MIIEpAIBAAKCAQEA7zZheZ4ph98JaedBNv9kqsVA9CSmhd69kBc9ZAfVFMA4VQwp\\n\"
        \                                                          \\\n    \"rOj3ZGrxf20HB3FkvqGvew9ZogUF6NjbPumeiUObGpP21Y5wcYlPL4aojlrwMB/e\\n\"
        \                                                          \\\n    \"OxOCpuRyQTRSSe1hDPvdJABQdmshDP5ZSEBLdUSgrNn4KWhIDjFj1AHXIMqeqTXe\\n\"
        \                                                          \\\n    \"tFuRgNzHdtbXQx+UWBis2B6qZJuqSArb2msVOC8D5gNznPPlQw7FbdPCaLNXSb6G\\n\"
        \                                                          \\\n    \"nI0E0uj6QmYlAw9s6nkgP/zxjfFldqPNUprGcEqTwmAb8VVtd7XbANYrzubZ4Nn6\\n\"
        \                                                          \\\n    \"/WXrCrVxWUmh/7Spgdwa/I4Nr1JHv9HHyL2z/wIDAQABAoIBAEVPf2zKrAPnVwXt\\n\"
        \                                                          \\\n    \"cJLr6xIj908GM43EXS6b3TjXoCDUFT5nOMgV9GCPMAwY3hmE/IjTtlG0v+bXB8BQ\\n\"
        \                                                          \\\n    \"3S3caQgio5VO3A1CqUfsXhpKLRqaNM/s2+pIG+oZdRV5gIJVGnK1o3yj7qxxG/F0\\n\"
        \                                                          \\\n    \"3Q+3OWXwDZIn0eTFh2M9YkxygA/KtkREZWv8Q8qZpdOpJSBYZyGE97Jqy/yGc+DQ\\n\"
        \                                                          \\\n    \"Vpoa9B8WwnIdUn47TkZfsbzqGIYZxatJQDC1j7Y+F8So7zBbUhpz7YqATQwf5Efm\\n\"
        \                                                          \\\n    \"K2xwvlwfdwykq6ffEr2M/Xna0220G2JZlGq3Cs2X9GT9Pt9OS86Bz+EL46ELo0tZ\\n\"
        \                                                          \\\n    \"yfHQe/kCgYEA+zh4k2be6fhQG+ChiG3Ue5K/kH2prqyGBus61wHnt8XZavqBevEy\\n\"
        \                                                          \\\n    \"4pdmvJ6Q1Ta9Z2YCIqqNmlTdjZ6B35lvAK8YFITGy0MVV6K5NFYVfhALWCQC2r3B\\n\"
        \                                                          \\\n    \"6uH39FQ0mDo3gS5ZjYlUzbu67LGFnyX+pyMr2oxlhI1fCY3VchXQAOsCgYEA88Nt\\n\"
        \                                                          \\\n    \"CwSOaZ1fWmyNAgXEAX1Jx4XLFYgjcA/YBXW9gfQ0AfufB346y53PsgjX1lB+Bbcg\\n\"
        \                                                          \\\n    \"cY/o5W7F0b3A0R4K5LShlPCq8iB2DC+VnpKwTgo8ylh+VZCPy2BmMK0jrrmyqWeg\\n\"
        \                                                          \\\n    \"PzwgP0lp+7l/qW8LDImeYi8nWoqd6f1ye4iJdD0CgYEAlIApJljk5EFYeWIrmk3y\\n\"
        \                                                          \\\n    \"EKoKewsNRqfNAkICoh4KL2PQxaAW8emqPq9ol47T5nVZOMnf8UYINnZ8EL7l3psA\\n\"
        \                                                          \\\n    \"NtNJ1Lc4G+cnsooKGJnaUo6BZjTDSzJocsPoopE0Fdgz/zS60yOe8Y5LTKcTaaQ4\\n\"
        \                                                          \\\n    \"B+yOe74KNHSs/STOS4YBUskCgYAIqaRBZPsOo8oUs5DbRostpl8t2QJblIf13opF\\n\"
        \                                                          \\\n    \"v2ZprN0ASQngwUqjm8sav5e0BQ5Fc7mSb5POO36KMp0ckV2/vO+VFGxuyFqJmlNN\\n\"
        \                                                          \\\n    \"3Fapn1GDu1tZ/RYvGxDmn/CJsA26WXVnaeKXfStoB7KSueCBpI5dXOGgJRbxjtE3\\n\"
        \                                                          \\\n    \"tKV13QKBgQCtmLtTJPJ0Z+9n85C8kBonk2MCnD9JTYWoDQzNMYGabthzSqJqcEek\\n\"
        \                                                          \\\n    \"dvhr82XkcHM+r6+cirjdQr4Qj7/2bfZesHl5XLvoJDB1YJIXnNJOELwbktrJrXLc\\n\"
        \                                                          \\\n    \"dJ+MMvPvBAMah/tqr2DqgTGfWLDt9PJiCJVsuN2kD9toWHV08pY0Og==\\n\"
        \                                                                  \\\n    \"-----END
        RSA PRIVATE KEY-----\\n\""
    - item_type: preproc_def
      name: RSA_CERTIFICATE
      pos:
        line_end: 90
        line_start: 69
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: "\"-----BEGIN CERTIFICATE-----\\n\"                                                                                                \\\n
        \   \"MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtIMk8g\\n\"
        \                                                          \\\n    \"VGVzdCBDQTAeFw0xNDEyMTAxOTMzMDVaFw0yNDEyMDcxOTMzMDVaMBsxGTAXBgNV\\n\"
        \                                                          \\\n    \"BAMTEDEyNy4wLjAuMS54aXAuaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\\n\"
        \                                                          \\\n    \"AoIBAQDvNmF5nimH3wlp50E2/2SqxUD0JKaF3r2QFz1kB9UUwDhVDCms6PdkavF/\\n\"
        \                                                          \\\n    \"bQcHcWS+oa97D1miBQXo2Ns+6Z6JQ5sak/bVjnBxiU8vhqiOWvAwH947E4Km5HJB\\n\"
        \                                                          \\\n    \"NFJJ7WEM+90kAFB2ayEM/llIQEt1RKCs2fgpaEgOMWPUAdcgyp6pNd60W5GA3Md2\\n\"
        \                                                          \\\n    \"1tdDH5RYGKzYHqpkm6pICtvaaxU4LwPmA3Oc8+VDDsVt08Jos1dJvoacjQTS6PpC\\n\"
        \                                                          \\\n    \"ZiUDD2zqeSA//PGN8WV2o81SmsZwSpPCYBvxVW13tdsA1ivO5tng2fr9ZesKtXFZ\\n\"
        \                                                          \\\n    \"SaH/tKmB3Br8jg2vUke/0cfIvbP/AgMBAAGjgY0wgYowCQYDVR0TBAIwADAsBglg\\n\"
        \                                                          \\\n    \"hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0O\\n\"
        \                                                          \\\n    \"BBYEFJXhddVQ68vtPvxoHWHsYkLnu3+4MDAGA1UdIwQpMCehGqQYMBYxFDASBgNV\\n\"
        \                                                          \\\n    \"BAMTC0gyTyBUZXN0IENBggkAmqS1V7DvzbYwDQYJKoZIhvcNAQELBQADggEBAJQ2\\n\"
        \                                                          \\\n    \"uvzL/lZnrsF4cvHhl/mg+s/RjHwvqFRrxOWUeWu2BQOGdd1Izqr8ZbF35pevPkXe\\n\"
        \                                                          \\\n    \"j3zQL4Nf8OxO/gx4w0165KL4dYxEW7EaxsDQUI2aXSW0JNSvK2UGugG4+E4aT+9y\\n\"
        \                                                          \\\n    \"cuBCtfWbL4/N6IMt2QW17B3DcigkreMoZavnnqRecQWkOx4nu0SmYg1g2QV4kRqT\\n\"
        \                                                          \\\n    \"nvLt29daSWjNhP3dkmLTxn19umx26/JH6rqcgokDfHHO8tlDbc9JfyxYH01ZP2Ps\\n\"
        \                                                          \\\n    \"esIiGa/LBXfKiPXxyHuNVQI+2cMmIWYf+Eu/1uNV3K55fA8806/FeklcQe/vvSCU\\n\"
        \                                                          \\\n    \"Vw6RN5S/14SQnMYWr7E=\\n\"
        \                                                                                                      \\\n
        \   \"-----END CERTIFICATE-----\\n\""
    - item_type: preproc_def
      name: PACKET_LEN
      pos:
        line_end: 1057
        line_start: 1056
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: '1280'
    - item_type: preproc_def
      name: HEADER_LEN
      pos:
        line_end: 1058
        line_start: 1057
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: '18'
    - item_type: preproc_def
      name: LEN_HIGH
      pos:
        line_end: 1059
        line_start: 1058
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: (((PACKET_LEN - HEADER_LEN) & 0xff00) >> 8)
    - item_type: preproc_def
      name: LEN_LOW
      pos:
        line_end: 1060
        line_start: 1059
        source_file: /src/h2o/deps/quicly/t/test.c
      type_or_value: ((PACKET_LEN - HEADER_LEN) & 0xff)
    structs:
    - fields:
      - name: packet_number
        type: uint64_t
      - name: send_ack
        type: uint8_t
      - name: expected_smallest_unreported_missing_after_receipt
        type: uint64_t
      - name: is_ack_only
        type: int
      - name: advance_time_by
        type: uint64_t
      item_type: struct
      name: st_case_row_t
      pos:
        line_end: 687
        line_start: 681
        source_file: /src/h2o/deps/quicly/t/test.c
    - fields:
      - name: '*rows'
        type: struct st_case_row_t
      - name: rows_count
        type: size_t
      - name: reordering_threshold
        type: uint8_t
      - name: packet_tolerance
        type: uint32_t
      item_type: struct
      name: st_test_case
      pos:
        line_end: 694
        line_start: 689
        source_file: /src/h2o/deps/quicly/t/test.c
    - fields: []
      item_type: struct
      name: counters_only
      pos:
        line_end: 1436
        line_start: 1434
        source_file: /src/h2o/deps/quicly/t/test.c
    typedefs: []
    union: []
- function_names:
  - test_ack_decode_underflow
  - test_ack_decode
  - test_ack_encode
  - test_mozquic
  - test_frame
  source_file: /src/h2o/deps/quicly/t/frame.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_jumpstart_pattern
  - do_test_jumpstart
  - test_jumpstart
  source_file: /src/h2o/deps/quicly/t/jumpstart.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: action
        type: enum { TEST_JUMPSTART_ACTION_END, TEST_JUMPSTART_ACTION_SEND, TEST_JUMPSTART_ACTION_ACKED,
          TEST_JUMPSTART_ACTION_LOST }
      - name: now
        type: int64_t
      - name: packets
        type: uint32_t
      item_type: struct
      name: test_jumpstart_action
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/h2o/deps/quicly/t/jumpstart.c
    typedefs: []
    union: []
- function_names:
  - CHECK
  - test_add
  - test_subtract
  - test_next_missing
  - test_ranges
  source_file: /src/h2o/deps/quicly/t/ranges.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lower_bound
        type: uint64_t
      - name: expected_missing
        type: uint64_t
      - name: expected_slots_traversed
        type: uint64_t
      item_type: struct
      name: st_missing_test_case
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/h2o/deps/quicly/t/ranges.c
    typedefs: []
    union: []
- function_names:
  - test_handshake
  - simple_http
  - test_reset_then_close
  - test_send_then_close
  - test_reset_after_close
  - tiny_stream_window
  - test_reset_during_loss
  - test_closed
  - test_close
  - tiny_connection_window
  - test_simple
  source_file: /src/h2o/deps/quicly/t/simple.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_pico_undo_loss
  - test_pico_undo_multiple_losses
  - test_pico_undo_rapid_start_loss
  - test_pico_undo_jumpstart_loss
  - test_rapid_start
  - test_cc
  source_file: /src/h2o/deps/quicly/t/cc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_shift_retired
  - test_received_cid
  - memcmp
  - TEST_RETIRED
  source_file: /src/h2o/deps/quicly/t/remote_cid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CID_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/quicly/t/remote_cid.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_address
  - net_packet_create
  - net_packet_destroy
  - net_queue_enqueue
  - net_queue_dequeue
  - net_delay_forward
  - net_delay_next_run_at
  - net_delay_run
  - net_delay_init
  - net_random_loss_forward
  - net_random_loss_next_run_at
  - net_random_loss_init
  - net_bottleneck_print_stats
  - net_bottleneck_forward
  - net_bottleneck_next_run_at
  - net_bottleneck_run
  - net_bottleneck_init
  - net_endpoint_forward
  - net_endpoint_next_run_at
  - net_endpoint_run
  - net_endpoint_init
  - run_nodes
  - tls_now_cb
  - quic_now_cb
  - stream_destroy_cb
  - stream_egress_shift_cb
  - stream_egress_emit_cb
  - stream_on_stop_sending_cb
  - stream_on_receive_cb
  - stream_on_receive_reset_cb
  - stream_open_cb
  - usage
  - reset_getopt_state
  - find_next_separator
  - parse_options
  - main
  source_file: /src/h2o/deps/quicly/t/simulator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_PRIVATE_KEY
      pos:
        line_end: 637
        line_start: 609
        source_file: /src/h2o/deps/quicly/t/simulator.c
      type_or_value: "\"-----BEGIN RSA PRIVATE KEY-----\\n\"                                                                                            \\\n
        \   \"MIIEpAIBAAKCAQEA7zZheZ4ph98JaedBNv9kqsVA9CSmhd69kBc9ZAfVFMA4VQwp\\n\"
        \                                                          \\\n    \"rOj3ZGrxf20HB3FkvqGvew9ZogUF6NjbPumeiUObGpP21Y5wcYlPL4aojlrwMB/e\\n\"
        \                                                          \\\n    \"OxOCpuRyQTRSSe1hDPvdJABQdmshDP5ZSEBLdUSgrNn4KWhIDjFj1AHXIMqeqTXe\\n\"
        \                                                          \\\n    \"tFuRgNzHdtbXQx+UWBis2B6qZJuqSArb2msVOC8D5gNznPPlQw7FbdPCaLNXSb6G\\n\"
        \                                                          \\\n    \"nI0E0uj6QmYlAw9s6nkgP/zxjfFldqPNUprGcEqTwmAb8VVtd7XbANYrzubZ4Nn6\\n\"
        \                                                          \\\n    \"/WXrCrVxWUmh/7Spgdwa/I4Nr1JHv9HHyL2z/wIDAQABAoIBAEVPf2zKrAPnVwXt\\n\"
        \                                                          \\\n    \"cJLr6xIj908GM43EXS6b3TjXoCDUFT5nOMgV9GCPMAwY3hmE/IjTtlG0v+bXB8BQ\\n\"
        \                                                          \\\n    \"3S3caQgio5VO3A1CqUfsXhpKLRqaNM/s2+pIG+oZdRV5gIJVGnK1o3yj7qxxG/F0\\n\"
        \                                                          \\\n    \"3Q+3OWXwDZIn0eTFh2M9YkxygA/KtkREZWv8Q8qZpdOpJSBYZyGE97Jqy/yGc+DQ\\n\"
        \                                                          \\\n    \"Vpoa9B8WwnIdUn47TkZfsbzqGIYZxatJQDC1j7Y+F8So7zBbUhpz7YqATQwf5Efm\\n\"
        \                                                          \\\n    \"K2xwvlwfdwykq6ffEr2M/Xna0220G2JZlGq3Cs2X9GT9Pt9OS86Bz+EL46ELo0tZ\\n\"
        \                                                          \\\n    \"yfHQe/kCgYEA+zh4k2be6fhQG+ChiG3Ue5K/kH2prqyGBus61wHnt8XZavqBevEy\\n\"
        \                                                          \\\n    \"4pdmvJ6Q1Ta9Z2YCIqqNmlTdjZ6B35lvAK8YFITGy0MVV6K5NFYVfhALWCQC2r3B\\n\"
        \                                                          \\\n    \"6uH39FQ0mDo3gS5ZjYlUzbu67LGFnyX+pyMr2oxlhI1fCY3VchXQAOsCgYEA88Nt\\n\"
        \                                                          \\\n    \"CwSOaZ1fWmyNAgXEAX1Jx4XLFYgjcA/YBXW9gfQ0AfufB346y53PsgjX1lB+Bbcg\\n\"
        \                                                          \\\n    \"cY/o5W7F0b3A0R4K5LShlPCq8iB2DC+VnpKwTgo8ylh+VZCPy2BmMK0jrrmyqWeg\\n\"
        \                                                          \\\n    \"PzwgP0lp+7l/qW8LDImeYi8nWoqd6f1ye4iJdD0CgYEAlIApJljk5EFYeWIrmk3y\\n\"
        \                                                          \\\n    \"EKoKewsNRqfNAkICoh4KL2PQxaAW8emqPq9ol47T5nVZOMnf8UYINnZ8EL7l3psA\\n\"
        \                                                          \\\n    \"NtNJ1Lc4G+cnsooKGJnaUo6BZjTDSzJocsPoopE0Fdgz/zS60yOe8Y5LTKcTaaQ4\\n\"
        \                                                          \\\n    \"B+yOe74KNHSs/STOS4YBUskCgYAIqaRBZPsOo8oUs5DbRostpl8t2QJblIf13opF\\n\"
        \                                                          \\\n    \"v2ZprN0ASQngwUqjm8sav5e0BQ5Fc7mSb5POO36KMp0ckV2/vO+VFGxuyFqJmlNN\\n\"
        \                                                          \\\n    \"3Fapn1GDu1tZ/RYvGxDmn/CJsA26WXVnaeKXfStoB7KSueCBpI5dXOGgJRbxjtE3\\n\"
        \                                                          \\\n    \"tKV13QKBgQCtmLtTJPJ0Z+9n85C8kBonk2MCnD9JTYWoDQzNMYGabthzSqJqcEek\\n\"
        \                                                          \\\n    \"dvhr82XkcHM+r6+cirjdQr4Qj7/2bfZesHl5XLvoJDB1YJIXnNJOELwbktrJrXLc\\n\"
        \                                                          \\\n    \"dJ+MMvPvBAMah/tqr2DqgTGfWLDt9PJiCJVsuN2kD9toWHV08pY0Og==\\n\"
        \                                                                  \\\n    \"-----END
        RSA PRIVATE KEY-----\\n\""
    - item_type: preproc_def
      name: RSA_CERTIFICATE
      pos:
        line_end: 659
        line_start: 638
        source_file: /src/h2o/deps/quicly/t/simulator.c
      type_or_value: "\"-----BEGIN CERTIFICATE-----\\n\"                                                                                                \\\n
        \   \"MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtIMk8g\\n\"
        \                                                          \\\n    \"VGVzdCBDQTAeFw0xNDEyMTAxOTMzMDVaFw0yNDEyMDcxOTMzMDVaMBsxGTAXBgNV\\n\"
        \                                                          \\\n    \"BAMTEDEyNy4wLjAuMS54aXAuaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\\n\"
        \                                                          \\\n    \"AoIBAQDvNmF5nimH3wlp50E2/2SqxUD0JKaF3r2QFz1kB9UUwDhVDCms6PdkavF/\\n\"
        \                                                          \\\n    \"bQcHcWS+oa97D1miBQXo2Ns+6Z6JQ5sak/bVjnBxiU8vhqiOWvAwH947E4Km5HJB\\n\"
        \                                                          \\\n    \"NFJJ7WEM+90kAFB2ayEM/llIQEt1RKCs2fgpaEgOMWPUAdcgyp6pNd60W5GA3Md2\\n\"
        \                                                          \\\n    \"1tdDH5RYGKzYHqpkm6pICtvaaxU4LwPmA3Oc8+VDDsVt08Jos1dJvoacjQTS6PpC\\n\"
        \                                                          \\\n    \"ZiUDD2zqeSA//PGN8WV2o81SmsZwSpPCYBvxVW13tdsA1ivO5tng2fr9ZesKtXFZ\\n\"
        \                                                          \\\n    \"SaH/tKmB3Br8jg2vUke/0cfIvbP/AgMBAAGjgY0wgYowCQYDVR0TBAIwADAsBglg\\n\"
        \                                                          \\\n    \"hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0O\\n\"
        \                                                          \\\n    \"BBYEFJXhddVQ68vtPvxoHWHsYkLnu3+4MDAGA1UdIwQpMCehGqQYMBYxFDASBgNV\\n\"
        \                                                          \\\n    \"BAMTC0gyTyBUZXN0IENBggkAmqS1V7DvzbYwDQYJKoZIhvcNAQELBQADggEBAJQ2\\n\"
        \                                                          \\\n    \"uvzL/lZnrsF4cvHhl/mg+s/RjHwvqFRrxOWUeWu2BQOGdd1Izqr8ZbF35pevPkXe\\n\"
        \                                                          \\\n    \"j3zQL4Nf8OxO/gx4w0165KL4dYxEW7EaxsDQUI2aXSW0JNSvK2UGugG4+E4aT+9y\\n\"
        \                                                          \\\n    \"cuBCtfWbL4/N6IMt2QW17B3DcigkreMoZavnnqRecQWkOx4nu0SmYg1g2QV4kRqT\\n\"
        \                                                          \\\n    \"nvLt29daSWjNhP3dkmLTxn19umx26/JH6rqcgokDfHHO8tlDbc9JfyxYH01ZP2Ps\\n\"
        \                                                          \\\n    \"esIiGa/LBXfKiPXxyHuNVQI+2cMmIWYf+Eu/1uNV3K55fA8806/FeklcQe/vvSCU\\n\"
        \                                                          \\\n    \"Vw6RN5S/14SQnMYWr7E=\\n\"
        \                                                                                                      \\\n
        \   \"-----END CERTIFICATE-----\\n\""
    structs:
    - fields:
      - name: '*next'
        type: struct net_packet
      - name: '*src'
        type: struct net_endpoint
      - name: dest
        type: quicly_address_t
      - name: enter_at
        type: double
      - name: size
        type: size_t
      - name: bytes[1]
        type: uint8_t
      item_type: struct
      name: net_packet
      pos:
        line_end: 82
        line_start: 57
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: '*first'
        type: struct net_packet
      - name: size
        type: size_t
      item_type: struct
      name: net_queue
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: (*forward_)(struct net_node *node, struct net_packet *packet)
        type: void
      - name: (*next_run_at)(struct net_node *node)
        type: double
      - name: (*run)(struct net_node *node)
        type: void
      item_type: struct
      name: net_node
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: super
        type: struct net_node
      - name: '*next_node'
        type: struct net_node
      - name: queue
        type: struct net_queue
      - name: delay
        type: double
      item_type: struct
      name: net_delay
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: super
        type: struct net_node
      - name: '*next_node'
        type: struct net_node
      - name: loss_ratio
        type: double
      item_type: struct
      name: net_random_loss
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: super
        type: struct net_node
      - name: '*next_node'
        type: struct net_node
      - name: queue
        type: struct net_queue
      - name: next_emit_at
        type: double
      - name: bytes_per_sec
        type: double
      - name: capacity
        type: size_t
      item_type: struct
      name: net_bottleneck
      pos:
        line_end: 115
        line_start: 108
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: super
        type: struct net_node
      - name: addr
        type: quicly_address_t
      - name: start_at
        type: double
      - name: conns[10]
        type: "struct net_endpoint_conn {\n        quicly_conn_t *quic;\n        struct
          net_node *egress;\n    }"
      - name: '*accept_ctx'
        type: quicly_context_t
      item_type: struct
      name: net_endpoint
      pos:
        line_end: 126
        line_start: 117
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: '*quic'
        type: quicly_conn_t
      - name: '*egress'
        type: struct net_node
      item_type: struct
      name: net_endpoint_conn
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/h2o/deps/quicly/t/simulator.c
    - fields:
      - name: node
        type: struct net_endpoint
      - name: accept_ctx
        type: quicly_context_t
      item_type: struct
      name: server_node
      pos:
        line_end: 709
        line_start: 706
        source_file: /src/h2o/deps/quicly/t/simulator.c
    typedefs: []
    union: []
- function_names:
  - test_stream_concurrency
  source_file: /src/h2o/deps/quicly/t/stream-concurrency.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/quicly/t/test.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: quicly_streambuf_t
      - name: error_received
        type: "struct {\n        quicly_error_t stop_sending;\n        quicly_error_t
          reset_stream;\n    }"
      - name: is_detached
        type: int
      item_type: struct
      name: st_test_streambuf_t
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/h2o/deps/quicly/t/test.h
    typedefs: []
    union: []
- function_names:
  - test_basic
  - test_maxsender
  source_file: /src/h2o/deps/quicly/t/maxsender.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_calc_rate
  - test_pattern
  - test_medium
  - test_slow
  - test_fast
  - test_pacer
  source_file: /src/h2o/deps/quicly/t/pacer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: at
        type: int64_t
      - name: avail
        type: size_t
      - name: consume
        type: size_t
      item_type: struct
      name: pattern
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/h2o/deps/quicly/t/pacer.c
    typedefs: []
    union: []
- function_names:
  - on_loss_detected
  - acked
  - test_time_detection
  - test_pn_detection
  - test_slow_cert_verify
  - test_late_ack_threshold_adjustment
  - test_loss
  source_file: /src/h2o/deps/quicly/t/loss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - encrypt_cid
  - decrypt_cid
  - verify_cid
  - verify_array
  - count_by_state
  - exists_once
  - test_local_cid
  source_file: /src/h2o/deps/quicly/t/local_cid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_CIDS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/quicly/t/local_cid.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_REPORT
  - test_basic
  - test_burst
  - test_rate
  source_file: /src/h2o/deps/quicly/t/rate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - gettime
  - swap_memory
  - new_socket
  - find_or_create_connection
  - init_queue
  - dequeue
  - enqueue
  - on_signal
  - main
  source_file: /src/h2o/deps/quicly/t/udpfw.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXDROPS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/quicly/t/udpfw.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*prev'
        type: struct connection_t
      - name: cid
        type: size_t
      - name: up_fd
        type: int
      - name: down_addr
        type: "struct {\n        struct sockaddr_storage ss;\n        socklen_t len;\n
          \   }"
      - name: packet_num_up
        type: uint64_t
      - name: packet_num_down
        type: uint64_t
      item_type: struct
      name: connection_t
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    - fields:
      - name: ring
        type: "struct {\n        size_t depth;\n        size_t head;\n        size_t
          tail;\n        struct {\n            struct connection_t *conn;\n            uint8_t
          data[2048];\n            size_t len;\n            int64_t arrival;\n        }
          *elements;\n    }"
      - name: delay_usec
        type: int64_t
      - name: interval_usec
        type: int64_t
      - name: congested_until
        type: int64_t
      - name: num_forwarded
        type: uint64_t
      - name: num_dropped
        type: uint64_t
      - name: num_drops
        type: uint16_t
      - name: drops[MAXDROPS]
        type: uint16_t
      - name: num_reordered
        type: uint64_t
      - name: num_reorders
        type: uint16_t
      - name: reorders[64]
        type: uint16_t
      item_type: struct
      name: queue_t
      pos:
        line_end: 73
        line_start: 51
        source_file: /src/h2o/deps/quicly/t/udpfw.c
    typedefs: []
    union: []
- function_names:
  - cond_true_
  - cond_even_
  - init_cond_even
  - cond_rand_
  - init_cond_rand
  - transmit_cond
  - test_even
  - loss_core
  - cmp_int64
  - loss_check_stats
  - test_downstream
  - test_bidirectional
  - test_lossy
  source_file: /src/h2o/deps/quicly/t/lossy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*cb)(struct loss_cond_t *cond)
        type: int
      - name: data
        type: "union {\n        struct {\n            size_t cnt;\n        } even;\n
          \       struct {\n            struct {\n                unsigned nloss,
          ntotal;\n            } ratio;\n            uint64_t bits;\n            size_t
          bits_avail;\n        } rand_;\n    }"
      item_type: struct
      name: loss_cond_t
      pos:
        line_end: 42
        line_start: 28
        source_file: /src/h2o/deps/quicly/t/lossy.c
    typedefs: []
    union: []
- function_names:
  - on_acked
  - num_blocks
  - test_basic
  - test_late_ack
  - test_pto
  - test_sentmap
  source_file: /src/h2o/deps/quicly/t/sentmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hexdump
  - dump_stats
  - validate_path
  - parse_request
  - send_str
  - send_header
  - flatten_file_vec
  - discard_file_vec
  - send_file
  - flatten_sized_text
  - send_sized_text
  - on_stop_sending
  - on_receive_reset
  - server_on_receive
  - client_on_receive
  - on_stream_open
  - on_closed
  - on_generate_resumption_token
  - receive_datagram
  - set_srcaddr
  - set_ecn
  - send_packets_default
  - send_packets_gso
  - send_one_packet
  - send_pending
  - on_receive_datagram_frame
  - enqueue_requests
  - on_client_signal
  - run_client
  - on_server_signal
  - validate_token
  - run_server
  - load_session
  - save_session
  - save_session_ticket_cb
  - save_resumption_token_cb
  - on_client_hello_cb
  - stream_has_more_to_send
  - conn_has_more_to_send
  - scheduler_do_send
  - usage
  - decode_hex
  - decode_hexstring
  - cmd_calc_initial_secret
  - determine_pn_offset
  - cmd_encrypt_packet
  - push_req
  - main
  - MATCH
  source_file: /src/h2o/deps/quicly/src/cli.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BURST_PACKETS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/quicly/src/cli.c
      type_or_value: '10'
    - item_type: preproc_def
      name: UDP_SEGMENT
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/h2o/deps/quicly/src/cli.c
      type_or_value: '103'
    structs:
    - fields:
      - name: '*enc'
        type: ptls_aead_context_t
      item_type: struct
      name: address_token_aead
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/h2o/deps/quicly/src/cli.c
    - fields:
      - name: list[16]
        type: ptls_iovec_t
      - name: count
        type: size_t
      item_type: struct
      name: negotiated_protocols
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/h2o/deps/quicly/src/cli.c
    - fields:
      - name: '*path'
        type: char
      - name: to_file
        type: int
      item_type: struct
      name: '*reqs'
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/h2o/deps/quicly/src/cli.c
    - fields:
      - name: streambuf
        type: quicly_streambuf_t
      - name: '*outfp'
        type: FILE
      item_type: struct
      name: st_stream_data_t
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/h2o/deps/quicly/src/cli.c
    - fields:
      - name: tls_ticket
        type: ptls_iovec_t
      - name: address_token
        type: ptls_iovec_t
      item_type: struct
      name: session_info
      pos:
        line_end: 1096
        line_start: 1093
        source_file: /src/h2o/deps/quicly/src/cli.c
    typedefs: []
    union: []
- function_names:
  - QUICLY_PACKET_IS_LONG_HEADER
  - QUICLY_PACKET_IS_INITIAL
  - QUICLY_CALLBACK_TYPE0
  - QUICLY_CALLBACK_TYPE
  - token_sent
  - QUICLY_STATS_FOREACH_NUM_PACKETS
  - QUICLY_STATS_FOREACH_NUM_BYTES
  - QUICLY_STATS__DO_FOREACH_NUM_FRAMES
  - QUICLY_STATS_FOREACH_NUM_FRAMES
  - QUICLY_STATS_FOREACH_TRANSPORT_COUNTERS
  - QUICLY_STATS_FOREACH_COUNTERS
  - QUICLY_STATS_FOREACH_NON_COUNTERS
  - QUICLY_STATS_FOREACH
  - QUICLY_LOG_CONN
  - quicly_is_supported_version
  - quicly_get_state
  - quicly_num_streams
  - quicly_get_context
  - quicly_get_master_id
  - quicly_get_original_dcid
  - quicly_get_remote_cid
  - quicly_get_remote_transport_parameters
  - quicly_is_client
  - quicly_get_local_next_stream_id
  - quicly_get_remote_next_stream_id
  - quicly_get_protocol_version
  - quicly_get_data
  - quicly_get_tracer
  - quicly_stop_requested
  - quicly_stream_get_receive_window
  - quicly_stream_set_receive_window
  - quicly_stream_is_client_initiated
  - quicly_stream_is_unidirectional
  - quicly_stream_has_send_side
  - quicly_stream_has_receive_side
  - quicly_stream_is_self_initiated
  - quicly_byte_to_hex
  source_file: /src/h2o/deps/quicly/include/quicly.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_LONG_HEADER_BIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: QUICLY_QUIC_BIT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: QUICLY_KEY_PHASE_BIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: QUICLY_LONG_HEADER_RESERVED_BITS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0xc'
    - item_type: preproc_def
      name: QUICLY_SHORT_HEADER_RESERVED_BITS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0x18'
    - item_type: preproc_def
      name: QUICLY_PACKET_TYPE_INITIAL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0)
    - item_type: preproc_def
      name: QUICLY_PACKET_TYPE_0RTT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x10)
    - item_type: preproc_def
      name: QUICLY_PACKET_TYPE_HANDSHAKE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x20)
    - item_type: preproc_def
      name: QUICLY_PACKET_TYPE_RETRY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x30)
    - item_type: preproc_def
      name: QUICLY_PACKET_TYPE_BITMASK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: QUICLY_PROTOCOL_VERSION_1
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: QUICLY_PROTOCOL_VERSION_DRAFT29
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0xff00001d'
    - item_type: preproc_def
      name: QUICLY_PROTOCOL_VERSION_DRAFT27
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '0xff00001b'
    - item_type: preproc_def
      name: QUICLY_STATELESS_RESET_PACKET_MIN_LEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '39'
    - item_type: preproc_def
      name: QUICLY_MAX_PN_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: QUICLY_SEND_PN_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: QUICLY_AEAD_BASE_LABEL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: '"tls13 quic "'
    - item_type: preproc_def
      name: QUICLY_STATS_PREBUILT_COUNTERS
      pos:
        line_end: 476
        line_start: 472
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: "struct {                                                                                                                       \\\n
        \       "
    - item_type: preproc_def
      name: QUICLY_STATS_PREBUILT_FIELDS
      pos:
        line_end: 661
        line_start: 657
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type_or_value: "QUICLY_STATS_PREBUILT_COUNTERS;                                                                                                \\\n
        \   "
    structs:
    - fields:
      - name: (*can_send)(struct st_quicly_stream_scheduler_t *sched, quicly_conn_t
          *conn, int conn_is_saturated)
        type: int
      - name: (*do_send)(struct st_quicly_stream_scheduler_t *sched, quicly_conn_t
          *conn, quicly_send_context_t *s)
        type: quicly_error_t
      - name: (*update_state)(struct st_quicly_stream_scheduler_t *sched, quicly_stream_t
          *stream)
        type: void
      item_type: struct
      name: st_quicly_stream_scheduler_t
      pos:
        line_end: 124
        line_start: 109
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: "(*setup_cipher)(struct st_quicly_crypto_engine_t *engine, quicly_conn_t
          *conn, size_t epoch, int is_enc,\n                        ptls_cipher_context_t
          **header_protect_ctx, ptls_aead_context_t **packet_protect_ctx,\n                        ptls_aead_algorithm_t
          *aead, ptls_hash_algorithm_t *hash, const void *secret)"
        type: int
      - name: "(*encrypt_packet)(struct st_quicly_crypto_engine_t *engine, quicly_conn_t
          *conn, ptls_cipher_context_t *header_protect_ctx,\n                           ptls_aead_context_t
          *packet_protect_ctx, ptls_iovec_t datagram, size_t first_byte_at,\n                           size_t
          payload_from, uint64_t packet_number, int coalesced)"
        type: void
      item_type: struct
      name: st_quicly_crypto_engine_t
      pos:
        line_end: 199
        line_start: 173
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: (*cb)(void *ctx, const char *fmt, ...) __attribute__((format(printf,
          2, 3)))
        type: void
      - name: '*ctx'
        type: void
      item_type: struct
      name: st_quicly_tracer_t
      pos:
        line_end: 213
        line_start: 204
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: bidi_local
        type: uint64_t
      item_type: struct
      name: st_quicly_max_stream_data_t
      pos:
        line_end: 217
        line_start: 215
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: max_stream_data
        type: quicly_max_stream_data_t
      - name: max_data
        type: uint64_t
      - name: max_idle_timeout
        type: uint64_t
      - name: max_streams_bidi
        type: uint64_t
      - name: max_streams_uni
        type: uint64_t
      - name: max_udp_payload_size
        type: uint64_t
      - name: ack_delay_exponent
        type: uint8_t
      - name: max_ack_delay
        type: uint16_t
      - name: min_ack_delay_usec
        type: uint64_t
      - name: disable_active_migration
        type: uint8_t
      - name: active_connection_id_limit
        type: uint64_t
      - name: max_datagram_frame_size
        type: uint16_t
      item_type: struct
      name: st_quicly_transport_parameters_t
      pos:
        line_end: 272
        line_start: 222
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: initial[20]
        type: uint8_t
      - name: retry
        type: "struct {\n        uint8_t key[PTLS_AES128_KEY_SIZE];\n        uint8_t
          iv[PTLS_AESGCM_IV_SIZE];\n    }"
      item_type: struct
      name: st_quicly_salt_t
      pos:
        line_end: 280
        line_start: 274
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: '*tls'
        type: ptls_context_t
      - name: initial_egress_max_udp_payload_size
        type: uint16_t
      - name: loss
        type: quicly_loss_conf_t
      - name: transport_params
        type: quicly_transport_parameters_t
      - name: max_packets_per_key
        type: uint64_t
      - name: max_crypto_bytes
        type: uint32_t
      - name: initcwnd_packets
        type: uint32_t
      - name: initial_version
        type: uint32_t
      - name: pre_validation_amplification_limit
        type: uint16_t
      - name: ack_frequency
        type: uint16_t
      - name: handshake_timeout_rtt_multiplier
        type: uint32_t
      - name: max_initial_handshake_packets
        type: uint64_t
      - name: max_probe_packets
        type: uint64_t
      - name: max_path_validation_failures
        type: uint64_t
      - name: default_jumpstart_cwnd_packets
        type: uint32_t
      - name: max_jumpstart_cwnd_packets
        type: uint32_t
      - name: enable_ratio
        type: "struct {\n        struct {\n            uint8_t non_resume;\n            uint8_t
          resume;\n        } jumpstart;\n        /**\n         * if rapid cstart should
          be used\n         */\n        uint8_t rapid_start;\n        /**\n         *
          whether to use ECN on the send side; ECN is always on on the receive side\n
          \        */\n        uint8_t ecn;\n        /**\n         * if pacing should
          be used\n         */\n        uint8_t pacing;\n        /**\n         * if
          CC should take app-limited into consideration\n         */\n        uint8_t
          respect_app_limited;\n    }"
      - name: expand_client_hello
        type: unsigned
      - name: '*cid_encryptor'
        type: quicly_cid_encryptor_t
      - name: '*stream_open'
        type: quicly_stream_open_t
      - name: '*stream_scheduler'
        type: quicly_stream_scheduler_t
      - name: '*receive_datagram_frame'
        type: quicly_receive_datagram_frame_t
      - name: '*closed'
        type: quicly_closed_t
      - name: '*now'
        type: quicly_now_t
      - name: '*save_resumption_token'
        type: quicly_save_resumption_token_t
      - name: '*generate_resumption_token'
        type: quicly_generate_resumption_token_t
      - name: '*crypto_engine'
        type: quicly_crypto_engine_t
      - name: '*init_cc'
        type: quicly_init_cc_t
      - name: '*update_open_count'
        type: quicly_update_open_count_t
      - name: '*async_handshake'
        type: quicly_async_handshake_t
      item_type: struct
      name: st_quicly_context_t
      pos:
        line_end: 434
        line_start: 282
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: num_streams
        type: uint32_t
      - name: next_stream_id
        type: quicly_stream_id_t
      item_type: struct
      name: st_quicly_conn_streamgroup_state_t
      pos:
        line_end: 466
        line_start: 463
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: received
        type: uint64_t
      - name: sent
        type: uint64_t
      - name: lost
        type: uint64_t
      - name: ack_received
        type: uint64_t
      - name: stream_data_sent
        type: uint64_t
      - name: stream_data_resent
        type: uint64_t
      item_type: struct
      name: num_bytes
      pos:
        line_end: 580
        line_start: 555
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: padding
        type: uint64_t
      item_type: struct
      name: num_frames_received
      pos:
        line_end: 589
        line_start: 584
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: created
        type: uint64_t
      - name: validated
        type: uint64_t
      - name: validation_failed
        type: uint64_t
      - name: migration_elicited
        type: uint64_t
      - name: promoted
        type: uint64_t
      - name: closed_no_dcid
        type: uint64_t
      - name: ecn_validated
        type: uint64_t
      - name: ecn_failed
        type: uint64_t
      item_type: struct
      name: num_paths
      pos:
        line_end: 623
        line_start: 590
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: prev_rate
        type: uint64_t
      - name: prev_rtt
        type: uint32_t
      - name: new_rtt
        type: uint32_t
      - name: cwnd
        type: uint32_t
      item_type: struct
      name: jumpstart
      pos:
        line_end: 671
        line_start: 666
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: active
        type: quicly_linklist_t
      - name: blocked
        type: quicly_linklist_t
      item_type: struct
      name: st_quicly_default_scheduler_state_t
      pos:
        line_end: 862
        line_start: 859
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: '*ctx'
        type: quicly_context_t
      - name: state
        type: quicly_state_t
      - name: local
        type: "struct {\n        /**\n         * connection IDs being issued to the
          remote peer.\n         * `quicly_conn_public_t::local.cid_set.plaintext.master_id
          has to be located right after `ctx` and `state`, as probes rely\n         *
          on that assumption.\n         */\n        quicly_local_cid_set_t cid_set;\n
          \       /**\n         * the SCID used in long header packets. Equivalent
          to local_cid[seq=0]. Retaining the value separately is the easiest way\n
          \        * of staying away from the complexity caused by remote peer sending
          RCID frames before the handshake concludes.\n         */\n        quicly_cid_t
          long_header_src_cid;\n        /**\n         * stream-level limits\n         */\n
          \       struct st_quicly_conn_streamgroup_state_t bidi, uni;\n    }"
      - name: remote
        type: "struct {\n        /**\n         * CIDs received from the remote peer\n
          \        */\n        quicly_remote_cid_set_t cid_set;\n        struct st_quicly_conn_streamgroup_state_t
          bidi, uni;\n        quicly_transport_parameters_t transport_params;\n        struct
          {\n            unsigned validated : 1;\n            unsigned send_probe
          : 1;\n        } address_validation;\n    }"
      - name: original_dcid
        type: quicly_cid_t
      - name: _default_scheduler
        type: struct st_quicly_default_scheduler_state_t
      - name: stats
        type: "struct {\n        QUICLY_STATS_PREBUILT_FIELDS;\n    }"
      - name: version
        type: uint32_t
      - name: '*data'
        type: void
      - name: tracer
        type: quicly_tracer_t
      item_type: struct
      name: _st_quicly_conn_public_t
      pos:
        line_end: 913
        line_start: 866
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: (*on_destroy)(quicly_stream_t *stream, quicly_error_t err)
        type: void
      - name: (*on_send_shift)(quicly_stream_t *stream, size_t delta)
        type: void
      - name: (*on_send_emit)(quicly_stream_t *stream, size_t off, void *dst, size_t
          *len, int *wrote_all)
        type: void
      - name: (*on_send_stop)(quicly_stream_t *stream, quicly_error_t err)
        type: void
      - name: (*on_receive)(quicly_stream_t *stream, size_t off, const void *src,
          size_t len)
        type: void
      - name: (*on_receive_reset)(quicly_stream_t *stream, quicly_error_t err)
        type: void
      item_type: struct
      name: st_quicly_stream_callbacks_t
      pos:
        line_end: 970
        line_start: 938
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: '*conn'
        type: quicly_conn_t
      - name: stream_id
        type: quicly_stream_id_t
      - name: '*callbacks'
        type: quicly_stream_callbacks_t
      - name: sendstate
        type: quicly_sendstate_t
      - name: recvstate
        type: quicly_recvstate_t
      - name: '*data'
        type: void
      - name: streams_blocked
        type: unsigned
      - name: _send_aux
        type: "struct {\n        /**\n         * send window\n         */\n        uint64_t
          max_stream_data;\n        /**\n         *\n         */\n        struct {\n
          \           quicly_sender_state_t sender_state;\n            uint64_t error_code;\n
          \       } stop_sending;\n        /**\n         * reset_stream\n         */\n
          \       struct {\n            /**\n             * STATE_NONE until RST is
          generated\n             */\n            quicly_sender_state_t sender_state;\n
          \           uint64_t error_code;\n        } reset_stream;\n        /**\n
          \        * sends receive window updates to remote peer\n         */\n        quicly_maxsender_t
          max_stream_data_sender;\n        /**\n         * send state of STREAM_DATA_BLOCKED
          frames corresponding to the current max_stream_data value\n         */\n
          \       quicly_sender_state_t blocked;\n        /**\n         * linklist
          of pending streams\n         */\n        struct {\n            quicly_linklist_t
          control; /* links to conn_t::control (or to conn_t::streams_blocked if the
          blocked flag is set) */\n            quicly_linklist_t default_scheduler;\n
          \       } pending_link;\n    }"
      - name: _recv_aux
        type: "struct {\n        /**\n         * size of the receive window\n         */\n
          \       uint32_t window;\n        /**\n         * Maximum number of ranges
          (i.e. gaps + 1) permitted in `recvstate.ranges`.\n         * As discussed
          in https://github.com/h2o/quicly/issues/278, this value should be proportional
          to the size of the receive\n         * window, so that the receive window
          can be maintained even in the worst case, where every one of the two packets
          being\n         * sent are received.\n         */\n        uint32_t max_ranges;\n
          \   }"
      item_type: struct
      name: st_quicly_stream_t
      pos:
        line_end: 1058
        line_start: 972
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: octets
        type: ptls_iovec_t
      - name: cid
        type: "struct {\n        /**\n         * destination CID\n         */\n        struct
          {\n            /**\n             * CID visible on wire\n             */\n
          \           ptls_iovec_t encrypted;\n            /**\n             * The
          decrypted CID, or `quicly_cid_plaintext_invalid`. Assuming that `cid_encryptor`
          is non-NULL, this variable would\n             * contain a valid value whenever
          `might_be_client_generated` is false. When `might_be_client_generated` is
          true, this\n             * value might be set to `quicly_cid_plaintext_invalid`.
          Note however that, as the CID itself is not authenticated,\n             *
          a packet might be bogus regardless of the value of the CID.\n             *
          When `cid_encryptor` is NULL, the value is always set to `quicly_cid_plaintext_invalid`.\n
          \            */\n            quicly_cid_plaintext_t plaintext;\n            /**\n
          \            * If destination CID might be one generated by a client. This
          flag would be set for Initial and 0-RTT packets.\n             */\n            unsigned
          might_be_client_generated : 1;\n        } dest;\n        /**\n         *
          source CID; {NULL, 0} if is a short header packet\n         */\n        ptls_iovec_t
          src;\n    }"
      - name: version
        type: uint32_t
      - name: token
        type: ptls_iovec_t
      - name: encrypted_off
        type: size_t
      - name: datagram_size
        type: size_t
      - name: decrypted
        type: "struct {\n        uint64_t pn;\n        uint64_t key_phase;\n    }"
      - name: ecn
        type: uint8_t
      - name: first_packet
        type: uint8_t
      - name: _is_stateless_reset_cached
        type: "enum {\n        QUICLY__DECODED_PACKET_CACHED_MAYBE_STATELESS_RESET
          = 0,\n        QUICLY__DECODED_PACKET_CACHED_IS_STATELESS_RESET,\n        QUICLY__DECODED_PACKET_CACHED_NOT_STATELESS_RESET\n
          \   }"
      item_type: struct
      name: st_quicly_decoded_packet_t
      pos:
        line_end: 1139
        line_start: 1064
        source_file: /src/h2o/deps/quicly/include/quicly.h
    - fields:
      - name: type
        type: enum { QUICLY_ADDRESS_TOKEN_TYPE_RETRY, QUICLY_ADDRESS_TOKEN_TYPE_RESUMPTION
          }
      - name: issued_at
        type: uint64_t
      - name: local
        type: quicly_address_t
      - name: address_mismatch
        type: unsigned
      - name: appdata
        type: "struct {\n        uint8_t bytes[256];\n        size_t len;\n    }"
      item_type: struct
      name: st_quicly_address_token_plaintext_t
      pos:
        line_end: 1161
        line_start: 1141
        source_file: /src/h2o/deps/quicly/include/quicly.h
    typedefs:
    - item_type: typedef
      name: quicly_context_t
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type: st_quicly_context_t
    - item_type: typedef
      name: quicly_stream_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type: st_quicly_stream_t
    - item_type: typedef
      name: quicly_send_context_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type: st_quicly_send_context_t
    - item_type: typedef
      name: quicly_address_token_plaintext_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type: st_quicly_address_token_plaintext_t
    - item_type: typedef
      name: (*quicly_trace_cb)(void *ctx, const char *fmt, ...)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/h2o/deps/quicly/include/quicly.h
      type: void
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sin
        type: struct sockaddr_in
      - name: sin6
        type: struct sockaddr_in6
      item_type: union
      name: st_quicly_address_t
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/h2o/deps/quicly/include/quicly.h
- function_names:
  - quicly_cc__update_ecn_episodes
  - quicly_cc_jumpstart_reset
  - quicly_cc_in_jumpstart
  - quicly_cc_is_jumpstart_ack
  - quicly_cc_jumpstart_enter
  - quicly_cc_jumpstart_on_acked
  - quicly_cc_jumpstart_on_first_loss
  - quicly_cc_init_rapid_start
  - quicly_cc_rapid_start_is_enabled
  - quicly_cc_rapid_start_update_rtt
  - quicly_cc_rapid_start_use_3x
  - quicly_cc_rapid_start_on_first_lost
  - quicly_cc_rapid_start_on_recovery
  source_file: /src/h2o/deps/quicly/include/quicly/cc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_MIN_CWND
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_RENO_BETA
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type_or_value: '0.7'
    - item_type: preproc_def
      name: QUICLY_RAPID_START_K
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type_or_value: (11. / 18)
    - item_type: preproc_def
      name: QUICLY_RAPID_START_ACK_FACTOR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type_or_value: (QUICLY_RAPID_START_K * (1 - QUICLY_RENO_BETA))
    - item_type: preproc_def
      name: QUICLY_RAPID_START_LOSS_FACTOR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type_or_value: (QUICLY_RENO_BETA + QUICLY_RAPID_START_ACK_FACTOR)
    structs:
    - fields:
      - name: newest_rtt_sample_until
        type: int64_t
      item_type: struct
      name: st_quicly_cc_rapid_start_t
      pos:
        line_end: 71
        line_start: 54
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    - fields:
      - name: '*type'
        type: quicly_cc_type_t
      - name: cwnd
        type: uint32_t
      - name: ssthresh
        type: uint32_t
      - name: recovery_end
        type: uint64_t
      - name: episode_by_ecn
        type: unsigned
      - name: state
        type: "union {\n        /**\n         * State information for Reno congestion
          control.\n         */\n        struct {\n            /**\n             *
          Stash of acknowledged bytes, used during congestion avoidance.\n             */\n
          \           uint32_t stash;\n        } reno;\n        /**\n         * State
          information for Pico.\n         */\n        struct {\n            /**\n
          \            * Stash of acknowledged bytes, used during congestion avoidance.\n
          \            */\n            uint32_t stash;\n            /**\n             *
          Number of bytes required to be acked in order to increase CWND by 1 MTU.\n
          \            */\n            uint32_t bytes_per_mtu_increase;\n            /**\n
          \            * State to undo a recovery episode when all packets deemed
          lost are later acknowledged. The packet number range being\n             *
          tracked for undo is: start_pn <= pn < recovery_end. `num_packets_lost` counts
          packets in that range that were\n             * declared lost and have not
          yet been late-ACKed. Other fields retain the values to be restored when\n
          \            * `num_packets_lost` becomes zero.\n             */\n            struct
          {\n                uint64_t start_pn;\n                uint32_t num_packets_lost;\n
          \               uint32_t cwnd;\n                uint32_t ssthresh;\n                uint32_t
          bytes_per_mtu_increase;\n            } undo;\n        } pico;\n        /**\n
          \        * State information for CUBIC congestion control.\n         */\n
          \       struct {\n            /**\n             * Time offset from the latest
          congestion event until cwnd reaches W_max again.\n             */\n            double
          k;\n            /**\n             * Last cwnd value before the latest congestion
          event.\n             */\n            uint32_t w_max;\n            /**\n
          \            * W_max value from the previous congestion event.\n             */\n
          \           uint32_t w_last_max;\n            /**\n             * Timestamp
          of the latest congestion event.\n             */\n            int64_t avoidance_start;\n
          \           /**\n             * Timestamp of the most recent send operation.\n
          \            */\n            int64_t last_sent_time;\n        } cubic;\n
          \   }"
      - name: jumpstart
        type: "struct {\n        /**\n         * first packet number in jumpstart\n
          \        */\n        uint64_t enter_pn;\n        /**\n         * packet
          number following the last packet in jumpstart\n         */\n        uint64_t
          exit_pn;\n        /**\n         * amount of bytes acked for packets sent
          in jumpstart\n         */\n        uint32_t bytes_acked;\n    }"
      - name: rapid_start
        type: struct st_quicly_cc_rapid_start_t
      - name: cwnd_initial
        type: uint32_t
      - name: cwnd_exiting_slow_start
        type: uint32_t
      - name: exit_slow_start_at
        type: int64_t
      - name: cwnd_exiting_jumpstart
        type: uint32_t
      - name: cwnd_minimum
        type: uint32_t
      - name: cwnd_maximum
        type: uint32_t
      - name: num_loss_episodes
        type: uint32_t
      - name: num_loss_episodes_undone
        type: uint32_t
      - name: num_loss_episodes_undone_in_startup
        type: uint32_t
      - name: num_ecn_loss_episodes
        type: uint32_t
      item_type: struct
      name: st_quicly_cc_t
      pos:
        line_end: 220
        line_start: 73
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    - fields:
      - name: '*name'
        type: char
      - name: '*cc_init'
        type: struct st_quicly_init_cc_t
      - name: "(*cc_on_acked)(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
          bytes, uint64_t largest_acked, uint32_t inflight,\n                        int
          cc_limited, uint64_t next_pn, int64_t now, uint32_t max_udp_payload_size)"
        type: void
      - name: "(*cc_on_lost)(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t
          bytes, uint64_t lost_pn, uint64_t next_pn, int64_t now,\n                       uint32_t
          max_udp_payload_size)"
        type: void
      - name: (*cc_on_persistent_congestion)(quicly_cc_t *cc, const quicly_loss_t
          *loss, int64_t now)
        type: void
      - name: (*cc_on_sent)(quicly_cc_t *cc, const quicly_loss_t *loss, uint32_t bytes,
          int64_t now)
        type: void
      - name: (*cc_switch)(quicly_cc_t *cc)
        type: int
      - name: (*cc_on_late_ack)(quicly_cc_t *cc, uint64_t pn, int64_t now)
        type: void
      - name: (*cc_jumpstart)(quicly_cc_t *cc, uint32_t cwnd, uint64_t next_pn)
        type: void
      - name: (*enable_rapid_start)(quicly_cc_t *cc, int64_t now)
        type: void
      item_type: struct
      name: st_quicly_cc_type_t
      pos:
        line_end: 267
        line_start: 222
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
    typedefs:
    - item_type: typedef
      name: quicly_cc_type_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/deps/quicly/include/quicly/cc.h
      type: st_quicly_cc_type_t
    union: []
- function_names: []
  source_file: /src/h2o/deps/quicly/include/quicly/defaults.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: quicly_default_cc
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/quicly/include/quicly/defaults.h
      type_or_value: quicly_cc_type_reno
    - item_type: preproc_def
      name: quicly_default_init_cc
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/quicly/include/quicly/defaults.h
      type_or_value: quicly_cc_reno_init
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_rtt_init
  - quicly_rtt_update
  - quicly_rtt_get_pto
  - quicly_loss_init
  - quicly_loss_dispose
  - quicly_loss_update_alarm
  - SET_ALARM
  - quicly_loss_on_ack_received
  - quicly_loss_on_alarm
  - quicly_loss_get_sentmap_expiration_time
  source_file: /src/h2o/deps/quicly/include/quicly/loss.h
  types:
    enum:
    - enumerators:
      - name: QUICLY_LOSS_ACK_RECEIVED_KIND_NON_ACK_ELICITING
        value: '0'
      - name: QUICLY_LOSS_ACK_RECEIVED_KIND_ACK_ELICITING_LATE_ACK
      - name: QUICLY_LOSS_ACK_RECEIVED_KIND_ACK_ELICITING
      item_type: enum
      name: quicly_loss_ack_received_kind_t
      pos:
        line_end: 174
        line_start: 170
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_LOSS_DEFAULT_TIME_REORDERING_PERCENTILE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
      type_or_value: (1024 / 8)
    - item_type: preproc_def
      name: QUICLY_LOSS_SPEC_CONF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
      type_or_value: "{                                                                                                                              \\\n
        \       QUICLY_LOSS_DEFAULT_TIME_REORDERING_PERCENTILE, "
    - item_type: preproc_def
      name: QUICLY_LOSS_PERFORMANT_CONF
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
      type_or_value: "{                                                                                                                              \\\n
        \       QUICLY_LOSS_DEFAULT_TIME_REORDERING_PERCENTILE, "
    structs:
    - fields:
      - name: time_reordering_percentile
        type: unsigned
      - name: min_pto
        type: uint32_t
      - name: default_initial_rtt
        type: uint32_t
      - name: num_speculative_ptos
        type: uint8_t
      item_type: struct
      name: quicly_loss_conf_t
      pos:
        line_end: 51
        line_start: 34
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    - fields:
      - name: minimum
        type: uint32_t
      - name: smoothed
        type: uint32_t
      - name: variance
        type: uint32_t
      - name: latest
        type: uint32_t
      item_type: struct
      name: quicly_rtt_t
      pos:
        line_end: 93
        line_start: 76
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    - fields:
      - name: use_packet_based
        type: uint8_t
      - name: time_based_percentile
        type: uint16_t
      item_type: struct
      name: quicly_loss_thresholds_t
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    - fields:
      - name: '*conf'
        type: quicly_loss_conf_t
      - name: '*max_ack_delay'
        type: uint16_t
      - name: '*ack_delay_exponent'
        type: uint8_t
      - name: thresholds
        type: quicly_loss_thresholds_t
      - name: min_pn_to_relax_reorder_tolerance
        type: uint64_t
      - name: pto_count
        type: int8_t
      - name: time_of_last_packet_sent
        type: int64_t
      - name: largest_acked_packet_plus1
        type: "struct {\n        uint64_t per_epoch[QUICLY_NUM_EPOCHS];\n        uint64_t
          all_;\n    }"
      - name: total_bytes_sent
        type: uint64_t
      - name: loss_time
        type: int64_t
      - name: alarm_at
        type: int64_t
      - name: rtt
        type: quicly_rtt_t
      - name: sentmap
        type: quicly_sentmap_t
      item_type: struct
      name: quicly_loss_t
      pos:
        line_end: 166
        line_start: 110
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
    typedefs:
    - item_type: typedef
      name: (*quicly_loss_on_detect_cb)(quicly_loss_t *loss, const quicly_sent_packet_t
        *lost_packet, int is_time_threshold)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/h2o/deps/quicly/include/quicly/loss.h
      type: void
    union: []
- function_names: []
  source_file: /src/h2o/deps/quicly/include/quicly/remote_cid.h
  types:
    enum:
    - enumerators:
      - name: QUICLY_REMOTE_CID_UNAVAILABLE
      - name: QUICLY_REMOTE_CID_AVAILABLE
      - name: QUICLY_REMOTE_CID_IN_USE
      item_type: enum
      name: en_quicly_remote_cid_state_t
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/h2o/deps/quicly/include/quicly/remote_cid.h
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: quicly_remote_cid_state_t
      - name: sequence
        type: uint64_t
      - name: cid
        type: struct st_quicly_cid_t
      - name: stateless_reset_token[QUICLY_STATELESS_RESET_TOKEN_LEN]
        type: uint8_t
      item_type: struct
      name: st_quicly_remote_cid_t
      pos:
        line_end: 70
        line_start: 51
        source_file: /src/h2o/deps/quicly/include/quicly/remote_cid.h
    - fields:
      - name: cids[QUICLY_LOCAL_ACTIVE_CONNECTION_ID_LIMIT]
        type: quicly_remote_cid_t
      - name: _largest_sequence_expected
        type: uint64_t
      - name: retired
        type: "struct {\n        uint64_t cids[QUICLY_LOCAL_ACTIVE_CONNECTION_ID_LIMIT
          * 2];\n        size_t count;\n    }"
      item_type: struct
      name: st_quicly_remote_cid_set_t
      pos:
        line_end: 93
        line_start: 75
        source_file: /src/h2o/deps/quicly/include/quicly/remote_cid.h
    typedefs: []
    union: []
- function_names:
  - quicly_linklist_init
  - quicly_linklist_is_linked
  - quicly_linklist_insert
  - quicly_linklist_unlink
  - quicly_linklist_insert_list
  source_file: /src/h2o/deps/quicly/include/quicly/linklist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*prev'
        type: struct st_quicly_linklist_t
      - name: '*next'
        type: struct st_quicly_linklist_t
      item_type: struct
      name: st_quicly_linklist_t
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/h2o/deps/quicly/include/quicly/linklist.h
    typedefs: []
    union: []
- function_names:
  - quicly_sendbuf_init
  - quicly_streambuf_egress_shift
  - quicly_streambuf_egress_write
  - quicly_streambuf_egress_write_vec
  - quicly_streambuf_ingress_shift
  - quicly_streambuf_ingress_get
  source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flatten_vec
        type: quicly_sendbuf_flatten_vec_cb
      - name: discard_vec
        type: quicly_sendbuf_discard_vec_cb
      item_type: struct
      name: st_quicly_streambuf_sendvec_callbacks_t
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
    - fields:
      - name: '*cb'
        type: quicly_streambuf_sendvec_callbacks_t
      - name: len
        type: size_t
      - name: '*cbdata'
        type: void
      item_type: struct
      name: st_quicly_sendbuf_vec_t
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
    - fields:
      - name: vecs
        type: "struct {\n        quicly_sendbuf_vec_t *entries;\n        size_t size,
          capacity;\n    }"
      - name: off_in_first_vec
        type: size_t
      - name: bytes_written
        type: uint64_t
      item_type: struct
      name: st_quicly_sendbuf_t
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
    - fields:
      - name: egress
        type: quicly_sendbuf_t
      - name: ingress
        type: ptls_buffer_t
      item_type: struct
      name: st_quicly_streambuf_t
      pos:
        line_end: 121
        line_start: 118
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
    typedefs:
    - item_type: typedef
      name: quicly_sendbuf_vec_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
      type: st_quicly_sendbuf_vec_t
    - item_type: typedef
      name: (*quicly_sendbuf_flatten_vec_cb)(quicly_sendbuf_vec_t *vec, void *dst,
        size_t off, size_t len)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
      type: quicly_error_t
    - item_type: typedef
      name: (*quicly_sendbuf_discard_vec_cb)(quicly_sendbuf_vec_t *vec)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/deps/quicly/include/quicly/streambuf.h
      type: void
    union: []
- function_names:
  - quicly_sentmap_init
  - quicly_sentmap_is_open
  - quicly_sentmap_commit
  - quicly_sentmap_allocate
  - quicly_sentmap_init_iter
  - quicly_sentmap_get
  source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
  types:
    enum:
    - enumerators:
      - name: QUICLY_SENTMAP_EVENT_ACKED
      - name: QUICLY_SENTMAP_EVENT_EXPIRED
      - name: QUICLY_SENTMAP_EVENT_LOST
      - name: QUICLY_SENTMAP_EVENT_PTO
      item_type: enum
      name: en_quicly_sentmap_event_t
      pos:
        line_end: 89
        line_start: 72
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    preproc_defs: []
    structs:
    - fields:
      - name: packet_number
        type: uint64_t
      - name: sent_at
        type: int64_t
      - name: ack_epoch
        type: uint8_t
      - name: ack_eliciting
        type: uint8_t
      - name: frames_in_flight
        type: uint8_t
      - name: cc_limited
        type: uint8_t
      - name: promoted_path
        type: uint8_t
      - name: cc_bytes_in_flight
        type: uint16_t
      item_type: struct
      name: st_quicly_sent_packet_t
      pos:
        line_end: 70
        line_start: 37
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - fields:
      - name: gap
        type: uint8_t
      - name: length
        type: uint8_t
      item_type: struct
      name: st_quicly_sent_ack_additional_t
      pos:
        line_end: 105
        line_start: 102
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - fields:
      - name: acked
        type: quicly_sent_acked_cb
      - name: data
        type: "union {\n        quicly_sent_packet_t packet;\n        /**\n         *
          ACK frame. Represents up to 8 ack ranges. If not full, `additional` list
          is terminated by .gap = 0.\n         */\n        struct {\n            uint64_t
          start;\n            union {\n                struct {\n                    uint64_t
          start_length;\n                    struct st_quicly_sent_ack_additional_t
          additional[4];\n                } ranges64;\n                struct {\n
          \                   uint8_t start_length;\n                    struct st_quicly_sent_ack_additional_t
          additional[7];\n                } ranges8;\n            };\n        } ack;\n
          \       struct {\n            quicly_stream_id_t stream_id;\n            quicly_sendstate_sent_t
          args;\n        } stream;\n        struct {\n            quicly_stream_id_t
          stream_id;\n            quicly_maxsender_sent_t args;\n        } max_stream_data;\n
          \       struct {\n            quicly_maxsender_sent_t args;\n        } max_data;\n
          \       struct {\n            int uni;\n            quicly_maxsender_sent_t
          args;\n        } max_streams;\n        struct {\n            uint64_t offset;\n
          \       } data_blocked;\n        struct {\n            quicly_stream_id_t
          stream_id;\n            uint64_t offset;\n        } stream_data_blocked;\n
          \       struct {\n            int uni;\n            quicly_maxsender_sent_t
          args;\n        } streams_blocked;\n        struct {\n            quicly_stream_id_t
          stream_id;\n        } stream_state_sender;\n        struct {\n            int
          is_inflight;\n            uint64_t generation;\n        } new_token;\n        struct
          {\n            uint64_t sequence;\n        } new_connection_id;\n        struct
          {\n            uint64_t sequence;\n        } retire_connection_id;\n    }"
      item_type: struct
      name: st_quicly_sent_t
      pos:
        line_end: 172
        line_start: 112
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - fields:
      - name: '*next'
        type: struct st_quicly_sent_block_t
      - name: num_entries
        type: size_t
      - name: next_insert_at
        type: size_t
      - name: entries[16]
        type: quicly_sent_t
      item_type: struct
      name: st_quicly_sent_block_t
      pos:
        line_end: 191
        line_start: 174
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - fields:
      - name: '*head'
        type: struct st_quicly_sent_block_t
      - name: num_packets
        type: size_t
      - name: num_packets_largest
        type: size_t
      - name: bytes_in_flight
        type: size_t
      - name: '*_pending_packet'
        type: quicly_sent_t
      item_type: struct
      name: st_quicly_sentmap_t
      pos:
        line_end: 233
        line_start: 212
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    - fields:
      - name: '*p'
        type: quicly_sent_t
      - name: count
        type: size_t
      - name: '**ref'
        type: struct st_quicly_sent_block_t
      item_type: struct
      name: st_quicly_sentmap_iter_t
      pos:
        line_end: 239
        line_start: 235
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
    typedefs:
    - item_type: typedef
      name: quicly_sent_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
      type: st_quicly_sent_t
    - item_type: typedef
      name: quicly_sentmap_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
      type: st_quicly_sentmap_t
    - item_type: typedef
      name: "(*quicly_sent_acked_cb)(quicly_sentmap_t *map, const quicly_sent_packet_t
        *packet, int acked,\n                                               quicly_sent_t
        *data)"
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/h2o/deps/quicly/include/quicly/sentmap.h
      type: quicly_error_t
    union: []
- function_names:
  - quicly_ranges_init
  - quicly_ranges_clear
  source_file: /src/h2o/deps/quicly/include/quicly/ranges.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start
        type: uint64_t
      - name: end
        type: uint64_t
      item_type: struct
      name: st_quicly_range_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/h2o/deps/quicly/include/quicly/ranges.h
    - fields:
      - name: '*ranges'
        type: quicly_range_t
      - name: num_ranges
        type: size_t
      - name: _initial
        type: quicly_range_t
      item_type: struct
      name: st_quicly_ranges_t
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/h2o/deps/quicly/include/quicly/ranges.h
    typedefs: []
    union: []
- function_names:
  - quicly_maxsender_init
  - quicly_maxsender_dispose
  - quicly_maxsender_request_transmit
  - quicly_maxsender_should_send_max
  - quicly_maxsender_should_send_blocked
  - quicly_maxsender_record
  - quicly_maxsender_acked
  - quicly_maxsender_lost
  source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: max_committed
        type: int64_t
      - name: max_acked
        type: int64_t
      - name: num_inflight
        type: size_t
      - name: force_send
        type: unsigned
      item_type: struct
      name: st_quicly_maxsender_t
      pos:
        line_end: 50
        line_start: 33
        source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
    - fields:
      - name: inflight
        type: uint64_t
      - name: value
        type: uint64_t
      item_type: struct
      name: st_quicly_maxsender_sent_t
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/h2o/deps/quicly/include/quicly/maxsender.h
    typedefs: []
    union: []
- function_names:
  - quicly_pacer_reset
  - quicly_pacer_can_send_at
  - quicly_pacer_get_window
  - quicly_pacer_consume_window
  - quicly_pacer_calc_send_rate
  source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_PACER_BURST_LOW
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: QUICLY_PACER_BURST_HIGH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
      type_or_value: '10 '
    structs:
    - fields:
      - name: at
        type: int64_t
      - name: bytes_sent
        type: size_t
      item_type: struct
      name: st_quicly_pacer_t
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/h2o/deps/quicly/include/quicly/pacer.h
    typedefs: []
    union: []
- function_names:
  - quicly_ratemeter_is_cc_limited
  source_file: /src/h2o/deps/quicly/include/quicly/rate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_DELIVERY_RATE_SAMPLE_PERIOD
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/quicly/include/quicly/rate.h
      type_or_value: '50'
    - item_type: preproc_def
      name: QUICLY_DELIVERY_RATE_SAMPLE_COUNT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/quicly/include/quicly/rate.h
      type_or_value: '10'
    structs:
    - fields:
      - name: elapsed
        type: uint32_t
      - name: bytes_acked
        type: uint32_t
      item_type: struct
      name: st_quicly_rate_sample_t
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/h2o/deps/quicly/include/quicly/rate.h
    - fields:
      - name: past_samples
        type: "struct {\n        struct st_quicly_rate_sample_t entries[QUICLY_DELIVERY_RATE_SAMPLE_COUNT];\n
          \       size_t latest;\n    }"
      - name: pn_cwnd_limited
        type: quicly_range_t
      - name: current
        type: "struct {\n        struct {\n            int64_t at;\n            uint64_t
          bytes_acked;\n        } start;\n        struct st_quicly_rate_sample_t sample;\n
          \   }"
      item_type: struct
      name: st_quicly_ratemeter_t
      pos:
        line_end: 77
        line_start: 54
        source_file: /src/h2o/deps/quicly/include/quicly/rate.h
    - fields:
      - name: latest
        type: uint64_t
      - name: smoothed
        type: uint64_t
      - name: stdev
        type: uint64_t
      item_type: struct
      name: st_quicly_rate_t
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/h2o/deps/quicly/include/quicly/rate.h
    typedefs: []
    union: []
- function_names:
  - quicly_recvstate_transfer_complete
  - quicly_recvstate_bytes_available
  source_file: /src/h2o/deps/quicly/include/quicly/recvstate.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: received
        type: quicly_ranges_t
      - name: data_off
        type: uint64_t
      - name: eos
        type: uint64_t
      item_type: struct
      name: st_quicly_recvstate_t
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/h2o/deps/quicly/include/quicly/recvstate.h
    typedefs: []
    union: []
- function_names:
  - quicly_local_cid_get_size
  source_file: /src/h2o/deps/quicly/include/quicly/local_cid.h
  types:
    enum:
    - enumerators:
      - name: QUICLY_LOCAL_CID_STATE_IDLE
      - name: QUICLY_LOCAL_CID_STATE_DELIVERED
      - name: QUICLY_LOCAL_CID_STATE_INFLIGHT
      - name: QUICLY_LOCAL_CID_STATE_PENDING
      item_type: enum
      name: en_quicly_local_cid_state_t
      pos:
        line_end: 47
        line_start: 30
        source_file: /src/h2o/deps/quicly/include/quicly/local_cid.h
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: enum en_quicly_local_cid_state_t
      - name: sequence
        type: uint64_t
      - name: cid
        type: quicly_cid_t
      - name: stateless_reset_token[QUICLY_STATELESS_RESET_TOKEN_LEN]
        type: uint8_t
      item_type: struct
      name: st_quicly_local_cid_t
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/h2o/deps/quicly/include/quicly/local_cid.h
    - fields:
      - name: plaintext
        type: quicly_cid_plaintext_t
      - name: cids[QUICLY_LOCAL_ACTIVE_CONNECTION_ID_LIMIT]
        type: quicly_local_cid_t
      - name: _size
        type: size_t
      - name: '*_encryptor'
        type: quicly_cid_encryptor_t
      item_type: struct
      name: st_quicly_local_cid_set_t
      pos:
        line_end: 82
        line_start: 62
        source_file: /src/h2o/deps/quicly/include/quicly/local_cid.h
    typedefs: []
    union: []
- function_names:
  - quicly_sendstate_transfer_complete
  - quicly_sendstate_is_open
  - quicly_sendstate_is_fully_inflight
  source_file: /src/h2o/deps/quicly/include/quicly/sendstate.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: acked
        type: quicly_ranges_t
      - name: pending
        type: quicly_ranges_t
      - name: size_inflight
        type: uint64_t
      - name: final_size
        type: uint64_t
      item_type: struct
      name: st_quicly_sendstate_t
      pos:
        line_end: 49
        line_start: 30
        source_file: /src/h2o/deps/quicly/include/quicly/sendstate.h
    - fields:
      - name: start
        type: uint64_t
      - name: end
        type: uint64_t
      item_type: struct
      name: st_quicly_sendstate_sent_t
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/h2o/deps/quicly/include/quicly/sendstate.h
    typedefs: []
    union: []
- function_names:
  - quicly_cid_is_equal
  - quicly_set_cid
  source_file: /src/h2o/deps/quicly/include/quicly/cid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_MAX_PATH_ID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/quicly/include/quicly/cid.h
      type_or_value: UINT8_MAX
    structs:
    - fields:
      - name: cid[QUICLY_MAX_CID_LEN_V1]
        type: uint8_t
      - name: len
        type: uint8_t
      item_type: struct
      name: st_quicly_cid_t
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/h2o/deps/quicly/include/quicly/cid.h
    - fields:
      - name: master_id
        type: uint32_t
      - name: path_id
        type: uint32_t
      - name: thread_id
        type: uint32_t
      - name: node_id
        type: uint64_t
      item_type: struct
      name: st_quicly_cid_plaintext_t
      pos:
        line_end: 65
        line_start: 48
        source_file: /src/h2o/deps/quicly/include/quicly/cid.h
    - fields:
      - name: "(*encrypt_cid)(struct st_quicly_cid_encryptor_t *self, quicly_cid_t
          *encrypted, void *stateless_reset_token,\n                        const
          quicly_cid_plaintext_t *plaintext)"
        type: void
      - name: "(*decrypt_cid)(struct st_quicly_cid_encryptor_t *self, quicly_cid_plaintext_t
          *plaintext, const void *encrypted,\n                          size_t len)"
        type: size_t
      - name: (*generate_stateless_reset_token)(struct st_quicly_cid_encryptor_t *self,
          void *token, const void *cid)
        type: int
      item_type: struct
      name: st_quicly_cid_encryptor_t
      pos:
        line_end: 95
        line_start: 76
        source_file: /src/h2o/deps/quicly/include/quicly/cid.h
    typedefs: []
    union: []
- function_names:
  - QUICLY_ERROR_IS_QUIC
  - QUICLY_ERROR_IS_QUIC_TRANSPORT
  - QUICLY_ERROR_IS_QUIC_APPLICATION
  - QUICLY_ERROR_GET_ERROR_CODE
  - QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE
  - QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE
  - QUICLY_ERROR_IS_CONCEALED
  - QUICLY_TRANSPORT_ERROR_CRYPTO
  - quicly_debug_printf
  - quicly_u32_add_saturating
  source_file: /src/h2o/deps/quicly/include/quicly/constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_DELAYED_ACK_TIMEOUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '25   '
    - item_type: preproc_def
      name: QUICLY_DEFAULT_MAX_ACK_DELAY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '25 '
    - item_type: preproc_def
      name: QUICLY_LOCAL_MAX_ACK_DELAY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '25   '
    - item_type: preproc_def
      name: QUICLY_DEFAULT_ACK_DELAY_EXPONENT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUICLY_LOCAL_ACK_DELAY_EXPONENT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: QUICLY_MIN_INITIAL_DCID_LEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: QUICLY_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: QUICLY_LOCAL_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUICLY_MIN_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_DEFAULT_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '65527'
    - item_type: preproc_def
      name: QUICLY_MIN_CLIENT_INITIAL_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '1200'
    - item_type: preproc_def
      name: QUICLY_DEFAULT_MIN_PTO
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '1      '
    - item_type: preproc_def
      name: QUICLY_DEFAULT_INITIAL_RTT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '66 '
    - item_type: preproc_def
      name: QUICLY_LOSS_DEFAULT_PACKET_THRESHOLD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUICLY_DEFAULT_PACKET_TOLERANCE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_MAX_PACKET_TOLERANCE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUICLY_AEAD_TAG_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUICLY_MAX_CID_LEN_V1
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: QUICLY_STATELESS_RESET_TOKEN_LEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUICLY_EPOCH_INITIAL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0'
    - item_type: preproc_def
      name: QUICLY_EPOCH_0RTT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUICLY_EPOCH_HANDSHAKE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_EPOCH_1RTT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUICLY_NUM_EPOCHS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_NONE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x0)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_INTERNAL
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x1)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_CONNECTION_REFUSED
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x2)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_FLOW_CONTROL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x3)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_STREAM_LIMIT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x4)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_STREAM_STATE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x5)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_FINAL_SIZE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x6)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_FRAME_ENCODING
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x7)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_TRANSPORT_PARAMETER
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x8)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_CONNECTION_ID_LIMIT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0x9)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xa)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_INVALID_TOKEN
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xb)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_APPLICATION
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xc)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_CRYPTO_BUFFER_EXCEEDED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xd)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_KEY_UPDATE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xe)
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_ERROR_AEAD_LIMIT_REACHED
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: QUICLY_ERROR_FROM_TRANSPORT_ERROR_CODE(0xf)
    - item_type: preproc_def
      name: QUICLY_ERROR_PACKET_IGNORED
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff01'
    - item_type: preproc_def
      name: QUICLY_ERROR_SENDBUF_FULL
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff02    '
    - item_type: preproc_def
      name: QUICLY_ERROR_FREE_CONNECTION
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff03 '
    - item_type: preproc_def
      name: QUICLY_ERROR_RECEIVED_STATELESS_RESET
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff04'
    - item_type: preproc_def
      name: QUICLY_ERROR_NO_COMPATIBLE_VERSION
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff05'
    - item_type: preproc_def
      name: QUICLY_ERROR_IS_CLOSING
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff06 '
    - item_type: preproc_def
      name: QUICLY_ERROR_STATE_EXHAUSTION
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff07'
    - item_type: preproc_def
      name: QUICLY_ERROR_INVALID_INITIAL_VERSION
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff08'
    - item_type: preproc_def
      name: QUICLY_ERROR_DECRYPTION_FAILED
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type_or_value: '0xff09'
    structs: []
    typedefs:
    - item_type: typedef
      name: quicly_error_t
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type: int64_t
    - item_type: typedef
      name: quicly_stream_id_t
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type: int64_t
    - item_type: typedef
      name: quicly_conn_t
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/h2o/deps/quicly/include/quicly/constants.h
      type: st_quicly_conn_t
    union: []
- function_names:
  - quicly_decode16
  - quicly_decode24
  - quicly_decode32
  - quicly_decode64
  - quicly_encode16
  - quicly_encode32
  - quicly_encode64
  - quicly_encodev_capacity
  - quicly_clz32
  - quicly_clz64
  - quicly_decode_stream_frame
  - quicly_encode_crypto_frame_header
  - quicly_decode_crypto_frame
  - quicly_encode_reset_stream_frame
  - quicly_decode_reset_stream_frame
  - quicly_decode_application_close_frame
  - quicly_decode_transport_close_frame
  - quicly_close_frame_capacity
  - quicly_encode_max_data_frame
  - quicly_decode_max_data_frame
  - quicly_encode_max_stream_data_frame
  - quicly_decode_max_stream_data_frame
  - quicly_encode_max_streams_frame
  - quicly_decode_max_streams_frame
  - quicly_decode_path_challenge_frame
  - quicly_encode_data_blocked_frame
  - quicly_decode_data_blocked_frame
  - quicly_encode_stream_data_blocked_frame
  - quicly_decode_stream_data_blocked_frame
  - quicly_encode_streams_blocked_frame
  - quicly_decode_streams_blocked_frame
  - quicly_new_connection_id_frame_capacity
  - quicly_encode_new_connection_id_frame
  - quicly_retire_connection_id_frame_capacity
  - quicly_encode_retire_connection_id_frame
  - quicly_decode_new_connection_id_frame
  - quicly_decode_retire_connection_id_frame
  - quicly_encode_stop_sending_frame
  - quicly_decode_stop_sending_frame
  - quicly_new_token_frame_capacity
  - quicly_encode_new_token_frame
  - quicly_decode_new_token_frame
  - quicly_datagram_frame_capacity
  - quicly_encode_datagram_frame
  - quicly_decode_datagram_frame
  - quicly_encode_ack_frequency_frame
  - quicly_decode_ack_frequency_frame
  source_file: /src/h2o/deps/quicly/include/quicly/frame.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_PADDING
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_PING
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_ACK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_ACK_ECN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_RESET_STREAM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STOP_SENDING
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '5'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_CRYPTO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '6'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_NEW_TOKEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '7'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_BASE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '8'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_MAX_DATA
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_MAX_STREAM_DATA
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '17'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_MAX_STREAMS_BIDI
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '18'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_MAX_STREAMS_UNI
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '19'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_DATA_BLOCKED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '20'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_DATA_BLOCKED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '21'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAMS_BLOCKED_BIDI
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '22'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAMS_BLOCKED_UNI
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '23'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_NEW_CONNECTION_ID
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '24'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_RETIRE_CONNECTION_ID
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '25'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_PATH_CHALLENGE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '26'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_PATH_RESPONSE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '27'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_TRANSPORT_CLOSE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '28'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_APPLICATION_CLOSE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '29'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_HANDSHAKE_DONE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '30'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_IMMEDIATE_ACK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '31'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_DATAGRAM_NOLEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '48'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_DATAGRAM_WITHLEN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '49'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_ACK_FREQUENCY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0xaf'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_BITS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_BIT_OFF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_BIT_LEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: QUICLY_FRAME_TYPE_STREAM_BIT_FIN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: QUICLY_MAX_DATA_FRAME_CAPACITY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8)
    - item_type: preproc_def
      name: QUICLY_MAX_STREAM_DATA_FRAME_CAPACITY
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8)
    - item_type: preproc_def
      name: QUICLY_MAX_STREAMS_FRAME_CAPACITY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8)
    - item_type: preproc_def
      name: QUICLY_PING_FRAME_CAPACITY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUICLY_RST_FRAME_CAPACITY
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8 + 8)
    - item_type: preproc_def
      name: QUICLY_DATA_BLOCKED_FRAME_CAPACITY
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8)
    - item_type: preproc_def
      name: QUICLY_STREAM_DATA_BLOCKED_FRAME_CAPACITY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8)
    - item_type: preproc_def
      name: QUICLY_STREAMS_BLOCKED_FRAME_CAPACITY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8)
    - item_type: preproc_def
      name: QUICLY_STOP_SENDING_FRAME_CAPACITY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8)
    - item_type: preproc_def
      name: QUICLY_ACK_MAX_GAPS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '256'
    - item_type: preproc_def
      name: QUICLY_ACK_FRAME_CAPACITY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8 + 1)
    - item_type: preproc_def
      name: QUICLY_PATH_CHALLENGE_FRAME_CAPACITY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8)
    - item_type: preproc_def
      name: QUICLY_STREAM_FRAME_CAPACITY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8 + 1)
    - item_type: preproc_def
      name: QUICLY_ACK_FREQUENCY_FRAME_CAPACITY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: (1 + 8 + 8 + 8 + 8)
    - item_type: preproc_def
      name: QUICLY_MAX_ACK_BLOCKS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '64'
    - item_type: preproc_def
      name: quicly_decodev
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: ptls_decode_quicint
    - item_type: preproc_def
      name: quicly_encodev
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: ptls_encode_quicint
    - item_type: preproc_def
      name: QUICLY_PATH_CHALLENGE_DATA_LEN
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
      type_or_value: '8'
    structs:
    - fields:
      - name: stream_id
        type: uint64_t
      - name: is_fin
        type: unsigned
      - name: offset
        type: uint64_t
      - name: data
        type: ptls_iovec_t
      item_type: struct
      name: st_quicly_stream_frame_t
      pos:
        line_end: 107
        line_start: 102
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: stream_id
        type: uint64_t
      - name: app_error_code
        type: uint64_t
      - name: final_size
        type: uint64_t
      item_type: struct
      name: st_quicly_reset_stream_frame_t
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: error_code
        type: uint64_t
      - name: frame_type
        type: uint64_t
      - name: reason_phrase
        type: ptls_iovec_t
      item_type: struct
      name: st_quicly_transport_close_frame_t
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: error_code
        type: uint64_t
      - name: reason_phrase
        type: ptls_iovec_t
      item_type: struct
      name: st_quicly_application_close_frame_t
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: max_data
        type: uint64_t
      item_type: struct
      name: st_quicly_max_data_frame_t
      pos:
        line_end: 152
        line_start: 150
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: stream_id
        type: uint64_t
      - name: max_stream_data
        type: uint64_t
      item_type: struct
      name: st_quicly_max_stream_data_frame_t
      pos:
        line_end: 161
        line_start: 158
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: count
        type: uint64_t
      item_type: struct
      name: st_quicly_max_streams_frame_t
      pos:
        line_end: 170
        line_start: 168
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: '*data'
        type: uint8_t
      item_type: struct
      name: st_quicly_path_challenge_frame_t
      pos:
        line_end: 180
        line_start: 178
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: offset
        type: uint64_t
      item_type: struct
      name: st_quicly_data_blocked_frame_t
      pos:
        line_end: 189
        line_start: 187
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: stream_id
        type: quicly_stream_id_t
      - name: offset
        type: uint64_t
      item_type: struct
      name: st_quicly_stream_data_blocked_frame_t
      pos:
        line_end: 198
        line_start: 195
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: count
        type: uint64_t
      item_type: struct
      name: st_quicly_streams_blocked_frame_t
      pos:
        line_end: 207
        line_start: 205
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: sequence
        type: uint64_t
      - name: retire_prior_to
        type: uint64_t
      - name: cid
        type: ptls_iovec_t
      - name: '*stateless_reset_token'
        type: uint8_t
      item_type: struct
      name: st_quicly_new_connection_id_frame_t
      pos:
        line_end: 224
        line_start: 219
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: sequence
        type: uint64_t
      item_type: struct
      name: st_quicly_retire_connection_id_frame_t
      pos:
        line_end: 231
        line_start: 229
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: stream_id
        type: uint64_t
      - name: app_error_code
        type: uint64_t
      item_type: struct
      name: st_quicly_stop_sending_frame_t
      pos:
        line_end: 241
        line_start: 238
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: largest_acknowledged
        type: uint64_t
      - name: smallest_acknowledged
        type: uint64_t
      - name: ack_delay
        type: uint64_t
      - name: num_gaps
        type: uint64_t
      - name: ack_block_lengths[QUICLY_ACK_MAX_GAPS + 1]
        type: uint64_t
      - name: gaps[QUICLY_ACK_MAX_GAPS]
        type: uint64_t
      - name: ecn_counts[3]
        type: uint64_t
      item_type: struct
      name: st_quicly_ack_frame_t
      pos:
        line_end: 255
        line_start: 247
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: token
        type: ptls_iovec_t
      item_type: struct
      name: st_quicly_new_token_frame_t
      pos:
        line_end: 264
        line_start: 262
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: payload
        type: ptls_iovec_t
      item_type: struct
      name: st_quicly_datagram_frame_t
      pos:
        line_end: 273
        line_start: 271
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    - fields:
      - name: sequence
        type: uint64_t
      - name: packet_tolerance
        type: uint64_t
      - name: max_ack_delay
        type: uint64_t
      - name: reordering_threshold
        type: uint64_t
      item_type: struct
      name: st_quicly_ack_frequency_frame_t
      pos:
        line_end: 283
        line_start: 278
        source_file: /src/h2o/deps/quicly/include/quicly/frame.h
    typedefs: []
    union: []
- function_names:
  - QUICLY_TRACER
  - QUICLY_PROBE
  - QUICLY_PROBE_ENABLED
  - QUICLY_PROBE
  - QUICLY_PROBE_ENABLED
  - QUICLY_PROBE_HEXDUMP
  - QUICLY_PROBE_ESCAPE_UNSAFE_STRING
  - quicly_get_salt
  - enable_with_ratio255
  - lock_now
  - unlock_now
  - set_address
  - get_aes128gcmsha256
  - get_epoch
  - create_retry_aead
  - dispose_cipher
  - clear_datagram_frame_payloads
  - adjust_pointers_of_decoded_packet
  - ADJUST
  - is_retry
  - needs_cid_auth
  - get_sentmap_expiration_time
  - get_ecn_index_from_bits
  - update_ecn_state
  - ack_frequency_set_next_update_at
  - quicly_decode_packet
  - quicly_determine_packet_number
  - assert_consistency
  - on_invalid_ack
  - calc_next_pn_to_skip
  - init_max_streams
  - update_max_streams
  - quicly_connection_is_ready
  - quicly_get_close_reason
  - stream_is_destroyable
  - sched_stream_control
  - resched_stream_data
  - should_send_max_data
  - should_send_max_stream_data
  - quicly_stream_sync_sendbuf
  - quicly_stream_sync_recvbuf
  - local_cid_size
  - dissociate_cid
  - write_crypto_data
  - compress_handshake_result
  - expand_handshake_result
  - crypto_handshake
  - crypto_stream_receive
  - quicly_resume_handshake
  - init_stream_properties
  - dispose_stream_properties
  - open_stream
  - get_streamgroup_state
  - should_send_max_streams
  - INIT_VARS
  - destroy_stream
  - destroy_all_streams
  - quicly_foreach_stream
  - quicly_get_stream
  - quicly_get_tls
  - quicly_num_streams_by_group
  - quicly_get_sockname
  - quicly_get_peername
  - quicly_get_stats
  - quicly_get_delivery_rate
  - quicly_get_ingress_max_streams
  - quicly_get_max_data
  - update_idle_timeout
  - scheduler_can_send
  - update_send_alarm
  - update_ratemeter
  - setup_next_send
  - create_handshake_flow
  - destroy_handshake_flow
  - alloc_pn_space
  - do_free_pn_space
  - update_smallest_unreported_missing_on_send_ack
  - change_outside_reorder_window
  - record_pn
  - record_receipt
  - free_handshake_space
  - setup_cipher
  - setup_handshake_space_and_flow
  - free_application_space
  - DISPOSE_INGRESS
  - setup_application_space
  - discard_handshake_context
  - apply_remote_transport_params
  - update_1rtt_key
  - update_1rtt_egress_key
  - received_key_update
  - calc_resume_sendrate
  - update_open_count
  - stringify_address
  - new_path
  - do_delete_path
  - delete_path
  - promote_path
  - open_path
  - recalc_send_probe_at
  - quicly_free
  - EMIT_FIELD
  - calc_initial_key
  - quicly_calc_initial_keys
  - setup_initial_encryption
  - reinstall_initial_encryption
  - apply_stream_frame
  - quicly_encode_transport_parameter_list
  - PUSH_TP
  - quicly_decode_transport_parameter_list
  - DECODE_TP
  - DECODE_CID_TP
  - get_transport_parameters_extension_id
  - collect_transport_parameters
  - create_connection
  - client_collected_extensions
  - ZERORTT_VALIDATE
  - quicly_connect
  - APPLY
  - server_collected_extensions
  - aead_decrypt_core
  - aead_decrypt_fixed_key
  - aead_decrypt_1rtt
  - do_decrypt_packet
  - decrypt_packet
  - do_on_ack_ack
  - on_ack_ack_ranges64
  - on_ack_ack_ranges8
  - on_ack_stream_ack_one
  - on_ack_stream_ack_cached
  - on_ack_stream
  - on_ack_max_stream_data
  - on_ack_max_data
  - on_ack_max_streams
  - on_ack_stream_state_sender
  - on_ack_reset_stream
  - on_ack_stop_sending
  - on_ack_streams_blocked
  - on_ack_handshake_done
  - on_ack_data_blocked
  - on_ack_stream_data_blocked_frame
  - on_ack_new_token
  - on_ack_new_connection_id
  - on_ack_retire_connection_id
  - calc_pacer_send_rate
  - should_send_datagram_frame
  - calc_amplification_limit_allowance
  - calc_send_window
  - is_point5rtt_with_no_handshake_data_to_send
  - pacer_can_send_at
  - quicly_get_first_timeout
  - quicly_get_next_expected_packet_number
  - setup_path_dcid
  - get_dcid
  - commit_send_packet
  - emit_cid
  - do_allocate_frame
  - allocate_ack_eliciting_frame
  - send_ack
  - prepare_stream_state_sender
  - send_control_frames_of_stream
  - send_stream_control_frames
  - quicly_is_blocked
  - quicly_stream_can_send
  - quicly_can_send_data
  - adjust_stream_frame_layout
  - quicly_send_stream
  - init_acks_iter
  - discard_sentmap_by_epoch
  - mark_frames_on_pto
  - notify_congestion_to_cc
  - on_loss_detected
  - send_max_streams
  - send_streams_blocked
  - open_blocked_streams
  - send_handshake_done
  - send_data_blocked
  - derive_jumpstart_cwnd
  - decode_resumption_info
  - encode_resumption_info
  - PUSH_ENTRY
  - send_resumption_token
  - quicly_send_version_negotiation
  - quicly_retry_calc_cidpair_hash
  - quicly_send_retry
  - setup_send_space
  - send_handshake_flow
  - send_connection_close
  - send_new_connection_id
  - send_retire_connection_id
  - send_path_challenge
  - update_traffic_key_cb
  - SELECT_CIPHER_CONTEXT
  - send_other_control_frames
  - do_send
  - quicly_send_datagram_frames
  - quicly_set_cc
  - do_send_closed
  - quicly_send
  - quicly_send_get_ecn_bits
  - quicly_send_close_invalid_token
  - quicly_send_stateless_reset
  - quicly_send_resumption_token
  - on_end_closing
  - enter_close
  - set_connection_close
  - initiate_close
  - quicly_close
  - quicly_get_or_open_stream
  - handle_crypto_frame
  - handle_stream_frame
  - handle_reset_stream_frame
  - handle_ack_frame
  - handle_max_stream_data_frame
  - handle_data_blocked_frame
  - handle_stream_data_blocked_frame
  - handle_streams_blocked_frame
  - handle_max_streams_frame
  - handle_max_streams_bidi_frame
  - handle_max_streams_uni_frame
  - handle_path_challenge_frame
  - handle_path_response_frame
  - handle_new_token_frame
  - handle_stop_sending_frame
  - handle_max_data_frame
  - negotiate_using_version
  - handle_version_negotiation_packet
  - compare_socket_address
  - CMP
  - is_stateless_reset
  - quicly_is_destination
  - handle_close
  - handle_transport_close_frame
  - handle_application_close_frame
  - handle_padding_frame
  - handle_ping_frame
  - handle_new_connection_id_frame
  - handle_retire_connection_id_frame
  - handle_handshake_done_frame
  - handle_datagram_frame
  - handle_ack_frequency_frame
  - handle_immediate_ack_frame
  - handle_payload
  - handle_stateless_reset
  - validate_retry_tag
  - quicly_accept
  - do_receive
  - quicly_receive
  - quicly_open_stream
  - quicly_reset_stream
  - quicly_request_stop
  - quicly_get_socklen
  - quicly_escape_unsafe_string
  - quicly_hexdump
  - quicly_amend_ptls_context
  - quicly_encrypt_address_token
  - quicly_decrypt_address_token
  - DECODE_CID
  - quicly_build_session_ticket_auth_data
  - PUSH_TP
  - quicly_stream_noop_on_destroy
  - quicly_stream_noop_on_send_shift
  - quicly_stream_noop_on_send_emit
  - quicly_stream_noop_on_send_stop
  - quicly_stream_noop_on_receive
  - quicly_stream_noop_on_receive_reset
  - quicly__debug_printf
  source_file: /src/h2o/deps/quicly/lib/quicly.c
  types:
    enum:
    - enumerators:
      - name: QUICLY_ECN_OFF
      - name: QUICLY_ECN_ON
      - name: QUICLY_ECN_PROBING
      item_type: enum
      name: en_quicly_ecn_state
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - enumerators:
      - name: ALLOCATE_FRAME_TYPE_NON_ACK_ELICITING
      - name: ALLOCATE_FRAME_TYPE_ACK_ELICITING
      - name: ALLOCATE_FRAME_TYPE_ACK_ELICITING_NO_CC
      item_type: enum
      name: allocate_frame_type
      pos:
        line_end: 4023
        line_start: 4019
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_TLS_EXTENSION_TYPE_TRANSPORT_PARAMETERS_FINAL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0x39'
    - item_type: preproc_def
      name: QUICLY_TLS_EXTENSION_TYPE_TRANSPORT_PARAMETERS_DRAFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0xffa5'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_ORIGINAL_CONNECTION_ID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_MAX_IDLE_TIMEOUT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '1'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_STATELESS_RESET_TOKEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '3'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_DATA
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '4'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '5'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '6'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_STREAM_DATA_UNI
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '7'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_STREAMS_BIDI
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '8'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_MAX_STREAMS_UNI
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '9'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_ACK_DELAY_EXPONENT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '10'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_MAX_ACK_DELAY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '11'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_DISABLE_ACTIVE_MIGRATION
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '12'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_PREFERRED_ADDRESS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '13'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '14'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_INITIAL_SOURCE_CONNECTION_ID
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '15'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_RETRY_SOURCE_CONNECTION_ID
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '16'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_MAX_DATAGRAM_FRAME_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: QUICLY_TRANSPORT_PARAMETER_ID_MIN_ACK_DELAY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0xff04de1b'
    - item_type: preproc_def
      name: QUICLY_MAX_TOKEN_LEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '512'
    - item_type: preproc_def
      name: QUICLY_NUM_ACK_BLOCKS_TO_INDUCE_ACKACK
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '8'
    - item_type: preproc_def
      name: QUICLY_MAX_DELAYED_PACKETS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '10'
    - item_type: preproc_def
      name: QUICLY_PENDING_FLOW_NEW_TOKEN_BIT
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: QUICLY_PENDING_FLOW_HANDSHAKE_DONE_BIT
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: QUICLY_PENDING_FLOW_OTHERS_BIT
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: LONGEST_ADDRESS_STR
      pos:
        line_end: 1983
        line_start: 1982
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '"[0000:1111:2222:3333:4444:5555:6666:7777]:12345"'
    - item_type: preproc_def
      name: tp_cid_ignore
      pos:
        line_end: 2497
        line_start: 2496
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: (*(quicly_cid_t *)&_tp_cid_ignore)
    - item_type: preproc_def
      name: QUICLY_RESUMPTION_ENTRY_TYPE_CAREFUL_RESUME
      pos:
        line_end: 4848
        line_start: 4847
        source_file: /src/h2o/deps/quicly/lib/quicly.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*aead'
        type: ptls_aead_context_t
      - name: '*header_protection'
        type: ptls_cipher_context_t
      item_type: struct
      name: st_quicly_cipher_context_t
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: ack_queue
        type: quicly_ranges_t
      - name: largest_pn_received_at
        type: int64_t
      - name: next_expected_packet_number
        type: uint64_t
      - name: unacked_count
        type: uint32_t
      - name: prior_ecn
        type: uint8_t
      - name: ecn_counts[3]
        type: uint64_t
      - name: packet_tolerance
        type: uint32_t
      - name: reordering_threshold
        type: uint32_t
      - name: largest_acked_unacked
        type: uint64_t
      - name: smallest_unreported_missing
        type: uint64_t
      item_type: struct
      name: st_quicly_pn_space_t
      pos:
        line_end: 159
        line_start: 118
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: super
        type: struct st_quicly_pn_space_t
      - name: cipher
        type: "struct {\n        struct st_quicly_cipher_context_t ingress;\n        struct
          st_quicly_cipher_context_t egress;\n    }"
      - name: largest_ingress_udp_payload_size
        type: uint16_t
      item_type: struct
      name: st_quicly_handshake_space_t
      pos:
        line_end: 168
        line_start: 161
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: super
        type: struct st_quicly_pn_space_t
      - name: cipher
        type: "struct {\n        struct {\n            struct {\n                ptls_cipher_context_t
          *zero_rtt, *one_rtt;\n            } header_protection;\n            ptls_aead_context_t
          *aead[2]; /* 0-RTT uses aead[1], 1-RTT uses aead[key_phase] */\n            uint8_t
          secret[PTLS_MAX_DIGEST_SIZE];\n            struct {\n                uint64_t
          prepared;\n                uint64_t decrypted;\n            } key_phase;\n
          \       } ingress;\n        struct {\n            struct st_quicly_cipher_context_t
          key;\n            uint8_t secret[PTLS_MAX_DIGEST_SIZE];\n            uint64_t
          key_phase;\n            struct {\n                /**\n                 *
          PN at which key update was initiated. Set to UINT64_MAX once key update
          is acked.\n                 */\n                uint64_t last;\n                /**\n
          \                * PN at which key update should be initiated. Set to UINT64_MAX
          when key update cannot be initiated.\n                 */\n                uint64_t
          next;\n            } key_update_pn;\n        } egress;\n    }"
      - name: one_rtt_writable
        type: int
      item_type: struct
      name: st_quicly_application_space_t
      pos:
        line_end: 201
        line_start: 170
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: address
        type: "struct {\n        /**\n         * remote address (must not be AF_UNSPEC)\n
          \        */\n        quicly_address_t remote;\n        /**\n         * local
          address (may be AF_UNSPEC)\n         */\n        quicly_address_t local;\n
          \   }"
      - name: dcid
        type: uint64_t
      - name: packet_last_received
        type: uint64_t
      - name: path_challenge
        type: "struct {\n        int64_t send_at;\n        uint64_t num_sent;\n        uint8_t
          data[QUICLY_PATH_CHALLENGE_DATA_LEN];\n    }"
      - name: path_response
        type: "struct {\n        uint8_t send_;\n        uint8_t data[QUICLY_PATH_CHALLENGE_DATA_LEN];\n
          \   }"
      - name: initial
        type: uint8_t
      - name: probe_only
        type: uint8_t
      - name: num_packets
        type: "struct {\n        uint64_t sent;\n        uint64_t received;\n    }"
      item_type: struct
      name: st_quicly_conn_path_t
      pos:
        line_end: 255
        line_start: 203
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: '*next'
        type: struct st_quicly_delayed_packet_t
      - name: at
        type: int64_t
      - name: packet
        type: quicly_decoded_packet_t
      - name: bytes[1]
        type: uint8_t
      item_type: struct
      name: st_quicly_delayed_packet_t
      pos:
        line_end: 262
        line_start: 257
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: super
        type: struct _st_quicly_conn_public_t
      - name: '*paths[QUICLY_LOCAL_ACTIVE_CONNECTION_ID_LIMIT]'
        type: struct st_quicly_conn_path_t
      - name: '*initial'
        type: struct st_quicly_handshake_space_t
      - name: '*handshake'
        type: struct st_quicly_handshake_space_t
      - name: '*application'
        type: struct st_quicly_application_space_t
      - name: '* streams'
        type: khash_t
      - name: ingress
        type: "struct {\n        /**\n         *\n         */\n        struct {\n
          \           /**\n             * sum of max(offset + len) for all the streams;
          used for checking if the peer stays in its flow control limit\n             */\n
          \           uint64_t bytes_consumed;\n            /**\n             * sum
          of bytes shifted (read out) from the receive buffers, by calling `quicly_stream_sync_recvbuf`;
          as bytes are\n             * shifted, additional connection-level flow control
          credits are provided to the peer\n             */\n            uint64_t
          bytes_shifted;\n            quicly_maxsender_t sender;\n        } max_data;\n
          \       /**\n         *\n         */\n        struct {\n            quicly_maxsender_t
          uni, bidi;\n        } max_streams;\n        /**\n         *\n         */\n
          \       struct {\n            uint64_t next_sequence;\n        } ack_frequency;\n
          \   }"
      - name: egress
        type: "struct {\n        /**\n         * loss recovery\n         */\n        quicly_loss_t
          loss;\n        /**\n         * next or the currently encoding packet number\n
          \        */\n        uint64_t packet_number;\n        /**\n         * next
          PN to be skipped\n         */\n        uint64_t next_pn_to_skip;\n        /**\n
          \        *\n         */\n        uint16_t max_udp_payload_size;\n        /**\n
          \        *\n         */\n        struct {\n            uint64_t permitted;\n
          \           uint64_t sent;\n        } max_data;\n        /**\n         *\n
          \        */\n        struct {\n            struct st_quicly_max_streams_t
          {\n                uint64_t count;\n                quicly_maxsender_t blocked_sender;\n
          \           } uni, bidi;\n        } max_streams;\n        /**\n         *\n
          \        */\n        struct {\n            uint64_t generation;\n            uint64_t
          max_acked;\n            uint32_t num_inflight;\n        } new_token;\n        /**\n
          \        *\n         */\n        struct {\n            int64_t update_at;\n
          \           uint64_t sequence;\n        } ack_frequency;\n        /**\n
          \        *\n         */\n        int64_t last_retransmittable_sent_at;\n
          \       /**\n         * when to send an ACK, connection close frames or
          to destroy the connection\n         */\n        int64_t send_ack_at;\n        /**\n
          \        * when a PATH_CHALLENGE or PATH_RESPONSE frame is to be sent on
          any path\n         */\n        int64_t send_probe_at;\n        /**\n         *
          congestion control\n         */\n        quicly_cc_t cc;\n        /**\n
          \        * Next PN to be used when the path is initialized or promoted.
          As loss recovery / CC is reset upon path promotion, ACKs for\n         *
          packets with PN below this property are ignored.\n         */\n        uint64_t
          pn_path_start;\n        /**\n         * pacer\n         */\n        quicly_pacer_t
          *pacer;\n        /**\n         * ECN\n         */\n        struct {\n            enum
          en_quicly_ecn_state { QUICLY_ECN_OFF, QUICLY_ECN_ON, QUICLY_ECN_PROBING
          } state;\n            uint64_t counts[QUICLY_NUM_EPOCHS][3];\n        }
          ecn;\n        /**\n         * things to be sent at the stream-level, that
          are not governed by the stream scheduler\n         */\n        struct {\n
          \           /**\n             * list of blocked streams (sorted in ascending
          order of stream_ids)\n             */\n            struct {\n                quicly_linklist_t
          uni;\n                quicly_linklist_t bidi;\n            } blocked;\n
          \           /**\n             * list of streams with pending control data
          (e.g., RESET_STREAM)\n             */\n            quicly_linklist_t control;\n
          \       } pending_streams;\n        /**\n         * send state for DATA_BLOCKED
          frame that corresponds to the current value of `conn->egress.max_data.permitted`\n
          \        */\n        quicly_sender_state_t data_blocked;\n        /**\n
          \        * bit vector indicating if there's any pending crypto data (the
          insignificant 4 bits), or other non-stream data\n         */\n        uint8_t
          pending_flows;\n/* The flags below indicate if the respective frames have
          to be sent or not. There are no false positives. */\n#define QUICLY_PENDING_FLOW_NEW_TOKEN_BIT
          (1 << 4)\n#define QUICLY_PENDING_FLOW_HANDSHAKE_DONE_BIT (1 << 5)\n/* Indicates
          that MAX_STREAMS, MAX_DATA, DATA_BLOCKED, STREAMS_BLOCKED, NEW_CONNECTION_ID
          _might_ have to be sent. There could be\n * false positives; logic for sending
          each of these frames have the capability of detecting such false positives.
          The purpose of\n * this bit is to consolidate information as an optimization.
          */\n#define QUICLY_PENDING_FLOW_OTHERS_BIT (1 << 6)\n        /**\n         *\n
          \        */\n        uint8_t try_jumpstart : 1;\n        /**\n         *
          payload of DATAGRAM frames to be sent\n         */\n        struct {\n            ptls_iovec_t
          payloads[10];\n            size_t count;\n        } datagram_frame_payloads;\n
          \       /**\n         * delivery rate estimator\n         */\n        quicly_ratemeter_t
          ratemeter;\n    }"
      - name: connection_close
        type: "struct {\n        quicly_error_t err;\n        uint64_t frame_type;
          /* UINT64_MAX if application close */\n        char *reason_phrase;\n        uint8_t
          is_remote : 1;\n        unsigned long num_packets_received;\n    }"
      - name: crypto
        type: "struct {\n        ptls_t *tls;\n        ptls_handshake_properties_t
          handshake_properties;\n        struct {\n            ptls_raw_extension_t
          ext[2];\n            ptls_buffer_t buf;\n        } transport_params;\n        unsigned
          async_in_progress : 1;\n    }"
      - name: token
        type: ptls_iovec_t
      - name: retry_scid
        type: quicly_cid_t
      - name: idle_timeout
        type: "struct {\n        /**\n         * The moment when the idle timeout
          fires (including the additional 3 PTO). The value is set to INT64_MAX while
          the\n         * handshake is in progress.\n         */\n        int64_t
          at;\n        /**\n         * idle timeout\n         */\n        uint8_t
          should_rearm_on_send : 1;\n    }"
      - name: created_at
        type: int64_t
      - name: delayed_packets
        type: "struct {\n        union {\n            struct {\n                struct
          st_quicly_delayed_packet_linklist_t {\n                    struct st_quicly_delayed_packet_t
          *head, **tail;\n                } zero_rtt, handshake, one_rtt;\n            };\n
          \           struct st_quicly_delayed_packet_linklist_t as_array[3];\n        };\n
          \       size_t num_packets;\n        unsigned slots_newly_processible;\n
          \   }"
      - name: stash
        type: "struct {\n        /**\n         * This value holds current time that
          remains constant while quicly functions that deal with time are running.
          Only\n         * available when the lock is held using `lock_now`.\n         */\n
          \       int64_t now;\n        /**\n         *\n         */\n        uint8_t
          lock_count;\n        struct {\n            /**\n             * This cache
          is used to concatenate acked ranges of streams before processing them, reducing
          the frequency of function\n             * calls to `quicly_sendstate_t`
          and to the application-level send window management callbacks. This approach
          works,\n             * because in most cases acks will contain contiguous
          ranges of a single stream.\n             */\n            struct {\n                /**\n
          \                * set to INT64_MIN when the cache is invalid\n                 */\n
          \               quicly_stream_id_t stream_id;\n                quicly_sendstate_sent_t
          args;\n            } active_acked_cache;\n        } on_ack_stream;\n    }"
      item_type: struct
      name: st_quicly_conn_t
      pos:
        line_end: 539
        line_start: 264
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: count
        type: uint64_t
      - name: blocked_sender
        type: quicly_maxsender_t
      item_type: struct
      name: st_quicly_max_streams_t
      pos:
        line_end: 352
        line_start: 349
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: '*head'
        type: struct st_quicly_delayed_packet_t
      item_type: struct
      name: st_quicly_delayed_packet_linklist_t
      pos:
        line_end: 504
        line_start: 502
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: '*src'
        type: uint8_t
      - name: epoch
        type: size_t
      - name: path_index
        type: size_t
      - name: frame_type
        type: uint64_t
      item_type: struct
      name: st_quicly_handle_payload_state_t
      pos:
        line_end: 550
        line_start: 545
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: values[8]
        type: uint32_t
      - name: 'off'
        type: size_t
      item_type: struct
      name: cached_rand
      pos:
        line_end: 955
        line_start: 952
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: ingress[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: egress[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      item_type: struct
      name: secrets
      pos:
        line_end: 2307
        line_start: 2304
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: current
        type: "struct {\n        struct st_quicly_cipher_context_t *cipher;\n        uint8_t
          first_byte;\n    }"
      - name: target
        type: "struct {\n        struct st_quicly_cipher_context_t *cipher;\n        /**\n
          \        * points to the first byte of the target QUIC packet. It will not
          point to packet->octets.base[0] when the datagram\n         * contains multiple
          QUIC packet.\n         */\n        uint8_t *first_byte_at;\n        /**\n
          \        * if the target QUIC packet contains an ack-eliciting frame\n         */\n
          \       uint8_t ack_eliciting : 1;\n        /**\n         * if the target
          datagram should be padded to full size\n         */\n        uint8_t full_size
          : 1;\n    }"
      - name: '*datagrams'
        type: struct iovec
      - name: max_datagrams
        type: size_t
      - name: num_datagrams
        type: size_t
      - name: payload_buf
        type: "struct {\n        /**\n         * starting position of the current
          (or next) datagram\n         */\n        uint8_t *datagram;\n        /**\n
          \        * end position of the payload buffer\n         */\n        uint8_t
          *end;\n    }"
      - name: send_window
        type: ssize_t
      - name: '*dst'
        type: uint8_t
      - name: '*dst_end'
        type: uint8_t
      - name: '*dst_payload_from'
        type: uint8_t
      - name: path_index
        type: size_t
      - name: '*dcid'
        type: quicly_cid_t
      - name: recalc_send_probe_at
        type: unsigned
      item_type: struct
      name: st_quicly_send_context_t
      pos:
        line_end: 3887
        line_start: 3806
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: pn
        type: uint64_t
      - name: sent_at
        type: int64_t
      item_type: struct
      name: largest_newly_acked = {UINT64_MAX, INT64_MAX}
      pos:
        line_end: 6265
        line_start: 6262
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: (*cb)(quicly_conn_t *, struct st_quicly_handle_payload_state_t *)
        type: quicly_error_t
      - name: permitted_epochs
        type: uint8_t
      - name: ack_eliciting
        type: uint8_t
      - name: probing
        type: uint8_t
      - name: counter_offset
        type: size_t
      item_type: struct
      name: st_quicly_frame_handler_t
      pos:
        line_end: 7089
        line_start: 7082
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: ingress
        type: struct st_quicly_cipher_context_t
      - name: alive
        type: int
      item_type: struct
      name: cipher = {}
      pos:
        line_end: 7243
        line_start: 7240
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    - fields:
      - name: (*cb)(void *, uint64_t, quicly_decoded_packet_t *, size_t, size_t *)
        type: int
      - name: '*ctx'
        type: void
      item_type: struct
      name: aead
      pos:
        line_end: 7391
        line_start: 7388
        source_file: /src/h2o/deps/quicly/lib/quicly.c
    typedefs: []
    union: []
- function_names:
  - convert_error
  - quicly_sendbuf_dispose
  - quicly_sendbuf_shift
  - quicly_sendbuf_emit
  - flatten_raw
  - discard_raw
  - quicly_sendbuf_write
  - quicly_sendbuf_write_vec
  - quicly_recvbuf_shift
  - quicly_recvbuf_get
  - quicly_recvbuf_receive
  - quicly_streambuf_create
  - quicly_streambuf_destroy
  - quicly_streambuf_egress_emit
  - quicly_streambuf_egress_shutdown
  - quicly_streambuf_ingress_receive
  source_file: /src/h2o/deps/quicly/lib/streambuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_encode_path_challenge_frame
  - quicly_encode_ack_frame
  - WRITE_BLOCK
  - quicly_decode_ack_frame
  - quicly_encode_close_frame
  - PUSHV
  source_file: /src/h2o/deps/quicly/lib/frame.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - calc_bytes_per_mtu_increase
  - pico_on_acked
  - pico_on_lost
  - pico_on_late_ack
  - pico_on_persistent_congestion
  - pico_on_sent
  - pico_init_pico_state
  - pico_reset
  - pico_on_switch
  - pico_enable_rapid_start
  - pico_init
  source_file: /src/h2o/deps/quicly/lib/cc-pico.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - COPY
  - MOVE
  - insert_at
  - quicly_ranges_drop_by_range_indices
  - merge_update
  - quicly_ranges_init_with_range
  - quicly_ranges_add
  - quicly_ranges_subtract
  - quicly_ranges_next_missing
  source_file: /src/h2o/deps/quicly/lib/ranges.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_remote_cid_init_set
  - do_register
  - do_unregister
  - quicly_remote_cid_unregister
  - unregister_prior_to
  - quicly_remote_cid_register
  - quicly_remote_cid_push_retired
  - quicly_remote_cid_shift_retired
  source_file: /src/h2o/deps/quicly/lib/remote_cid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - reno_on_acked
  - quicly_cc_reno_on_lost
  - quicly_cc_reno_on_persistent_congestion
  - quicly_cc_reno_on_sent
  - reno_reset
  - reno_on_switch
  - reno_init
  - quicly_cc_calc_initial_cwnd
  source_file: /src/h2o/deps/quicly/lib/cc-reno.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_sendstate_init
  - quicly_sendstate_init_closed
  - quicly_sendstate_dispose
  - quicly_sendstate_activate
  - quicly_sendstate_shutdown
  - quicly_sendstate_reset
  - check_amount_of_state
  - quicly_sendstate_acked
  - quicly_sendstate_lost
  source_file: /src/h2o/deps/quicly/lib/sendstate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_loss_init_sentmap_iter
  - quicly_loss_detect_loss
  - CHECK_TIME_THRESHOLD
  - CHECK_PACKET_THRESHOLD
  source_file: /src/h2o/deps/quicly/lib/loss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - calc_cubic_t
  - calc_w_cubic
  - update_cubic_k
  - calc_w_est
  - cubic_on_acked
  - cubic_on_lost
  - cubic_on_persistent_congestion
  - cubic_on_sent
  - cubic_reset
  - cubic_on_switch
  - cubic_init
  source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUICLY_MIN_CWND
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICLY_CUBIC_C
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
      type_or_value: ((cubic_float_t)0.4)
    - item_type: preproc_def
      name: QUICLY_CUBIC_BETA
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
      type_or_value: ((cubic_float_t)0.7)
    structs: []
    typedefs:
    - item_type: typedef
      name: cubic_float_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/h2o/deps/quicly/lib/cc-cubic.c
      type: double
    union: []
- function_names:
  - generate_reset_token
  - default_encrypt_cid
  - default_decrypt_cid
  - default_generate_reset_token
  - quicly_new_default_cid_encryptor
  - quicly_free_default_cid_encryptor
  - default_stream_scheduler_can_send
  - link_stream
  - default_stream_scheduler_do_send
  - default_stream_scheduler_update_state
  - quicly_default_alloc_stream
  - quicly_default_free_stream
  - default_now
  - default_setup_cipher
  - default_finalize_send_packet
  source_file: /src/h2o/deps/quicly/lib/defaults.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_INITIAL_EGRESS_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '1280'
    - item_type: preproc_def
      name: DEFAULT_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '1472'
    - item_type: preproc_def
      name: DEFAULT_MAX_PACKETS_PER_KEY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '16777216'
    - item_type: preproc_def
      name: DEFAULT_MAX_CRYPTO_BYTES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: DEFAULT_INITCWND_PACKETS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '10'
    - item_type: preproc_def
      name: DEFAULT_PRE_VALIDATION_AMPLIFICATION_LIMIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DEFAULT_HANDSHAKE_TIMEOUT_RTT_MULTIPLIER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '400'
    - item_type: preproc_def
      name: DEFAULT_MAX_INITIAL_HANDSHAKE_PACKETS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: DEFAULT_MAX_PROBE_PACKETS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DEFAULT_MAX_PATH_VALIDATION_FAILURES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/quicly/lib/defaults.c
      type_or_value: '100'
    structs:
    - fields:
      - name: super
        type: quicly_cid_encryptor_t
      - name: '*cid_encrypt_ctx'
        type: ptls_cipher_context_t
      item_type: struct
      name: st_quicly_default_encrypt_cid_t
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/h2o/deps/quicly/lib/defaults.c
    typedefs: []
    union: []
- function_names:
  - has_pending
  - generate_cid
  - swap_cids
  - do_mark_pending
  - do_mark_delivered
  - quicly_local_cid_init_set
  - quicly_local_cid_set_size
  - quicly_local_cid_on_sent
  - find_index
  - quicly_local_cid_on_acked
  - quicly_local_cid_on_lost
  - quicly_local_cid_retire
  source_file: /src/h2o/deps/quicly/lib/local_cid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - start_sampling
  - commit_sample
  - quicly_ratemeter_init
  - quicly_ratemeter_enter_cc_limited
  - quicly_ratemeter_exit_cc_limited
  - quicly_ratemeter_on_ack
  - to_speed
  - quicly_ratemeter_report
  - FOREACH_SAMPLE
  source_file: /src/h2o/deps/quicly/lib/rate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quicly_recvstate_init
  - quicly_recvstate_init_closed
  - quicly_recvstate_dispose
  - quicly_recvstate_update
  - quicly_recvstate_reset
  source_file: /src/h2o/deps/quicly/lib/recvstate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - next_entry
  - free_block
  - discard_entry
  - quicly_sentmap_dispose
  - quicly_sentmap_prepare
  - quicly_sentmap__new_block
  - quicly_sentmap_skip
  - quicly_sentmap_update
  - quicly_sentmap__type_packet
  source_file: /src/h2o/deps/quicly/lib/sentmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __sanitizer_cov_trace_pc
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/quicly/fuzz/packet.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - resolve_address
  - usage
  - is_server
  - forward_stdin
  - on_stop_sending
  - on_receive_reset
  - on_receive
  - process_msg
  - send_one
  - run_loop
  - on_stream_open
  - main
  source_file: /src/h2o/deps/quicly/examples/echo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/quicly/examples/echo.c
      type_or_value: '700 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_cloexec
  - cloexec_accept
  - cloexec_pipe
  - cloexec_socket
  source_file: /src/h2o/deps/cloexec/cloexec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/cloexec/cloexec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_module_get
  - mrb_sce_init
  - mrb_sce_to_s
  - mrb_sce_sys_fail
  - mrb_exxx_init
  - mrb_mruby_errno_gem_init
  - itsdefined
  - itsnotdefined
  source_file: /src/h2o/deps/mruby-errno/src/errno.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - utf8len
  - onig_regexp_free
  - ONIG_REGEXP_P
  - match_data_free
  - str_substr
  - onig_regexp_initialize
  - create_onig_region
  - MISMATCH_NIL_OR
  - onig_match_common
  - reg_operand
  - onig_regexp_match
  - onig_regexp_match_p
  - string_match_p
  - onig_regexp_equal
  - onig_regexp_casefold_p
  - onig_regexp_options
  - option_to_str
  - regexp_expr_str
  - onig_regexp_inspect
  - onig_regexp_to_s
  - onig_regexp_version
  - match_data_actual_index
  - match_data_index
  - match_data_check_index
  - match_data_begin
  - match_data_captures
  - match_data_end
  - match_data_copy
  - match_data_length
  - match_data_offset
  - match_data_post_match
  - match_data_pre_match
  - match_data_string
  - match_data_regexp
  - match_data_to_a
  - match_data_to_s
  - append_replace_str
  - string_gsub
  - string_scan
  - string_split
  - string_sub
  - onig_regexp_clear_global_variables
  - onig_regexp_does_set_global_variables
  - onig_regexp_set_set_global_variables
  - onig_regexp_escape
  - mrb_mruby_onig_regexp_gem_init
  - mrb_mruby_onig_regexp_gem_final
  source_file: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ONIG_EXTERN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
      type_or_value: extern
    - item_type: preproc_def
      name: mrb_args_int
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
      type_or_value: mrb_int
    - item_type: preproc_def
      name: mrb_args_int
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby-onig-regexp/src/mruby_onig_regexp.c
      type_or_value: int
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/mruby/oss-fuzz/mruby_fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FuzzRB
  - DEFINE_PROTO_FUZZER
  source_file: /src/h2o/deps/mruby/oss-fuzz/mruby_proto_fuzzer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ruby_fuzzer::protoConverter::protoConverter
  - ruby_fuzzer::protoConverter::protoConverter
  - ~protoConverter()
  - ruby_fuzzer::protoConverter::protoConverter
  - ruby_fuzzer::protoConverter::protoConverter
  - ~protoConverter()
  source_file: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - protoConverter::removeSpecial
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::visit
  - protoConverter::FunctionToString
  source_file: /src/h2o/deps/mruby/oss-fuzz/proto_to_ruby.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_format_float
  source_file: /src/h2o/deps/mruby/src/fmt_fp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_DECEXP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FLT_ROUND_TO_ONE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: 0.9999995F
    - item_type: preproc_def
      name: FLT_MIN_BUF_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: 6 // -9e+99
    - item_type: preproc_def
      name: FLT_DECEXP
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FLT_ROUND_TO_ONE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: '0.999999999995'
    - item_type: preproc_def
      name: FLT_MIN_BUF_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/src/fmt_fp.c
      type_or_value: 7 // -9e+199
    structs: []
    typedefs: []
    union: []
- function_names:
  - IV_KEY_P
  - iv_new
  - iv_rehash
  - iv_put
  - iv_get
  - iv_del
  - iv_foreach
  - iv_size
  - iv_copy
  - iv_free
  - iv_mark_i
  - mark_tbl
  - mrb_gc_mark_gv
  - mrb_gc_free_gv
  - mrb_gc_mark_iv
  - mrb_gc_mark_iv_size
  - mrb_gc_free_iv
  - mrb_vm_special_get
  - mrb_vm_special_set
  - obj_iv_p
  - mrb_obj_iv_get
  - mrb_iv_get
  - mrb_obj_iv_set_force
  - mrb_obj_iv_set
  - mrb_iv_foreach
  - namespace_p
  - assign_class_name
  - mrb_iv_set
  - mrb_obj_iv_defined
  - mrb_iv_defined
  - mrb_iv_name_sym_p
  - mrb_iv_name_sym_check
  - mrb_iv_copy
  - inspect_i
  - mrb_obj_iv_inspect
  - mrb_iv_remove
  - iv_i
  - mrb_obj_instance_variables
  - cv_i
  - mrb_mod_class_variables
  - mrb_mod_cv_get
  - mrb_cv_get
  - mrb_mod_cv_set
  - mrb_cv_set
  - mrb_mod_cv_defined
  - mrb_cv_defined
  - mrb_vm_cv_get
  - mrb_vm_cv_set
  - mod_const_check
  - const_get
  - mrb_const_get
  - mrb_vm_const_get
  - mrb_const_set
  - mrb_vm_const_set
  - mrb_const_remove
  - mrb_define_const_id
  - mrb_define_const
  - mrb_define_global_const
  - const_i
  - mrb_mod_constants
  - mrb_gv_get
  - mrb_gv_set
  - mrb_gv_remove
  - gv_i
  - mrb_f_global_variables
  - const_defined_0
  - mrb_const_defined
  - mrb_const_defined_at
  - mrb_attr_get
  - csym_i
  - find_class_sym
  - outer_class
  - detect_outer_loop
  - mrb_class_find_path
  - mrb_obj_iv_tbl_memsize
  - identchar
  - mrb_ident_p
  source_file: /src/h2o/deps/mruby/src/variable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IV_EMPTY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/src/variable.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IV_DELETED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/mruby/src/variable.c
      type_or_value: (1UL<<31)
    structs:
    - fields:
      - name: size
        type: int
      - name: '*ptr'
        type: mrb_value
      item_type: struct
      name: iv_tbl
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/h2o/deps/mruby/src/variable.c
    - fields:
      - name: '*c'
        type: struct RClass
      - name: sym
        type: mrb_sym
      item_type: struct
      name: csym_arg
      pos:
        line_end: 1035
        line_start: 1032
        source_file: /src/h2o/deps/mruby/src/variable.c
    typedefs: []
    union: []
- function_names:
  - presym_find
  - presym_sym2name
  - sym_validate_len
  - SYMBOL_INLINE_P
  - sym_inline_pack
  - sym_inline_unpack
  - SYMBOL_INLINE_P
  - sym_inline_pack
  - sym_inline_unpack
  - symhash
  - sym_lit_p
  - sym_lit_set
  - sym_flags_clear
  - sym_len
  - sym_check
  - find_symbol
  - sym_intern
  - mrb_intern
  - mrb_intern_static
  - mrb_intern_cstr
  - mrb_intern_str
  - mrb_intern_check
  - mrb_check_intern
  - mrb_intern_check_cstr
  - mrb_check_intern_cstr
  - mrb_intern_check_str
  - mrb_check_intern_str
  - sym2name_len
  - mrb_sym_name_len
  - mrb_free_symtbl
  - mrb_init_symtbl
  - sym_to_s
  - sym_name
  - sym_to_sym
  - SIGN_EXTEND_CHAR
  - SIGN_EXTEND_CHAR
  - is_identchar
  - is_special_global_name
  - symname_p
  - sym_inspect
  - mrb_sym_str
  - sym_cstr
  - mrb_sym_name
  - mrb_sym_dump
  - lesser
  - sym_cmp
  - mrb_init_symbol
  source_file: /src/h2o/deps/mruby/src/symbol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_obj_eq
  - mrb_obj_equal
  - mrb_equal
  - mrb_true
  - nil_to_s
  - nil_inspect
  - true_and
  - true_xor
  - true_to_s
  - true_or
  - false_and
  - false_xor
  - false_or
  - false_to_s
  - mrb_init_object
  - type_name
  - MRB_VTYPE_NAME
  - convert_type
  - mrb_type_convert
  - mrb_type_convert_check
  - mrb_check_type
  - mrb_any_to_s
  - mrb_obj_is_kind_of
  - mrb_ensure_integer_type
  - mrb_ensure_int_type
  - mrb_ensure_float_type
  - mrb_ensure_string_type
  - mrb_check_string_type
  - mrb_ensure_array_type
  - mrb_check_array_type
  - mrb_ensure_hash_type
  - mrb_check_hash_type
  - mrb_inspect
  - mrb_eql
  source_file: /src/h2o/deps/mruby/src/object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trunc
  - fmod
  - mrb_int_overflow
  - mrb_int_zerodiv
  - mrb_int_pow
  - mrb_div_int
  - int_div
  - int_idiv
  - int_quo
  - coerce_step_counter
  - flo_pow
  - flo_idiv
  - mrb_div_float
  - flo_div
  - mrb_float_to_str
  - flo_to_s
  - flo_add
  - flo_sub
  - flo_mul
  - flodivmod
  - flo_mod
  - int_eql
  - flo_eql
  - flo_eq
  - value_int64
  - int64_value
  - flo_rev
  - flo_and
  - flo_or
  - flo_xor
  - flo_shift
  - flo_rshift
  - flo_lshift
  - flo_to_f
  - flo_infinite_p
  - flo_finite_p
  - mrb_check_num_exact
  - flo_ceil_floor
  - flo_floor
  - flo_ceil
  - flo_round
  - flo_to_i
  - flo_truncate
  - flo_nan_p
  - flo_abs
  - int_to_i
  - mrb_int_mul
  - int_mul
  - intdivmod
  - int_mod
  - int_divmod
  - flo_divmod
  - int_equal
  - int_rev
  - bit_op
  - bit_op
  - int_and
  - int_or
  - int_xor
  - mrb_num_shift
  - int_lshift
  - int_rshift
  - int_to_f
  - mrb_float_to_integer
  - mrb_int_add
  - int_add
  - mrb_int_sub
  - int_sub
  - mrb_int_to_cstr
  - mrb_integer_to_str
  - int_to_s
  - cmpnum
  - num_cmp
  - cmperr
  - num_lt
  - num_le
  - num_gt
  - num_ge
  - mrb_cmp
  - num_finite_p
  - num_infinite_p
  - mrb_init_numeric
  source_file: /src/h2o/deps/mruby/src/numeric.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: int_pow
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/deps/mruby/src/numeric.c
      type_or_value: mrb_int_pow
    - item_type: preproc_def
      name: NUMERIC_SHIFT_WIDTH_MAX
      pos:
        line_end: 1415
        line_start: 1414
        source_file: /src/h2o/deps/mruby/src/numeric.c
      type_or_value: (MRB_INT_BIT-1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - cdump_pool
  - sym_name_word_p
  - sym_name_with_equal_p
  - sym_name_with_question_mark_p
  - sym_name_with_bang_p
  - sym_name_ivar_p
  - sym_name_cvar_p
  - OPERATOR_SYMBOL
  - sym_operator_name
  - sym_var_name
  - cdump_sym
  - cdump_syms
  - simple_debug_info
  - cdump_debug
  - cdump_irep_struct
  - mrb_dump_irep_cstruct
  source_file: /src/h2o/deps/mruby/src/cdump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_FLOAT_FMT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/src/cdump.c
      type_or_value: '"%.17g"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*sym_name'
        type: char
      - name: sym_name_len
        type: uint16_t
      item_type: struct
      name: operator_symbol
      pos:
        line_end: 121
        line_start: 117
        source_file: /src/h2o/deps/mruby/src/cdump.c
    typedefs: []
    union: []
- function_names:
  - gettimeofday_time
  - GC_INVOKE_TIME_REPORT
  - DEBUG
  - paint_gray
  - paint_black
  - paint_white
  - paint_partial_white
  - is_gray
  - is_white
  - is_black
  - is_red
  - flip_white_part
  - other_white_part
  - is_dead
  - objects
  - mrb_realloc_simple
  - mrb_realloc
  - mrb_malloc
  - mrb_malloc_simple
  - mrb_calloc
  - mrb_free
  - mrb_alloca
  - heap_p
  - mrb_object_dead_p
  - link_heap_page
  - unlink_heap_page
  - link_free_heap_page
  - unlink_free_heap_page
  - add_heap
  - is_generational
  - is_major_gc
  - is_minor_gc
  - mrb_gc_init
  - free_heap
  - mrb_gc_destroy
  - gc_protect
  - mrb_gc_protect
  - mrb_gc_register
  - mrb_gc_unregister
  - mrb_obj_alloc
  - add_gray_list
  - mark_context_stack
  - mark_context
  - gc_mark_children
  - mrb_gc_mark
  - obj_free
  - root_scan_phase
  - gc_gray_counts
  - gc_mark_gray_list
  - incremental_marking_phase
  - final_marking_phase
  - prepare_incremental_sweep
  - incremental_sweep_phase
  - incremental_gc
  - incremental_gc_until
  - incremental_gc_step
  - clear_all_old
  - mrb_incremental_gc
  - mrb_full_gc
  - mrb_garbage_collect
  - mrb_field_write_barrier
  - mrb_write_barrier
  - gc_start
  - gc_enable
  - gc_disable
  - gc_interval_ratio_get
  - gc_interval_ratio_set
  - gc_step_ratio_get
  - gc_step_ratio_set
  - change_gen_gc_mode
  - gc_generational_mode_get
  - gc_generational_mode_set
  - gc_each_objects
  - mrb_objspace_each_objects
  - (&c_jmp)
  - (&c_jmp)
  - mrb_objspace_page_slot_size
  - mrb_init_gc
  source_file: /src/h2o/deps/mruby/src/gc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GC_TIME_START
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: "do {\\\n  gc_time = gettimeofday_time();\\\n} while(0)"
    - item_type: preproc_def
      name: GC_TIME_STOP_AND_REPORT
      pos:
        line_end: 177
        line_start: 167
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: "do {\\\n  gc_time = gettimeofday_time() - gc_time;\\\n  gc_total_time
        += gc_time;\\\n  fprintf(stderr, \"gc_state: %d\\n\", gc->state);\\\n  fprintf(stderr,
        \"live: %zu\\n\", gc->live);\\\n  fprintf(stderr, \"majorgc_old_threshold:
        %zu\\n\", gc->majorgc_old_threshold);\\\n  fprintf(stderr, \"gc_threshold:
        %zu\\n\", gc->threshold);\\\n  fprintf(stderr, \"gc_time: %30.20f\\n\", gc_time);\\\n
        \ fprintf(stderr, \"gc_total_time: %30.20f\\n\\n\", gc_total_time);\\\n} while(0)"
    - item_type: preproc_def
      name: MRB_HEAP_PAGE_SIZE
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: GC_STEP_SIZE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: GC_GRAY
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GC_WHITE_A
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GC_WHITE_B
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: GC_BLACK
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: GC_RED
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: MRB_GC_RED
    - item_type: preproc_def
      name: GC_WHITES
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: (GC_WHITE_A | GC_WHITE_B)
    - item_type: preproc_def
      name: GC_COLOR_MASK
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '7'
    - item_type: preproc_def
      name: DEFAULT_GC_INTERVAL_RATIO
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '200'
    - item_type: preproc_def
      name: DEFAULT_GC_STEP_RATIO
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '200'
    - item_type: preproc_def
      name: MAJOR_GC_INC_RATIO
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '120'
    - item_type: preproc_def
      name: MAJOR_GC_TOOMANY
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: GC_ROOT_SYM
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/h2o/deps/mruby/src/gc.c
      type_or_value: MRB_SYM(_gc_root_)
    structs:
    - fields:
      - name: '*next'
        type: struct RBasic
      item_type: struct
      name: free_obj
      pos:
        line_end: 112
        line_start: 109
        source_file: /src/h2o/deps/mruby/src/gc.c
    - fields:
      - name: padding[sizeof(void*) * 4 - sizeof(uint32_t)]
        type: char
      item_type: struct
      name: RVALUE_initializer
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/h2o/deps/mruby/src/gc.c
    - fields:
      - name: as
        type: "union {\n    struct RVALUE_initializer init;  /* must be first member
          to ensure initialization */\n    struct free_obj free;\n    struct RBasic
          basic;\n    struct RObject object;\n    struct RClass klass;\n    struct
          RString string;\n    struct RArray array;\n    struct RHash hash;\n    struct
          RRange range;\n    struct RData data;\n    struct RIStruct istruct;\n    struct
          RProc proc;\n    struct REnv env;\n    struct RFiber fiber;\n    struct
          RException exc;\n    struct RBreak brk;\n  }"
      item_type: struct
      name: RVALUE
      pos:
        line_end: 138
        line_start: 119
        source_file: /src/h2o/deps/mruby/src/gc.c
    typedefs: []
    union: []
- function_names:
  - mrb_init_comparable
  source_file: /src/h2o/deps/mruby/src/compar.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_exc_mesg_set
  - mrb_exc_mesg_get
  - mrb_exc_new_str
  - mrb_exc_new
  - exc_initialize
  - exc_exception
  - exc_to_s
  - mrb_exc_inspect
  - set_backtrace
  - exc_set_backtrace
  - mrb_exc_set
  - exc_throw
  - mrb_exc_raise
  - mrb_raise
  - mrb_vformat
  - mrb_format
  - error_va
  - mrb_raisef
  - mrb_name_error
  - mrb_warn
  - mrb_bug
  - mrb_make_exception
  - mrb_sys_fail
  - mrb_no_method_error
  - mrb_frozen_error
  - mrb_argnum_error
  - FMT
  - mrb_core_init_protect
  - (&c_jmp)
  - (&c_jmp)
  - mrb_core_init_abort
  - mrb_protect_atexit
  - (&c_jmp)
  - (&c_jmp)
  - mrb_raise_nomemory
  - mrb_print_error
  - (&c_jmp)
  - (&c_jmp)
  - mrb_init_exception
  source_file: /src/h2o/deps/mruby/src/error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_gc_and_core
  - mrb_open_core
  - mrb_default_allocf
  - mrb_open
  - init_mrbgems
  - mrb_open_allocf
  - mrb_irep_incref
  - mrb_irep_decref
  - mrb_irep_cutref
  - mrb_irep_free
  - mrb_free_context
  - mrb_close
  - mrb_add_irep
  - mrb_top_self
  - mrb_state_atexit
  source_file: /src/h2o/deps/mruby/src/state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - value_move
  source_file: /src/h2o/deps/mruby/src/value_array.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SIZE_ERROR_MUL
  - DEFINE_READ_IREP_FUNC
  - str_to_double
  - read_irep_record_1
  - read_irep_record
  - read_section_irep
  - read_debug_record
  - read_section_debug
  - read_lv_record
  - read_section_lv
  - read_binary_header
  - read_irep
  - mrb_proc_read_irep
  - mrb_proc_read_irep_buf
  - irep_error
  - load_irep
  - mrb_load_irep_cxt
  - mrb_load_irep_buf_cxt
  - mrb_load_irep
  - mrb_load_irep_buf
  - mrb_load_proc
  - mrb_proc_read_irep_file
  - mrb_load_irep_file_cxt
  - mrb_load_irep_file
  source_file: /src/h2o/deps/mruby/src/load.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_SRC_MALLOC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/mruby/src/load.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FLAG_SRC_STATIC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/src/load.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: s[sizeof(double)]
        type: char
      - name: f
        type: double
      item_type: union
      name: u
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/h2o/deps/mruby/src/load.c
- function_names:
  - enum_update_hash
  - mrb_init_enumerable
  source_file: /src/h2o/deps/mruby/src/enum.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_file
  - mrb_packed_int_len
  - mrb_packed_int_encode
  - mrb_packed_int_decode
  - mrb_debug_get_filename
  - mrb_debug_get_line
  - 'mrb_irep_debug_info*

    mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep)'
  - "mrb_irep_debug_info_file*\nmrb_debug_info_append_file(mrb_state *mrb, mrb_irep_debug_info
    *d,\n                           const char *filename, uint16_t *lines,\n                           uint32_t
    start_pos, uint32_t end_pos)"
  - mrb_debug_info_free
  source_file: /src/h2o/deps/mruby/src/debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEBUG
  - mrb_gc_arena_shrink
  - mrb_gc_arena_shrink
  - stack_clear
  - stack_copy
  - stack_init
  - envadjust
  - stack_extend_alloc
  - mrb_stack_extend
  - mrb_stack_extend_adjust
  - uvenv
  - top_proc
  - mrb_vm_ci_proc_set
  - mrb_vm_ci_target_class
  - mrb_vm_ci_target_class_set
  - mrb_vm_ci_env
  - mrb_vm_ci_env_set
  - cipush
  - mrb_env_unshare
  - cipop
  - mrb_protect_error
  - (&c_jmp)
  - (&c_jmp)
  - mrb_funcall
  - mrb_funcall_id
  - mrb_ci_kidx
  - mrb_bidx
  - mrb_ci_bidx
  - mrb_ci_nregs
  - prepare_missing
  - mrb_funcall_with_block
  - (&c_jmp)
  - (&c_jmp)
  - mrb_funcall_argv
  - check_method_noarg
  - exec_irep
  - mrb_exec_irep
  - mrb_f_send
  - check_block
  - eval_under
  - mrb_mod_module_eval
  - mrb_obj_instance_eval
  - mrb_yield_with_class
  - mrb_yield_argv
  - mrb_yield
  - mrb_yield_cont
  - break_new
  - catch_handler_find
  - catch_cover_p
  - localjump_error
  - argnum_error
  - break_tag_p
  - prepare_tagged_break
  - THROW_TAGGED_BREAK
  - UNWIND_ENSURE
  - CHECKPOINT_LABEL_MAKE
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - CHECKPOINT_END
  - CODE_FETCH_HOOK
  - BYTECODE_DECODER
  - BYTECODE_DECODER
  - CASE
  - CASE
  - mrb_vm_run
  - check_target_class
  - hash_new_from_regs
  - ARGUMENT_NORMALIZE
  - mrb_vm_exec
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - DISPATCH_CHECKPOINTS
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - CASE
  - TYPES2
  - OP_MATH
  - OP_MATH_CASE_INTEGER
  - OP_MATH_CASE_FLOAT
  - OP_MATH_CASE_FLOAT
  - OP_MATH_OVERFLOW_INT
  - OP_MATH_OVERFLOW_INT
  - OP_MATH_CASE_STRING_add
  - OP_MATH_CASE_STRING_sub
  - OP_MATH_CASE_STRING_mul
  - CASE
  - CASE
  - CASE
  - CASE
  - OP_MATHI
  - OP_MATHI_CASE_INTEGER
  - OP_MATHI_CASE_FLOAT
  - OP_MATHI_CASE_FLOAT
  - CASE
  - CASE
  - OP_CMP_BODY
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - CASE
  - OPCODE
  - CASE
  - OPCODE
  - CASE
  - OPCODE
  - CASE
  - CHECKPOINT_RESTORE
  - CHECKPOINT_MAIN
  - (&c_jmp)
  - mrb_run
  - mrb_top_run
  source_file: /src/h2o/deps/mruby/src/vm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STACK_INIT_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '128'
    - item_type: preproc_def
      name: CALLINFO_INIT_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MRB_STACK_GROWTH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '128'
    - item_type: preproc_def
      name: MRB_CALL_LEVEL_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '512'
    - item_type: preproc_def
      name: MRB_STACK_MAX
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (0x40000 - MRB_STACK_GROWTH)
    - item_type: preproc_def
      name: CALL_MAXARGS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '15'
    - item_type: preproc_def
      name: CALL_VARARGS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (CALL_MAXARGS<<4 | CALL_MAXARGS)
    - item_type: preproc_def
      name: CINFO_NONE
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CINFO_SKIP
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CINFO_DIRECT
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CINFO_RESUMED
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '3'
    - item_type: preproc_def
      name: MRB_FUNCALL_ARGC_MAX
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MRB_CATCH_FILTER_RESCUE
      pos:
        line_end: 1009
        line_start: 1008
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (UINT32_C(1) << MRB_CATCH_RESCUE)
    - item_type: preproc_def
      name: MRB_CATCH_FILTER_ENSURE
      pos:
        line_end: 1010
        line_start: 1009
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (UINT32_C(1) << MRB_CATCH_ENSURE)
    - item_type: preproc_def
      name: MRB_CATCH_FILTER_ALL
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (MRB_CATCH_FILTER_RESCUE | MRB_CATCH_FILTER_ENSURE)
    - item_type: preproc_def
      name: INIT_DISPATCH
      pos:
        line_end: 1174
        line_start: 1173
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: for (;;) { insn = BYTECODE_DECODER(*pc); CODE_FETCH_HOOK(mrb,
        irep, pc, regs); switch (insn) {
    - item_type: preproc_def
      name: NEXT
      pos:
        line_end: 1176
        line_start: 1175
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: goto L_END_DISPATCH
    - item_type: preproc_def
      name: JUMP
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: NEXT
    - item_type: preproc_def
      name: END_DISPATCH
      pos:
        line_end: 1178
        line_start: 1177
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: L_END_DISPATCH:;}}
    - item_type: preproc_def
      name: INIT_DISPATCH
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: JUMP; return mrb_nil_value();
    - item_type: preproc_def
      name: NEXT
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: insn=BYTECODE_DECODER(*pc); CODE_FETCH_HOOK(mrb, irep, pc, regs);
        goto *optable[insn]
    - item_type: preproc_def
      name: JUMP
      pos:
        line_end: 1185
        line_start: 1184
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: NEXT
    - item_type: preproc_def
      name: regs
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: (mrb->c->ci->stack)
    - item_type: preproc_def
      name: OP_MATH_OP_add
      pos:
        line_end: 2525
        line_start: 2524
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: +
    - item_type: preproc_def
      name: OP_MATH_OP_sub
      pos:
        line_end: 2526
        line_start: 2525
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '-'
    - item_type: preproc_def
      name: OP_MATH_OP_mul
      pos:
        line_end: 2527
        line_start: 2526
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: '*'
    - item_type: preproc_def
      name: OP_MATH_TT_integer
      pos:
        line_end: 2528
        line_start: 2527
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: MRB_TT_INTEGER
    - item_type: preproc_def
      name: OP_MATH_TT_float
      pos:
        line_end: 2529
        line_start: 2528
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: MRB_TT_FLOAT
    - item_type: preproc_def
      name: switch
      pos:
        line_end: 2646
        line_start: 2628
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: "(TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {\\\n  case
        TYPES2(MRB_TT_INTEGER,MRB_TT_INTEGER):\\\n    result = OP_CMP_BODY(op,mrb_fixnum,mrb_fixnum);\\\n
        \   break;\\\n  default:\\\n    mid = MRB_OPSYM(sym);\\\n    goto L_SEND_SYM;\\\n
        \ }\\\n  if (result) {\\\n    SET_TRUE_VALUE(regs[a]);\\\n  }\\\n  else {\\\n
        \   SET_FALSE_VALUE(regs[a]);\\\n  }\\\n} while(0)"
    - item_type: preproc_def
      name: switch
      pos:
        line_end: 2674
        line_start: 2647
        source_file: /src/h2o/deps/mruby/src/vm.c
      type_or_value: "(TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {\\\n  case
        TYPES2(MRB_TT_INTEGER,MRB_TT_INTEGER):\\\n    result = OP_CMP_BODY(op,mrb_fixnum,mrb_fixnum);\\\n
        \   break;\\\n  case TYPES2(MRB_TT_INTEGER,MRB_TT_FLOAT):\\\n    result =
        OP_CMP_BODY(op,mrb_fixnum,mrb_float);\\\n    break;\\\n  case TYPES2(MRB_TT_FLOAT,MRB_TT_INTEGER):\\\n
        \   result = OP_CMP_BODY(op,mrb_float,mrb_fixnum);\\\n    break;\\\n  case
        TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):\\\n    result = OP_CMP_BODY(op,mrb_float,mrb_float);\\\n
        \   break;\\\n  default:\\\n    mid = MRB_OPSYM(sym);\\\n    goto L_SEND_SYM;\\\n
        \ }\\\n  if (result) {\\\n    SET_TRUE_VALUE(regs[a]);\\\n  }\\\n  else {\\\n
        \   SET_FALSE_VALUE(regs[a]);\\\n  }\\\n} while(0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_obj_alloc_string
  - str_init_normal_capa
  - str_init_normal
  - str_init_embed
  - str_init_nofree
  - str_init_shared
  - str_init_fshared
  - str_init_modifiable
  - str_new_static
  - str_new
  - mrb_str_new_capa
  - resize_capa
  - mrb_str_new
  - mrb_str_new_cstr
  - mrb_str_new_static
  - str_decref
  - str_modify_keep_ascii
  - check_null_byte
  - mrb_gc_free_str
  - utf8_islead
  - mrb_utf8len
  - mrb_utf8_strlen
  - utf8_strlen
  - RSTRING_CHAR_LEN
  - chars2bytes
  - bytes2chars
  - char_adjust
  - char_backtrack
  - str_index_str_by_char_search
  - str_index_str_by_char
  - BYTES_ALIGN_CHECK
  - RSTRING_CHAR_LEN
  - chars2bytes
  - bytes2chars
  - char_adjust
  - char_backtrack
  - str_index_str_by_char
  - mrb_memsearch_qs
  - mrb_memsearch
  - str_share
  - mrb_str_byte_subseq
  - str_range_to_bytes
  - str_subseq
  - str_subseq
  - mrb_str_beg_len
  - str_substr
  - mrb_str_index
  - str_index_str
  - str_replace
  - str_rindex
  - mrb_utf8_from_locale
  - mrb_locale_from_utf8
  - mrb_str_modify_keep_ascii
  - mrb_str_modify
  - mrb_str_resize
  - mrb_str_to_cstr
  - mrb_str_concat
  - mrb_str_plus
  - mrb_str_plus_m
  - mrb_str_size
  - mrb_str_bytesize
  - mrb_str_times
  - lesser
  - mrb_str_cmp
  - mrb_str_cmp_m
  - str_eql
  - mrb_str_equal
  - mrb_str_equal_m
  - mrb_str_dup
  - str_convert_range
  - mrb_str_aref
  - mrb_str_aref_m
  - str_out_of_index
  - str_replace_partial
  - IS_EVSTR
  - str_escape
  - mrb_str_aset
  - mrb_str_aset_m
  - mrb_str_capitalize_bang
  - mrb_str_capitalize
  - mrb_str_chomp_bang
  - mrb_str_chomp
  - mrb_str_chop_bang
  - mrb_str_chop
  - mrb_str_downcase_bang
  - mrb_str_downcase
  - mrb_str_empty_p
  - mrb_str_eql
  - mrb_str_substr
  - mrb_str_hash
  - mrb_str_hash_m
  - mrb_str_include
  - mrb_str_byteindex_m
  - mrb_str_index_m
  - mrb_str_replace
  - mrb_str_init
  - mrb_str_intern
  - mrb_obj_as_string
  - mrb_ptr_to_str
  - str_reverse
  - mrb_str_reverse_bang
  - mrb_str_reverse
  - mrb_str_byterindex_m
  - mrb_str_rindex_m
  - mrb_str_split_m
  - trailingbad
  - mrb_str_len_to_integer
  - conv_digit
  - mrb_string_value_cstr
  - mrb_string_cstr
  - mrb_str_to_integer
  - mrb_str_to_i
  - mrb_str_len_to_dbl
  - mrb_str_to_dbl
  - mrb_str_to_f
  - mrb_str_to_s
  - mrb_str_upcase_bang
  - mrb_str_upcase
  - mrb_str_dump
  - mrb_str_cat
  - mrb_str_cat_cstr
  - mrb_str_cat_str
  - mrb_str_append
  - mrb_str_inspect
  - mrb_str_bytes
  - mrb_str_getbyte
  - mrb_str_setbyte
  - mrb_str_byteslice
  - sub_replace
  - mrb_init_string
  source_file: /src/h2o/deps/mruby/src/string.c
  types:
    enum:
    - enumerators:
      - name: STR_BYTE_RANGE_CORRECTED
        value: '1'
      - name: STR_CHAR_RANGE_CORRECTED
        value: '3'
      - name: STR_OUT_OF_RANGE
        value: '-1'
      - name: STR_CHAR_RANGE
        value: '2'
      item_type: enum
      name: str_convert_range
      pos:
        line_end: 1019
        line_start: 1007
        source_file: /src/h2o/deps/mruby/src/string.c
    preproc_defs:
    - item_type: preproc_def
      name: MRB_QS_SHORT_STRING_LENGTH
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/h2o/deps/mruby/src/string.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: FNV_32_PRIME
      pos:
        line_end: 1650
        line_start: 1649
        source_file: /src/h2o/deps/mruby/src/string.c
      type_or_value: ((uint32_t)0x01000193)
    - item_type: preproc_def
      name: FNV1_32_INIT
      pos:
        line_end: 1651
        line_start: 1650
        source_file: /src/h2o/deps/mruby/src/string.c
      type_or_value: ((uint32_t)0x811c9dc5)
    - item_type: preproc_def
      name: mrb_str_index_m
      pos:
        line_end: 1792
        line_start: 1791
        source_file: /src/h2o/deps/mruby/src/string.c
      type_or_value: mrb_str_byteindex_m
    - item_type: preproc_def
      name: mrb_str_rindex_m
      pos:
        line_end: 2072
        line_start: 2071
        source_file: /src/h2o/deps/mruby/src/string.c
      type_or_value: mrb_str_byterindex_m
    structs:
    - fields:
      - name: refcnt
        type: int
      - name: capa
        type: mrb_int
      - name: '*ptr'
        type: char
      item_type: struct
      name: mrb_shared_string
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/h2o/deps/mruby/src/string.c
    typedefs: []
    union: []
- function_names:
  - mrb_proc_new
  - mrb_env_new
  - closure_setup
  - mrb_closure_new
  - mrb_proc_new_cfunc
  - mrb_proc_new_cfunc_with_env
  - mrb_closure_new_cfunc
  - mrb_proc_cfunc_env_get
  - mrb_proc_copy
  - mrb_proc_s_new
  - check_proc
  - mrb_proc_init_copy
  - proc_arity
  - proc_lambda
  - mrb_proc_arity
  - mrb_proc_local_variables
  - mrb_proc_get_caller
  - mrb_proc_merge_lvar
  - mrb_init_proc
  source_file: /src/h2o/deps/mruby/src/proc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IREP_LVAR_MERGE_DEFAULT
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/h2o/deps/mruby/src/proc.c
      type_or_value: '50'
    - item_type: preproc_def
      name: IREP_LVAR_MERGE_MINIMUM
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/h2o/deps/mruby/src/proc.c
      type_or_value: '8'
    - item_type: preproc_def
      name: IREP_LVAR_MERGE_MAXIMUM
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/h2o/deps/mruby/src/proc.c
      type_or_value: '240'
    - item_type: preproc_def
      name: IREP_LVAR_MERGE_LIMIT
      pos:
        line_end: 395
        line_start: 391
        source_file: /src/h2o/deps/mruby/src/proc.c
      type_or_value: "((MRB_IREP_LVAR_MERGE_LIMIT) < IREP_LVAR_MERGE_MINIMUM ? IREP_LVAR_MERGE_MINIMUM
        : \\\n   (MRB_IREP_LVAR_MERGE_LIMIT) > IREP_LVAR_MERGE_MAXIMUM ? IREP_LVAR_MERGE_MAXIMUM
        : \\\n   (MRB_IREP_LVAR_MERGE_LIMIT))"
    - item_type: preproc_def
      name: IREP_LVAR_MERGE_LIMIT
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/h2o/deps/mruby/src/proc.c
      type_or_value: IREP_LVAR_MERGE_DEFAULT
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_num_add
  - mrb_num_sub
  - mrb_num_mul
  source_file: /src/h2o/deps/mruby/src/numops.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_GETTER
  - DEFINE_SETTER
  - DEFINE_ACCESSOR
  - DEFINE_FLAG_GETTER
  - DEFINE_FLAG_SETTER
  - DEFINE_FLAG_ACCESSOR
  - DEFINE_INCREMENTER
  - DEFINE_DECREMENTER
  - DEFINE_SWITCHER
  - ea_each
  - ib_cycle_by_key
  - ib_find_by_key
  - h_each
  - HT_ASSERT_SAFE_READ
  - h_check_modified
  - U32
  - h_ar_p
  - h_ar_on
  - lesser
  - RHASH_IFNONE
  - RHASH_PROCDEFAULT
  - next_power2
  - obj_hash_code
  - obj_eql
  - entry_deleted_p
  - entry_delete
  - ea_next_capa_for
  - ea_resize
  - ea_compress
  - ea_adjust
  - ea_dup
  - ea_get_by_key
  - ea_get
  - ea_set
  - ar_init
  - ar_free
  - ar_adjust_ea
  - ar_compress
  - ar_get
  - ar_set
  - ar_delete
  - ar_shift
  - ar_rehash
  - ib_it_pos_for
  - ib_it_empty_value
  - ib_it_deleted_value
  - ib_it_empty_p
  - ib_it_deleted_p
  - ib_it_active_p
  - ib_it_init
  - ib_it_next
  - ib_it_get
  - ib_it_set
  - ib_it_delete
  - ib_it_entry
  - ib_capa_to_bit
  - ib_bit_to_capa
  - ib_upper_bound_for
  - ib_bit_for
  - ib_byte_size_for
  - ib_init
  - ht_init
  - ht_free
  - ht_dup
  - ht_adjust_ea
  - ht_to_ar
  - ht_get
  - ht_set_as_ar
  - ht_set_without_ib_adjustment
  - ht_set
  - ht_delete
  - ht_shift
  - ht_rehash
  - h_key_for
  - h_alloc
  - h_init
  - h_free_table
  - h_clear
  - h_get
  - h_set
  - h_delete
  - h_shift
  - h_rehash
  - h_replace
  - mrb_gc_mark_hash
  - mrb_gc_mark_hash_size
  - mrb_gc_free_hash
  - mrb_hash_memsize
  - mrb_hash_foreach
  - mrb_hash_new
  - mrb_hash_new_capa
  - hash_modify
  - hash_default
  - hash_replace
  - mrb_hash_init_copy
  - mrb_hash_dup
  - mrb_hash_get
  - mrb_hash_fetch
  - mrb_hash_set
  - mrb_hash_init
  - mrb_hash_aget
  - mrb_hash_default
  - mrb_hash_set_default
  - mrb_hash_default_proc
  - mrb_hash_set_default_proc
  - mrb_hash_delete_key
  - mrb_hash_delete
  - mrb_hash_shift
  - mrb_hash_clear
  - mrb_hash_aset
  - mrb_hash_size
  - mrb_hash_size_m
  - mrb_hash_empty_p
  - mrb_hash_empty_m
  - mrb_hash_keys
  - mrb_hash_values
  - mrb_hash_key_p
  - mrb_hash_has_key
  - mrb_hash_has_value
  - mrb_hash_merge
  - mrb_hash_merge_m
  - mrb_hash_rehash
  - mrb_init_hash
  source_file: /src/h2o/deps/mruby/src/hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EA_N_RESERVED_INDICES
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: EA_INCREASE_RATIO
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 6 / 5 + 6
    - item_type: preproc_def
      name: EA_MAX_INCREASE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: UINT16_MAX
    - item_type: preproc_def
      name: EA_MAX_CAPA
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: U32(lesser(IB_MAX_CAPA - EA_N_RESERVED_INDICES, MRB_INT_MAX))
    - item_type: preproc_def
      name: IB_MAX_CAPA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: (U32(1) << IB_MAX_BIT)
    - item_type: preproc_def
      name: IB_TYPE_BIT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: '32'
    - item_type: preproc_def
      name: IB_INIT_BIT
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: "(                                                         \\\n
        \ ib_upper_bound_for(32) <= AR_MAX_SIZE ? 6 :                                 \\\n
        \ ib_upper_bound_for(16) <= AR_MAX_SIZE ? 5 :                                 \\\n
        \ 4                                                                           \\\n)"
    - item_type: preproc_def
      name: IB_MAX_BIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: (IB_TYPE_BIT - 1)
    - item_type: preproc_def
      name: AR_DEFAULT_CAPA
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: '4'
    - item_type: preproc_def
      name: AR_MAX_SIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: '16'
    - item_type: preproc_def
      name: H_MAX_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: EA_MAX_CAPA
    - item_type: preproc_def
      name: H_CHECK_MODIFIED_USE_HT_EA_FOR_AR
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: H_CHECK_MODIFIED_USE_HT_EA_CAPA_FOR_AR
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: H_CHECK_MODIFIED_USE_HT_EA_CAPA_FOR_AR
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: H_CHECK_MODIFIED_USE_HT_EA_FOR_AR
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: H_CHECK_MODIFIED_USE_HT_EA_CAPA_FOR_AR
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/h2o/deps/mruby/src/hash.c
      type_or_value: 'TRUE'
    structs:
    - fields:
      - name: key
        type: mrb_value
      - name: val
        type: mrb_value
      item_type: struct
      name: hash_entry
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/h2o/deps/mruby/src/hash.c
    - fields:
      - name: '*ea'
        type: hash_entry
      - name: ib[]
        type: uint32_t
      item_type: struct
      name: hash_table
      pos:
        line_end: 87
        line_start: 80
        source_file: /src/h2o/deps/mruby/src/hash.c
    - fields:
      - name: '*h'
        type: struct RHash
      - name: bit
        type: uint32_t
      - name: mask
        type: uint32_t
      - name: pos
        type: uint32_t
      - name: ary_index
        type: uint32_t
      - name: ea_index
        type: uint32_t
      - name: shift1
        type: uint32_t
      - name: shift2
        type: uint32_t
      - name: step
        type: uint32_t
      item_type: struct
      name: index_buckets_iter
      pos:
        line_end: 99
        line_start: 89
        source_file: /src/h2o/deps/mruby/src/hash.c
    typedefs: []
    union: []
- function_names:
  - print_r
  - print_lv_a
  - print_lv_ab
  - print_header
  - print_args
  - CASE
  - codedump
  - CASE
  - CASE
  - OPCODE
  - OPCODE
  - OPCODE
  - codedump_recur
  - mrb_codedump_all
  source_file: /src/h2o/deps/mruby/src/codedump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_irep_header_size
  - write_irep_header
  - get_iseq_block_size
  - write_iseq_block
  - dump_float
  - get_pool_block_size
  - write_pool_block
  - get_syms_block_size
  - write_syms_block
  - get_irep_record_size_1
  - get_irep_record_size
  - write_irep_record
  - write_footer
  - write_section_irep_header
  - write_section_irep
  - get_debug_record_size
  - find_filename_index
  - get_filename_table_size
  - write_debug_record_1
  - write_debug_record
  - write_section_debug
  - create_lv_sym_table
  - write_lv_sym_table
  - write_lv_record
  - get_lv_record_size
  - get_lv_section_size
  - write_section_lv
  - write_rite_binary_header
  - debug_info_defined_p
  - lv_defined_p
  - dump_irep
  - mrb_dump_irep
  - mrb_dump_irep_binary
  - mrb_dump_irep_cfunc
  source_file: /src/h2o/deps/mruby/src/dump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: f
        type: double
      - name: s[sizeof(double)]
        type: char
      item_type: union
      name: u = {.f = (double)f}
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/h2o/deps/mruby/src/dump.c
- function_names: []
  source_file: /src/h2o/deps/mruby/src/opcode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/src/error.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RANGE_INITIALIZED
  - RANGE_INITIALIZED_P
  - r_check
  - r_le
  - r_gt
  - r_ge
  - range_ptr_alloc_edges
  - range_ptr_init
  - range_ptr_replace
  - range_beg
  - range_end
  - range_excl
  - range_initialize
  - range_eq
  - range_include
  - range_to_s
  - range_inspect
  - range_eql
  - range_initialize_copy
  - range_num_to_a
  - mrb_get_values_at
  - mrb_gc_mark_range
  - mrb_range_ptr
  - mrb_range_new
  - mrb_range_beg_len
  - mrb_init_range
  source_file: /src/h2o/deps/mruby/src/range.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANGE_INITIALIZED_FLAG
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/src/range.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_func_basic_p
  - mrb_obj_basic_to_s_p
  - mrb_obj_inspect
  - mrb_equal_m
  - mrb_obj_id_m
  - env_bidx
  - mrb_f_block_given_p_m
  - mrb_obj_class_m
  - mrb_obj_freeze
  - mrb_obj_frozen
  - mrb_obj_hash
  - mrb_obj_init_copy
  - mrb_obj_is_instance_of
  - obj_is_instance_of
  - mrb_obj_is_kind_of_m
  - mrb_false
  - mrb_f_raise
  - mrb_obj_remove_instance_variable
  - mrb_method_missing
  - mrb_obj_missing
  - basic_obj_respond_to
  - obj_respond_to
  - mrb_obj_ceqq
  - mrb_encoding
  - mrb_init_kernel
  source_file: /src/h2o/deps/mruby/src/kernel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MT_KEY_P
  - MT_KEY
  - MT_FLAGS
  - MT_KEY_SYM
  - MT_KEY_FLG
  - mt_new
  - mt_rehash
  - slot_empty_p
  - mt_put
  - mt_get
  - mt_del
  - mt_copy
  - mt_free
  - mrb_mt_foreach
  - mrb_gc_mark_mt
  - mrb_gc_mark_mt_size
  - mrb_gc_free_mt
  - mrb_class_name_class
  - mrb_const_name_p
  - setup_class
  - make_metaclass
  - prepare_singleton_class
  - class_name_str
  - class_from_sym
  - module_from_sym
  - class_ptr_p
  - check_if_class_or_module
  - define_module
  - mrb_define_module_id
  - mrb_define_module
  - mrb_vm_define_module
  - mrb_define_module_under_id
  - mrb_define_module_under
  - find_origin
  - define_class
  - mrb_define_class_id
  - mrb_define_class
  - mrb_class_inherited
  - mrb_vm_define_class
  - mrb_class_defined
  - mrb_class_defined_id
  - mrb_class_defined_under
  - mrb_class_defined_under_id
  - mrb_class_get_under
  - mrb_class_get_under_id
  - mrb_class_get
  - mrb_class_get_id
  - mrb_exc_get_id
  - mrb_module_get_under
  - mrb_module_get_under_id
  - mrb_module_get
  - mrb_module_get_id
  - mrb_define_class_under_id
  - mrb_define_class_under
  - mrb_define_method_raw
  - mrb_define_method_id
  - mrb_define_method
  - mrb_notimplement
  - mrb_notimplement_m
  - ensure_class_type
  - to_sym
  - mrb_get_argc
  - mrb_get_argv
  - mrb_get_arg1
  - mrb_block_given_p
  - mrb_get_args
  - boot_defclass
  - boot_initmod
  - include_class_new
  - include_module_at
  - fix_include_module
  - mrb_include_module
  - fix_prepend_module
  - mrb_prepend_module
  - mrb_mod_prepend_features
  - mrb_mod_append_features
  - mrb_mod_include_p
  - mrb_mod_ancestors
  - mrb_mod_extend_object
  - mrb_mod_initialize
  - mrb_mod_dummy_visibility
  - mrb_singleton_class_ptr
  - mrb_singleton_class
  - mrb_define_singleton_method
  - mrb_define_singleton_method_id
  - mrb_define_class_method
  - mrb_define_class_method_id
  - mrb_define_module_function_id
  - mrb_define_module_function
  - mc_clear
  - mrb_mc_clear_by_class
  - mrb_method_t::mrb_method_search_vm
  - mrb_method_t::mrb_method_search
  - prepare_name_common
  - prepare_ivar_name
  - prepare_writer_name
  - mod_attr_define
  - attr_reader
  - mrb_mod_attr_reader
  - attr_writer
  - mrb_mod_attr_writer
  - mrb_instance_alloc
  - mrb_instance_new
  - mrb_obj_new
  - mrb_class_initialize
  - mrb_class_new_class
  - mrb_class_superclass
  - mrb_do_nothing
  - mrb_bob_not
  - mrb_obj_equal_m
  - mrb_obj_respond_to
  - mrb_respond_to
  - mrb_class_path
  - mrb_class_real
  - mrb_class_name
  - mrb_obj_classname
  - mrb_check_inheritable
  - mrb_class_new
  - mrb_module_new
  - mrb_obj_class
  - mrb_alias_method
  - mrb_define_alias
  - mrb_define_alias_id
  - mrb_mod_to_s
  - mrb_mod_alias
  - undef_method
  - mrb_undef_method_id
  - mrb_undef_method
  - mrb_undef_class_method_id
  - mrb_undef_class_method
  - mrb_remove_method
  - mrb_mod_undef
  - check_const_name_sym
  - mrb_mod_const_defined
  - mrb_const_get_sym
  - mrb_mod_const_get
  - mrb_mod_const_set
  - mrb_mod_remove_const
  - mrb_mod_const_missing
  - mrb_mod_method_defined
  - mrb_method_added
  - mrb_mod_define_method_m
  - mod_define_method
  - top_define_method
  - mrb_mod_eqq
  - mrb_mod_dup
  - mrb_mod_module_function
  - mrb_singleton_class_clone
  - copy_class
  - mrb_obj_init_copy
  - init_copy
  - mrb_obj_clone
  - mrb_obj_dup
  - inspect_main
  - init_class_new
  - mrb_init_class
  source_file: /src/h2o/deps/mruby/src/class.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MT_FUNC_P
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MT_NOARG_P
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MT_EMPTY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MT_DELETED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MT_CACHE_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '256'
    - item_type: preproc_def
      name: ONSTACK_ALLOC_MAX
      pos:
        line_end: 1807
        line_start: 1806
        source_file: /src/h2o/deps/mruby/src/class.c
      type_or_value: '32'
    structs:
    - fields:
      - name: size
        type: int
      - name: alloc
        type: int
      - name: '*ptr'
        type: union mt_ptr
      item_type: struct
      name: mt_tbl
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/h2o/deps/mruby/src/class.c
    typedefs: []
    union:
    - fields:
      - name: '*proc'
        type: struct RProc
      - name: func
        type: mrb_func_t
      item_type: union
      name: mt_ptr
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/h2o/deps/mruby/src/class.c
- function_names:
  - mrb_malloc_simple
  - mrb_free
  - ALIGN_PADDING
  - ALIGN_PADDING
  - mrb_pool_open
  - mrb_pool_close
  - page_alloc
  - mrb_pool_alloc
  - mrb_pool_can_realloc
  - mrb_pool_realloc
  - main
  source_file: /src/h2o/deps/mruby/src/pool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POOL_ALIGNMENT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/src/pool.c
      type_or_value: '8'
    - item_type: preproc_def
      name: POOL_ALIGNMENT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/src/pool.c
      type_or_value: '4'
    - item_type: preproc_def
      name: POOL_PAGE_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/src/pool.c
      type_or_value: '16000'
    structs:
    - fields:
      - name: '*next'
        type: struct mrb_pool_page
      - name: offset
        type: size_t
      - name: len
        type: size_t
      - name: '*last'
        type: void
      - name: page[]
        type: char
      item_type: struct
      name: mrb_pool_page
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/h2o/deps/mruby/src/pool.c
    - fields:
      - name: '*mrb'
        type: mrb_state
      - name: '*pages'
        type: struct mrb_pool_page
      item_type: struct
      name: mrb_pool
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/h2o/deps/mruby/src/pool.c
    typedefs: []
    union: []
- function_names:
  - mrb_int_read
  source_file: /src/h2o/deps/mruby/src/readint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - each_backtrace
  - print_backtrace
  - mrb_print_backtrace
  - mrb_print_backtrace
  - count_backtrace_i
  - pack_backtrace_i
  - packed_backtrace
  - store_backtrace
  - mrb_keep_backtrace
  - mrb_unpack_backtrace
  - mrb_exc_backtrace
  - mrb_get_backtrace
  source_file: /src/h2o/deps/mruby/src/backtrace.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lineno
        type: int32_t
      - name: method_id
        type: mrb_sym
      - name: '*filename'
        type: char
      item_type: struct
      name: backtrace_location
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/h2o/deps/mruby/src/backtrace.c
    typedefs:
    - item_type: typedef
      name: (*each_backtrace_func)(mrb_state*, const struct backtrace_location*, void*)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/h2o/deps/mruby/src/backtrace.c
      type: void
    union: []
- function_names:
  - mrb_init_core
  source_file: /src/h2o/deps/mruby/src/init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DONE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/src/init.c
      type_or_value: mrb_gc_arena_restore(mrb, 0);
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_data_object_alloc
  - mrb_data_check_type
  - mrb_data_check_get_ptr
  - mrb_data_get_ptr
  - mrb_obj_to_sym
  - make_num_id
  - mrb_int_id
  - mrb_float_id
  - mrb_obj_id
  - MakeID
  - mrb_word_boxing_float_value
  - mrb_word_boxing_value_float
  - mrb_word_boxing_cptr_value
  - mrb_boxing_int_value
  - mrb_msvc_va_copy
  - va_copy
  - mrb_msvc_vsnprintf
  - mrb_msvc_snprintf
  source_file: /src/h2o/deps/mruby/src/etc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ary_too_big
  - ary_check_too_big
  - ary_new_capa
  - mrb_ary_new_capa
  - mrb_ary_new
  - array_copy
  - ary_new_from_values
  - mrb_ary_new_from_values
  - mrb_assoc_new
  - ary_fill_with_nil
  - ary_modify_check
  - ary_modify
  - mrb_ary_modify
  - ary_make_shared
  - ary_expand_capa
  - ary_shrink_capa
  - mrb_ary_resize
  - mrb_ary_s_create
  - ary_concat
  - mrb_ary_concat
  - mrb_ary_concat_m
  - mrb_ary_plus
  - ary_replace
  - mrb_ary_replace
  - mrb_ary_replace_m
  - mrb_ary_times
  - mrb_ary_reverse_bang
  - mrb_ary_reverse
  - mrb_ary_push
  - mrb_ary_push_m
  - mrb_ary_pop
  - mrb_ary_shift
  - mrb_ary_shift_m
  - mrb_ary_unshift
  - mrb_ary_unshift_m
  - mrb_ary_set
  - ary_dup
  - mrb_ary_splice
  - mrb_ary_decref
  - ary_subseq
  - mrb_ary_subseq
  - aget_index
  - if
  - mrb_ary_aget
  - mrb_ary_aset
  - mrb_ary_delete_at
  - mrb_ary_first
  - mrb_ary_last
  - mrb_ary_index_m
  - mrb_ary_rindex_m
  - mrb_ary_splat
  - mrb_ary_size
  - mrb_ary_clear
  - mrb_ary_clear_m
  - mrb_ary_empty_p
  - mrb_ary_entry
  - join_ary
  - mrb_ary_join
  - mrb_ary_join_m
  - mrb_ary_eq
  - mrb_ary_cmp
  - mrb_ary_svalue
  - mrb_init_array
  source_file: /src/h2o/deps/mruby/src/array.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARY_DEFAULT_LEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ARY_SHRINK_RATIO
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: ARY_C_MAX_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: (SIZE_MAX / sizeof(mrb_value))
    - item_type: preproc_def
      name: ARY_MAX_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: '((mrb_int)((ARY_C_MAX_SIZE < (size_t)MRB_INT_MAX) ? ARY_C_MAX_SIZE
        : MRB_INT_MAX-1))'
    - item_type: preproc_def
      name: ARY_REPLACE_SHARED_MIN
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: '20'
    - item_type: preproc_def
      name: ARY_SHIFT_SHARED_MIN
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/h2o/deps/mruby/src/array.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - printcstr
  - printstr
  - mrb_core_init_printabort
  - mrb_p
  - mrb_show_version
  - mrb_show_copyright
  - mrb_core_init_printabort
  - mrb_p
  - mrb_show_version
  - mrb_show_copyright
  source_file: /src/h2o/deps/mruby/src/print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_init_version
  source_file: /src/h2o/deps/mruby/src/version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_float_read
  source_file: /src/h2o/deps/mruby/src/readflt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mrbconf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KHASH_DEFAULT_SIZE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MRB_HEAP_PAGE_SIZE
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MRB_METHOD_CACHE_SIZE
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: MRB_HEAP_PAGE_SIZE
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MRB_METHOD_CACHE_SIZE
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: MRB_HEAP_PAGE_SIZE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/h2o/deps/mruby/include/mrbconf.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_assert
  - mrb_assert_int_fit
  - mrb_assert
  - mrb_assert_int_fit
  - mrb_static_assert
  - mrb_static_assert1
  - mrb_static_assert2
  - mrb_static_assert2
  - mrb_static_assert2
  - _mrb_static_assert_cat0
  - _mrb_static_assert_cat
  - _mrb_static_assert_id
  - _mrb_static_assert_id
  - mrb_static_assert2
  - mrb_static_assert1
  - mrb_static_assert_expand
  - mrb_static_assert_selector
  - mrb_static_assert
  - mrb_static_assert_powerof2
  - mrb_class_new_instance
  - mrb_exc_get
  - MRB_ARGS_REQ
  - MRB_ARGS_OPT
  - MRB_ARGS_ARG
  - MRB_ARGS_REST
  - MRB_ARGS_POST
  - MRB_ARGS_KEY
  - MRB_ARGS_BLOCK
  - MRB_ARGS_ANY
  - MRB_ARGS_NONE
  - mrb_get_mid
  - mrb_strlen_lit
  - mrb_intern_lit
  - mrb_sym2name
  - mrb_sym2name_len
  - mrb_sym2str
  - MRB_OBJ_ALLOC
  - mrb_str_new_lit
  - mrb_str_new_frozen
  - mrb_str_new_cstr_frozen
  - mrb_str_new_static_frozen
  - mrb_str_new_lit_frozen
  - mrb_locale_free
  - mrb_utf8_free
  - mrb_utf8_from_locale
  - mrb_locale_from_utf8
  - mrb_toplevel_run_keep
  - mrb_toplevel_run
  - mrb_context_run
  - mrb_as_float
  - mrb_to_float
  - mrb_gc_arena_save
  - mrb_gc_arena_restore
  - mrb_gc_mark_value
  - mrb_field_write_barrier_value
  - mrb_convert_type
  - mrb_check_convert_type
  - ISASCII
  - ISPRINT
  - ISSPACE
  - ISUPPER
  - ISLOWER
  - ISALPHA
  - ISDIGIT
  - ISXDIGIT
  - ISALNUM
  - ISBLANK
  - ISCNTRL
  - TOUPPER
  - TOLOWER
  - MRB_ERROR_SYM
  - mrb_string_type
  - mrb_to_str
  - mrb_str_to_str
  - mrb_as_int
  - mrb_to_integer
  - mrb_to_int
  - mrb_check_frozen
  - mrb_int
  - mrbmemcpy
  - memcpy
  - mrbmemset
  - memset
  source_file: /src/h2o/deps/mruby/include/mruby.h
  types:
    enum:
    - enumerators:
      - name: MRB_FIBER_CREATED
        value: '0'
      - name: MRB_FIBER_RUNNING
      - name: MRB_FIBER_TRANSFERRED
      - name: MRB_FIBER_SUSPENDED
      - name: MRB_FIBER_RESUMED
      - name: MRB_FIBER_TERMINATED
      item_type: enum
      name: mrb_fiber_state
      pos:
        line_end: 195
        line_start: 188
        source_file: /src/h2o/deps/mruby/include/mruby.h
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: __SIZE_MAX__
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: std::numeric_limits<size_t>::max()
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: FLT_EPSILON
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: (1.19209290e-07f)
    - item_type: preproc_def
      name: DBL_EPSILON
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: ((double)2.22044604925031308085e-16L)
    - item_type: preproc_def
      name: LDBL_EPSILON
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: (1.08420217248550443401e-19L)
    - item_type: preproc_def
      name: MRB_FLOAT_EPSILON
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: FLT_EPSILON
    - item_type: preproc_def
      name: MRB_FLOAT_EPSILON
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: DBL_EPSILON
    - item_type: preproc_def
      name: MRB_FIXED_STATE_ATEXIT_STACK_SIZE
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MRB_METHOD_CACHE_SIZE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: E_RUNTIME_ERROR
      pos:
        line_end: 1362
        line_start: 1361
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(RuntimeError))
    - item_type: preproc_def
      name: E_TYPE_ERROR
      pos:
        line_end: 1363
        line_start: 1362
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(TypeError))
    - item_type: preproc_def
      name: E_ZERODIV_ERROR
      pos:
        line_end: 1364
        line_start: 1363
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(ZeroDivisionError))
    - item_type: preproc_def
      name: E_ARGUMENT_ERROR
      pos:
        line_end: 1365
        line_start: 1364
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(ArgumentError))
    - item_type: preproc_def
      name: E_INDEX_ERROR
      pos:
        line_end: 1366
        line_start: 1365
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(IndexError))
    - item_type: preproc_def
      name: E_RANGE_ERROR
      pos:
        line_end: 1367
        line_start: 1366
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(RangeError))
    - item_type: preproc_def
      name: E_NAME_ERROR
      pos:
        line_end: 1368
        line_start: 1367
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(NameError))
    - item_type: preproc_def
      name: E_NOMETHOD_ERROR
      pos:
        line_end: 1369
        line_start: 1368
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(NoMethodError))
    - item_type: preproc_def
      name: E_SCRIPT_ERROR
      pos:
        line_end: 1370
        line_start: 1369
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(ScriptError))
    - item_type: preproc_def
      name: E_SYNTAX_ERROR
      pos:
        line_end: 1371
        line_start: 1370
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(SyntaxError))
    - item_type: preproc_def
      name: E_LOCALJUMP_ERROR
      pos:
        line_end: 1372
        line_start: 1371
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(LocalJumpError))
    - item_type: preproc_def
      name: E_REGEXP_ERROR
      pos:
        line_end: 1373
        line_start: 1372
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(RegexpError))
    - item_type: preproc_def
      name: E_FROZEN_ERROR
      pos:
        line_end: 1374
        line_start: 1373
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(FrozenError))
    - item_type: preproc_def
      name: E_NOTIMP_ERROR
      pos:
        line_end: 1375
        line_start: 1374
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(NotImplementedError))
    - item_type: preproc_def
      name: E_KEY_ERROR
      pos:
        line_end: 1376
        line_start: 1375
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(KeyError))
    - item_type: preproc_def
      name: E_FLOATDOMAIN_ERROR
      pos:
        line_end: 1378
        line_start: 1377
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(FloatDomainError))
    - item_type: preproc_def
      name: E_FIBER_ERROR
      pos:
        line_end: 1466
        line_start: 1465
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type_or_value: mrb_exc_get_id(mrb, MRB_ERROR_SYM(FiberError))
    structs:
    - fields:
      - name: n
        type: uint8_t
      - name: nk
        type: uint8_t
      - name: cci
        type: uint8_t
      - name: mid
        type: mrb_sym
      - name: '*proc'
        type: struct RProc
      - name: '*stack'
        type: mrb_value
      - name: '*pc'
        type: mrb_code
      - name: u
        type: "union {\n    struct REnv *env;\n    struct RClass *target_class;\n
          \ }"
      item_type: struct
      name: mrb_callinfo
      pos:
        line_end: 186
        line_start: 174
        source_file: /src/h2o/deps/mruby/include/mruby.h
    - fields:
      - name: '*prev'
        type: struct mrb_context
      - name: '*stbase'
        type: mrb_value
      - name: '*ci'
        type: mrb_callinfo
      - name: '*cibase'
        type: mrb_callinfo
      - name: status
        type: enum mrb_fiber_state
      - name: vmexec
        type: mrb_bool
      - name: '*fib'
        type: struct RFiber
      item_type: struct
      name: mrb_context
      pos:
        line_end: 208
        line_start: 197
        source_file: /src/h2o/deps/mruby/include/mruby.h
    - fields:
      - name: flags
        type: uint8_t
      item_type: struct
      name: mrb_method_t
      pos:
        line_end: 239
        line_start: 233
        source_file: /src/h2o/deps/mruby/include/mruby.h
    - fields:
      - name: '*c'
        type: struct RClass
      - name: mid
        type: mrb_sym
      - name: m
        type: mrb_method_t
      item_type: struct
      name: mrb_cache_entry
      pos:
        line_end: 247
        line_start: 243
        source_file: /src/h2o/deps/mruby/include/mruby.h
    - fields:
      - name: '*jmp'
        type: struct mrb_jmpbuf
      - name: allocf
        type: mrb_allocf
      - name: '*allocf_ud'
        type: void
      - name: '*c'
        type: struct mrb_context
      - name: '*root_c'
        type: struct mrb_context
      - name: '*globals'
        type: struct iv_tbl
      - name: '*exc'
        type: struct RObject
      - name: '*top_self'
        type: struct RObject
      - name: '*object_class'
        type: struct RClass
      - name: '*class_class'
        type: struct RClass
      - name: '*module_class'
        type: struct RClass
      - name: '*proc_class'
        type: struct RClass
      - name: '*string_class'
        type: struct RClass
      - name: '*array_class'
        type: struct RClass
      - name: '*hash_class'
        type: struct RClass
      - name: '*range_class'
        type: struct RClass
      - name: '*integer_class'
        type: struct RClass
      - name: '*true_class'
        type: struct RClass
      - name: '*false_class'
        type: struct RClass
      - name: '*nil_class'
        type: struct RClass
      - name: '*symbol_class'
        type: struct RClass
      - name: '*kernel_module'
        type: struct RClass
      - name: gc
        type: mrb_gc
      - name: symidx
        type: mrb_sym
      - name: '**symtbl'
        type: char
      - name: '*symlink'
        type: uint8_t
      - name: '*symflags'
        type: uint8_t
      - name: symhash[256]
        type: mrb_sym
      - name: symcapa
        type: size_t
      - name: '*eException_class'
        type: struct RClass
      - name: '*eStandardError_class'
        type: struct RClass
      - name: '*nomem_err'
        type: struct RObject
      - name: '*stack_err'
        type: struct RObject
      - name: '*ud'
        type: void
      - name: atexit_stack_len
        type: uint16_t
      item_type: struct
      name: mrb_state
      pos:
        line_end: 327
        line_start: 254
        source_file: /src/h2o/deps/mruby/include/mruby.h
    - fields:
      - name: num
        type: uint32_t
      - name: required
        type: uint32_t
      - name: '*table'
        type: mrb_sym
      - name: '*values'
        type: mrb_value
      - name: '*rest'
        type: mrb_value
      item_type: struct
      name: mrb_kwargs
      pos:
        line_end: 1002
        line_start: 995
        source_file: /src/h2o/deps/mruby/include/mruby.h
    typedefs:
    - item_type: typedef
      name: mrb_aspec
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: uint32_t
    - item_type: typedef
      name: '* (*mrb_allocf) (struct mrb_state *mrb, void*, size_t, void *ud)'
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: void
    - item_type: typedef
      name: (*mrb_func_t)(struct mrb_state *mrb, mrb_value self)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: mrb_value
    - item_type: typedef
      name: mrb_method_t
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: uintptr_t
    - item_type: typedef
      name: (*mrb_atexit_func)(struct mrb_state*)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: void
    - item_type: typedef
      name: '*mrb_args_format'
      pos:
        line_end: 945
        line_start: 945
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: char
    - item_type: typedef
      name: mrb_kwargs
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: mrb_kwargs
    - item_type: typedef
      name: mrb_pool
      pos:
        line_end: 1469
        line_start: 1469
        source_file: /src/h2o/deps/mruby/include/mruby.h
      type: mrb_pool
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/variable.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (mrb_iv_foreach_func)(mrb_state*,mrb_sym,mrb_value,void*)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/h2o/deps/mruby/include/mruby/variable.h
      type: int
    union: []
- function_names:
  - MRB_TRY
  - MRB_CATCH
  - MRB_END_EXC
  - MRB_THROW
  - MRB_TRY
  - MRB_CATCH
  - MRB_END_EXC
  - MRB_THROW
  - mrb_jmpbuf
  source_file: /src/h2o/deps/mruby/include/mruby/throw.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_SETJMP
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: _setjmp
    - item_type: preproc_def
      name: MRB_LONGJMP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: _longjmp
    - item_type: preproc_def
      name: MRB_SETJMP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: __builtin_setjmp
    - item_type: preproc_def
      name: MRB_LONGJMP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: __builtin_longjmp
    - item_type: preproc_def
      name: MRB_SETJMP
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: setjmp
    - item_type: preproc_def
      name: MRB_LONGJMP
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: longjmp
    - item_type: preproc_def
      name: mrb_jmpbuf_impl
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type_or_value: jmp_buf
    structs:
    - fields:
      - name: impl
        type: mrb_jmpbuf_impl
      item_type: struct
      name: mrb_jmpbuf
      pos:
        line_end: 63
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
    typedefs:
    - item_type: typedef
      name: mrb_jmpbuf_impl
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/h2o/deps/mruby/include/mruby/throw.h
      type: mrb_int
    union: []
- function_names:
  - MRB_STRINGIZE0
  - MRB_STRINGIZE
  source_file: /src/h2o/deps/mruby/include/mruby/version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRUBY_RUBY_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"3.1"'
    - item_type: preproc_def
      name: MRUBY_RUBY_ENGINE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"mruby"'
    - item_type: preproc_def
      name: MRUBY_RELEASE_MAJOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MRUBY_RELEASE_MINOR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRUBY_RELEASE_TEENY
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRUBY_PATCHLEVEL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MRUBY_PATCHLEVEL_STR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '""'
    - item_type: preproc_def
      name: MRUBY_PATCHLEVEL_STR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"dev"'
    - item_type: preproc_def
      name: MRUBY_PATCHLEVEL_STR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"p"MRB_STRINGIZE(MRUBY_PATCHLEVEL)'
    - item_type: preproc_def
      name: MRUBY_VERSION
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: MRB_STRINGIZE(MRUBY_RELEASE_MAJOR) "." MRB_STRINGIZE(MRUBY_RELEASE_MINOR)
        "." MRB_STRINGIZE(MRUBY_RELEASE_TEENY)
    - item_type: preproc_def
      name: MRUBY_RELEASE_NO
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: (MRUBY_RELEASE_MAJOR * 100 * 100 + MRUBY_RELEASE_MINOR * 100
        + MRUBY_RELEASE_TEENY)
    - item_type: preproc_def
      name: MRUBY_RELEASE_YEAR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '2022'
    - item_type: preproc_def
      name: MRUBY_RELEASE_MONTH
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MRUBY_RELEASE_DAY
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MRUBY_RELEASE_DATE
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: "MRUBY_RELEASE_YEAR_STR \"-\"  \\\n  MRUBY_RELEASE_MONTH_STR
        \"-\" \\\n  MRUBY_RELEASE_DAY_STR"
    - item_type: preproc_def
      name: MRUBY_RELEASE_YEAR_STR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: MRB_STRINGIZE(MRUBY_RELEASE_YEAR)
    - item_type: preproc_def
      name: MRUBY_RELEASE_MONTH_STR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"0" MRB_STRINGIZE(MRUBY_RELEASE_MONTH)'
    - item_type: preproc_def
      name: MRUBY_RELEASE_MONTH_STR
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: MRB_STRINGIZE(MRUBY_RELEASE_MONTH)
    - item_type: preproc_def
      name: MRUBY_RELEASE_DAY_STR
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"0" MRB_STRINGIZE(MRUBY_RELEASE_DAY)'
    - item_type: preproc_def
      name: MRUBY_RELEASE_DAY_STR
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: MRB_STRINGIZE(MRUBY_RELEASE_DAY)
    - item_type: preproc_def
      name: MRUBY_BIRTH_YEAR
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '2010'
    - item_type: preproc_def
      name: MRUBY_AUTHOR
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: '"mruby developers"'
    - item_type: preproc_def
      name: MRUBY_DESCRIPTION
      pos:
        line_end: 131
        line_start: 126
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: "\"mruby \" MRUBY_VERSION      \\\n  MRUBY_PATCHLEVEL_STR        \\\n
        \ \" (\" MRUBY_RELEASE_DATE \")\" \\\n"
    - item_type: preproc_def
      name: MRUBY_COPYRIGHT
      pos:
        line_end: 140
        line_start: 134
        source_file: /src/h2o/deps/mruby/include/mruby/version.h
      type_or_value: "\"mruby - Copyright (c) \"             \\\n  MRB_STRINGIZE(MRUBY_BIRTH_YEAR)\"-\"
        \  \\\n  MRB_STRINGIZE(MRUBY_RELEASE_YEAR)\" \" \\\n  MRUBY_AUTHOR                         \\\n"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/compile.h
  types:
    enum:
    - enumerators:
      - name: EXPR_BEG
      - name: EXPR_ENDARG
      - name: EXPR_ENDFN
      - name: EXPR_ARG
      - name: EXPR_END
      - name: EXPR_CMDARG
      - name: EXPR_MID
      - name: EXPR_FNAME
      - name: EXPR_DOT
      - name: EXPR_CLASS
      - name: EXPR_VALUE
      - name: EXPR_MAX_STATE
      item_type: enum
      name: mrb_lex_state_enum
      pos:
        line_end: 65
        line_start: 52
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    - enumerators:
      - name: str_not_parsing
        value: (0)
      - name: str_squote
        value: (STR_FUNC_PARSING)
      - name: str_sword
        value: (STR_FUNC_PARSING|STR_FUNC_WORD|STR_FUNC_ARRAY)
      - name: str_regexp
        value: (STR_FUNC_PARSING|STR_FUNC_REGEXP|STR_FUNC_EXPAND)
      - name: str_dquote
        value: (STR_FUNC_PARSING|STR_FUNC_EXPAND)
      - name: str_dword
        value: (STR_FUNC_PARSING|STR_FUNC_WORD|STR_FUNC_ARRAY|STR_FUNC_EXPAND)
      - name: str_ssym
        value: (STR_FUNC_PARSING|STR_FUNC_SYMBOL)
      - name: str_ssymbols
        value: (STR_FUNC_PARSING|STR_FUNC_SYMBOL|STR_FUNC_ARRAY)
      - name: str_dsymbols
        value: (STR_FUNC_PARSING|STR_FUNC_SYMBOL|STR_FUNC_ARRAY|STR_FUNC_EXPAND)
      - name: str_heredoc
        value: (STR_FUNC_PARSING|STR_FUNC_HEREDOC)
      - name: str_xquote
        value: (STR_FUNC_PARSING|STR_FUNC_XQUOTE|STR_FUNC_EXPAND)
      item_type: enum
      name: mrb_string_type
      pos:
        line_end: 95
        line_start: 83
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    preproc_defs:
    - item_type: preproc_def
      name: STR_FUNC_PARSING
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: STR_FUNC_EXPAND
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: STR_FUNC_REGEXP
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: STR_FUNC_WORD
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: STR_FUNC_SYMBOL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: STR_FUNC_ARRAY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: STR_FUNC_HEREDOC
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: STR_FUNC_XQUOTE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: MRB_PARSER_TOKBUF_MAX
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: (UINT16_MAX-1)
    - item_type: preproc_def
      name: MRB_PARSER_TOKBUF_SIZE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
      type_or_value: '256'
    structs:
    - fields:
      - name: '*syms'
        type: mrb_sym
      - name: slen
        type: int
      - name: '*filename'
        type: char
      - name: lineno
        type: uint16_t
      - name: (*partial_hook)(struct mrb_parser_state*)
        type: int
      - name: '*partial_data'
        type: void
      - name: '*target_class'
        type: struct RClass
      - name: capture_errors
        type: mrb_bool
      - name: dump_result
        type: mrb_bool
      - name: no_exec
        type: mrb_bool
      - name: keep_lv
        type: mrb_bool
      - name: no_optimize
        type: mrb_bool
      - name: no_ext_ops
        type: mrb_bool
      - name: '*upper'
        type: struct RProc
      - name: parser_nerr
        type: size_t
      item_type: struct
      name: mrbc_context
      pos:
        line_end: 37
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    - fields:
      - name: '*car'
        type: struct mrb_ast_node
      - name: lineno
        type: uint16_t
      item_type: struct
      name: mrb_ast_node
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    - fields:
      - name: lineno
        type: uint16_t
      - name: column
        type: int
      - name: '* message'
        type: char
      item_type: struct
      name: mrb_parser_message
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    - fields:
      - name: allow_indent
        type: mrb_bool
      - name: remove_indent
        type: mrb_bool
      - name: line_head
        type: mrb_bool
      - name: indent
        type: size_t
      - name: '*indented'
        type: mrb_ast_node
      - name: type
        type: enum mrb_string_type
      - name: '*term'
        type: char
      - name: term_len
        type: int
      - name: '*doc'
        type: mrb_ast_node
      item_type: struct
      name: mrb_parser_heredoc_info
      pos:
        line_end: 108
        line_start: 98
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    - fields:
      - name: '*mrb'
        type: mrb_state
      - name: '*pool'
        type: struct mrb_pool
      - name: '*cells'
        type: mrb_ast_node
      - name: '*s'
        type: char
      - name: '*cxt'
        type: mrbc_context
      - name: filename_sym
        type: mrb_sym
      - name: lineno
        type: uint16_t
      - name: column
        type: int
      - name: lstate
        type: enum mrb_lex_state_enum
      - name: '*lex_strterm'
        type: struct parser_lex_strterm
      - name: cond_stack
        type: unsigned int
      - name: cmdarg_stack
        type: unsigned int
      - name: paren_nest
        type: int
      - name: lpar_beg
        type: int
      - name: in_def
        type: int
      - name: cmd_start
        type: mrb_bool
      - name: '*locals'
        type: mrb_ast_node
      - name: '*pb'
        type: mrb_ast_node
      - name: '*tokbuf'
        type: char
      - name: buf[MRB_PARSER_TOKBUF_SIZE]
        type: char
      - name: tidx
        type: int
      - name: tsiz
        type: int
      - name: '*heredocs_from_nextline'
        type: mrb_ast_node
      - name: '*parsing_heredoc'
        type: mrb_ast_node
      - name: '*ylval'
        type: void
      - name: nerr
        type: size_t
      - name: nwarn
        type: size_t
      - name: '*tree'
        type: mrb_ast_node
      - name: no_optimize
        type: mrb_bool
      - name: capture_errors
        type: mrb_bool
      - name: no_ext_ops
        type: mrb_bool
      - name: '*upper'
        type: struct RProc
      - name: error_buffer[10]
        type: struct mrb_parser_message
      - name: warn_buffer[10]
        type: struct mrb_parser_message
      - name: '* filename_table'
        type: mrb_sym
      - name: filename_table_length
        type: uint16_t
      - name: current_filename_index
        type: uint16_t
      - name: '*nvars'
        type: mrb_ast_node
      item_type: struct
      name: mrb_parser_state
      pos:
        line_end: 166
        line_start: 114
        source_file: /src/h2o/deps/mruby/include/mruby/compile.h
    typedefs: []
    union: []
- function_names:
  - UPPER_BOUND
  - __ac_isempty
  - __ac_isdel
  - __ac_iseither
  - khash_power2
  - khash_mask
  - khash_upper_bound
  - KHASH_DECLARE
  - kh_fill_flags
  - KHASH_DEFINE
  - khash_t
  - kh_init_size
  - kh_init
  - kh_destroy
  - kh_clear
  - kh_resize
  - kh_put
  - kh_put2
  - kh_get
  - kh_del
  - kh_copy
  - kh_exist
  - kh_key
  - kh_val
  - kh_value
  - kh_begin
  - kh_end
  - kh_size
  - kh_n_buckets
  - kh_int_hash_func
  - kh_int_hash_equal
  - kh_int64_hash_func
  - kh_int64_hash_equal
  - __ac_X31_hash_string
  - kh_str_hash_func
  - kh_str_hash_equal
  source_file: /src/h2o/deps/mruby/include/mruby/khash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KHASH_DEFAULT_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/include/mruby/khash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: KHASH_MIN_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/include/mruby/khash.h
      type_or_value: '8'
    structs: []
    typedefs:
    - item_type: typedef
      name: khiter_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/khash.h
      type: khint_t
    - item_type: typedef
      name: '*kh_cstr_t'
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/h2o/deps/mruby/include/mruby/khash.h
      type: char
    union: []
- function_names:
  - WORDBOX_SET_SHIFT_VALUE
  - WORDBOX_SHIFT_VALUE_P
  - WORDBOX_OBJ_TYPE_P
  - mrb_val_union
  - mrb_immediate_p
  - mrb_ptr
  - mrb_cptr
  - mrb_float
  - mrb_float
  - mrb_fixnum
  - mrb_integer_func
  - mrb_integer
  - mrb_symbol
  - mrb_bool
  - mrb_fixnum_p
  - mrb_integer_p
  - mrb_symbol_p
  - mrb_undef_p
  - mrb_nil_p
  - mrb_false_p
  - mrb_true_p
  - mrb_float_p
  - mrb_float_p
  - mrb_array_p
  - mrb_string_p
  - mrb_hash_p
  - mrb_cptr_p
  - mrb_exception_p
  - mrb_free_p
  - mrb_object_p
  - mrb_class_p
  - mrb_module_p
  - mrb_iclass_p
  - mrb_sclass_p
  - mrb_proc_p
  - mrb_range_p
  - mrb_env_p
  - mrb_data_p
  - mrb_fiber_p
  - mrb_istruct_p
  - mrb_break_p
  - SET_FLOAT_VALUE
  - SET_CPTR_VALUE
  - SET_UNDEF_VALUE
  - SET_NIL_VALUE
  - SET_FALSE_VALUE
  - SET_TRUE_VALUE
  - SET_BOOL_VALUE
  - SET_INT_VALUE
  - SET_FIXNUM_VALUE
  - SET_SYM_VALUE
  - SET_OBJ_VALUE
  - mrb_type
  source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
  types:
    enum:
    - enumerators:
      - name: MRB_Qnil
        value: '0'
      - name: MRB_Qtrue
        value: '12'
      - name: MRB_Qfalse
        value: '4'
      - name: MRB_Qundef
        value: '20'
      item_type: enum
      name: mrb_special_consts
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    preproc_defs:
    - item_type: preproc_def
      name: MRB_FIXNUM_SHIFT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_FIXNUM_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: WORDBOX_FIXNUM_SHIFT
    - item_type: preproc_def
      name: MRB_SYMBOL_SHIFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: WORDBOX_SYMBOL_SHIFT
    - item_type: preproc_def
      name: MRB_FIXNUM_MIN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (INT64_MIN>>MRB_FIXNUM_SHIFT)
    - item_type: preproc_def
      name: MRB_FIXNUM_MAX
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (INT64_MAX>>MRB_FIXNUM_SHIFT)
    - item_type: preproc_def
      name: MRB_FIXNUM_MIN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (INT32_MIN>>MRB_FIXNUM_SHIFT)
    - item_type: preproc_def
      name: MRB_FIXNUM_MAX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (INT32_MAX>>MRB_FIXNUM_SHIFT)
    - item_type: preproc_def
      name: WORDBOX_FIXNUM_BIT_POS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WORDBOX_FIXNUM_SHIFT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: WORDBOX_FIXNUM_BIT_POS
    - item_type: preproc_def
      name: WORDBOX_FIXNUM_FLAG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (1 << (WORDBOX_FIXNUM_BIT_POS - 1))
    - item_type: preproc_def
      name: WORDBOX_FIXNUM_MASK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: ((1 << WORDBOX_FIXNUM_BIT_POS) - 1)
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_BIT_POS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_SHIFT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: WORDBOX_SYMBOL_BIT_POS
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_FLAG
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: (1 << (WORDBOX_SYMBOL_BIT_POS - 1))
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_MASK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: ((1 << WORDBOX_SYMBOL_BIT_POS) - 1)
    - item_type: preproc_def
      name: WORDBOX_FLOAT_FLAG
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WORDBOX_FLOAT_MASK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '3'
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_SHIFT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '32'
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_SHIFT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '5'
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_FLAG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '0x1c'
    - item_type: preproc_def
      name: WORDBOX_SYMBOL_MASK
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: WORDBOX_IMMEDIATE_MASK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
      type_or_value: '0x07'
    structs:
    - fields:
      - name: f
        type: mrb_float
      item_type: struct
      name: RFloat
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    - fields:
      - name: i
        type: mrb_int
      item_type: struct
      name: RInteger
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    - fields:
      - name: w
        type: uintptr_t
      item_type: struct
      name: mrb_value
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
    typedefs: []
    union:
    - fields:
      - name: '*p'
        type: void
      - name: '*bp'
        type: struct RBasic
      - name: '*ip'
        type: struct RInteger
      - name: '*vp'
        type: struct RCptr
      - name: w
        type: uintptr_t
      - name: value
        type: mrb_value
      item_type: union
      name: mrb_value_
      pos:
        line_end: 129
        line_start: 115
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_word.h
- function_names:
  - struct
  - mrb_hash_ptr
  - mrb_hash_value
  - RHASH
  - MRB_RHASH_DEFAULT_P
  - MRB_RHASH_PROCDEFAULT_P
  source_file: /src/h2o/deps/mruby/include/mruby/hash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_HASH_IB_BIT_BIT
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MRB_HASH_AR_EA_CAPA_BIT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MRB_HASH_IB_BIT_SHIFT
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_HASH_AR_EA_CAPA_SHIFT
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_HASH_AR_EA_N_USED_SHIFT
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: MRB_HASH_AR_EA_CAPA_BIT
    - item_type: preproc_def
      name: MRB_HASH_SIZE_FLAGS_SHIFT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: (MRB_HASH_AR_EA_CAPA_BIT * 2)
    - item_type: preproc_def
      name: MRB_HASH_IB_BIT_MASK
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: ((1 << MRB_HASH_IB_BIT_BIT) - 1)
    - item_type: preproc_def
      name: MRB_HASH_AR_EA_CAPA_MASK
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: ((1 << MRB_HASH_AR_EA_CAPA_BIT) - 1)
    - item_type: preproc_def
      name: MRB_HASH_AR_EA_N_USED_MASK
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: (MRB_HASH_AR_EA_CAPA_MASK << MRB_HASH_AR_EA_N_USED_SHIFT)
    - item_type: preproc_def
      name: MRB_HASH_DEFAULT
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 0))
    - item_type: preproc_def
      name: MRB_HASH_PROC_DEFAULT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 1))
    - item_type: preproc_def
      name: MRB_HASH_HT
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type_or_value: (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 2))
    structs: []
    typedefs:
    - item_type: typedef
      name: (mrb_hash_foreach_func)(mrb_state *mrb, mrb_value key, mrb_value val,
        void *data)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
      type: int
    union:
    - fields:
      - name: '*ea'
        type: struct hash_entry
      - name: '*ht'
        type: struct hash_table
      item_type: union
      name: hsh
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/deps/mruby/include/mruby/hash.h
- function_names:
  - mrb_irep_catch_handler_table
  source_file: /src/h2o/deps/mruby/include/mruby/internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_nan_boxing_value_float
  - SET_FLOAT_VALUE
  - mrb_float_p
  - mrb_nb_tt
  - mrb_type
  - NANBOX_SET_MISC_VALUE
  - mrb_float
  - mrb_fixnum
  - mrb_nan_boxing_value_int
  - mrb_integer
  - mrb_fixnum
  - mrb_integer
  - mrb_symbol
  - mrb_ptr
  - mrb_cptr
  - NANBOX_SET_VALUE
  - SET_NIL_VALUE
  - SET_FALSE_VALUE
  - SET_TRUE_VALUE
  - SET_BOOL_VALUE
  - SET_INT_VALUE
  - SET_INT_VALUE
  - SET_FIXNUM_VALUE
  - SET_SYM_VALUE
  - SET_OBJ_VALUE
  - SET_CPTR_VALUE
  - SET_UNDEF_VALUE
  - mrb_immediate_p
  - mrb_nil_p
  - mrb_false_p
  - mrb_fixnum_p
  source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
  types:
    enum:
    - enumerators:
      - name: MRB_NANBOX_TT_OBJECT
        value: '0'
      - name: MRB_NANBOX_TT_CPTR
        value: '3'
      - name: MRB_NANBOX_TT_INTEGER
        value: '1'
      - name: MRB_NANBOX_TT_MISC
        value: '2'
      item_type: enum
      name: mrb_nanbox_tt_inline
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    preproc_defs:
    - item_type: preproc_def
      name: MRB_FIXNUM_MIN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: MRB_FIXNUM_MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
      type_or_value: INT32_MAX
    structs:
    - fields:
      - name: u
        type: uint64_t
      item_type: struct
      name: mrb_value
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    - fields:
      - name: i
        type: mrb_int
      item_type: struct
      name: RInteger
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
    typedefs: []
    union:
    - fields:
      - name: f
        type: mrb_float
      - name: u
        type: uint64_t
      item_type: union
      name: x
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_nan.h
- function_names:
  - RSTR_SET_TYPE_FLAG
  - RSTR_UNSET_TYPE_FLAG
  - RSTR_EMBED_P
  - RSTR_SET_EMBED_FLAG
  - RSTR_UNSET_EMBED_FLAG
  - RSTR_SET_EMBED_LEN
  - RSTR_SET_LEN
  - RSTR_EMBED_PTR
  - RSTR_EMBED_LEN
  - RSTR_EMBEDDABLE_P
  - RSTR_PTR
  - RSTR_LEN
  - RSTR_CAPA
  - RSTR_SHARED_P
  - RSTR_SET_SHARED_FLAG
  - RSTR_UNSET_SHARED_FLAG
  - RSTR_FSHARED_P
  - RSTR_SET_FSHARED_FLAG
  - RSTR_UNSET_FSHARED_FLAG
  - RSTR_NOFREE_P
  - RSTR_SET_NOFREE_FLAG
  - RSTR_UNSET_NOFREE_FLAG
  - RSTR_ASCII_P
  - RSTR_SET_ASCII_FLAG
  - RSTR_UNSET_ASCII_FLAG
  - RSTR_WRITE_ASCII_FLAG
  - RSTR_COPY_ASCII_FLAG
  - RSTR_ASCII_P
  - RSTR_SET_ASCII_FLAG
  - RSTR_UNSET_ASCII_FLAG
  - RSTR_WRITE_ASCII_FLAG
  - RSTR_COPY_ASCII_FLAG
  - mrb_str_ptr
  - RSTRING
  - RSTRING_PTR
  - RSTRING_EMBED_LEN
  - RSTRING_LEN
  - RSTRING_CAPA
  - RSTRING_END
  - RSTRING_CSTR
  - mrb_str_index_lit
  - mrb_str_buf_new
  - mrb_string_value_ptr
  - mrb_string_value_len
  - mrb_str_strlen
  - mrb_str_to_inum
  - mrb_str_cat_lit
  - mrb_str_cat2
  - mrb_str_buf_cat
  - mrb_str_buf_append
  source_file: /src/h2o/deps/mruby/include/mruby/string.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSTRING_EMBED_LEN_MAX
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: ((mrb_int)(sizeof(void*) * 3 + sizeof(void*) - 32 / CHAR_BIT
        - 1))
    - item_type: preproc_def
      name: MRB_STR_SHARED
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRB_STR_FSHARED
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MRB_STR_NOFREE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MRB_STR_EMBED
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: MRB_STR_ASCII
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MRB_STR_EMBED_LEN_SHIFT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MRB_STR_EMBED_LEN_BIT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MRB_STR_EMBED_LEN_MASK
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: (((1 << MRB_STR_EMBED_LEN_BIT) - 1) << MRB_STR_EMBED_LEN_SHIFT)
    - item_type: preproc_def
      name: MRB_STR_TYPE_MASK
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
      type_or_value: '15'
    structs:
    - fields:
      - name: as
        type: "union {\n    struct {\n      mrb_ssize len;\n      union {\n        mrb_ssize
          capa;\n        struct mrb_shared_string *shared;\n        struct RString
          *fshared;\n      } aux;\n      char *ptr;\n    } heap;\n  }"
      item_type: struct
      name: RString
      pos:
        line_end: 34
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
    - fields:
      - name: ary[RSTRING_EMBED_LEN_MAX+1]
        type: char
      item_type: struct
      name: RStringEmbed
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/h2o/deps/mruby/include/mruby/string.h
    typedefs: []
    union: []
- function_names:
  - mrb_shared_array
  - mrb_ary_ptr
  - mrb_ary_value
  - RARRAY
  - ARY_EMBED_P
  - ARY_UNSET_EMBED_FLAG
  - ARY_EMBED_LEN
  - ARY_SET_EMBED_LEN
  - ARY_EMBED_PTR
  - ARY_EMBED_P
  - ARY_UNSET_EMBED_FLAG
  - ARY_EMBED_LEN
  - ARY_SET_EMBED_LEN
  - ARY_EMBED_PTR
  - ARY_LEN
  - ARY_PTR
  - RARRAY_LEN
  - RARRAY_PTR
  - ARY_SET_LEN
  - ARY_CAPA
  - ARY_SHARED_P
  - ARY_SET_SHARED_FLAG
  - ARY_UNSET_SHARED_FLAG
  - mrb_ary_ref
  source_file: /src/h2o/deps/mruby/include/mruby/array.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_ARY_EMBED_LEN_MAX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/array.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_ARY_EMBED_LEN_MAX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/array.h
      type_or_value: ((mrb_int)(sizeof(void*)*3/sizeof(mrb_value)))
    - item_type: preproc_def
      name: MRB_ARY_EMBED_MASK
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/include/mruby/array.h
      type_or_value: '7'
    - item_type: preproc_def
      name: MRB_ARY_SHARED
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/mruby/include/mruby/array.h
      type_or_value: '256'
    structs:
    - fields:
      - name: as
        type: "union {\n    struct {\n      mrb_ssize len;\n      union {\n        mrb_ssize
          capa;\n        mrb_shared_array *shared;\n      } aux;\n      mrb_value
          *ptr;\n    } heap;\n#ifndef MRB_ARY_NO_EMBED\n    mrb_value ary[MRB_ARY_EMBED_LEN_MAX];\n#endif\n
          \ }"
      item_type: struct
      name: RArray
      pos:
        line_end: 48
        line_start: 33
        source_file: /src/h2o/deps/mruby/include/mruby/array.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/re.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REGEXP_CLASS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/mruby/include/mruby/re.h
      type_or_value: '"Regexp"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/presym.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TYPED_POSFIXABLE
  - TYPED_NEGFIXABLE
  - TYPED_FIXABLE
  - POSFIXABLE
  - NEGFIXABLE
  - FIXABLE
  - FIXABLE_FLOAT
  - FIXABLE_FLOAT
  - mrb_num_plus
  - mrb_num_minus
  - mrb_fixnum_to_str
  - __has_builtin
  - mrb_int_add_overflow
  - mrb_int_sub_overflow
  - mrb_int_mul_overflow
  - mrb_int_add_overflow
  - mrb_int_sub_overflow
  - mrb_int_mul_overflow
  source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_INT_OVERFLOW_MASK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: ((mrb_uint)1 << (MRB_INT_BIT - 1))
    - item_type: preproc_def
      name: MRB_FLT_RADIX
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_RADIX
    - item_type: preproc_def
      name: MRB_FLT_MANT_DIG
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MANT_DIG
    - item_type: preproc_def
      name: MRB_FLT_EPSILON
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_EPSILON
    - item_type: preproc_def
      name: MRB_FLT_DIG
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_DIG
    - item_type: preproc_def
      name: MRB_FLT_MIN_EXP
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MIN_EXP
    - item_type: preproc_def
      name: MRB_FLT_MIN
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MIN
    - item_type: preproc_def
      name: MRB_FLT_MIN_10_EXP
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MIN_10_EXP
    - item_type: preproc_def
      name: MRB_FLT_MAX_EXP
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MAX_EXP
    - item_type: preproc_def
      name: MRB_FLT_MAX
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MAX
    - item_type: preproc_def
      name: MRB_FLT_MAX_10_EXP
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: FLT_MAX_10_EXP
    - item_type: preproc_def
      name: MRB_FLT_MANT_DIG
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MANT_DIG
    - item_type: preproc_def
      name: MRB_FLT_EPSILON
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_EPSILON
    - item_type: preproc_def
      name: MRB_FLT_DIG
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_DIG
    - item_type: preproc_def
      name: MRB_FLT_MIN_EXP
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MIN_EXP
    - item_type: preproc_def
      name: MRB_FLT_MIN
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MIN
    - item_type: preproc_def
      name: MRB_FLT_MIN_10_EXP
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MIN_10_EXP
    - item_type: preproc_def
      name: MRB_FLT_MAX_EXP
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MAX_EXP
    - item_type: preproc_def
      name: MRB_FLT_MAX
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MAX
    - item_type: preproc_def
      name: MRB_FLT_MAX_10_EXP
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/h2o/deps/mruby/include/mruby/numeric.h
      type_or_value: DBL_MAX_10_EXP
    structs: []
    typedefs: []
    union: []
- function_names:
  - MRB_FLAG_TEST
  - mrb_basic_ptr
  - MRB_FROZEN_P
  - MRB_SET_FROZEN_FLAG
  - MRB_UNSET_FROZEN_FLAG
  - mrb_frozen_p
  - mrb_obj_ptr
  - mrb_special_const_p
  - mrb_static_assert_object_size
  source_file: /src/h2o/deps/mruby/include/mruby/object.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_OBJECT_HEADER
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/h2o/deps/mruby/include/mruby/object.h
      type_or_value: "struct RClass *c;       \\\n  struct RBasic *gcnext;  \\\n  enum
        mrb_vtype tt:8;    \\\n  uint32_t color:3;       \\\n  uint32_t flags:21"
    - item_type: preproc_def
      name: MRB_FL_OBJ_IS_FROZEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/include/mruby/object.h
      type_or_value: (1 << 20)
    structs:
    - fields: []
      item_type: struct
      name: RBasic
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/h2o/deps/mruby/include/mruby/object.h
    - fields:
      - name: '*iv'
        type: struct iv_tbl
      item_type: struct
      name: RObject
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/object.h
    - fields:
      - name: '*cxt'
        type: struct mrb_context
      item_type: struct
      name: RFiber
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/h2o/deps/mruby/include/mruby/object.h
    typedefs: []
    union: []
- function_names:
  - mrb_data_type
  - Data_Wrap_Struct
  - Data_Make_Struct
  - RDATA
  - DATA_PTR
  - DATA_TYPE
  - DATA_GET_PTR
  - DATA_CHECK_GET_PTR
  - mrb_data_check_and_get
  - mrb_get_datatype
  - mrb_check_datatype
  - Data_Get_Struct
  - mrb_data_init
  source_file: /src/h2o/deps/mruby/include/mruby/data.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*iv'
        type: struct iv_tbl
      - name: '*type'
        type: mrb_data_type
      - name: '*data'
        type: void
      item_type: struct
      name: RData
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/data.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/debug.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start_pos
        type: uint32_t
      - name: line
        type: uint16_t
      item_type: struct
      name: mrb_irep_debug_info_line
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/h2o/deps/mruby/include/mruby/debug.h
    - fields:
      - name: start_pos
        type: uint32_t
      - name: filename_sym
        type: mrb_sym
      - name: line_entry_count
        type: uint32_t
      - name: line_type
        type: mrb_debug_line_type
      - name: lines
        type: "union {\n    const char *s;\n    void *ptr;\n    const uint16_t *ary;\n
          \   const mrb_irep_debug_info_line *flat_map;\n    const uint8_t *packed_map;\n
          \ }"
      item_type: struct
      name: mrb_irep_debug_info_file
      pos:
        line_end: 39
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/debug.h
    - fields:
      - name: pc_count
        type: uint32_t
      - name: flen
        type: uint16_t
      - name: '**files'
        type: mrb_irep_debug_info_file
      item_type: struct
      name: mrb_irep_debug_info
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/h2o/deps/mruby/include/mruby/debug.h
    typedefs: []
    union: []
- function_names:
  - struct
  - MRB_ENV_SET_LEN
  - MRB_ENV_LEN
  - MRB_ENV_CLOSE
  - MRB_ENV_TOUCH
  - MRB_ENV_HEAP
  - MRB_ENV_HEAP_P
  - MRB_ENV_ONSTACK_P
  - MRB_ENV_BIDX
  - MRB_ENV_SET_BIDX
  - MRB_ASPEC_REQ
  - MRB_ASPEC_OPT
  - MRB_ASPEC_REST
  - MRB_ASPEC_POST
  - MRB_ASPEC_KEY
  - MRB_ASPEC_KDICT
  - MRB_ASPEC_BLOCK
  - MRB_PROC_CFUNC_P
  - MRB_PROC_CFUNC
  - MRB_PROC_STRICT_P
  - MRB_PROC_ORPHAN_P
  - MRB_PROC_ENV_P
  - MRB_PROC_ENV
  - MRB_PROC_TARGET_CLASS
  - MRB_PROC_SET_TARGET_CLASS
  - MRB_PROC_SCOPE_P
  - MRB_PROC_NOARG_P
  - mrb_proc_ptr
  - mrb_cfunc_env_get
  - MRB_METHOD_FUNC_P
  - MRB_METHOD_NOARG_P
  - MRB_METHOD_NOARG_SET
  - MRB_METHOD_FUNC
  - MRB_METHOD_FROM_FUNC
  - MRB_METHOD_FROM_PROC
  - MRB_METHOD_PROC_P
  - MRB_METHOD_PROC
  - MRB_METHOD_UNDEF_P
  - MRB_METHOD_FUNC_P
  - MRB_METHOD_NOARG_P
  - MRB_METHOD_FUNC
  - MRB_METHOD_NOARG_SET
  - MRB_METHOD_FROM_FUNC
  - MRB_METHOD_FROM_PROC
  - MRB_METHOD_PROC_P
  - MRB_METHOD_PROC
  - MRB_METHOD_UNDEF_P
  - MRB_METHOD_CFUNC_P
  - MRB_METHOD_CFUNC
  source_file: /src/h2o/deps/mruby/include/mruby/proc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_ENV_CLOSED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: MRB_ENV_TOUCHED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: (1<<19)
    - item_type: preproc_def
      name: MRB_ENV_HEAPED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: MRB_PROC_CFUNC_FL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MRB_PROC_STRICT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MRB_PROC_ORPHAN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MRB_PROC_ENVSET
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MRB_PROC_SCOPE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MRB_PROC_NOARG
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '4096 '
    - item_type: preproc_def
      name: MRB_METHOD_FUNC_FL
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRB_METHOD_NOARG_FL
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
      type_or_value: '2'
    structs:
    - fields:
      - name: body
        type: "union {\n    const mrb_irep *irep;\n    mrb_func_t func;\n  }"
      - name: '*upper'
        type: struct RProc
      - name: e
        type: "union {\n    struct RClass *target_class;\n    struct REnv *env;\n
          \ }"
      item_type: struct
      name: RProc
      pos:
        line_end: 51
        line_start: 40
        source_file: /src/h2o/deps/mruby/include/mruby/proc.h
    typedefs: []
    union: []
- function_names:
  - MRB_ENDIAN_LOHI
  - MRB_ENDIAN_LOHI
  - vsnprintf
  - snprintf
  - isfinite
  - isinf
  - signbit
  - MRB_VTYPE_FOREACH
  - MRB_VTYPE_TYPEOF
  - MRB_VTYPE_TYPEDEF
  - mrb_immediate_p
  - mrb_integer_p
  - mrb_fixnum_p
  - mrb_symbol_p
  - mrb_undef_p
  - mrb_nil_p
  - mrb_false_p
  - mrb_true_p
  - mrb_float_p
  - mrb_array_p
  - mrb_string_p
  - mrb_hash_p
  - mrb_cptr_p
  - mrb_exception_p
  - mrb_free_p
  - mrb_object_p
  - mrb_class_p
  - mrb_module_p
  - mrb_iclass_p
  - mrb_sclass_p
  - mrb_proc_p
  - mrb_range_p
  - mrb_env_p
  - mrb_data_p
  - mrb_fiber_p
  - mrb_istruct_p
  - mrb_break_p
  - mrb_bool
  - mrb_test
  - mrb_bigint_p
  - mrb_float_value
  - mrb_cptr_value
  - mrb_int_value
  - mrb_fixnum_value
  - mrb_symbol_value
  - mrb_obj_value
  - mrb_nil_value
  - mrb_false_value
  - mrb_true_value
  - mrb_bool_value
  - mrb_undef_value
  - mrb_ro_data_p
  - mrb_ro_data_p
  - mrb_ro_data_p
  source_file: /src/h2o/deps/mruby/include/mruby/value.h
  types:
    enum:
    - enumerators:
      - name: MRB_TT_MAXDEFINE
      item_type: enum
      name: mrb_vtype
      pos:
        line_end: 164
        line_start: 159
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
    preproc_defs:
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PRIo64
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"llo"'
    - item_type: preproc_def
      name: PRId64
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PRIu64
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: PRIx64
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"llx"'
    - item_type: preproc_def
      name: PRIo16
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"ho"'
    - item_type: preproc_def
      name: PRId16
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"hd"'
    - item_type: preproc_def
      name: PRIu16
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"hu"'
    - item_type: preproc_def
      name: PRIx16
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"hx"'
    - item_type: preproc_def
      name: PRIo32
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"o"'
    - item_type: preproc_def
      name: PRId32
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: PRIu32
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: PRIx32
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '"x"'
    - item_type: preproc_def
      name: MRB_INT_BIT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MRB_INT_MIN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: MRB_INT_MAX
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: MRB_PRIo
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRIo64
    - item_type: preproc_def
      name: MRB_PRId
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRId64
    - item_type: preproc_def
      name: MRB_PRIx
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: MRB_INT_BIT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MRB_INT_MIN
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: MRB_INT_MAX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: MRB_PRIo
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRIo32
    - item_type: preproc_def
      name: MRB_PRId
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRId32
    - item_type: preproc_def
      name: MRB_PRIx
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: isnan
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: _isnan
    - item_type: preproc_def
      name: INFINITY
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: (*(float *)&IEEE754_INFINITY_BITS_SINGLE)
    - item_type: preproc_def
      name: NAN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: ((float)(INFINITY - INFINITY))
    - item_type: preproc_def
      name: MRB_TT_FIXNUM
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: MRB_TT_INTEGER
    - item_type: preproc_def
      name: MRB_SSIZE_MAX
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: INTPTR_MAX
    - item_type: preproc_def
      name: MRB_SSIZE_MAX
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type_or_value: MRB_INT_MAX
    structs:
    - fields:
      - name: '*p'
        type: void
      item_type: struct
      name: RCptr
      pos:
        line_end: 197
        line_start: 194
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
    typedefs:
    - item_type: typedef
      name: mrb_bool
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: bool
    - item_type: typedef
      name: mrb_bool
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: _Bool
    - item_type: typedef
      name: mrb_bool
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: uint8_t
    - item_type: typedef
      name: mrb_int
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: int64_t
    - item_type: typedef
      name: mrb_uint
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: uint64_t
    - item_type: typedef
      name: mrb_int
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: int32_t
    - item_type: typedef
      name: mrb_uint
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: uint32_t
    - item_type: typedef
      name: mrb_float
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: float
    - item_type: typedef
      name: mrb_float
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: double
    - item_type: typedef
      name: mrb_value
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: void
    - item_type: typedef
      name: mrb_ssize
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: intptr_t
    - item_type: typedef
      name: mrb_ssize
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/h2o/deps/mruby/include/mruby/value.h
      type: mrb_int
    union: []
- function_names:
  - mrb_ptr
  - mrb_cptr
  - mrb_float
  - mrb_fixnum
  - mrb_integer
  - mrb_symbol
  - mrb_type
  - BOXNIX_SET_VALUE
  - SET_NIL_VALUE
  - SET_FALSE_VALUE
  - SET_TRUE_VALUE
  - SET_BOOL_VALUE
  - SET_INT_VALUE
  - SET_FIXNUM_VALUE
  - SET_FLOAT_VALUE
  - SET_SYM_VALUE
  - SET_OBJ_VALUE
  - SET_CPTR_VALUE
  - SET_UNDEF_VALUE
  source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_FIXNUM_SHIFT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_SYMBOL_SHIFT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_FIXNUM_MIN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
      type_or_value: MRB_INT_MIN
    - item_type: preproc_def
      name: MRB_FIXNUM_MAX
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
      type_or_value: MRB_INT_MAX
    structs:
    - fields:
      - name: value
        type: union mrb_value_union
      - name: tt
        type: enum mrb_vtype
      item_type: struct
      name: mrb_value
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
    typedefs: []
    union:
    - fields:
      - name: '*p'
        type: void
      - name: i
        type: mrb_int
      - name: sym
        type: mrb_sym
      item_type: union
      name: mrb_value_union
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/h2o/deps/mruby/include/mruby/boxing_no.h
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_BEGIN_DECL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: extern "C" {
    - item_type: preproc_def
      name: MRB_END_DECL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: '}'
    - item_type: preproc_def
      name: mrb_noreturn
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: _Noreturn
    - item_type: preproc_def
      name: mrb_noreturn
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: mrb_noreturn
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: mrb_deprecated
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __attribute__((deprecated))
    - item_type: preproc_def
      name: mrb_deprecated
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __declspec(deprecated)
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __inline
    - item_type: preproc_def
      name: MRB_INLINE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: static inline
    - item_type: preproc_def
      name: MRB_API
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: MRB_API
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: MRB_API
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: extern
    - item_type: preproc_def
      name: MRB_MINGW64_VERSION
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: (__MINGW64_VERSION_MAJOR * 1000 + __MINGW64_VERSION_MINOR)
    - item_type: preproc_def
      name: MRB_MINGW32_VERSION
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type_or_value: (__MINGW32_MAJOR_VERSION * 1000 + __MINGW32_MINOR_VERSION)
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/mruby/include/mruby/common.h
      type: SSIZE_T
    union: []
- function_names:
  - check_little_endian
  source_file: /src/h2o/deps/mruby/include/mruby/endian.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTE_ORDER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: __BYTE_ORDER__
    - item_type: preproc_def
      name: BIG_ENDIAN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: __ORDER_BIG_ENDIAN__
    - item_type: preproc_def
      name: LITTLE_ENDIAN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: __ORDER_LITTLE_ENDIAN__
    - item_type: preproc_def
      name: littleendian
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: '0'
    - item_type: preproc_def
      name: littleendian
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: '1'
    - item_type: preproc_def
      name: littleendian
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/include/mruby/endian.h
      type_or_value: check_little_endian()
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_irep_catch_handler_pack
  - mrb_irep_catch_handler_unpack
  source_file: /src/h2o/deps/mruby/include/mruby/irep.h
  types:
    enum:
    - enumerators:
      - name: MRB_CATCH_RESCUE
        value: '0'
      - name: MRB_CATCH_ENSURE
        value: '1'
      item_type: enum
      name: mrb_catch_type
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
    preproc_defs:
    - item_type: preproc_def
      name: IREP_TT_NFLAG
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: IREP_TT_SFLAG
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: MRB_ISEQ_NO_FREE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRB_IREP_NO_FREE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MRB_IREP_STATIC
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
      type_or_value: (MRB_ISEQ_NO_FREE | MRB_IREP_NO_FREE)
    structs:
    - fields:
      - name: tt
        type: uint32_t
      - name: u
        type: "union {\n    const char *str;\n    int32_t i32;\n    int64_t i64;\n#ifndef
          MRB_NO_FLOAT\n    mrb_float f;\n#endif\n  }"
      item_type: struct
      name: mrb_pool_value
      pos:
        line_end: 39
        line_start: 29
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
    - fields:
      - name: type
        type: uint8_t
      - name: begin[4]
        type: uint8_t
      - name: end[4]
        type: uint8_t
      - name: target[4]
        type: uint8_t
      item_type: struct
      name: mrb_irep_catch_handler
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
    - fields:
      - name: nlocals
        type: uint16_t
      - name: nregs
        type: uint16_t
      - name: clen
        type: uint16_t
      - name: flags
        type: uint8_t
      - name: '*iseq'
        type: mrb_code
      - name: '*pool'
        type: mrb_pool_value
      - name: '*syms'
        type: mrb_sym
      - name: '* const *reps'
        type: struct mrb_irep
      - name: '*lv'
        type: mrb_sym
      - name: '* debug_info'
        type: struct mrb_irep_debug_info
      - name: ilen
        type: uint32_t
      - name: plen
        type: uint16_t
      - name: rlen
        type: uint16_t
      - name: refcnt
        type: uint16_t
      item_type: struct
      name: mrb_irep
      pos:
        line_end: 78
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
    - fields:
      - name: insn
        type: uint8_t
      - name: a
        type: uint16_t
      - name: b
        type: uint16_t
      - name: c
        type: uint16_t
      - name: '*addr'
        type: mrb_code
      item_type: struct
      name: mrb_insn_data
      pos:
        line_end: 120
        line_start: 114
        source_file: /src/h2o/deps/mruby/include/mruby/irep.h
    typedefs: []
    union: []
- function_names:
  - PEEK_B
  - PEEK_S
  - PEEK_W
  - READ_B
  - READ_S
  - READ_W
  - FETCH_B
  - FETCH_BB
  - FETCH_BBB
  - FETCH_BS
  - FETCH_BSS
  - FETCH_S
  - FETCH_W
  - FETCH_Z_1
  - FETCH_B_1
  - FETCH_BB_1
  - FETCH_BBB_1
  - FETCH_BS_1
  - FETCH_BSS_1
  - FETCH_S_1
  - FETCH_W_1
  - FETCH_Z_2
  - FETCH_B_2
  - FETCH_BB_2
  - FETCH_BBB_2
  - FETCH_BS_2
  - FETCH_BSS_2
  - FETCH_S_2
  - FETCH_W_2
  - FETCH_Z_3
  - FETCH_B_3
  - FETCH_BB_3
  - FETCH_BBB_3
  - FETCH_BS_3
  - FETCH_BSS_3
  - FETCH_S_3
  - FETCH_W_3
  source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OP_L_STRICT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_L_CAPTURE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OP_L_METHOD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: OP_L_STRICT
    - item_type: preproc_def
      name: OP_L_LAMBDA
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: (OP_L_STRICT|OP_L_CAPTURE)
    - item_type: preproc_def
      name: OP_L_BLOCK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: OP_L_CAPTURE
    - item_type: preproc_def
      name: OP_R_NORMAL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OP_R_BREAK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_R_RETURN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/include/mruby/opcode.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RException
  - mrb_exc_ptr
  - mrb_exc_new_lit
  - mrb_break_value_get
  - mrb_break_value_set
  - mrb_break_value_get
  - mrb_break_value_set
  - mrb_break_proc_get
  - mrb_break_proc_set
  - RBREAK_TAG_FOREACH
  - RBREAK_TAG_DEFINE
  - mrb_break_tag_get
  - mrb_break_tag_set
  source_file: /src/h2o/deps/mruby/include/mruby/error.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RBREAK_VALUE_TT_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
      type_or_value: ((1 << 8) - 1)
    - item_type: preproc_def
      name: RBREAK_TAG_BIT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
      type_or_value: '3'
    - item_type: preproc_def
      name: RBREAK_TAG_BIT_OFF
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
      type_or_value: '8'
    - item_type: preproc_def
      name: RBREAK_TAG_MASK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
      type_or_value: (~(~UINT32_C(0) << RBREAK_TAG_BIT))
    structs:
    - fields:
      - name: '*proc'
        type: struct RProc
      - name: val
        type: mrb_value
      item_type: struct
      name: RBreak
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
    - fields:
      - name: '*proc'
        type: struct RProc
      - name: value
        type: union mrb_value_union
      item_type: struct
      name: RBreak
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
    typedefs:
    - item_type: typedef
      name: mrb_protect_error_func(mrb_state *mrb, void *userdata)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/h2o/deps/mruby/include/mruby/error.h
      type: mrb_value
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/ops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_gc_free_range
  - RANGE_BEG
  - RANGE_END
  - mrb_gc_free_range
  - RANGE_BEG
  - RANGE_END
  - mrb_range_beg
  - mrb_range_end
  - mrb_range_excl_p
  - mrb_range_raw_ptr
  - mrb_range_value
  - RANGE_EXCL
  source_file: /src/h2o/deps/mruby/include/mruby/range.h
  types:
    enum:
    - enumerators:
      - name: MRB_RANGE_TYPE_MISMATCH
        value: '0'
      - name: MRB_RANGE_OK
        value: '1'
      - name: MRB_RANGE_OUT
        value: '2'
      item_type: enum
      name: mrb_range_beg_len
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/h2o/deps/mruby/include/mruby/range.h
    preproc_defs: []
    structs:
    - fields:
      - name: beg
        type: mrb_value
      - name: end
        type: mrb_value
      - name: excl
        type: mrb_bool
      item_type: struct
      name: RRange
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/range.h
    - fields:
      - name: beg
        type: mrb_value
      - name: end
        type: mrb_value
      item_type: struct
      name: mrb_range_edges
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/h2o/deps/mruby/include/mruby/range.h
    - fields:
      - name: '*edges'
        type: mrb_range_edges
      - name: excl
        type: mrb_bool
      item_type: struct
      name: RRange
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/h2o/deps/mruby/include/mruby/range.h
    typedefs: []
    union: []
- function_names:
  - uint8_to_bin
  - uint16_to_bin
  - uint32_to_bin
  - bin_to_uint32
  - bin_to_uint16
  - bin_to_uint8
  source_file: /src/h2o/deps/mruby/include/mruby/dump.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_DUMP_DEBUG_INFO
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRB_DUMP_STATIC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DUMP_DEBUG_INFO
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: 'MRB_DUMP_DEBUG_INFO  '
    - item_type: preproc_def
      name: MRB_DUMP_OK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_DUMP_GENERAL_FAILURE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: MRB_DUMP_WRITE_FAULT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: MRB_DUMP_READ_FAULT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: MRB_DUMP_INVALID_FILE_HEADER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: MRB_DUMP_INVALID_IREP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: MRB_DUMP_INVALID_ARGUMENT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: (-6)
    - item_type: preproc_def
      name: MRB_DUMP_NULL_SYM_LEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: RITE_BINARY_IDENT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"RITE"'
    - item_type: preproc_def
      name: RITE_BINARY_MAJOR_VER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"03"'
    - item_type: preproc_def
      name: RITE_BINARY_MINOR_VER
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"00"'
    - item_type: preproc_def
      name: RITE_BINARY_FORMAT_VER
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: RITE_BINARY_MAJOR_VER RITE_BINARY_MINOR_VER
    - item_type: preproc_def
      name: RITE_COMPILER_NAME
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"MATZ"'
    - item_type: preproc_def
      name: RITE_COMPILER_VERSION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"0000"'
    - item_type: preproc_def
      name: RITE_VM_VER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"0300"'
    - item_type: preproc_def
      name: RITE_BINARY_EOF
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"END\0"'
    - item_type: preproc_def
      name: RITE_SECTION_IREP_IDENT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"IREP"'
    - item_type: preproc_def
      name: RITE_SECTION_DEBUG_IDENT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"DBG\0"'
    - item_type: preproc_def
      name: RITE_SECTION_LV_IDENT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '"LVAR"'
    - item_type: preproc_def
      name: MRB_DUMP_DEFAULT_STR_LEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MRB_DUMP_ALIGNMENT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: sizeof(uint32_t)
    - item_type: preproc_def
      name: RITE_SECTION_HEADER
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: "uint8_t section_ident[4]; \\\n  uint8_t section_size[4]"
    - item_type: preproc_def
      name: RITE_LV_NULL_MARK
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
      type_or_value: UINT16_MAX
    structs:
    - fields:
      - name: binary_ident[4]
        type: uint8_t
      - name: major_version[2]
        type: uint8_t
      - name: minor_version[2]
        type: uint8_t
      - name: binary_size[4]
        type: uint8_t
      - name: compiler_name[4]
        type: uint8_t
      - name: compiler_version[4]
        type: uint8_t
      item_type: struct
      name: rite_binary_header
      pos:
        line_end: 78
        line_start: 71
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    - fields: []
      item_type: struct
      name: rite_section_header
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    - fields:
      - name: rite_version[4]
        type: uint8_t
      item_type: struct
      name: rite_section_irep_header
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    - fields: []
      item_type: struct
      name: rite_section_debug_header
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    - fields: []
      item_type: struct
      name: rite_section_lv_header
      pos:
        line_end: 101
        line_start: 99
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    - fields: []
      item_type: struct
      name: rite_binary_footer
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/h2o/deps/mruby/include/mruby/dump.h
    typedefs: []
    union: []
- function_names:
  - RISTRUCT
  - ISTRUCT_PTR
  - mrb_istruct_size
  - mrb_istruct_ptr
  - mrb_istruct_copy
  source_file: /src/h2o/deps/mruby/include/mruby/istruct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISTRUCT_DATA_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/include/mruby/istruct.h
      type_or_value: (sizeof(void*) * 3)
    structs:
    - fields: []
      item_type: struct
      name: RIStruct
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/istruct.h
    typedefs: []
    union: []
- function_names:
  - struct
  - mrb_class_ptr
  - mrb_class
  - MRB_CLASS_ORIGIN
  - MRB_SET_INSTANCE_TT
  - MRB_INSTANCE_TT
  source_file: /src/h2o/deps/mruby/include/mruby/class.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_FL_CLASS_IS_PREPENDED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/include/mruby/class.h
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: MRB_FL_CLASS_IS_ORIGIN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/include/mruby/class.h
      type_or_value: (1 << 18)
    - item_type: preproc_def
      name: MRB_FL_CLASS_IS_INHERITED
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/mruby/include/mruby/class.h
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: MRB_INSTANCE_TT_MASK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/mruby/include/mruby/class.h
      type_or_value: (0xFF)
    structs: []
    typedefs:
    - item_type: typedef
      name: (mrb_mt_foreach_func)(mrb_state*,mrb_sym,mrb_method_t,void*)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/h2o/deps/mruby/include/mruby/class.h
      type: int
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/include/mruby/gc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_EACH_OBJ_OK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MRB_EACH_OBJ_BREAK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MRB_GC_ARENA_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
      type_or_value: '100'
    - item_type: preproc_def
      name: MRB_GC_RED
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
      type_or_value: '7'
    structs:
    - fields:
      - name: '*freelist'
        type: struct RBasic
      - name: '*prev'
        type: struct mrb_heap_page
      - name: '*next'
        type: struct mrb_heap_page
      - name: '*free_next'
        type: struct mrb_heap_page
      - name: '*free_prev'
        type: struct mrb_heap_page
      - name: old
        type: mrb_bool
      - name: '*objects[]'
        type: void
      item_type: struct
      name: mrb_heap_page
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
    - fields:
      - name: '*heaps'
        type: mrb_heap_page
      - name: '*sweeps'
        type: mrb_heap_page
      - name: '*free_heaps'
        type: mrb_heap_page
      - name: live
        type: size_t
      - name: arena_idx
        type: int
      - name: state
        type: mrb_gc_state
      - name: current_white_part
        type: int
      - name: '*gray_list'
        type: struct RBasic
      - name: '*atomic_gray_list'
        type: struct RBasic
      - name: live_after_mark
        type: size_t
      - name: threshold
        type: size_t
      - name: interval_ratio
        type: int
      - name: step_ratio
        type: int
      - name: iterating
        type: mrb_bool
      - name: disabled
        type: mrb_bool
      - name: full
        type: mrb_bool
      - name: generational
        type: mrb_bool
      - name: out_of_memory
        type: mrb_bool
      - name: majorgc_old_threshold
        type: size_t
      item_type: struct
      name: mrb_gc
      pos:
        line_end: 84
        line_start: 57
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
    typedefs:
    - item_type: typedef
      name: (mrb_each_object_callback)(struct mrb_state *mrb, struct RBasic *obj,
        void *data)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/h2o/deps/mruby/include/mruby/gc.h
      type: int
    union: []
- function_names:
  - MRB_PRESYM_SCANNING_TAGGED
  - mrb_intern_lit
  - mrb_intern_cstr
  - mrb_define_method
  - mrb_define_class_method
  - mrb_define_singleton_method
  - mrb_define_class
  - mrb_define_class_under
  - mrb_define_module
  - mrb_define_module_under
  - mrb_define_module_function
  - mrb_define_const
  - mrb_define_global_const
  - mrb_define_alias
  - mrb_class_get
  - mrb_class_get_under
  - mrb_module_get
  - mrb_module_get_under
  - mrb_funcall
  - MRB_OPSYM
  - MRB_CVSYM
  - MRB_IVSYM
  - MRB_SYM_B
  - MRB_SYM_Q
  - MRB_SYM_E
  - MRB_SYM
  - MRB_OPSYM_2
  - MRB_CVSYM_2
  - MRB_IVSYM_2
  - MRB_SYM_B_2
  - MRB_SYM_Q_2
  - MRB_SYM_E_2
  - MRB_SYM_2
  - MRB_OPSYM__not
  - MRB_OPSYM__mod
  - MRB_OPSYM__and
  - MRB_OPSYM__mul
  - MRB_OPSYM__add
  - MRB_OPSYM__sub
  - MRB_OPSYM__div
  - MRB_OPSYM__lt
  - MRB_OPSYM__gt
  - MRB_OPSYM__xor
  - MRB_OPSYM__tick
  - MRB_OPSYM__or
  - MRB_OPSYM__neg
  - MRB_OPSYM__neq
  - MRB_OPSYM__nmatch
  - MRB_OPSYM__andand
  - MRB_OPSYM__pow
  - MRB_OPSYM__plus
  - MRB_OPSYM__minus
  - MRB_OPSYM__lshift
  - MRB_OPSYM__le
  - MRB_OPSYM__eq
  - MRB_OPSYM__match
  - MRB_OPSYM__ge
  - MRB_OPSYM__rshift
  - MRB_OPSYM__aref
  - MRB_OPSYM__oror
  - MRB_OPSYM__cmp
  - MRB_OPSYM__eqq
  - MRB_OPSYM__aset
  source_file: /src/h2o/deps/mruby/include/mruby/presym/scanning.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MRB_OPSYM
  - MRB_CVSYM
  - MRB_IVSYM
  - MRB_SYM_B
  - MRB_SYM_Q
  - MRB_SYM_E
  - MRB_SYM
  - MRB_OPSYM_2
  - MRB_CVSYM_2
  - MRB_IVSYM_2
  - MRB_SYM_B_2
  - MRB_SYM_Q_2
  - MRB_SYM_E_2
  - MRB_SYM_2
  - MRB_OPSYM__not
  - MRB_OPSYM__mod
  - MRB_OPSYM__and
  - MRB_OPSYM__mul
  - MRB_OPSYM__add
  - MRB_OPSYM__sub
  - MRB_OPSYM__div
  - MRB_OPSYM__lt
  - MRB_OPSYM__gt
  - MRB_OPSYM__xor
  - MRB_OPSYM__tick
  - MRB_OPSYM__or
  - MRB_OPSYM__neg
  - MRB_OPSYM__neq
  - MRB_OPSYM__nmatch
  - MRB_OPSYM__andand
  - MRB_OPSYM__pow
  - MRB_OPSYM__plus
  - MRB_OPSYM__minus
  - MRB_OPSYM__lshift
  - MRB_OPSYM__le
  - MRB_OPSYM__eq
  - MRB_OPSYM__match
  - MRB_OPSYM__ge
  - MRB_OPSYM__rshift
  - MRB_OPSYM__aref
  - MRB_OPSYM__oror
  - MRB_OPSYM__cmp
  - MRB_OPSYM__eqq
  - MRB_OPSYM__aset
  - MRB_PRESYM_DEFINE_VAR_AND_INITER
  - MRB_PRESYM_INIT_SYMBOLS
  source_file: /src/h2o/deps/mruby/include/mruby/presym/disable.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_PRESYM_MAX
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/mruby/include/mruby/presym/disable.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MRB_OPSYM
  - MRB_CVSYM
  - MRB_IVSYM
  - MRB_SYM_B
  - MRB_SYM_Q
  - MRB_SYM_E
  - MRB_SYM
  - MRB_OPSYM_2
  - MRB_CVSYM_2
  - MRB_IVSYM_2
  - MRB_SYM_B_2
  - MRB_SYM_Q_2
  - MRB_SYM_E_2
  - MRB_SYM_2
  - MRB_PRESYM_DEFINE_VAR_AND_INITER
  - MRB_PRESYM_INIT_SYMBOLS
  - MRB_ERROR_SYM
  source_file: /src/h2o/deps/mruby/include/mruby/presym/enable.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_c_extension_example_gem_test
  source_file: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/test/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_c_method
  - mrb_c_extension_example_gem_init
  - mrb_c_extension_example_gem_final
  source_file: /src/h2o/deps/mruby/examples/mrbgems/c_extension_example/src/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_c_method
  - mrb_c_and_ruby_extension_example_gem_init
  - mrb_c_and_ruby_extension_example_gem_final
  source_file: /src/h2o/deps/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - INT_OVERFLOW_P
  - UINT_OVERFLOW_P
  - hex2int
  - make_base64_dec_tab
  - str_len_ensure
  - pack_char
  - unpack_char
  - pack_short
  - unpack_short
  - pack_long
  - u32tostr
  - unpack_long
  - pack_quad
  - u64tostr
  - i64tostr
  - unpack_quad
  - pack_BER
  - unpack_BER
  - pack_double
  - unpack_double
  - pack_float
  - unpack_float
  - pack_utf8
  - utf8_to_uv
  - unpack_utf8
  - pack_str
  - unpack_str
  - pack_hex
  - unpack_hex
  - pack_base64
  - unpack_base64
  - pack_qenc
  - unpack_qenc
  - pack_nul
  - check_x
  - prepare_tmpl
  - has_tmpl
  - read_tmpl
  - mrb_pack_pack
  - pack_unpack
  - mrb_pack_unpack
  - mrb_pack_unpack1
  - mrb_mruby_pack_gem_init
  - mrb_mruby_pack_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
  types:
    enum:
    - enumerators:
      - name: PACK_DIR_CHAR
      - name: PACK_DIR_SHORT
      - name: PACK_DIR_LONG
      - name: PACK_DIR_QUAD
      - name: PACK_DIR_BER
      - name: PACK_DIR_UTF8
      - name: PACK_DIR_DOUBLE
      - name: PACK_DIR_FLOAT
      - name: PACK_DIR_STR
      - name: PACK_DIR_HEX
      - name: PACK_DIR_BASE64
      - name: PACK_DIR_QENC
      - name: PACK_DIR_NUL
      - name: PACK_DIR_BACK
      - name: PACK_DIR_INVALID
      - name: PACK_DIR_ABS
      item_type: enum
      name: pack_dir
      pos:
        line_end: 49
        line_start: 29
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    - enumerators:
      - name: PACK_TYPE_INTEGER
      - name: PACK_TYPE_FLOAT
      - name: PACK_TYPE_NONE
      - name: PACK_TYPE_STRING
      item_type: enum
      name: pack_type
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    preproc_defs:
    - item_type: preproc_def
      name: EOF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '(-1) '
    - item_type: preproc_def
      name: PACK_FLAG_s
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PACK_FLAG_a
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: PACK_FLAG_Z
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: PACK_FLAG_SIGNED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: PACK_FLAG_GT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: PACK_FLAG_LT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PACK_FLAG_WIDTH
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PACK_FLAG_LSB
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PACK_FLAG_COUNT2
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000100      '
    - item_type: preproc_def
      name: PACK_FLAG_LITTLEENDIAN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: PACK_BASE64_IGNORE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: PACK_BASE64_PADDING
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
      type_or_value: '0xfe'
    structs:
    - fields:
      - name: str
        type: mrb_value
      - name: idx
        type: int
      item_type: struct
      name: tmpl
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-pack/src/pack.c
    typedefs: []
    union: []
- function_names:
  - mrb_f_nil
  - mrb_obj_ivar_defined
  - mrb_obj_ivar_get
  - mrb_obj_ivar_set
  - mrb_local_variables
  - method_entry_i
  - method_entry_loop
  - mrb_class_instance_method_list
  - mrb_obj_methods
  - mrb_obj_methods_m
  - mrb_obj_private_methods
  - mrb_obj_protected_methods
  - mrb_obj_public_methods
  - mrb_obj_singleton_methods
  - mrb_obj_singleton_methods_m
  - mod_define_singleton_method
  - cv_name_p
  - check_cv_name_sym
  - mrb_mod_remove_cvar
  - mrb_mod_cvar_defined
  - mrb_mod_cvar_get
  - mrb_mod_cvar_set
  - mrb_mod_included_modules
  - mrb_mod_instance_methods
  - undefined_method_i
  - mrb_mod_undefined_methods
  - mrb_mod_remove_method
  - mrb_mod_s_constants
  - mrb_mod_s_nesting
  - mrb_mruby_metaprog_gem_init
  - mrb_mruby_metaprog_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-metaprog/src/metaprog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nil_to_a
  - nil_to_f
  - nil_to_h
  - nil_to_i
  - mrb_f_itself
  - mrb_obj_instance_exec
  - mrb_mruby_object_ext_gem_init
  - mrb_mruby_object_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-object-ext/src/object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proc_in_c
  - mrb_mruby_proc_binding_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/test/proc-binding.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_proc_binding
  - mrb_mruby_proc_binding_gem_init
  - mrb_mruby_proc_binding_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-proc-binding/src/proc-binding.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - os_memsize_of_irep
  - os_memsize_of_method
  - obj_is_kind_of_checked
  - os_memsize_of_object
  - os_memsize_of
  - os_memsize_of_all_cb
  - os_memsize_of_all
  - mrb_mruby_os_memsize_gem_init
  - mrb_mruby_os_memsize_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: t
        type: size_t
      - name: '*type'
        type: struct RClass
      item_type: struct
      name: os_memsize_of_all_cb_data
      pos:
        line_end: 201
        line_start: 198
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-os-memsize/src/memsize.c
    typedefs: []
    union: []
- function_names:
  - os_count_object_type
  - os_count_objects
  - COUNT_TYPE
  - os_each_object_cb
  - os_each_object
  - mrb_mruby_objectspace_gem_init
  - mrb_mruby_objectspace_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total
        type: mrb_int
      - name: freed
        type: mrb_int
      - name: counts[MRB_TT_MAXDEFINE+1]
        type: mrb_int
      item_type: struct
      name: os_count_struct
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    - fields:
      - name: '*target_module'
        type: struct RClass
      - name: count
        type: mrb_int
      - name: block
        type: mrb_value
      item_type: struct
      name: os_each_object_data
      pos:
        line_end: 116
        line_start: 112
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c
    typedefs: []
    union: []
- function_names:
  - create_proc_from_string
  - exec_irep
  - f_eval
  - f_instance_eval
  - f_class_eval
  - mrb_mruby_eval_gem_init
  - mrb_mruby_eval_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-eval/src/eval.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - f_exit
  - mrb_mruby_exit_gem_init
  - mrb_mruby_exit_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-exit/src/mruby-exit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - istruct_test_initialize
  - if
  - if
  - istruct_test_to_s
  - istruct_test_length
  - istruct_test_test_receive
  - istruct_test_test_receive_direct
  - istruct_test_mutate
  - mrb_mruby_test_inline_struct_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-test-inline-struct/test/inline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MIRB_ADD_HISTORY
  - MIRB_READLINE
  - MIRB_LINE_FREE
  - MIRB_LINE_FREE
  - MIRB_WRITE_HISTORY
  - MIRB_READ_HISTORY
  - MIRB_USING_HISTORY
  - MIRB_ADD_HISTORY
  - MIRB_READLINE
  - MIRB_LINE_FREE
  - MIRB_WRITE_HISTORY
  - MIRB_READ_HISTORY
  - MIRB_SIGSETJMP
  - MIRB_SIGLONGJMP
  - MIRB_SIGSETJMP
  - MIRB_SIGLONGJMP
  - get_history_path
  - p
  - is_code_block_open
  - usage
  - dup_arg_item
  - parse_args
  - cleanup
  - print_hint
  - print_cmdline
  - check_keyword
  - ctrl_c_handler
  - ctrl_c_handler
  - decl_lv_underscore
  - main
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIGJMP_BUF
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
      type_or_value: sigjmp_buf
    - item_type: preproc_def
      name: SIGJMP_BUF
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
      type_or_value: jmp_buf
    structs:
    - fields:
      - name: '*rfp'
        type: FILE
      - name: verbose
        type: mrb_bool
      - name: debug
        type: mrb_bool
      - name: argc
        type: int
      - name: '** argv'
        type: char
      - name: libc
        type: int
      - name: '**libv'
        type: char
      item_type: struct
      name: _args
      pos:
        line_end: 240
        line_start: 232
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
    typedefs: []
    union: []
- function_names:
  - itsdefined
  - itsdefined
  - ENTRY_SYM
  - ENTRY_SYM
  - mrb_sce_init
  - mrb_sce_init_m
  - mrb_sce_errno
  - mrb_sce_sys_fail
  - mrb_exxx_init
  - mrb_mruby_errno_gem_init
  - itsdefined
  - itsnotdefined
  - mrb_mruby_errno_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E2C_LEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
      type_or_value: (sizeof(e2c) / sizeof(e2c[0]))
    structs:
    - fields:
      - name: eno
        type: int
      item_type: struct
      name: 'e2c[] = {

        #define itsnotdefined(name, sym)

        #include "known_errors_def.cstub"

        #undef itsdefined

        #undef itsnotdefined

        }'
      pos:
        line_end: 22
        line_start: 13
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-errno/src/errno.c
    typedefs: []
    union: []
- function_names:
  - print_usage
  - parse_args
  - strip
  - main
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: argc_start
        type: int
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: lvar
        type: mrb_bool
      item_type: struct
      name: strip_args
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
    typedefs: []
    union: []
- function_names:
  - RSTRUCT_LEN
  - RSTRUCT_PTR
  - mrb_struct_p
  - struct_class
  - struct_ivar_get
  - struct_s_members
  - struct_members
  - mrb_struct_s_members_m
  - mrb_struct_modify
  - mrb_struct_members
  - mrb_struct_ref
  - mrb_id_attrset
  - mrb_struct_set_m
  - make_struct_define_accessors
  - make_struct
  - mrb_struct_s_def
  - num_members
  - mrb_struct_initialize_withArg
  - mrb_struct_initialize
  - mrb_struct_init_copy
  - struct_aref_sym
  - struct_aref_int
  - mrb_struct_aref
  - mrb_struct_aset_sym
  - mrb_struct_aset
  - mrb_struct_equal
  - mrb_struct_eql
  - mrb_struct_len
  - mrb_struct_to_a
  - mrb_struct_to_h
  - mrb_struct_values_at
  - mrb_mruby_struct_gem_init
  - mrb_mruby_struct_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ONSTACK_ALLOC_MAX
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ONSTACK_STRLEN_MAX
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-struct/src/struct.c
      type_or_value: '(ONSTACK_ALLOC_MAX - 1) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_values_at
  - hash_slice
  - hash_except
  - mrb_mruby_hash_ext_gem_init
  - mrb_mruby_hash_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - binding_extract_pc
  - mrb_binding_extract_proc
  - mrb_binding_extract_env
  - binding_local_variable_name_check
  - binding_local_variable_search
  - binding_local_variable_defined_p
  - binding_local_variable_get
  - binding_local_variable_set
  - binding_local_variables
  - binding_receiver
  - binding_source_location
  - mrb_binding_alloc
  - mrb_binding_wrap_lvspace
  - mrb_f_binding
  - mrb_mruby_binding_core_gem_init
  - mrb_mruby_binding_core_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding-core/src/binding-core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mpz_init
  - mpz_init_set
  - mpz_set_int
  - mpz_init_set_int
  - mpz_clear
  - mpz_realloc
  - digits
  - mpz_set
  - uadd
  - usub
  - ucmp
  - uzero
  - zero
  - mpz_add
  - mpz_sub
  - mpz_sub_int
  - mpz_mul
  - mpz_mul_int
  - lzb
  - urshift
  - ulshift
  - udiv
  - mpz_mdiv
  - mpz_mmod
  - mpz_mdivmod
  - mpz_mod
  - mpz_cmp
  - mpz_sizeinbase
  - mpz_init_set_str
  - mpz_get_str
  - mpz_get_int
  - mpz_mul_2exp
  - mpz_div_2exp
  - mpz_neg
  - mpz_and
  - mpz_or
  - mpz_xor
  - mpz_pow
  - lowdigit
  - push
  - pop
  - mpz_powm
  - bint_new
  - bint_new_int
  - mrb_bint_new
  - mrb_bint_new_int
  - mrb_bint_new_str
  - bint_norm
  - mrb_gc_free_bint
  - mrb_bint_new_float
  - mrb_bint_as_float
  - mrb_as_bint
  - mrb_bint_as_int
  - mrb_bint_add
  - mrb_bint_sub
  - mrb_bint_mul
  - mrb_bint_div
  - mrb_bint_add_ii
  - mrb_bint_sub_ii
  - mrb_bint_mul_ii
  - mrb_bint_div_ii
  - mrb_bint_idiv
  - mrb_bint_mod
  - mrb_bint_rem
  - mrb_bint_divmod
  - mrb_bint_cmp
  - mrb_bint_pow
  - mrb_bint_powm
  - mrb_bint_to_s
  - mrb_bint_and
  - mrb_bint_or
  - mrb_bint_xor
  - mrb_bint_rev
  - mrb_bint_lshift
  - mrb_bint_rshift
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: v
        type: mp_limb
      - name: '*next'
        type: struct is
      item_type: struct
      name: is
      pos:
        line_end: 887
        line_start: 884
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.c
    typedefs: []
    union: []
- function_names:
  - HIGH
  - LOW
  - HIGH
  - LOW
  - RBIGINT
  - iabs
  - imax
  - hd
  - dg
  - RBIGINT
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LMAX
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0x3fffffffL
    - item_type: preproc_def
      name: LC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0xc0000000L
    - item_type: preproc_def
      name: CMASK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (LMAX+1)
    - item_type: preproc_def
      name: HLMAX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0x7fffL
    - item_type: preproc_def
      name: HCMASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (HLMAX + 1)
    - item_type: preproc_def
      name: LMAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0x3fffffffffffffffLL
    - item_type: preproc_def
      name: LC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0xc000000000000000LL
    - item_type: preproc_def
      name: CMASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (LMAX+1)
    - item_type: preproc_def
      name: HLMAX
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: 0x7fffffffLL
    - item_type: preproc_def
      name: HCMASK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (HLMAX + 1)
    - item_type: preproc_def
      name: LONGBITS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (sizeof(mp_limb)*8)
    - item_type: preproc_def
      name: DIGITBITS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: (LONGBITS-2)
    - item_type: preproc_def
      name: HALFDIGITBITS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type_or_value: ((LONGBITS-2)/2)
    structs:
    - fields:
      - name: '*p'
        type: mp_limb
      - name: sn
        type: short
      - name: sz
        type: size_t
      item_type: struct
      name: _mpz_t
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    - fields:
      - name: mp
        type: mpz_t
      item_type: struct
      name: RBigint
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
    typedefs:
    - item_type: typedef
      name: mp_limb
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type: int32_t
    - item_type: typedef
      name: mp_ulimb
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type: uint32_t
    - item_type: typedef
      name: mp_limb
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type: int64_t
    - item_type: typedef
      name: mp_ulimb
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bigint/core/bigint.h
      type: uint64_t
    union: []
- function_names:
  - mrb_f_caller
  - mrb_f_method
  - mrb_f_callee
  - mrb_f_integer
  - mrb_f_float
  - mrb_f_string
  - mrb_f_array
  - mrb_f_hash
  - mrb_mruby_kernel_ext_gem_init
  - mrb_mruby_kernel_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-kernel-ext/src/kernel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sleep
  - usleep
  - mrb_f_sleep
  - mrb_f_usleep
  - mrb_mruby_sleep_gem_init
  - mrb_mruby_sleep_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-sleep/src/sleep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mkstemp
  - mkdtemp
  - umask
  - rmdir
  - mrb_io_test_io_setup
  - GVNAME
  - mrb_io_test_io_cleanup
  - mrb_io_test_mkdtemp
  - mrb_io_test_rmdir
  - mrb_io_win_p
  - mrb_mruby_io_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: open
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
      type_or_value: _close
    - item_type: preproc_def
      name: MRB_WITH_IO_PREAD_PWRITE_ENABLED
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: MRB_WITH_IO_PREAD_PWRITE_ENABLED
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
      type_or_value: 'FALSE'
    structs: []
    typedefs:
    - item_type: typedef
      name: mode_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/test/mruby_io_test.c
      type: int
    union: []
- function_names:
  - CHMOD
  - realpath
  - CHMOD
  - mrb_stat
  - mrb_fstat
  - mrb_stat
  - mrb_fstat
  - mrb_stat
  - mrb_fstat
  - flock
  - mrb_file_s_umask
  - mrb_file_s_unlink
  - mrb_file_s_rename
  - mrb_file_dirname
  - mrb_file_basename
  - mrb_file_realpath
  - mrb_file__getwd
  - IS_FILESEP
  - IS_VOLSEP
  - IS_DEVICEID
  - is_absolute_traditional_path
  - is_absolute_unc_path
  - is_absolute_device_path
  - mrb_file_is_absolute_path
  - mrb_file_is_absolute_path
  - mrb_file__gethome
  - mrb_file_mtime
  - mrb_file_flock
  - mrb_file_size
  - mrb_ftruncate
  - mrb_file_truncate
  - mrb_file_s_symlink
  - mrb_file_s_chmod
  - mrb_file_s_readlink
  - mrb_init_file
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NULL_FILE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '"NUL"'
    - item_type: preproc_def
      name: UNLINK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: _unlink
    - item_type: preproc_def
      name: GETCWD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: _getcwd
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: _MAX_PATH
    - item_type: preproc_def
      name: NULL_FILE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: UNLINK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: unlink
    - item_type: preproc_def
      name: GETCWD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: getcwd
    - item_type: preproc_def
      name: FILE_SEPARATOR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '"/"'
    - item_type: preproc_def
      name: PATH_SEPARATOR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '";"'
    - item_type: preproc_def
      name: FILE_ALT_SEPARATOR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: VOLUME_SEPARATOR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '":"'
    - item_type: preproc_def
      name: PATH_SEPARATOR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '":"'
    - item_type: preproc_def
      name: LOCK_SH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LOCK_EX
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LOCK_NB
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LOCK_UN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: '8'
    - item_type: preproc_def
      name: CHECK_UNCDEV_PATH
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type_or_value: (IS_FILESEP(path[0]) && IS_FILESEP(path[1]))
    structs: []
    typedefs:
    - item_type: typedef
      name: mrb_stat
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type: stat
    - item_type: typedef
      name: mrb_stat
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type: _stat32
    - item_type: typedef
      name: mrb_stat
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file.c
      type: _stat64
    union: []
- function_names:
  - mrb_stat0
  - mrb_stat
  - mrb_lstat
  - mrb_filetest_s_directory_p
  - S_ISDIR
  - mrb_filetest_s_pipe_p
  - S_ISFIFO
  - mrb_filetest_s_symlink_p
  - S_ISLNK
  - S_ISLNK
  - S_ISLNK
  - mrb_filetest_s_socket_p
  - S_ISSOCK
  - S_ISSOCK
  - S_ISSOCK
  - mrb_filetest_s_exist_p
  - mrb_filetest_s_file_p
  - S_ISREG
  - mrb_filetest_s_zero_p
  - mrb_filetest_s_size
  - mrb_filetest_s_size_p
  - mrb_init_file_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LSTAT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
      type_or_value: stat
    - item_type: preproc_def
      name: LSTAT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/file_test.c
      type_or_value: lstat
    structs: []
    typedefs: []
    union: []
- function_names:
  - WEXITSTATUS
  - OPEN_RDONLY_P
  - OPEN_WRONLY_P
  - OPEN_RDWR_P
  - OPEN_READABLE_P
  - OPEN_WRITABLE_P
  - io_get_open_fptr
  - io_set_process_status
  - mrb_io_modestr_to_flags
  - mrb_io_mode_to_flags
  - mrb_fd_cloexec
  - mrb_cloexec_pipe
  - mrb_pipe
  - mrb_proc_exec
  - mrb_io_free
  - mrb_io_alloc
  - option_to_fd
  - mrb_io_s_popen_args
  - mrb_io_s_popen
  - mrb_io_s_popen
  - mrb_dup
  - mrb_io_initialize_copy
  - check_file_descriptor
  - mrb_io_initialize
  - fptr_finalize
  - io_get_read_fptr
  - mrb_io_check_readable
  - io_get_write_fptr
  - mrb_io_isatty
  - mrb_io_s_for_fd
  - mrb_io_s_sysclose
  - mrb_cloexec_open
  - mrb_io_s_sysopen
  - mrb_sysread_dummy
  - mrb_io_sysread
  - mrb_io_sysread_common
  - mrb_io_sysseek
  - mrb_io_syswrite_common
  - mrb_syswrite_dummy
  - mrb_io_syswrite
  - mrb_io_close
  - mrb_io_close_write
  - mrb_io_closed
  - mrb_io_pid
  - time2timeval
  - mrb_io_read_data_pending
  - mrb_io_s_pipe
  - mrb_io_s_select
  - mrb_io_fileno
  - mrb_io_fileno_m
  - mrb_io_close_on_exec_p
  - mrb_io_set_close_on_exec
  - mrb_io_set_sync
  - mrb_io_sync
  - value2off
  - mrb_io_pread
  - mrb_io_pwrite
  - io_bufread
  - mrb_io_bufread
  - mrb_io_readchar
  - mrb_init_io
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: open
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _close
    - item_type: preproc_def
      name: dup
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _dup
    - item_type: preproc_def
      name: dup2
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _dup2
    - item_type: preproc_def
      name: read
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _read
    - item_type: preproc_def
      name: write
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _write
    - item_type: preproc_def
      name: lseek
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _lseek
    - item_type: preproc_def
      name: isatty
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: _isatty
    - item_type: preproc_def
      name: O_TMPFILE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: O_TEMPORARY
    - item_type: preproc_def
      name: OPEN_ACCESS_MODE_FLAGS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: (O_RDONLY | O_WRONLY | O_RDWR)
    - item_type: preproc_def
      name: NOFILE
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: '64'
    - item_type: preproc_def
      name: mrb_io_s_popen
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: mrb_notimplement_m
    - item_type: preproc_def
      name: mrb_io_close_on_exec_p
      pos:
        line_end: 1360
        line_start: 1359
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: mrb_notimplement_m
    - item_type: preproc_def
      name: mrb_io_set_close_on_exec
      pos:
        line_end: 1395
        line_start: 1394
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: mrb_notimplement_m
    - item_type: preproc_def
      name: mrb_io_pread
      pos:
        line_end: 1419
        line_start: 1418
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: mrb_notimplement_m
    - item_type: preproc_def
      name: mrb_io_pwrite
      pos:
        line_end: 1420
        line_start: 1419
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type_or_value: mrb_notimplement_m
    structs:
    - fields:
      - name: opt_in
        type: mrb_value
      item_type: struct
      name: kv
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
    typedefs:
    - item_type: typedef
      name: fsize_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: int
    - item_type: typedef
      name: ftime_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: long
    - item_type: typedef
      name: fsuseconds_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: long
    - item_type: typedef
      name: fmode_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: int
    - item_type: typedef
      name: mrb_io_read_write_size
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: int
    - item_type: typedef
      name: fsize_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: size_t
    - item_type: typedef
      name: ftime_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: time_t
    - item_type: typedef
      name: fsuseconds_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: suseconds_t
    - item_type: typedef
      name: fmode_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: mode_t
    - item_type: typedef
      name: mrb_io_read_write_size
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: ssize_t
    - item_type: typedef
      name: pid_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/io.c
      type: mrb_int
    union: []
- function_names:
  - mrb_mruby_io_gem_init
  - mrb_mruby_io_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DONE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/src/mruby_io_gem.c
      type_or_value: mrb_gc_arena_restore(mrb, 0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - MRB_O_RDONLY_P
  - MRB_O_WRONLY_P
  - MRB_O_RDWR_P
  - MRB_O_READABLE_P
  - MRB_O_WRITABLE_P
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_O_RDONLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: MRB_O_WRONLY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: MRB_O_RDWR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: MRB_O_ACCMODE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: (MRB_O_RDONLY | MRB_O_WRONLY | MRB_O_RDWR)
    - item_type: preproc_def
      name: MRB_O_NONBLOCK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: MRB_O_APPEND
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: MRB_O_SYNC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: MRB_O_NOFOLLOW
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: MRB_O_CREAT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: MRB_O_TRUNC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: MRB_O_EXCL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: MRB_O_NOCTTY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: MRB_O_DIRECT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: MRB_O_BINARY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: MRB_O_SHARE_DELETE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: MRB_O_TMPFILE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: MRB_O_NOATIME
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: MRB_O_DSYNC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: MRB_O_RSYNC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: E_IO_ERROR
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: (mrb_exc_get(mrb, "IOError"))
    - item_type: preproc_def
      name: E_EOF_ERROR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
      type_or_value: (mrb_exc_get(mrb, "EOFError"))
    structs:
    - fields:
      - name: fd
        type: int
      - name: fd2
        type: int
      - name: pid
        type: int
      - name: readable
        type: unsigned int
      item_type: struct
      name: mrb_io
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-io/include/mruby/ext/io.h
    typedefs: []
    union: []
- function_names:
  - rational_ptr
  - rational_ptr
  - rational_alloc
  - rational_numerator
  - rational_denominator
  - rat_overflow
  - rat_zerodiv
  - mrb_rational_new
  - rational_new
  - i_gcd
  - rational_new_i
  - frexp_rat
  - ldexp_rat
  - float_decode_internal
  - rational_new_f
  - rational_s_new
  - rat_float
  - mrb_rational_to_f
  - mrb_rational_to_i
  - rational_to_r
  - rational_negative_p
  - fix_to_r
  - rational_m
  - rational_eq
  - rational_cmp
  - rational_minus
  - mrb_rational_add
  - rational_add
  - mrb_rational_sub
  - rational_sub
  - mrb_rational_mul
  - rational_mul
  - mrb_rational_div
  - rational_div
  - rational_pow
  - mrb_mruby_rational_gem_init
  - mrb_mruby_rational_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RAT_MANT_DIG
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: FLT_MANT_DIG
    - item_type: preproc_def
      name: RAT_INT_LIMIT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: '30'
    - item_type: preproc_def
      name: RAT_HUGE_VAL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: HUGE_VALF
    - item_type: preproc_def
      name: frexp_rat
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: frexp
    - item_type: preproc_def
      name: ldexp_rat
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: ldexp
    - item_type: preproc_def
      name: RAT_MANT_DIG
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: DBL_MANT_DIG
    - item_type: preproc_def
      name: RAT_INT_LIMIT
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: '62'
    - item_type: preproc_def
      name: RAT_HUGE_VAL
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
      type_or_value: HUGE_VAL
    structs:
    - fields:
      - name: numerator
        type: mrb_int
      - name: denominator
        type: mrb_int
      item_type: struct
      name: mrb_rational
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    - fields:
      - name: '*p'
        type: struct mrb_rational
      item_type: struct
      name: RRational
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    - fields:
      - name: r
        type: struct mrb_rational
      item_type: struct
      name: RRational
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-rational/src/rational.c
    typedefs: []
    union: []
- function_names:
  - isatty
  - fileno
  - printstr
  - mrb_printstr
  - mrb_mruby_print_gem_init
  - mrb_mruby_print_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-print/src/print.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - F
  - F
  - complex_ptr
  - complex_ptr
  - complex_alloc
  - mrb_complex_get
  - mrb_complex_new
  - complex_new
  - complex_real
  - complex_imaginary
  - complex_s_rect
  - mrb_complex_to_f
  - mrb_complex_to_i
  - complex_to_c
  - mrb_complex_eq
  - complex_eq
  - mrb_complex_add
  - complex_add
  - mrb_complex_sub
  - complex_sub
  - mrb_complex_mul
  - complex_mul
  - add_pair
  - mul_pair
  - div_pair
  - mrb_complex_div
  - complex_div
  - mrb_mruby_complex_gem_init
  - mrb_mruby_complex_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: real
        type: mrb_float
      - name: imaginary
        type: mrb_float
      item_type: struct
      name: mrb_complex
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    - fields:
      - name: '*p'
        type: struct mrb_complex
      item_type: struct
      name: RComplex
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    - fields:
      - name: r
        type: struct mrb_complex
      item_type: struct
      name: RComplex
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    - fields:
      - name: s
        type: mrb_float
      - name: x
        type: int
      item_type: struct
      name: float_pair
      pos:
        line_end: 259
        line_start: 256
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-complex/src/complex.c
    typedefs: []
    union: []
- function_names:
  - return_func_name
  - proc_new_cfunc_with_env
  - return_env
  - cfunc_env_get
  - cfunc_without_env
  - mrb_mruby_proc_ext_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/test/proc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_proc_lambda_p
  - mrb_proc_source_location
  - mrb_proc_source_location_m
  - mrb_proc_inspect
  - mrb_kernel_proc
  - mrb_proc_parameters
  - mrb_mruby_proc_ext_gem_init
  - mrb_mruby_proc_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name
        type: mrb_sym
      - name: size
        type: int
      item_type: struct
      name: parameters_type
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-proc-ext/src/proc.c
    typedefs: []
    union: []
- function_names:
  - binding_in_c
  - mrb_mruby_binding_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/test/binding.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - binding_eval_error_check
  - expand_lvspace
  - binding_eval_prepare_body
  - binding_eval_prepare
  - mrb_binding_eval
  - mrb_mruby_binding_gem_init
  - mrb_mruby_binding_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LV_BUFFERS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*irep'
        type: mrb_irep
      - name: '*env'
        type: struct REnv
      - name: numvar
        type: int
      - name: syms[LV_BUFFERS]
        type: mrb_sym
      item_type: struct
      name: expand_lvspace
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    - fields:
      - name: binding
        type: mrb_value
      - name: '*file'
        type: char
      - name: '*expr'
        type: char
      - name: exprlen
        type: mrb_int
      - name: '*mrbc'
        type: mrbc_context
      - name: '*pstate'
        type: struct mrb_parser_state
      item_type: struct
      name: binding_eval_prepare_body
      pos:
        line_end: 78
        line_start: 71
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
    typedefs:
    - item_type: typedef
      name: mrb_parser_foreach_top_variable_func(mrb_state *mrb, mrb_sym sym, void
        *user)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-binding/src/binding.c
      type: mrb_bool
    union: []
- function_names:
  - mrb_mod_name
  - mrb_mod_singleton_class_p
  - mrb_mod_module_exec
  - add_subclasses
  - mrb_class_subclasses
  - mrb_mruby_class_ext_gem_init
  - mrb_mruby_class_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*c'
        type: struct RClass
      - name: ary
        type: mrb_value
      item_type: struct
      name: subclass_args
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-class-ext/src/class.c
    typedefs: []
    union: []
- function_names:
  - fiber_ptr
  - fiber_init
  - fiber_check
  - fiber_result
  - MARK_CONTEXT_MODIFY
  - fiber_check_cfunc
  - fiber_switch_context
  - fiber_switch
  - fiber_resume
  - mrb_fiber_resume
  - mrb_fiber_alive_p
  - fiber_eq
  - fiber_transfer
  - mrb_fiber_yield
  - fiber_yield
  - fiber_current
  - mrb_mruby_fiber_gem_init
  - mrb_mruby_fiber_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIBER_STACK_INIT_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FIBER_CI_INIT_SIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
      type_or_value: '8'
    - item_type: preproc_def
      name: CINFO_RESUMED
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
      type_or_value: '3'
    - item_type: preproc_def
      name: fiber_alive_p
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-fiber/src/fiber.c
      type_or_value: mrb_fiber_alive_p
    structs: []
    typedefs: []
    union: []
- function_names:
  - NDIV
  - round
  - llround
  - gmtime_r
  - localtime_r
  - UI64
  - UI64
  - gettimeofday
  - gmtime_r
  - localtime_r
  - is_leapyear
  - timegm
  - mrb_sec_value
  - mrb_sec_value
  - fixable_time_t_p
  - mrb_to_time_t
  - time_update_datetime
  - mrb_time_wrap
  - time_alloc_time
  - time_alloc
  - mrb_time_make_time
  - mrb_time_make
  - current_mrb_time
  - mrb_time_now
  - mrb_time_at
  - mrb_time_at_m
  - time_mktime
  - OUTINT
  - OUTINT
  - mrb_time_gm
  - mrb_time_local
  - time_get_ptr
  - mrb_time_eq
  - mrb_time_cmp
  - int_overflow
  - mrb_time_plus
  - mrb_time_minus
  - mrb_time_wday
  - mrb_time_yday
  - mrb_time_year
  - time_zonename
  - mrb_time_zone
  - mrb_time_asctime
  - mrb_time_day
  - mrb_time_dst_p
  - mrb_time_getutc
  - mrb_time_getlocal
  - mrb_time_hour
  - mrb_time_initialize
  - mrb_time_initialize_copy
  - mrb_time_localtime
  - mrb_time_mday
  - mrb_time_min
  - mrb_time_mon
  - mrb_time_sec
  - mrb_time_to_f
  - mrb_time_to_i
  - mrb_time_usec
  - mrb_time_utc
  - mrb_time_utc_p
  - mrb_time_to_s
  - mrb_mruby_time_gem_init
  - mrb_mruby_time_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TO_S_FMT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: '"%Y-%m-%d %H:%M:%S "'
    - item_type: preproc_def
      name: gettimeofday
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: my_gettimeofday
    - item_type: preproc_def
      name: timegm
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: my_timgm
    - item_type: preproc_def
      name: MRB_TIME_T_UINT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: (~(time_t)0 > 0)
    - item_type: preproc_def
      name: MRB_TIME_MIN
      pos:
        line_end: 213
        line_start: 209
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: "(                                                      \\\n
        \ MRB_TIME_T_UINT ? 0 :                                                     \\\n
        \                   (sizeof(time_t) <= 4 ? INT32_MIN : INT64_MIN)           \\\n)"
    - item_type: preproc_def
      name: MRB_TIME_MAX
      pos:
        line_end: 217
        line_start: 213
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type_or_value: "(time_t)(                                              \\\n
        \ MRB_TIME_T_UINT ? (sizeof(time_t) <= 4 ? UINT32_MAX : UINT64_MAX) :       \\\n
        \                   (sizeof(time_t) <= 4 ? INT32_MAX : INT64_MAX)           \\\n)"
    structs:
    - fields:
      - name: tv_sec
        type: time_t
      - name: tv_usec
        type: suseconds_t
      item_type: struct
      name: timeval
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    - fields:
      - name: sec
        type: time_t
      - name: usec
        type: time_t
      - name: timezone
        type: enum mrb_timezone
      - name: datetime
        type: struct tm
      item_type: struct
      name: mrb_time
      pos:
        line_end: 195
        line_start: 190
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
    typedefs:
    - item_type: typedef
      name: suseconds_t
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type: long
    - item_type: typedef
      name: mrb_sec
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type: mrb_float
    - item_type: typedef
      name: mrb_sec
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
      type: mrb_int
    union:
    - fields:
      - name: ft
        type: FILETIME
      - name: u64
        type: unsigned __int64
      item_type: union
      name: t
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/src/time.c
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-time/include/mruby/time.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENC_COMP_P
  - mrb_float_p
  - str_casecmp_p
  - int_chr_binary
  - int_chr_utf8
  - mrb_str_swapcase_bang
  - mrb_str_swapcase
  - mrb_str_concat_m
  - mrb_str_start_with
  - mrb_str_end_with
  - tr_free_pattern
  - tr_parse_pattern
  - tr_find_character
  - tr_get_character
  - tr_bitmap_set
  - tr_bitmap_detect
  - tr_compile_pattern
  - str_tr
  - mrb_str_tr
  - mrb_str_tr_bang
  - mrb_str_tr_s
  - mrb_str_tr_s_bang
  - str_squeeze
  - mrb_str_squeeze
  - mrb_str_squeeze_bang
  - str_delete
  - mrb_str_delete
  - mrb_str_delete_bang
  - mrb_str_count
  - mrb_str_hex
  - mrb_str_oct
  - mrb_str_chr
  - mrb_int_chr
  - if
  - mrb_str_succ_bang
  - mrb_str_succ
  - utf8code
  - mrb_str_ord
  - mrb_str_ord
  - mrb_str_del_prefix_bang
  - mrb_str_del_prefix
  - mrb_str_del_suffix_bang
  - mrb_str_del_suffix
  - lesser
  - mrb_str_casecmp
  - mrb_str_casecmp_p
  - mrb_str_lines
  - mrb_mruby_string_ext_gem_init
  - mrb_mruby_string_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
  types:
    enum:
    - enumerators:
      - name: TR_UNINITIALIZED
        value: '0'
      - name: TR_IN_ORDER
        value: '1'
      - name: TR_RANGE
        value: '2'
      item_type: enum
      name: tr_pattern_type
      pos:
        line_end: 254
        line_start: 250
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    preproc_defs:
    - item_type: preproc_def
      name: ENC_ASCII_8BIT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
      type_or_value: '"ASCII-8BIT"'
    - item_type: preproc_def
      name: ENC_BINARY
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
      type_or_value: '"BINARY"'
    - item_type: preproc_def
      name: ENC_UTF8
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
      type_or_value: '"UTF-8"'
    - item_type: preproc_def
      name: STATIC_TR_PATTERN
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: flag_reverse
        type: mrb_bool
      - name: flag_on_heap
        type: mrb_bool
      - name: n
        type: uint16_t
      - name: val
        type: "union {\n    uint16_t start_pos;\n    char ch[2];\n  }"
      - name: '*next'
        type: struct tr_pattern
      item_type: struct
      name: tr_pattern
      pos:
        line_end: 274
        line_start: 264
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-string-ext/src/string.c
    typedefs: []
    union: []
- function_names:
  - vf_s_format_0
  - vf_s_format_c
  - vf_s_format_d
  - vf_s_format_f
  - vf_s_format_i
  - vf_s_format_l
  - vf_s_format_n
  - vf_s_format_s
  - vf_s_format_C
  - vf_s_format_v
  - mrb_init_test_vformat
  - VF_DEFINE_FORMAT_METHOD
  - VF_DEFINE_FORMAT_METHOD_n
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-test/vformat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_hint
  - eval_test
  - t_print
  - UNESCAPE
  - CHAR_CMP
  - str_match_bracket
  - str_match_no_brace_p
  - COPY_AND_INC
  - str_match_p
  - m_str_match_p
  - mrb_init_test_driver
  - mrb_t_pass_result
  - TEST_COUNT_PASS
  - main
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-test/driver.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - mrb_extension_p
  - options_init
  - options_opt
  - options_arg
  - dup_arg_item
  - parse_args
  - cleanup
  - main
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*rfp'
        type: FILE
      - name: '*cmdline'
        type: char
      - name: fname
        type: mrb_bool
      - name: mrbfile
        type: mrb_bool
      - name: check_syntax
        type: mrb_bool
      - name: verbose
        type: mrb_bool
      - name: version
        type: mrb_bool
      - name: debug
        type: mrb_bool
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: libc
        type: int
      - name: '**libv'
        type: char
      item_type: struct
      name: _args
      pos:
        line_end: 32
        line_start: 19
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    - fields:
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: '*program'
        type: char
      - name: '*opt'
        type: char
      - name: short_opt[2]
        type: char
      item_type: struct
      name: options
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
    typedefs: []
    union: []
- function_names:
  - BIT_DIGITS
  - EXTENDSIGN
  - remove_sign_bits
  - sign_bits
  - mrb_uint_to_cstr
  - fmt_float
  - CHECK
  - PUSH
  - FILL
  - check_next_arg
  - check_pos_arg
  - check_name_arg
  - GETNEXTARG
  - GETARG
  - GETPOSARG
  - GETNTHARG
  - CHECKNAMEARG
  - GETNUM
  - GETASTER
  - get_num
  - get_hash
  - mrb_f_sprintf
  - mrb_str_format
  - CHECK_FOR_WIDTH
  - CHECK_FOR_FLAGS
  - mrb_mruby_sprintf_gem_init
  - mrb_mruby_sprintf_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITSPERDIG
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: MRB_INT_BIT
    - item_type: preproc_def
      name: FNONE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FSHARP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FMINUS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FPLUS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FZERO
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '8'
    - item_type: preproc_def
      name: FSPACE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FWIDTH
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FPREC
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FPREC0
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-sprintf/src/sprintf.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bint_allbits
  - bint_anybits
  - bint_nobits
  - int_allbits
  - int_anybits
  - int_nobits
  - int_remainder
  - int_powm
  - flo_remainder
  - mrb_mruby_numeric_ext_gem_init
  - mrb_mruby_numeric_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_sym_all_symbols
  - mrb_sym_length
  - mrb_mruby_symbol_ext_gem_init
  - mrb_mruby_symbol_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-symbol-ext/src/symbol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - args_shift
  - args_unshift
  - method_missing_prepare
  - method_object_alloc
  - method_extract_proc
  - method_extract_receiver
  - method_extract_mid
  - method_extract_owner
  - bind_check
  - unbound_method_bind
  - IV_GET
  - method_eql
  - mcall
  - method_call
  - method_bcall
  - method_unbind
  - method_search_vm
  - method_super_method
  - method_arity
  - method_source_location
  - method_parameters
  - method_to_s
  - mrb_search_method_owner
  - mrb_kernel_method
  - mrb_module_instance_method
  - method_owner
  - method_receiver
  - method_name
  - mrb_mruby_method_gem_init
  - mrb_mruby_method_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-method/src/method.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - protect_cb
  - run_protect
  - run_ensure
  - run_rescue
  - run_rescue_exceptions
  - mrb_mruby_error_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-error/test/exception.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - protect_body
  - mrb_protect
  - mrb_ensure
  - mrb_rescue
  - mrb_rescue_exceptions
  - mrb_mruby_error_gem_init
  - mrb_mruby_error_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: body
        type: mrb_func_t
      - name: data
        type: mrb_value
      item_type: struct
      name: protect_data
      pos:
        line_end: 6
        line_start: 3
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-error/src/exception.c
    typedefs: []
    union: []
- function_names:
  - rand_init
  - rand_seed
  - rotl
  - rand_uint32
  - rand_real
  - random_rand
  - rand_i
  - get_opt
  - random_default
  - random_ptr
  - random_default_state
  - random_m_init
  - random_m_rand
  - random_m_srand
  - random_m_bytes
  - check_random_arg
  - mrb_ary_shuffle_bang
  - mrb_ary_shuffle
  - mrb_ary_sample
  - random_f_rand
  - random_f_srand
  - random_f_bytes
  - mrb_mruby_random_gem_init
  - mrb_mruby_random_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSEEDS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SEEDPOS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NSEEDS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SEEDPOS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LASTSEED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: (NSEEDS-1)
    - item_type: preproc_def
      name: ID_RANDOM_STRICT
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
      type_or_value: MRB_SYM(mruby_Random)
    structs:
    - fields:
      - name: seed[NSEEDS]
        type: uint32_t
      item_type: struct
      name: rand_state
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-random/src/random.c
    typedefs: []
    union: []
- function_names:
  - codegen_error
  - codegen_palloc
  - codegen_realloc
  - check_no_ext_ops
  - new_label
  - emit_B
  - emit_S
  - gen_B
  - gen_S
  - genop_0
  - genop_1
  - genop_2
  - genop_3
  - genop_2S
  - genop_2SS
  - genop_W
  - no_optimize
  - mrb_decode_insn
  - OPCODE
  - OPCODE
  - OPCODE
  - OPCODE
  - OPCODE
  - mrb_prev_pc
  - pc_addr
  - addr_pc
  - rewind_pc
  - mrb_last_insn
  - no_peephole
  - gen_jmpdst
  - genjmp
  - genjmp_0
  - genjmp2
  - genjmp2_0
  - gen_move
  - gen_getupvar
  - gen_setupvar
  - gen_return
  - get_int_operand
  - gen_addsub
  - gen_muldiv
  - gen_binop
  - dispatch
  - dispatch_linked
  - push_n_
  - pop_n_
  - push
  - push_n
  - pop
  - pop_n
  - cursp
  - lit_pool_extend
  - new_litbn
  - new_lit_str
  - new_lit_cstr
  - new_lit_int
  - new_lit_float
  - new_sym
  - gen_setxv
  - gen_int
  - gen_uniop
  - node_len
  - nint
  - nchar
  - nsym
  - lv_name
  - lv_idx
  - search_upvar
  - for_body
  - lambda_body
  - scope_body
  - nosplat
  - attrsym
  - gen_values
  - gen_hash
  - gen_call
  - gen_assignment
  - gen_massignment
  - gen_intern
  - gen_literal_array
  - raise_error
  - readint
  - gen_retval
  - true_always
  - false_always
  - gen_blkmove
  - codegen
  - scope_add_irep
  - scope_new
  - scope_finish
  - loop_push
  - loop_break
  - loop_pop
  - catch_handler_new
  - catch_handler_set
  - generate_code
  - mrb_generate_code
  - mrb_irep_remove_lv
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
  types:
    enum:
    - enumerators:
      - name: LOOP_NORMAL
      - name: LOOP_RESCUE
      - name: LOOP_BEGIN
      - name: LOOP_FOR
      - name: LOOP_BLOCK
      item_type: enum
      name: looptype
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    preproc_defs:
    - item_type: preproc_def
      name: MRB_CODEGEN_LEVEL_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAXARG_S
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: NOVAL
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '0'
    - item_type: preproc_def
      name: VAL
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Z
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '1'
    - item_type: preproc_def
      name: S
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '3'
    - item_type: preproc_def
      name: W
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '4'
    - item_type: preproc_def
      name: B
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BB
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BBB
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BS
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BSS
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '7'
    - item_type: preproc_def
      name: JMPLINK_START
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: nregs_update
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: do {if (s->sp > s->nregs) s->nregs = s->sp;} while (0)
    - item_type: preproc_def
      name: CALL_MAXARGS
      pos:
        line_end: 1569
        line_start: 1568
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '15'
    - item_type: preproc_def
      name: GEN_LIT_ARY_MAX
      pos:
        line_end: 1570
        line_start: 1569
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '64'
    - item_type: preproc_def
      name: GEN_VAL_STACK_MAX
      pos:
        line_end: 1571
        line_start: 1570
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type_or_value: '99'
    structs:
    - fields:
      - name: type
        type: enum looptype
      - name: pc0
        type: uint32_t
      - name: pc1
        type: uint32_t
      - name: pc2
        type: uint32_t
      - name: reg
        type: int
      - name: '*prev'
        type: struct loopinfo
      item_type: struct
      name: loopinfo
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    - fields:
      - name: '*mrb'
        type: mrb_state
      - name: '*mpool'
        type: mrb_pool
      - name: '*prev'
        type: struct scope
      - name: '*lv'
        type: node
      - name: sp
        type: uint16_t
      - name: pc
        type: uint32_t
      - name: lastpc
        type: uint32_t
      - name: lastlabel
        type: uint32_t
      - name: ainfo
        type: uint16_t
      - name: mscope
        type: mrb_bool
      - name: '*loop'
        type: struct loopinfo
      - name: filename_sym
        type: mrb_sym
      - name: lineno
        type: uint16_t
      - name: '*iseq'
        type: mrb_code
      - name: '*lines'
        type: uint16_t
      - name: icapa
        type: uint32_t
      - name: '*irep'
        type: mrb_irep
      - name: '*pool'
        type: mrb_pool_value
      - name: '*syms'
        type: mrb_sym
      - name: '**reps'
        type: mrb_irep
      - name: '*catch_table'
        type: struct mrb_irep_catch_handler
      - name: pcapa
        type: uint32_t
      - name: nlocals
        type: uint16_t
      - name: nregs
        type: uint16_t
      - name: ai
        type: int
      - name: debug_start_pos
        type: int
      - name: filename_index
        type: uint16_t
      - name: '* parser'
        type: parser_state
      - name: rlev
        type: int
      item_type: struct
      name: scope
      pos:
        line_end: 87
        line_start: 48
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
    typedefs:
    - item_type: typedef
      name: node
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type: mrb_ast_node
    - item_type: typedef
      name: parser_state
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/codegen.c
      type: mrb_parser_state
    union: []
- function_names:
  - identchar
  - BITSTACK_PUSH
  - BITSTACK_POP
  - BITSTACK_LEXPOP
  - BITSTACK_SET_P
  - COND_PUSH
  - COND_POP
  - COND_LEXPOP
  - COND_P
  - CMDARG_PUSH
  - CMDARG_POP
  - CMDARG_LEXPOP
  - CMDARG_P
  - SET_LINENO
  - NODE_LINENO
  - sym
  - nsym
  - nint
  - intn
  - typen
  - intern_cstr_gen
  - intern_cstr
  - intern_gen
  - intern
  - intern_op
  - cons_free_gen
  - cons_free
  - parser_palloc
  - parser_pfree
  - cons_gen
  - cons
  - list1_gen
  - list1
  - list2_gen
  - list2
  - list3_gen
  - list3
  - list4_gen
  - list4
  - list5_gen
  - list5
  - list6_gen
  - list6
  - append_gen
  - append
  - push
  - parser_strndup
  - strndup
  - parser_strdup
  - strdup
  - dump_int
  - local_switch
  - local_resume
  - local_nest
  - local_unnest
  - local_var_p
  - local_add_f
  - local_add
  - local_add_blk
  - local_add_kw
  - locals_node
  - nvars_nest
  - nvars_block
  - nvars_unnest
  - new_scope
  - new_begin
  - newline_node
  - new_rescue
  - new_mod_rescue
  - new_ensure
  - new_nil
  - new_true
  - new_false
  - new_alias
  - new_if
  - new_unless
  - new_while
  - new_until
  - new_for
  - new_case
  - new_postexe
  - new_self
  - new_call
  - new_fcall
  - new_callargs
  - new_super
  - new_zsuper
  - new_yield
  - new_return
  - new_break
  - new_next
  - new_redo
  - new_retry
  - new_dot2
  - new_dot3
  - new_colon2
  - new_colon3
  - new_and
  - new_or
  - new_array
  - new_splat
  - new_hash
  - new_kw_hash
  - new_sym
  - new_strsym
  - new_lvar
  - new_gvar
  - new_ivar
  - new_cvar
  - new_nvar
  - new_const
  - new_undef
  - new_class
  - new_sclass
  - new_module
  - new_def
  - defn_setup
  - new_sdef
  - defs_setup
  - new_arg
  - local_add_margs
  - local_add_lv
  - new_args
  - new_args_tail
  - new_kw_arg
  - new_kw_rest_args
  - new_args_dots
  - new_block_arg
  - setup_numparams
  - new_block
  - new_lambda
  - new_asgn
  - new_masgn
  - new_masgn_param
  - new_op_asgn
  - new_imaginary
  - new_rational
  - new_int
  - new_float
  - new_str
  - new_dstr
  - string_node_p
  - composite_string_node
  - concat_string
  - new_xstr
  - new_dxstr
  - new_dsym
  - new_regx
  - new_dregx
  - new_back_ref
  - new_nth_ref
  - new_heredoc
  - new_bv
  - new_literal_delim
  - new_words
  - new_symbols
  - call_uni_op
  - call_bin_op
  - args_with_block
  - endless_method_name
  - call_with_block
  - new_negate
  - cond
  - ret_args
  - assignable
  - var_reference
  - label_reference
  - new_strterm
  - end_strterm
  - push_strterm
  - pop_strterm
  - parsing_heredoc_info
  - heredoc_treat_nextline
  - heredoc_end
  - is_strterm_type
  - YY_CAST
  - YY_REINTERPRET_CAST
  - YY_CAST
  - YY_REINTERPRET_CAST
  - YYSIZEOF
  - YY_
  - YY_
  - YYUSE
  - YY_INITIAL_VALUE
  - YY_ASSERT
  - YYSTACK_BYTES
  - YYSTACK_RELOCATE
  - YYCOPY
  - YYCOPY
  - YYTRANSLATE
  - yypact_value_is_default
  - yytable_value_is_error
  - YYRECOVERING
  - YYBACKUP
  - YYDPRINTF
  - YY_LOCATION_PRINT
  - YY_SYMBOL_PRINT
  - yy_symbol_value_print
  - yy_symbol_print
  - yy_stack_print
  - YY_STACK_PRINT
  - yy_reduce_print
  - YY_REDUCE_PRINT
  - yystrlen
  - yystrlen
  - yystpcpy
  - yytnamerr
  - yysyntax_error
  - YYCASE_
  - yydestruct
  - yyparse
  - YYPOPSTACK
  - yyerror
  - yyerror_c
  - yywarning
  - yywarning_s
  - backref_error
  - void_expr_error
  - nextc0
  - nextc
  - pushback
  - skip
  - peekc_n
  - peek_n
  - peek
  - peeks
  - skips
  - newtok
  - tokadd
  - toklast
  - tokfix
  - tok
  - toklen
  - IS_ARG
  - IS_END
  - IS_BEG
  - IS_SPCARG
  - IS_LABEL_POSSIBLE
  - IS_LABEL_SUFFIX
  - scan_oct
  - scan_hex
  - read_escape_unicode
  - read_escape
  - heredoc_count_indent
  - heredoc_remove_indent
  - heredoc_push_indented
  - parse_string
  - number_literal_suffix
  - heredoc_identifier
  - arg_ambiguous
  - parser_yylex
  - no_digits
  - yylex
  - parser_init_cxt
  - parser_update_cxt
  - mrb_parser_parse
  - 'parser_state*

    mrb_parser_new(mrb_state *mrb)'
  - mrb_parser_free
  - 'mrbc_context*

    mrbc_context_new(mrb_state *mrb)'
  - mrbc_context_free
  - mrbc_filename
  - mrbc_partial_hook
  - mrbc_cleanup_local_variables
  - mrb_parser_set_filename
  - mrb_parser_get_filename
  - mrb_parse_file_continue
  - 'parser_state*

    mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c)'
  - 'parser_state*

    mrb_parse_nstring(mrb_state *mrb, const char *s, size_t len, mrbc_context *c)'
  - 'parser_state*

    mrb_parse_string(mrb_state *mrb, const char *s, mrbc_context *c)'
  - mrb_load_exec
  - mrb_load_file_cxt
  - mrb_load_file
  - mrb_load_detect_file_cxt
  - mrb_load_nstring_cxt
  - mrb_load_nstring
  - mrb_load_string_cxt
  - mrb_load_string
  - dump_prefix
  - dump_recur
  - dump_args
  - str_dump
  - mrb_parser_dump
  - mrb_parser_foreach_top_variable
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
  types:
    enum:
    - enumerators:
      - name: keyword_undef
        value: '267'
      - name: keyword_do_block
        value: '283'
      - name: modifier_rescue
        value: '299'
      - name: tINTEGER
        value: '313'
      - name: tEQQ
        value: '329'
      - name: tCOLON2
        value: '345'
      - name: tSYMBEG
        value: '361'
      - name: tLOWEST
        value: '375'
      - name: keyword_case
        value: '274'
      - name: keyword_true
        value: '290'
      - name: tIDENTIFIER
        value: '306'
      - name: tSTRING_MID
        value: '320'
      - name: tNMATCH
        value: '336'
      - name: tLBRACK
        value: '352'
      - name: keyword_class
        value: '258'
      - name: keyword_ensure
        value: '269'
      - name: keyword_return
        value: '285'
      - name: keyword_BEGIN
        value: '301'
      - name: tCHAR
        value: '315'
      - name: tGEQ
        value: '331'
      - name: tOP_ASGN
        value: '347'
      - name: tXSTRING_BEG
        value: '363'
      - name: tGVAR
        value: '308'
      - name: tBACK_REF
        value: '322'
      - name: keyword_def
        value: '260'
      - name: keyword_break
        value: '276'
      - name: keyword_and
        value: '292'
      - name: tDOT3
        value: '338'
      - name: tLBRACE_ARG
        value: '354'
      - name: tLAMBEG
        value: '368'
      - name: keyword_then
        value: '271'
      - name: keyword_super
        value: '287'
      - name: keyword__LINE__
        value: '303'
      - name: tREGEXP
        value: '317'
      - name: tANDOP
        value: '333'
      - name: tLPAREN
        value: '349'
      - name: tREGEXP_BEG
        value: '365'
      - name: tCONSTANT
        value: '310'
      - name: tNUMPARAM
        value: '324'
      - name: keyword_if
        value: '262'
      - name: keyword_redo
        value: '278'
      - name: keyword_not
        value: '294'
      - name: tBDOT3
        value: '340'
      - name: tPOW
        value: '356'
      - name: tHEREDOC_END
        value: '370'
      - name: keyword__ENCODING__
        value: '305'
      - name: tSTRING_PART
        value: '319'
      - name: keyword_else
        value: '273'
      - name: keyword_nil
        value: '289'
      - name: tMATCH
        value: '335'
      - name: tRPAREN
        value: '351'
      - name: keyword_while
        value: '264'
      - name: keyword_in
        value: '280'
      - name: modifier_unless
        value: '296'
      - name: tUMINUS
        value: '326'
      - name: tASET
        value: '342'
      - name: tAMPER
        value: '358'
      - name: tHD_LITERAL_DELIM
        value: '372'
      - name: tLAST_TOKEN
        value: '377'
      - name: keyword_module
        value: '259'
      - name: keyword_when
        value: '275'
      - name: keyword_false
        value: '291'
      - name: tNTH_REF
        value: '321'
      - name: tFID
        value: '307'
      - name: tDOT2
        value: '337'
      - name: tLBRACE
        value: '353'
      - name: tSYMBOLS_BEG
        value: '367'
      - name: keyword_for
        value: '266'
      - name: keyword_do_cond
        value: '282'
      - name: modifier_until
        value: '298'
      - name: tLABEL_TAG
        value: '312'
      - name: tEQ
        value: '328'
      - name: tRSHFT
        value: '344'
      - name: tANDDOT
        value: '360'
      - name: tHD_STRING_MID
        value: '374'
      - name: tIVAR
        value: '309'
      - name: tREGEXP_END
        value: '323'
      - name: keyword_begin
        value: '261'
      - name: keyword_next
        value: '277'
      - name: keyword_or
        value: '293'
      - name: tBDOT2
        value: '339'
      - name: tSTAR
        value: '355'
      - name: tHEREDOC_BEG
        value: '369'
      - name: tNEQ
        value: '330'
      - name: keyword_alias
        value: '300'
      - name: tFLOAT
        value: '314'
      - name: keyword_rescue
        value: '268'
      - name: keyword_do_LAMBDA
        value: '284'
      - name: tCOLON3
        value: '346'
      - name: tSTRING_BEG
        value: '362'
      - name: tUMINUS_NUM
        value: '376'
      - name: keyword_unless
        value: '263'
      - name: keyword_retry
        value: '279'
      - name: modifier_if
        value: '295'
      - name: tUPLUS
        value: '325'
      - name: tAREF
        value: '341'
      - name: tDSTAR
        value: '357'
      - name: tLITERAL_DELIM
        value: '371'
      - name: keyword_end
        value: '270'
      - name: keyword_yield
        value: '286'
      - name: keyword_END
        value: '302'
      - name: tXSTRING
        value: '316'
      - name: tLEQ
        value: '332'
      - name: tASSOC
        value: '348'
      - name: tSTRING_DVAR
        value: '364'
      - name: keyword_until
        value: '265'
      - name: keyword_do
        value: '281'
      - name: tCMP
        value: '327'
      - name: modifier_while
        value: '297'
      - name: tCVAR
        value: '311'
      - name: tLSHFT
        value: '343'
      - name: tLAMBDA
        value: '359'
      - name: tHD_STRING_PART
        value: '373'
      - name: tOROP
        value: '334'
      - name: tSTRING
        value: '318'
      - name: keyword__FILE__
        value: '304'
      - name: keyword_elsif
        value: '272'
      - name: keyword_self
        value: '288'
      - name: tLPAREN_ARG
        value: '350'
      - name: tWORDS_BEG
        value: '366'
      item_type: enum
      name: yytokentype
      pos:
        line_end: 1661
        line_start: 1539
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    preproc_defs:
    - item_type: preproc_def
      name: YYBISON
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYBISON_VERSION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '"3.5.1"'
    - item_type: preproc_def
      name: YYSKELETON_NAME
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '"yacc.c"'
    - item_type: preproc_def
      name: YYPURE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYPUSH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYPULL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYDEBUG
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYSTACK_USE_ALLOCA
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYLEX_PARAM
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: p
    - item_type: preproc_def
      name: NUM_SUFFIX_R
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: NUM_SUFFIX_I
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: nullptr
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 1513
        line_start: 1512
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 1516
        line_start: 1515
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: ((void*)0)
    - item_type: preproc_def
      name: YYERROR_VERBOSE
      pos:
        line_end: 1523
        line_start: 1522
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYERROR_VERBOSE
      pos:
        line_end: 1525
        line_start: 1524
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYDEBUG
      pos:
        line_end: 1531
        line_start: 1530
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYSTYPE_IS_TRIVIAL
      pos:
        line_end: 1681
        line_start: 1680
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYSTYPE_IS_DECLARED
      pos:
        line_end: 1682
        line_start: 1681
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYPTRDIFF_T
      pos:
        line_end: 1754
        line_start: 1753
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __PTRDIFF_TYPE__
    - item_type: preproc_def
      name: YYPTRDIFF_MAXIMUM
      pos:
        line_end: 1755
        line_start: 1754
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __PTRDIFF_MAX__
    - item_type: preproc_def
      name: YYPTRDIFF_T
      pos:
        line_end: 1760
        line_start: 1759
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: ptrdiff_t
    - item_type: preproc_def
      name: YYPTRDIFF_MAXIMUM
      pos:
        line_end: 1761
        line_start: 1760
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: PTRDIFF_MAX
    - item_type: preproc_def
      name: YYPTRDIFF_T
      pos:
        line_end: 1763
        line_start: 1762
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: long
    - item_type: preproc_def
      name: YYPTRDIFF_MAXIMUM
      pos:
        line_end: 1764
        line_start: 1763
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: LONG_MAX
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 1770
        line_start: 1769
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __SIZE_TYPE__
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 1772
        line_start: 1771
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: size_t
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 1775
        line_start: 1774
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: size_t
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 1777
        line_start: 1776
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: unsigned
    - item_type: preproc_def
      name: YYSIZE_MAXIMUM
      pos:
        line_end: 1785
        line_start: 1780
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: "YY_CAST (YYPTRDIFF_T,                                 \\\n           (YYPTRDIFF_MAXIMUM
        < YY_CAST (YYSIZE_T, -1)  \\\n            ? YYPTRDIFF_MAXIMUM                         \\\n
        \           : YY_CAST (YYSIZE_T, -1)))"
    - item_type: preproc_def
      name: YY_ATTRIBUTE_PURE
      pos:
        line_end: 1809
        line_start: 1808
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __attribute__ ((__pure__))
    - item_type: preproc_def
      name: YY_ATTRIBUTE_UNUSED
      pos:
        line_end: 1817
        line_start: 1816
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
      pos:
        line_end: 1835
        line_start: 1831
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: "_Pragma (\"GCC diagnostic push\")                                     \\\n
        \   _Pragma (\"GCC diagnostic ignored \\\"-Wuninitialized\\\"\")              \\\n
        \   _Pragma (\"GCC diagnostic ignored \\\"-Wmaybe-uninitialized\\\"\")"
    - item_type: preproc_def
      name: YY_IGNORE_MAYBE_UNINITIALIZED_END
      pos:
        line_end: 1837
        line_start: 1835
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: _Pragma ("GCC diagnostic pop")
    - item_type: preproc_def
      name: YY_IGNORE_USELESS_CAST_BEGIN
      pos:
        line_end: 1852
        line_start: 1849
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: "_Pragma (\"GCC diagnostic push\")                            \\\n
        \   _Pragma (\"GCC diagnostic ignored \\\"-Wuseless-cast\\\"\")"
    - item_type: preproc_def
      name: YY_IGNORE_USELESS_CAST_END
      pos:
        line_end: 1854
        line_start: 1852
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: _Pragma ("GCC diagnostic pop")
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 1871
        line_start: 1870
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __builtin_alloca
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 1875
        line_start: 1874
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: __alloca
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 1878
        line_start: 1877
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: _alloca
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 1880
        line_start: 1879
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: alloca
    - item_type: preproc_def
      name: EXIT_SUCCESS
      pos:
        line_end: 1885
        line_start: 1884
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYSTACK_ALLOC_MAXIMUM
      pos:
        line_end: 1900
        line_start: 1899
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '4032 '
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 1903
        line_start: 1902
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: YYMALLOC
    - item_type: preproc_def
      name: YYSTACK_FREE
      pos:
        line_end: 1904
        line_start: 1903
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: YYFREE
    - item_type: preproc_def
      name: YYSTACK_ALLOC_MAXIMUM
      pos:
        line_end: 1906
        line_start: 1905
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: YYSIZE_MAXIMUM
    - item_type: preproc_def
      name: EXIT_SUCCESS
      pos:
        line_end: 1913
        line_start: 1912
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYMALLOC
      pos:
        line_end: 1917
        line_start: 1916
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: malloc
    - item_type: preproc_def
      name: YYFREE
      pos:
        line_end: 1923
        line_start: 1922
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: free
    - item_type: preproc_def
      name: YYSTACK_GAP_MAXIMUM
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (YYSIZEOF (union yyalloc) - 1)
    - item_type: preproc_def
      name: YYCOPY_NEEDED
      pos:
        line_end: 1952
        line_start: 1951
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYFINAL
      pos:
        line_end: 1993
        line_start: 1992
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '3'
    - item_type: preproc_def
      name: YYLAST
      pos:
        line_end: 1995
        line_start: 1994
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '13387'
    - item_type: preproc_def
      name: YYNTOKENS
      pos:
        line_end: 1998
        line_start: 1997
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '149'
    - item_type: preproc_def
      name: YYNNTS
      pos:
        line_end: 2000
        line_start: 1999
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '176'
    - item_type: preproc_def
      name: YYNRULES
      pos:
        line_end: 2002
        line_start: 2001
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '615'
    - item_type: preproc_def
      name: YYNSTATES
      pos:
        line_end: 2004
        line_start: 2003
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1078'
    - item_type: preproc_def
      name: YYUNDEFTOK
      pos:
        line_end: 2006
        line_start: 2005
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YYMAXUTOK
      pos:
        line_end: 2007
        line_start: 2006
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '377'
    - item_type: preproc_def
      name: YYPACT_NINF
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (-873)
    - item_type: preproc_def
      name: YYTABLE_NINF
      pos:
        line_end: 2225
        line_start: 2224
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (-616)
    - item_type: preproc_def
      name: yyerrok
      pos:
        line_end: 5443
        line_start: 5442
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (yyerrstatus = 0)
    - item_type: preproc_def
      name: yyclearin
      pos:
        line_end: 5444
        line_start: 5443
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (yychar = YYEMPTY)
    - item_type: preproc_def
      name: YYEMPTY
      pos:
        line_end: 5445
        line_start: 5444
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: YYEOF
      pos:
        line_end: 5446
        line_start: 5445
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYACCEPT
      pos:
        line_end: 5448
        line_start: 5447
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: goto yyacceptlab
    - item_type: preproc_def
      name: YYABORT
      pos:
        line_end: 5449
        line_start: 5448
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: goto yyabortlab
    - item_type: preproc_def
      name: YYERROR
      pos:
        line_end: 5450
        line_start: 5449
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: goto yyerrorlab
    - item_type: preproc_def
      name: YYTERROR
      pos:
        line_end: 5473
        line_start: 5472
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYERRCODE
      pos:
        line_end: 5474
        line_start: 5473
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '256'
    - item_type: preproc_def
      name: YYFPRINTF
      pos:
        line_end: 5483
        line_start: 5482
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: fprintf
    - item_type: preproc_def
      name: YYINITDEPTH
      pos:
        line_end: 5613
        line_start: 5612
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '200'
    - item_type: preproc_def
      name: YYMAXDEPTH
      pos:
        line_end: 5624
        line_start: 5623
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: yystpcpy
      pos:
        line_end: 5648
        line_start: 5647
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: stpcpy
    - item_type: preproc_def
      name: YYSYNTAX_ERROR
      pos:
        line_end: 10187
        line_start: 10185
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: "yysyntax_error (&yymsg_alloc, &yymsg, \\\n                                        yyssp,
        yytoken)"
    - item_type: preproc_def
      name: pylval
      pos:
        line_end: 10368
        line_start: 10367
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: (*((YYSTYPE*)(p->ylval)))
    - item_type: preproc_def
      name: DETECT_SIZE
      pos:
        line_end: 13146
        line_start: 13145
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type_or_value: '64'
    structs:
    - fields:
      - name: type
        type: int
      - name: level
        type: int
      - name: term
        type: int
      - name: paren
        type: int
      - name: '*prev'
        type: struct parser_lex_strterm
      item_type: struct
      name: parser_lex_strterm
      pos:
        line_end: 1418
        line_start: 1412
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    typedefs:
    - item_type: typedef
      name: node
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: mrb_ast_node
    - item_type: typedef
      name: parser_state
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: mrb_parser_state
    - item_type: typedef
      name: parser_heredoc_info
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: mrb_parser_heredoc_info
    - item_type: typedef
      name: stack_type
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: unsigned int
    - item_type: typedef
      name: string_type
      pos:
        line_end: 1410
        line_start: 1410
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: mrb_string_type
    - item_type: typedef
      name: YYSTYPE
      pos:
        line_end: 1679
        line_start: 1679
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: YYSTYPE
    - item_type: typedef
      name: yytype_int8
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: __INT_LEAST8_TYPE__
    - item_type: typedef
      name: yytype_int8
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: int_least8_t
    - item_type: typedef
      name: yytype_int8
      pos:
        line_end: 1718
        line_start: 1718
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: signed char
    - item_type: typedef
      name: yytype_int16
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: __INT_LEAST16_TYPE__
    - item_type: typedef
      name: yytype_int16
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: int_least16_t
    - item_type: typedef
      name: yytype_int16
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: short
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: __UINT_LEAST8_TYPE__
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: uint_least8_t
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 1735
        line_start: 1735
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: unsigned char
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: short
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 1741
        line_start: 1741
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: __UINT_LEAST16_TYPE__
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 1744
        line_start: 1744
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: uint_least16_t
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: unsigned short
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: int
    - item_type: typedef
      name: yy_state_t
      pos:
        line_end: 1789
        line_start: 1789
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: yytype_int16
    - item_type: typedef
      name: yy_state_fast_t
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: int
    - item_type: typedef
      name: mrb_parser_foreach_top_variable_func(mrb_state *mrb, mrb_sym sym, void
        *user)
      pos:
        line_end: 14046
        line_start: 14046
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
      type: mrb_bool
    union:
    - fields:
      - name: '*nd'
        type: node
      - name: id
        type: mrb_sym
      - name: num
        type: int
      - name: stack
        type: stack_type
      - name: '*vars'
        type: struct vtable
      item_type: union
      name: YYSTYPE
      pos:
        line_end: 1678
        line_start: 1666
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    - fields:
      - name: yyss_alloc
        type: yy_state_t
      - name: yyvs_alloc
        type: YYSTYPE
      item_type: union
      name: yyalloc
      pos:
        line_end: 1940
        line_start: 1936
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
    - fields:
      - name: b[DETECT_SIZE]
        type: char
      - name: h
        type: struct rite_binary_header
      item_type: union
      name: leading
      pos:
        line_end: 13159
        line_start: 13156
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/y.tab.c
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/node.h
  types:
    enum:
    - enumerators:
      - name: NODE_BLOCK
      - name: NODE_AND
      - name: NODE_ARRAY
      - name: NODE_SPLAT
      - name: NODE_INT
      - name: NODE_NIL
      - name: NODE_XSTR
      - name: NODE_ITER
      - name: NODE_CVDECL
      - name: NODE_DVAR
      - name: NODE_UNDEF
      - name: NODE_LITERAL_DELIM
      - name: NODE_RESCUE
      - name: NODE_BACK_REF
      - name: NODE_KW_ARG
      - name: NODE_DOT3
      - name: NODE_STR
      - name: NODE_SDEF
      - name: NODE_WHILE
      - name: NODE_CDECL
      - name: NODE_YIELD
      - name: NODE_DSYM
      - name: NODE_SCOPE
      - name: NODE_RETRY
      - name: NODE_SUPER
      - name: NODE_ARG
      - name: NODE_COLON3
      - name: NODE_NVAR
      - name: NODE_BLOCK_ARG
      - name: NODE_CASE
      - name: NODE_MASGN
      - name: NODE_KW_HASH
      - name: NODE_LAMBDA
      - name: NODE_DEFINED
      - name: NODE_DREGX
      - name: NODE_NEXT
      - name: NODE_SCALL
      - name: NODE_CONST
      - name: NODE_SCLASS
      - name: NODE_WORDS
      - name: NODE_OR
      - name: NODE_ZARRAY
      - name: NODE_FLOAT
      - name: NODE_TO_ARY
      - name: NODE_TRUE
      - name: NODE_LAST
      - name: NODE_FOR
      - name: NODE_OP_ASGN
      - name: NODE_CLASS
      - name: NODE_GVAR
      - name: NODE_DXSTR
      - name: NODE_ENSURE
      - name: NODE_MATCH
      - name: NODE_KW_REST_ARGS
      - name: NODE_SELF
      - name: NODE_DSTR
      - name: NODE_ALIAS
      - name: NODE_UNTIL
      - name: NODE_CVASGN
      - name: NODE_LVAR
      - name: NODE_HEREDOC
      - name: NODE_ARGS_TAIL
      - name: NODE_DOT2
      - name: NODE_NTH_REF
      - name: NODE_BEGIN
      - name: NODE_ZSUPER
      - name: NODE_WHEN
      - name: NODE_ASGN
      - name: NODE_RETURN
      - name: NODE_SYM
      - name: NODE_DEF
      - name: NODE_POSTEXE
      - name: NODE_IF
      - name: NODE_REDO
      - name: NODE_FCALL
      - name: NODE_COLON2
      - name: NODE_CVAR
      - name: NODE_DREGX_ONCE
      - name: NODE_SYMBOLS
      - name: NODE_NOT
      - name: NODE_HASH
      - name: NODE_NEGATE
      - name: NODE_SVALUE
      - name: NODE_FALSE
      - name: NODE_MODULE
      - name: NODE_REGX
      - name: NODE_METHOD
      - name: NODE_BREAK
      - name: NODE_CALL
      - name: NODE_IVAR
      item_type: enum
      name: node_type
      pos:
        line_end: 100
        line_start: 9
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-compiler/core/node.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mkstemp
  - mrb_sockettest_tmppath
  - mrb_sockettest_win_p
  - mrb_sockettest_cygwin_p
  - mrb_mruby_socket_gem_test
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: open
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
      type_or_value: _close
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/test/sockettest.c
      type_or_value: _unlink
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_ntop
  - inet_pton
  - mrb_addrinfo_getaddrinfo
  - mrb_addrinfo_getnameinfo
  - mrb_addrinfo_unix_path
  - sa2addrlist
  - socket_fd
  - socket_family
  - mrb_basicsocket_getpeereid
  - mrb_basicsocket_getpeername
  - mrb_basicsocket_getsockname
  - mrb_basicsocket_getsockopt
  - mrb_basicsocket_recv
  - mrb_basicsocket_recvfrom
  - mrb_basicsocket_send
  - mrb_basicsocket_setnonblock
  - mrb_basicsocket_setsockopt
  - mrb_basicsocket_shutdown
  - mrb_basicsocket_set_is_socket
  - mrb_ipsocket_ntop
  - mrb_ipsocket_pton
  - mrb_ipsocket_recvfrom
  - mrb_socket_gethostname
  - mrb_socket_accept
  - mrb_socket_accept2
  - mrb_socket_bind
  - mrb_socket_connect
  - mrb_socket_listen
  - mrb_socket_sockaddr_family
  - mrb_socket_sockaddr_un
  - mrb_socket_socketpair
  - mrb_socket_socket
  - mrb_tcpsocket_allocate
  - mrb_win32_basicsocket_close
  - mrb_win32_basicsocket_sysread
  - mrb_win32_basicsocket_sysseek
  - mrb_win32_basicsocket_syswrite
  - mrb_mruby_socket_gem_init
  - define_const
  - mrb_mruby_socket_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type_or_value: '0x0501'
    - item_type: preproc_def
      name: SHUT_RDWR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type_or_value: SD_BOTH
    - item_type: preproc_def
      name: HAVE_SA_LEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SA_LEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type_or_value: '0'
    - item_type: preproc_def
      name: E_SOCKET_ERROR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type_or_value: mrb_class_get_id(mrb, MRB_SYM(SocketError))
    structs: []
    typedefs:
    - item_type: typedef
      name: fsize_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type: int
    - item_type: typedef
      name: fsize_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-socket/src/socket.c
      type: size_t
    union: []
- function_names:
  - domain_error
  - asinh
  - acosh
  - atanh
  - cbrt
  - erf
  - erfc
  - log2
  - math_sin
  - math_cos
  - math_tan
  - math_asin
  - math_acos
  - math_atan
  - math_atan2
  - math_sinh
  - math_cosh
  - math_tanh
  - math_asinh
  - math_acosh
  - math_atanh
  - math_exp
  - math_log
  - math_log2
  - math_log10
  - math_sqrt
  - math_cbrt
  - math_frexp
  - math_ldexp
  - math_hypot
  - math_erf
  - math_erfc
  - mrb_mruby_math_gem_init
  - mrb_mruby_math_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-math/src/math.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_catcher
  - mrb_f_throw
  - mrb_mruby_catch_gem_init
  - mrb_mruby_catch_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-catch/src/catch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_complex_new
  - mrb_complex_add
  - mrb_complex_sub
  - mrb_complex_mul
  - mrb_complex_div
  - mrb_complex_to_i
  - mrb_complex_to_f
  - mrb_rational_new
  - mrb_rational_add
  - mrb_rational_sub
  - mrb_rational_mul
  - mrb_rational_div
  - mrb_rational_to_i
  - mrb_rational_to_f
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - get_outfilename
  - parse_args
  - cleanup
  - partial_hook
  - load_file
  - dump_file
  - main
  - mrb_init_mrblib
  - mrb_init_mrbgems
  - mrb_final_mrbgems
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RITEBIN_EXT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
      type_or_value: '".mrb"'
    - item_type: preproc_def
      name: C_EXT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
      type_or_value: '".c"'
    structs:
    - fields:
      - name: '*prog'
        type: char
      - name: '*outfile'
        type: char
      - name: '*initname'
        type: char
      - name: '**argv'
        type: char
      - name: argc
        type: int
      - name: idx
        type: int
      - name: dump_struct
        type: mrb_bool
      - name: check_syntax
        type: mrb_bool
      - name: verbose
        type: mrb_bool
      - name: remove_lv
        type: mrb_bool
      - name: no_ext_ops
        type: mrb_bool
      - name: no_optimize
        type: mrb_bool
      - name: flags
        type: uint8_t
      item_type: struct
      name: mrbc_args
      pos:
        line_end: 30
        line_start: 16
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c
    typedefs: []
    union: []
- function_names:
  - mrb_ary_assoc
  - mrb_ary_rassoc
  - mrb_ary_at
  - ary_ref
  - mrb_ary_values_at
  - mrb_ary_slice_bang
  - mrb_ary_compact
  - mrb_ary_compact_bang
  - mrb_ary_rotate
  - rev
  - mrb_ary_rotate_bang
  - mrb_mruby_array_ext_gem_init
  - mrb_mruby_array_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-array-ext/src/array.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - r_less
  - range_cover
  - range_size
  - range_size
  - mrb_mruby_range_ext_gem_init
  - mrb_mruby_range_ext_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-range-ext/src/range.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmath_get_complex
  - F
  - F
  - CX
  - CX
  - CXDIVf
  - CXDIVc
  - CX
  - creal
  - cimag
  - FC
  - CX
  - CXDIVf
  - CXDIVc
  - FC
  - DEF_CMATH_METHOD
  - cmath_log
  - cmath_log10
  - cmath_log2
  - cmath_sqrt
  - mrb_mruby_cmath_gem_init
  - mrb_mruby_cmath_gem_final
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: M_E
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type_or_value: F(exp)(1.0)
    structs: []
    typedefs:
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: _Fcomplex
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: _Dcomplex
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: complex<float>
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: complex<double>
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: float
    - item_type: typedef
      name: mrb_complex
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-cmath/src/cmath.c
      type: double
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_debug_strnlen
  - mrdb_strndup
  - mrdb_strdup
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_api_common_error
  - STRTOUL
  - parse_breakpoint_no
  - exe_set_command_all
  - exe_set_command_select
  - check_bptype
  - print_breakpoint
  - info_break_all
  - info_break_select
  - parse_breakcommand
  - dbgcmd_break
  - dbgcmd_info_break
  - dbgcmd_delete
  - dbgcmd_enable
  - dbgcmd_disable
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BREAK_SET_MSG_LINE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Breakpoint %d: file %s, line %d.\n"'
    - item_type: preproc_def
      name: BREAK_SET_MSG_METHOD
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Breakpoint %d: method %s.\n"'
    - item_type: preproc_def
      name: BREAK_SET_MSG_CLASS_METHOD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Breakpoint %d: class %s, method %s.\n"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_HEADER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Num     Type           Enb What"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_LINEBREAK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"%-8ubreakpoint     %s   at %s:%u\n"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_METHODBREAK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"%-8ubreakpoint     %s   in %s:%s\n"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_METHODBREAK_NOCLASS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"%-8ubreakpoint     %s   in %s\n"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_ENABLE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"y"'
    - item_type: preproc_def
      name: BREAK_INFO_MSG_DISABLE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDARG
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Internal error."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_BLANK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Try \''help break\'' for more information."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_RANGEOVER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"The line number range is from 1 to 65535."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_NUMOVER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Exceeded the setable number of breakpoint."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_NOOVER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Breakno is over the available number.Please ''quit'' and restart
        mrdb."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDSTR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"String \''%s\'' is invalid.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDLINENO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Line %d in file \"%s\" is unavailable.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDCLASS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Class name \''%s\'' is invalid.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDMETHOD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Method name \''%s\'' is invalid.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDFILE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Source file named \"%s\" is unavailable.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDBPNO
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"warning: bad breakpoint number at or near ''%s''\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_INVALIDBPNO_INFO
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"Args must be numbers variables."'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_NOBPNO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"No breakpoint number %d.\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_NOBPNO_INFO
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"No breakpoint matching ''%d''\n"'
    - item_type: preproc_def
      name: BREAK_ERR_MSG_NOBPNO_INFOALL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '"No breakpoints."'
    - item_type: preproc_def
      name: LINENO_MAX_DIGIT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BPNO_LETTER_NUM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type_or_value: '9'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*all_command_func)(mrb_state *, mrb_debug_context *)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type: int32_t
    - item_type: typedef
      name: (*select_command_func)(mrb_state *, mrb_debug_context *, uint32_t)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c
      type: int32_t
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_COMMAND_LINE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_BREAKPOINT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - parse_args
  - cleanup
  - mrb_debug_context_new
  - mrb_debug_context_get
  - mrb_debug_context_set
  - mrb_debug_context_free
  - mrdb_state_new
  - mrdb_state_get
  - mrdb_state_set
  - mrdb_state_free
  - get_command
  - pick_out_word
  - parse_command
  - print_info_stopped_break
  - print_info_stopped_step_next
  - print_info_stopped_code
  - print_info_stopped
  - get_and_parse_command
  - check_method_breakpoint
  - mrb_code_fetch_hook
  - mrb_debug_break_hook
  - main
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*rfp'
        type: FILE
      - name: '* fname'
        type: char
      - name: '* srcpath'
        type: char
      - name: argc
        type: int
      - name: '** argv'
        type: char
      - name: mrbfile
        type: mrb_bool
      item_type: struct
      name: _args
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    - fields:
      - name: '*cmd1'
        type: char
      - name: '*cmd2'
        type: char
      - name: len1
        type: uint8_t
      - name: len2
        type: uint8_t
      - name: div
        type: uint8_t
      - name: id
        type: debug_command_id
      - name: func
        type: debug_command_func
      item_type: struct
      name: debug_command
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
  types:
    enum:
    - enumerators:
      - name: DBGCMD_RUN
      - name: DBGCMD_STEP
      - name: DBGCMD_WATCH
      - name: DBGCMD_DELETE_DISPLAY
      - name: DBGCMD_DELETE
      - name: DBGCMD_HELP
      - name: DBGCMD_BREAK
      - name: DBGCMD_INFO_WATCH
      - name: DBGCMD_EVAL
      - name: DBGCMD_PRINT
      - name: DBGCMD_QUIT
      - name: DBGCMD_UNKNOWN
      - name: DBGCMD_NEXT
      - name: DBGCMD_INFO_BREAK
      - name: DBGCMD_ENABLE
      - name: DBGCMD_DISPLAY
      - name: DBGCMD_BACKTRACE
      - name: DBGCMD_CONTINUE
      - name: DBGCMD_INFO_LOCAL
      - name: DBGCMD_DISABLE
      - name: DBGCMD_INFO_DISPLAY
      - name: DBGCMD_LIST
      item_type: enum
      name: debug_command_id
      pos:
        line_end: 37
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - enumerators:
      - name: DBGST_CONTINUE
      - name: DBGST_MAX
      - name: DBGST_RESTART
      - name: DBGST_PROMPT
      - name: DBGST_COMMAND_ERROR
      item_type: enum
      name: dbgcmd_state
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - enumerators:
      - name: DBG_INIT
      - name: DBG_RUN
      - name: DBG_STEP
      - name: DBG_NEXT
      - name: DBG_QUIT
      item_type: enum
      name: mrdb_exemode
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - enumerators:
      - name: DBG_PHASE_BEFORE_RUN
      - name: DBG_PHASE_AFTER_RUN
      - name: DBG_PHASE_RESTART
      - name: DBG_PHASE_RUNNING
      item_type: enum
      name: mrdb_exephase
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - enumerators:
      - name: BRK_INIT
      - name: BRK_QUIT
      - name: BRK_BREAK
      - name: BRK_STEP
      - name: BRK_NEXT
      item_type: enum
      name: mrdb_brkmode
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_COMMAND_WORD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
      type_or_value: (16)
    structs:
    - fields:
      - name: '*file'
        type: char
      - name: lineno
        type: uint16_t
      item_type: struct
      name: mrb_debug_linepoint
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - fields:
      - name: '*class_name'
        type: char
      - name: '*method_name'
        type: char
      item_type: struct
      name: mrb_debug_methodpoint
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - fields:
      - name: bpno
        type: uint32_t
      - name: enable
        type: uint8_t
      - name: type
        type: mrb_debug_bptype
      - name: point
        type: "union point {\n    mrb_debug_linepoint linepoint;\n    mrb_debug_methodpoint
          methodpoint;\n  }"
      item_type: struct
      name: mrb_debug_breakpoint
      pos:
        line_end: 98
        line_start: 90
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - fields:
      - name: '*root_irep'
        type: struct mrb_irep
      - name: '*irep'
        type: struct mrb_irep
      - name: '*pc'
        type: mrb_code
      - name: '*regs'
        type: mrb_value
      - name: '*prvfile'
        type: char
      - name: prvline
        type: int32_t
      - name: '*prvci'
        type: mrb_callinfo
      - name: xm
        type: mrdb_exemode
      - name: xphase
        type: mrdb_exephase
      - name: bm
        type: mrdb_brkmode
      - name: bmi
        type: int16_t
      - name: ccnt
        type: uint16_t
      - name: scnt
        type: uint16_t
      - name: bp[MAX_BREAKPOINT]
        type: mrb_debug_breakpoint
      - name: bpnum
        type: uint32_t
      - name: next_bpno
        type: int32_t
      - name: method_bpno
        type: int32_t
      - name: stopped_bpno
        type: int32_t
      - name: isCfunc
        type: mrb_bool
      - name: (*break_hook)(mrb_state *mrb, struct mrb_debug_context *dbg)
        type: mrdb_exemode
      item_type: struct
      name: mrb_debug_context
      pos:
        line_end: 127
        line_start: 100
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    - fields:
      - name: '*command'
        type: char
      - name: wcnt
        type: uint8_t
      - name: pi
        type: uint8_t
      - name: '*words[MAX_COMMAND_WORD]'
        type: char
      - name: '*srcpath'
        type: char
      - name: print_no
        type: uint32_t
      - name: '*dbg'
        type: mrb_debug_context
      item_type: struct
      name: mrdb_state
      pos:
        line_end: 138
        line_start: 129
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
    typedefs:
    - item_type: typedef
      name: (*debug_command_func)(mrb_state*, mrdb_state*)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
      type: dbgcmd_state
    union:
    - fields:
      - name: linepoint
        type: mrb_debug_linepoint
      - name: methodpoint
        type: mrb_debug_methodpoint
      item_type: union
      name: point
      pos:
        line_end: 97
        line_start: 94
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h
- function_names:
  - source_file_free
  - build_path
  - dirname
  - source_file_new
  - remove_newlines
  - show_lines
  - mrb_debug_get_source
  - mrb_debug_list
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINE_BUF_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
      type_or_value: MAX_COMMAND_LINE
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: lineno
        type: uint16_t
      - name: '*fp'
        type: FILE
      item_type: struct
      name: source_file
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c
    typedefs: []
    union: []
- function_names:
  - check_lineno
  - get_break_index
  - free_breakpoint
  - check_file_lineno
  - compare_break_method
  - mrb_debug_set_break_line
  - mrb_debug_set_break_method
  - mrb_debug_get_breaknum
  - mrb_debug_get_break_all
  - mrb_debug_get_break
  - mrb_debug_delete_break
  - mrb_debug_delete_break_all
  - mrb_debug_enable_break
  - mrb_debug_enable_break_all
  - mrb_debug_disable_break
  - mrb_debug_disable_break_all
  - check_start_pc_for_line
  - mrb_debug_check_breakpoint_line
  - mrb_debug_check_breakpoint_method
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BREAKPOINTNO
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
      type_or_value: (MAX_BREAKPOINT * 1024)
    - item_type: preproc_def
      name: MRB_DEBUG_BP_FILE_OK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
      type_or_value: (0x0001)
    - item_type: preproc_def
      name: MRB_DEBUG_BP_LINENO_OK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c
      type_or_value: (0x0002)
    structs: []
    typedefs: []
    union: []
- function_names:
  - dbgcmd_print
  - dbgcmd_eval
  - dbgcmd_info_local
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrdb_check_syntax
  - mrb_debug_eval
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MRB_DEBUG_OK
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (0)
    - item_type: preproc_def
      name: MRB_DEBUG_NOBUF
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: MRB_DEBUG_INVALID_ARGUMENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: MRB_DEBUG_BREAK_INVALID_LINENO
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-11)
    - item_type: preproc_def
      name: MRB_DEBUG_BREAK_INVALID_FILE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-12)
    - item_type: preproc_def
      name: MRB_DEBUG_BREAK_INVALID_NO
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-13)
    - item_type: preproc_def
      name: MRB_DEBUG_BREAK_NUM_OVER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-14)
    - item_type: preproc_def
      name: MRB_DEBUG_BREAK_NO_OVER
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h
      type_or_value: (-15)
    structs: []
    typedefs: []
    union: []
- function_names:
  - dbgcmd_run
  - dbgcmd_continue
  - dbgcmd_step
  - dbgcmd_next
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - listcmd_parser_state_new
  - listcmd_parser_state_free
  - parse_uint
  - skip_char
  - parse_lineno
  - parse_filename
  - replace_ext
  - parse_listcmd_args
  - check_cmd_pattern
  - get_help_msg
  - show_short_help
  - show_long_help
  - dbgcmd_list
  - dbgcmd_help
  - dbgcmd_quit
  source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cmd1'
        type: char
      - name: '*cmd2'
        type: char
      - name: '*short_msg'
        type: char
      - name: '*long_msg'
        type: char
      item_type: struct
      name: help_msg
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    - fields:
      - name: parse_error
        type: mrb_bool
      - name: has_line_min
        type: mrb_bool
      - name: has_line_max
        type: mrb_bool
      - name: '*filename'
        type: char
      - name: line_min
        type: uint16_t
      - name: line_max
        type: uint16_t
      item_type: struct
      name: listcmd_parser_state
      pos:
        line_end: 137
        line_start: 130
        source_file: /src/h2o/deps/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c
    typedefs: []
    union: []
- function_names:
  - ok
  - subtest
  source_file: /src/h2o/deps/picotest/picotest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - indent
  - note
  - _ok
  - done_testing
  - enter_subtest
  - exit_subtest
  - test_is_at
  source_file: /src/h2o/deps/picotest/picotest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_ecc_key
  - boringssl_free_pkey_callback
  - boringssl_get_pkey_index
  - boringssl_sign
  - boringssl_decrypt
  - setup_boringssl_key_method
  - dumb_https_server
  - main
  source_file: /src/h2o/deps/neverbleed/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RSA_get0_key
  - RSA_set0_key
  - RSA_set_flags
  - EVP_PKEY_up_ref
  - NEVERBLEED_MULTITHREAD_ONCE
  - warnvf
  - warnf
  - dief
  - dirname
  - set_cloexec
  - read_nbytes
  - iobuf_dispose
  - iobuf_reserve
  - iobuf_push_num
  - iobuf_push_str
  - iobuf_push_bytes
  - iobuf_shift_num
  - iobuf_shift_str
  - iobuf_shift_bytes
  - iobuf_write
  - iobuf_read
  - neverbleed_iobuf_dispose
  - iobuf_transaction_write
  - iobuf_transaction_read
  - iobuf_transaction_no_response
  - iobuf_transaction
  - FOREACH_DIRENT
  - FOREACH_DIRENT
  - unlink_dir
  - FOREACH_DIRENT
  - dispose_thread_data
  - get_thread_data
  - neverbleed_get_fd
  - neverbleed_transaction_read
  - neverbleed_transaction_write
  - do_exdata_free_callback
  - rsa_exdata_free_callback
  - get_rsa_exdata_idx
  - get_privsep_data
  - offload_free_request
  - do_epoll_ctl
  - register_wait_fd
  - send_responses
  - daemon_get_rsa
  - allocate_slot
  - daemon_set_pkey
  - priv_encdec_proxy
  - priv_encdec_stub
  - priv_enc_proxy
  - priv_enc_stub
  - priv_dec_proxy
  - priv_dec_stub
  - sign_proxy
  - sign_stub
  - create_pkey
  - daemon_get_ecdsa
  - ecdsa_sign_stub
  - ecdsa_exdata_free_callback
  - get_ecdsa_exdata_idx
  - ecdsa_get_privsep_data
  - ecdsa_sign_proxy
  - ecdsa_create_pkey
  - daemon_get_pkey
  - bssl_offload_create_request
  - bssl_offload_digestsign
  - bssl_offload_decrypt
  - digestsign_stub
  - neverbleed_start_digestsign
  - neverbleed_finish_digestsign
  - decrypt_stub
  - neverbleed_start_decrypt
  - neverbleed_finish_decrypt
  - neverbleed_load_private_key_file
  - load_key_stub
  - neverbleed_setuidgid
  - setuidgid_stub
  - neverbleed_setaffinity
  - setaffinity_stub
  - daemon_close_notify_thread
  - del_pkey_stub
  - offload_start
  - offload_resume
  - offload_jobfunc
  - offload_start
  - offload_resume
  - wait_for_data
  - daemon_conn_thread
  - my_closefrom
  - cleanup_fds
  - daemon_main
  - set_signal_handler
  - neverbleed_init
  source_file: /src/h2o/deps/neverbleed/neverbleed.c
  types:
    enum:
    - enumerators:
      - name: NEVERBLEED_TYPE_ERROR
      - name: NEVERBLEED_TYPE_ECDSA
      - name: NEVERBLEED_TYPE_RSA
      item_type: enum
      name: neverbleed_type
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    preproc_defs:
    - item_type: preproc_def
      name: NEVERBLEED_MAX_RSA_BYTES
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: USE_OFFLOAD
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ASYNC_WAIT_CTX_get_all_fds
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
      type_or_value: bssl_async_wait_ctx_get_all_fds
    - item_type: preproc_def
      name: USE_OFFLOAD
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
      type_or_value: '1'
    - item_type: preproc_def
      name: closefrom
      pos:
        line_end: 2046
        line_start: 2045
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
      type_or_value: my_closefrom
    structs:
    - fields:
      - name: '*nb'
        type: neverbleed_t
      - name: key_index
        type: size_t
      item_type: struct
      name: st_neverbleed_rsa_exdata_t
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    - fields:
      - name: self_pid
        type: pid_t
      - name: fd
        type: int
      item_type: struct
      name: st_neverbleed_thread_data_t
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    - fields:
      - name: keys
        type: "struct {\n        pthread_mutex_t lock;\n        /**\n         * if
          the slot is use contains a non-NULL key; if not in use, contains the index
          of the next empty slot or SIZE_MAX if there\n         * are no more empty
          slots\n         */\n        union {\n            EVP_PKEY *pkey;\n            size_t
          next_empty;\n        } *slots;\n        size_t num_slots;\n        size_t
          first_empty;\n    }"
      - name: '*nb'
        type: neverbleed_t
      item_type: struct
      name: daemon_vars = {{.lock = PTHREAD_MUTEX_INITIALIZER, .first_empty = SIZE_MAX}}
      pos:
        line_end: 603
        line_start: 588
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    - fields:
      - name: sockfd
        type: int
      - name: responses
        type: "struct {\n        neverbleed_iobuf_t *first, **next;\n    }"
      item_type: struct
      name: conn_ctx
      pos:
        line_end: 613
        line_start: 605
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    - fields:
      - name: '*buf'
        type: neverbleed_iobuf_t
      - name: async_fd
        type: int
      item_type: struct
      name: engine_request
      pos:
        line_end: 640
        line_start: 619
        source_file: /src/h2o/deps/neverbleed/neverbleed.c
    typedefs: []
    union: []
- function_names:
  - neverbleed_iobuf_size
  source_file: /src/h2o/deps/neverbleed/neverbleed.h
  types:
    enum:
    - enumerators:
      - name: NEVERBLEED_OFFLOAD_OFF
        value: '0'
      - name: NEVERBLEED_OFFLOAD_QAT_ON
      - name: NEVERBLEED_OFFLOAD_QAT_AUTO
      item_type: enum
      name: neverbleed_offload_type
      pos:
        line_end: 129
        line_start: 125
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
    preproc_defs:
    - item_type: preproc_def
      name: NEVERBLEED_HAS_PTHREAD_SETAFFINITY_NP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NEVERBLEED_CPU_SET_T
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type_or_value: cpu_set_t
    - item_type: preproc_def
      name: NEVERBLEED_CPU_SET_T
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type_or_value: cpuset_t
    - item_type: preproc_def
      name: NEVERBLEED_ERRBUF_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type_or_value: (256)
    - item_type: preproc_def
      name: NEVERBLEED_AUTH_TOKEN_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type_or_value: '32'
    structs:
    - fields:
      - name: '*engine'
        type: ENGINE
      - name: daemon_pid
        type: pid_t
      - name: sun_
        type: struct sockaddr_un
      - name: thread_key
        type: pthread_key_t
      - name: auth_token[NEVERBLEED_AUTH_TOKEN_SIZE]
        type: unsigned char
      item_type: struct
      name: st_neverbleed_t
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
    - fields:
      - name: '*buf'
        type: char
      - name: '*start'
        type: char
      - name: '*end'
        type: char
      - name: capacity
        type: size_t
      - name: '*next'
        type: struct st_neverbleed_iobuf_t
      - name: processing
        type: unsigned
      item_type: struct
      name: st_neverbleed_iobuf_t
      pos:
        line_end: 62
        line_start: 55
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
    typedefs:
    - item_type: typedef
      name: (*neverbleed_cb)(int)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/h2o/deps/neverbleed/neverbleed.h
      type: void
    union: []
- function_names:
  - test_secp256r1_key_exchange
  - test_x25519_key_exchange
  - test_secp256r1_sign
  - test_hrr
  - test_asn1_empty_input
  - build_nested_asn1_sequence
  - test_asn1_recursion
  - main
  source_file: /src/h2o/deps/picotls/t/minicrypto.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/picotls/t/minicrypto.c
      type_or_value: '700 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - tostr
  - test_loadn128
  - test_ecb
  - test_gfmul
  - gcm_basic
  - gcm_capacity
  - gcm_test_vectors
  - DOIT
  - gcm_iv96
  - test_generated
  - test_generated_set_capacity
  - test_generated_all
  - test_fusion_aes128gcm
  - test_fusion_aes256gcm
  - test_fusion_aesgcm
  - test_non_temporal_aes128gcm
  - test_non_temporal_aes256gcm
  - test_non_temporal
  - main
  source_file: /src/h2o/deps/picotls/t/fusion.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GHASH128
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/picotls/t/fusion.c
      type_or_value: (((struct ptls_fusion_aesgcm_context128 *)ctx)->ghash)
    - item_type: preproc_def
      name: GHASH256
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/deps/picotls/t/fusion.c
      type_or_value: (((struct ptls_fusion_aesgcm_context256 *)ctx)->ghash)
    structs: []
    typedefs: []
    union: []
- function_names:
  - shift_buffer
  - setup_ptlslog
  - handle_connection
  - run_server
  - run_client
  - usage
  - main
  source_file: /src/h2o/deps/picotls/t/cli.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/picotls/t/cli.c
      type_or_value: 0x00908000L
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_one_hpke
  - test_hpke
  source_file: /src/h2o/deps/picotls/t/hpke.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: "struct {\n            uint16_t kem;\n            uint16_t kdf;\n            uint16_t
          aead;\n        }"
      - name: server_pubkey
        type: "struct {\n            uint8_t bytes[65];\n            size_t len;\n
          \       }"
      - name: expected_secret[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: expected_ciphertext[2][sizeof(cleartext) + 32 /* max tag size */]
        type: uint8_t
      item_type: struct
      name: "all[] =\n        {{.id = {PTLS_HPKE_KEM_X25519_SHA256, PTLS_HPKE_HKDF_SHA256,
        PTLS_HPKE_AEAD_AES_128_GCM},\n          .server_pubkey = {{0x39, 0x48, 0xcf,
        0xe0, 0xad, 0x1d, 0xdb, 0x69, 0x5d, 0x78, 0x0e, 0x59, 0x07, 0x71, 0x95, 0xda,\n
        \                            0x6c, 0x56, 0x50, 0x6b, 0x02, 0x73, 0x29, 0x79,
        0x4a, 0xb0, 0x2b, 0xca, 0x80, 0x81, 0x5c, 0x4d},\n                            32},\n
        \         .client_pubkey = {{0x37, 0xfd, 0xa3, 0x56, 0x7b, 0xdb, 0xd6, 0x28,
        0xe8, 0x86, 0x68, 0xc3, 0xc8, 0xd7, 0xe9, 0x7d,\n                             0x1d,
        0x12, 0x53, 0xb6, 0xd4, 0xea, 0x6d, 0x44, 0xc1, 0x50, 0xf7, 0x41, 0xf1, 0xbf,
        0x44, 0x31},\n                            32},\n          .dh = {{0xb3, 0xb5,
        0xc1, 0x9e, 0xab, 0x3f, 0x08, 0x8a, 0xc1, 0x8f, 0x23, 0xf7, 0x74, 0xff, 0x64,
        0x14,\n                  0xba, 0x4f, 0xde, 0x45, 0x40, 0x4d, 0x10, 0x08, 0x5e,
        0xfc, 0x3e, 0x4d, 0xc9, 0xc7, 0x2e, 0x35},\n                 32},\n          .expected_secret
        = {0xfe, 0x0e, 0x18, 0xc9, 0xf0, 0x24, 0xce, 0x43, 0x79, 0x9a, 0xe3, 0x93,
        0xc7, 0xe8, 0xfe, 0x8f,\n                              0xce, 0x9d, 0x21, 0x88,
        0x75, 0xe8, 0x22, 0x7b, 0x01, 0x87, 0xc0, 0x4e, 0x7d, 0x2e, 0xa1, 0xfc},\n
        \         .expected_ciphertext = {{0xf9, 0x38, 0x55, 0x8b, 0x5d, 0x72, 0xf1,
        0xa2, 0x38, 0x10, 0xb4, 0xbe, 0x2a, 0xb4, 0xf8,\n                                   0x43,
        0x31, 0xac, 0xc0, 0x2f, 0xc9, 0x7b, 0xab, 0xc5, 0x3a, 0x52, 0xae, 0x82, 0x18,
        0xa3,\n                                   0x55, 0xa9, 0x6d, 0x87, 0x70, 0xac,
        0x83, 0xd0, 0x7b, 0xea, 0x87, 0xe1, 0x3c, 0x51, 0x2a},\n                                  {0xaf,
        0x2d, 0x7e, 0x9a, 0xc9, 0xae, 0x7e, 0x27, 0x0f, 0x46, 0xba, 0x1f, 0x97, 0x5b,
        0xe5,\n                                   0x3c, 0x09, 0xf8, 0xd8, 0x75, 0xbd,
        0xc8, 0x53, 0x54, 0x58, 0xc2, 0x49, 0x4e, 0x8a, 0x6e,\n                                   0xab,
        0x25, 0x1c, 0x03, 0xd0, 0xc2, 0x2a, 0x56, 0xb8, 0xca, 0x42, 0xc2, 0x06, 0x3b,
        0x84}}},\n         {.id = {PTLS_HPKE_KEM_P256_SHA256, PTLS_HPKE_HKDF_SHA256,
        PTLS_HPKE_AEAD_AES_128_GCM},\n          .server_pubkey = {{0x04, 0xfe, 0x8c,
        0x19, 0xce, 0x09, 0x05, 0x19, 0x1e, 0xbc, 0x29, 0x8a, 0x92, 0x45, 0x79, 0x25,
        0x31,\n                             0xf2, 0x6f, 0x0c, 0xec, 0xe2, 0x46, 0x06,
        0x39, 0xe8, 0xbc, 0x39, 0xcb, 0x7f, 0x70, 0x6a, 0x82, 0x6a,\n                             0x77,
        0x9b, 0x4c, 0xf9, 0x69, 0xb8, 0xa0, 0xe5, 0x39, 0xc7, 0xf6, 0x2f, 0xb3, 0xd3,
        0x0a, 0xd6, 0xaa,\n                             0x8f, 0x80, 0xe3, 0x0f, 0x1d,
        0x12, 0x8a, 0xaf, 0xd6, 0x8a, 0x2c, 0xe7, 0x2e, 0xa0},\n                            65},\n
        \         .client_pubkey = {{0x04, 0xa9, 0x27, 0x19, 0xc6, 0x19, 0x5d, 0x50,
        0x85, 0x10, 0x4f, 0x46, 0x9a, 0x8b, 0x98, 0x14, 0xd5,\n                             0x83,
        0x8f, 0xf7, 0x2b, 0x60, 0x50, 0x1e, 0x2c, 0x44, 0x66, 0xe5, 0xe6, 0x7b, 0x32,
        0x5a, 0xc9, 0x85,\n                             0x36, 0xd7, 0xb6, 0x1a, 0x1a,
        0xf4, 0xb7, 0x8e, 0x5b, 0x7f, 0x95, 0x1c, 0x09, 0x00, 0xbe, 0x86, 0x3c,\n
        \                            0x40, 0x3c, 0xe6, 0x5c, 0x9b, 0xfc, 0xb9, 0x38,
        0x26, 0x57, 0x22, 0x2d, 0x18, 0xc4},\n                            65},\n          .dh
        = {{0x13, 0xf9, 0x18, 0x52, 0x94, 0x58, 0xd2, 0x54, 0x25, 0x31, 0x40, 0x68,
        0x88, 0xc8, 0xa6, 0xd4,\n                  0xea, 0x7f, 0xf4, 0x73, 0xa6, 0xf4,
        0xdb, 0x45, 0x2a, 0xc3, 0xc4, 0xae, 0x1d, 0x01, 0xce, 0xa1},\n                 32},\n
        \         .expected_secret = {0xc0, 0xd2, 0x6a, 0xea, 0xb5, 0x36, 0x60, 0x9a,
        0x57, 0x2b, 0x07, 0x69, 0x5d, 0x93, 0x3b, 0x58,\n                              0x9d,
        0xcf, 0x36, 0x3f, 0xf9, 0xd9, 0x3c, 0x93, 0xad, 0xea, 0x53, 0x7a, 0xea, 0xbb,
        0x8c, 0xb8},\n          .expected_ciphertext = {{0x5a, 0xd5, 0x90, 0xbb, 0x8b,
        0xaa, 0x57, 0x7f, 0x86, 0x19, 0xdb, 0x35, 0xa3, 0x63, 0x11,\n                                   0x22,
        0x6a, 0x89, 0x6e, 0x73, 0x42, 0xa6, 0xd8, 0x36, 0xd8, 0xb7, 0xbc, 0xd2, 0xf2,
        0x0b,\n                                   0x6c, 0x7f, 0x90, 0x76, 0xac, 0x23,
        0x2e, 0x3a, 0xb2, 0x52, 0x3f, 0x39, 0x51, 0x34, 0x34},\n                                  {0xfa,
        0x6f, 0x03, 0x7b, 0x47, 0xfc, 0x21, 0x82, 0x6b, 0x61, 0x01, 0x72, 0xca, 0x96,
        0x37,\n                                   0xe8, 0x2d, 0x6e, 0x58, 0x01, 0xeb,
        0x31, 0xcb, 0xd3, 0x74, 0x82, 0x71, 0xaf, 0xfd, 0x4e,\n                                   0xcb,
        0x06, 0x64, 0x6e, 0x03, 0x29, 0xcb, 0xdf, 0x3c, 0x3c, 0xd6, 0x55, 0xb2, 0x8e,
        0x82}}},\n         {.id = {PTLS_HPKE_KEM_P256_SHA256, PTLS_HPKE_HKDF_SHA512,
        PTLS_HPKE_AEAD_AES_128_GCM},\n          .server_pubkey = {{0x04, 0x08, 0x5a,
        0xa5, 0xb6, 0x65, 0xdc, 0x38, 0x26, 0xf9, 0x65, 0x0c, 0xcb, 0xcc, 0x47, 0x1b,
        0xe2,\n                             0x68, 0xc8, 0xad, 0xa8, 0x66, 0x42, 0x2f,
        0x73, 0x9e, 0x2d, 0x53, 0x1d, 0x4a, 0x88, 0x18, 0xa9, 0x46,\n                             0x6b,
        0xc6, 0xb4, 0x49, 0x35, 0x70, 0x96, 0x23, 0x29, 0x19, 0xec, 0x4f, 0xe9, 0x07,
        0x0c, 0xcb, 0xac,\n                             0x4a, 0xac, 0x30, 0xf4, 0xa1,
        0xa5, 0x3e, 0xfc, 0xf7, 0xaf, 0x90, 0x61, 0x0e, 0xdd},\n                            65},\n
        \         .client_pubkey = {{0x04, 0x93, 0xed, 0x86, 0x73, 0x5b, 0xdf, 0xb9,
        0x78, 0xcc, 0x05, 0x5c, 0x98, 0xb4, 0x56, 0x95, 0xad,\n                             0x7c,
        0xe6, 0x1c, 0xe7, 0x48, 0xf4, 0xdd, 0x63, 0xc5, 0x25, 0xa3, 0xb8, 0xd5, 0x3a,
        0x15, 0x56, 0x5c,\n                             0x68, 0x97, 0x88, 0x80, 0x70,
        0x07, 0x0c, 0x15, 0x79, 0xdb, 0x1f, 0x86, 0xaa, 0xa5, 0x6d, 0xeb, 0x82,\n
        \                            0x97, 0xe6, 0x4d, 0xb7, 0xe8, 0x92, 0x4e, 0x72,
        0x86, 0x6f, 0x9a, 0x47, 0x25, 0x80},\n                            65},\n          .dh
        = {{0x00, 0x63, 0x70, 0x63, 0x7d, 0xb3, 0x7e, 0xf6, 0x8f, 0x3a, 0x55, 0x0b,
        0x9a, 0xba, 0xb6, 0xa4,\n                  0xb9, 0xa3, 0x4a, 0x16, 0x8f, 0x34,
        0x29, 0x26, 0xda, 0x14, 0x25, 0xa1, 0x68, 0x49, 0xa0, 0x95},\n                 32},\n
        \         .expected_secret = {0x02, 0xf5, 0x84, 0x73, 0x63, 0x90, 0xfc, 0x93,
        0xf5, 0xb4, 0xad, 0x03, 0x98, 0x26, 0xa3, 0xfa,\n                              0x08,
        0xe9, 0x91, 0x1b, 0xd1, 0x21, 0x5a, 0x3d, 0xb8, 0xe8, 0x79, 0x1b, 0xa5, 0x33,
        0xca, 0xfd},\n          .expected_ciphertext = {{0xd3, 0xcf, 0x49, 0x84, 0x93,
        0x14, 0x84, 0xa0, 0x80, 0xf7, 0x4c, 0x1b, 0xb2, 0xa6, 0x78,\n                                   0x27,
        0x00, 0xdc, 0x1f, 0xef, 0x9a, 0xbe, 0x84, 0x42, 0xe4, 0x4a, 0x6f, 0x09, 0x04,
        0x4c,\n                                   0x88, 0x90, 0x72, 0x00, 0xb3, 0x32,
        0x00, 0x35, 0x43, 0x75, 0x4e, 0xb5, 0x19, 0x17, 0xba},\n                                  {0xd1,
        0x44, 0x14, 0x55, 0x5a, 0x47, 0x26, 0x9d, 0xfe, 0xad, 0x9f, 0xbf, 0x26, 0xab,
        0xb3,\n                                   0x03, 0x36, 0x5e, 0x40, 0x70, 0x9a,
        0x4e, 0xd1, 0x6e, 0xae, 0xfe, 0x1f, 0x20, 0x70, 0xf1,\n                                   0xdd,
        0xeb, 0x1b, 0xdd, 0x94, 0xd9, 0xe4, 0x11, 0x86, 0xf1, 0x24, 0xe0, 0xac, 0xc6,
        0x2d}}},\n         {{0}}}"
      pos:
        line_end: 53
        line_start: 41
        source_file: /src/h2o/deps/picotls/t/hpke.c
    typedefs: []
    union: []
- function_names:
  - bench_time
  - bench_run_one
  - bench_mbps
  - bench_run_aead
  - bench_basic
  - main
  source_file: /src/h2o/deps/picotls/t/ptlsbench.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BENCH_MODE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
      type_or_value: '"check"'
    - item_type: preproc_def
      name: BENCH_MODE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
      type_or_value: '"release"'
    - item_type: preproc_def
      name: BENCH_MODE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
      type_or_value: '"debug"'
    - item_type: preproc_def
      name: BENCH_MODE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
      type_or_value: '"release"'
    - item_type: preproc_def
      name: BENCH_BATCH
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: '*provider'
        type: char
      - name: '*algo_name'
        type: char
      - name: '*aead'
        type: ptls_aead_algorithm_t
      - name: '*hash'
        type: ptls_hash_algorithm_t
      - name: enabled_by_defaut
        type: int
      item_type: struct
      name: st_ptls_bench_entry_t
      pos:
        line_end: 254
        line_start: 248
        source_file: /src/h2o/deps/picotls/t/ptlsbench.c
    typedefs: []
    union: []
- function_names:
  - load_certificate_chain
  - load_raw_public_key
  - load_private_key
  - util_save_ticket_cb
  - setup_session_file
  - init_cert_store
  - setup_verify_certificate
  - setup_raw_pubkey_verify_certificate
  - log_event_cb
  - setup_log_event
  - encrypt_ticket_cb
  - setup_session_cache
  - ech_create_opener
  - ech_save_retry_configs
  - load_file
  - ech_setup_configs
  - ech_setup_key
  - resolve_address
  - normalize_txt
  - repeat_while_eintr
  - repeat_while_eintr
  source_file: /src/h2o/deps/picotls/t/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/t/util.h
      type_or_value: '700 '
    structs:
    - fields:
      - name: super
        type: ptls_save_ticket_t
      - name: fn[MAXPATHLEN]
        type: char
      item_type: struct
      name: st_util_save_ticket_t
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/h2o/deps/picotls/t/util.h
    - fields:
      - name: super
        type: ptls_log_event_t
      - name: '*fp'
        type: FILE
      item_type: struct
      name: st_util_log_event_t
      pos:
        line_end: 164
        line_start: 161
        source_file: /src/h2o/deps/picotls/t/util.h
    - fields:
      - name: super
        type: ptls_encrypt_ticket_t
      - name: id[32]
        type: uint8_t
      - name: data
        type: ptls_iovec_t
      item_type: struct
      name: st_util_session_cache_t
      pos:
        line_end: 200
        line_start: 196
        source_file: /src/h2o/deps/picotls/t/util.h
    - fields:
      - name: config_list
        type: ptls_iovec_t
      - name: keyex
        type: "struct {\n        struct {\n            ptls_hpke_kem_t *kem;\n            ptls_key_exchange_context_t
          *ctx;\n        } list[16];\n        size_t count;\n    }"
      - name: retry
        type: "struct {\n        ptls_iovec_t configs;\n        char *fn;\n    }"
      item_type: struct
      name: ech
      pos:
        line_end: 266
        line_start: 253
        source_file: /src/h2o/deps/picotls/t/util.h
    typedefs: []
    union: []
- function_names:
  - test_is_ipaddr
  - test_extension_bitmap
  - test_select_cipher
  - C
  - find_cipher
  - test_hash
  - test_sha256
  - test_sha384
  - test_hmac_sha256
  - test_hkdf
  - test_ciphersuite
  - test_ciphersuite_stream
  - test_aad_ciphersuite
  - test_aad96_ciphersuite
  - test_ecb
  - test_aes128ecb
  - test_aes256ecb
  - test_ctr
  - test_aes128ctr
  - test_chacha20
  - test_aes128gcm
  - test_aes256gcm
  - test_chacha20poly1305
  - test_aegis128l
  - test_aegis256
  - test_ffx
  - test_base64_decode
  - test_ech_decode_config
  - test_rebuild_ch_inner
  - TEST
  - test_ech
  - test_fragmented_message_record
  - test_fragmented_message
  - SET_RECORD
  - save_client_hello
  - on_extension_cb
  - check_clone
  - clone_tls
  - test_handshake
  - sign_certificate
  - async_sign_certificate
  - second_sign_certificate
  - test_full_handshake_impl
  - test_full_handshake
  - test_full_handshake_with_client_authentication
  - test_key_update
  - test_hrr_handshake
  - test_hrr_stateless_handshake
  - on_copy_ticket
  - on_save_ticket
  - test_resumption_impl
  - test_resumption
  - test_grease_resumption
  - test_async_sign_certificate
  - test_enforce_retry
  - test_enforce_retry_stateful
  - test_enforce_retry_stateless
  - stateless_hrr_prepare
  - test_stateless_hrr_aad_change
  - test_ech_config_mismatch
  - test_ech_hrr_accept_sh_reject
  - observe_ech_extension
  - test_ech_null_configs_no_ech
  - do_test_pre_shared_key
  - test_pre_shared_key
  - on_update_traffic_key
  - feed_messages
  - test_handshake_api
  - test_all_handshakes_core
  - test_all_handshakes
  - do_test_tlsblock
  - test_tlsblock8
  - test_tlsblock16
  - test_quicint
  - CHECK_PATTERN
  - test_quicblock
  - test_quic
  - test_legacy_ch_tls12_callback
  - test_legacy_ch
  - test_escape_json_unsafe_string
  - STRLIT
  - test_signature_algorithms_overflow
  - test_picotls
  - test_key_exchange
  source_file: /src/h2o/deps/picotls/t/picotls.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vec[16]
        type: "struct {\n        uint8_t buf[32];\n        size_t len;\n        int
          is_end_of_record;\n    }"
      - name: count
        type: size_t
      item_type: struct
      name: test_fragmented_message_queue = {{{{0}}}}
      pos:
        line_end: 733
        line_start: 726
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - fields:
      - name: key[PTLS_MAX_SECRET_SIZE]
        type: uint8_t
      - name: iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: seq
        type: uint64_t
      item_type: struct
      name: src_keys[2] = {0}
      pos:
        line_end: 874
        line_start: 870
        source_file: /src/h2o/deps/picotls/t/picotls.c
    - fields:
      - name: super
        type: ptls_async_job_t
      - name: selected_algorithm
        type: uint16_t
      item_type: struct
      name: async_ctx
      pos:
        line_end: 1212
        line_start: 1209
        source_file: /src/h2o/deps/picotls/t/picotls.c
    typedefs:
    - item_type: typedef
      name: traffic_secrets_t[2 /* is_enc */][4 /* epoch */][PTLS_MAX_DIGEST_SIZE
        /* octets */]
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/h2o/deps/picotls/t/picotls.c
      type: uint8_t
    union: []
- function_names:
  - DEFINE_FFX_AES128_ALGORITHMS
  - DEFINE_FFX_CHACHA20_ALGORITHMS
  - ADD_FFX_ALGORITHM
  - ADD_FFX_AES128_ALGORITHMS
  - ADD_FFX_CHACHA20_ALGORITHMS
  source_file: /src/h2o/deps/picotls/t/test.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECP256R1_PRIVATE_KEY
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/deps/picotls/t/test.h
      type_or_value: "\"\\xc1\\x74\\xb4\\xf9\\x5e\\xfe\\x7a\\x01\\x0e\\xbe\\x4a\\xe8\\x33\\xb2\\x36\\x13\\xfc\\x65\\xe9\\x65\\x91\\xa8\\x39\\x9e\\x9a\\x80\\xfb\\xab\\xd1\\xff\\xba\"
        \\\n    \"\\x3a\""
    - item_type: preproc_def
      name: SECP256R1_CERTIFICATE
      pos:
        line_end: 52
        line_start: 31
        source_file: /src/h2o/deps/picotls/t/test.h
      type_or_value: "\"\\x30\\x82\\x02\\x60\\x30\\x82\\x01\\x48\\xa0\\x03\\x02\\x01\\x02\\x02\\x01\\x01\\x30\\x0d\\x06\\x09\\x2a\\x86\\x48\\x86\\xf7\\x0d\\x01\\x01\\x0b\\x05\\x00\"
        \\\n    \"\\x30\\x1a\\x31\\x18\\x30\\x16\\x06\\x03\\x55\\x04\\x03\\x13\\x0f\\x70\\x69\\x63\\x6f\\x74\\x6c\\x73\\x20\\x74\\x65\\x73\\x74\\x20\\x63\\x61\\x30\\x1e\\x17\"
        \\\n    \"\\x0d\\x31\\x38\\x30\\x32\\x32\\x33\\x30\\x35\\x33\\x31\\x30\\x34\\x5a\\x17\\x0d\\x32\\x38\\x30\\x32\\x32\\x31\\x30\\x35\\x33\\x31\\x30\\x34\\x5a\\x30\\x1b\"
        \\\n    \"\\x31\\x19\\x30\\x17\\x06\\x03\\x55\\x04\\x03\\x13\\x10\\x74\\x65\\x73\\x74\\x2e\\x65\\x78\\x61\\x6d\\x70\\x6c\\x65\\x2e\\x63\\x6f\\x6d\\x30\\x59\\x30\\x13\"
        \\\n    \"\\x06\\x07\\x2a\\x86\\x48\\xce\\x3d\\x02\\x01\\x06\\x08\\x2a\\x86\\x48\\xce\\x3d\\x03\\x01\\x07\\x03\\x42\\x00\\x04\\xda\\xc8\\xa5\\x40\\x54\\xba\\x33\\xda\"
        \\\n    \"\\x18\\xa9\\x41\\x7f\\x49\\x53\\xdf\\x60\\xe6\\xa6\\x3d\\xb6\\x8e\\x53\\x3a\\x9f\\xdd\\x19\\x14\\x5e\\xab\\x03\\xcf\\xbc\\xfb\\x36\\x98\\x16\\x24\\x8f\\x07\"
        \\\n    \"\\x29\\x6d\\x15\\xd8\\x4f\\x30\\xe8\\x09\\x64\\xfb\\x14\\xfc\\x86\\x7c\\xd4\\x06\\xc2\\xfd\\x9d\\xe8\\x99\\x3f\\x48\\x8c\\x2b\\xa3\\x7b\\x30\\x79\\x30\\x09\"
        \\\n    \"\\x06\\x03\\x55\\x1d\\x13\\x04\\x02\\x30\\x00\\x30\\x2c\\x06\\x09\\x60\\x86\\x48\\x01\\x86\\xf8\\x42\\x01\\x0d\\x04\\x1f\\x16\\x1d\\x4f\\x70\\x65\\x6e\\x53\"
        \\\n    \"\\x53\\x4c\\x20\\x47\\x65\\x6e\\x65\\x72\\x61\\x74\\x65\\x64\\x20\\x43\\x65\\x72\\x74\\x69\\x66\\x69\\x63\\x61\\x74\\x65\\x30\\x1d\\x06\\x03\\x55\\x1d\\x0e\"
        \\\n    \"\\x04\\x16\\x04\\x14\\xee\\x30\\x86\\x16\\xa1\\xd2\\x69\\xad\\x64\\xe4\\xd7\\x77\\x6b\\xb2\\xfd\\x5c\\x4f\\x01\\xa2\\xb5\\x30\\x1f\\x06\\x03\\x55\\x1d\\x23\"
        \\\n    \"\\x04\\x18\\x30\\x16\\x80\\x14\\xbf\\x79\\xca\\x97\\xb2\\x60\\x78\\x20\\x96\\xaa\\x46\\x57\\x9c\\xdf\\xa7\\xb2\\x23\\xf5\\x25\\x63\\x30\\x0d\\x06\\x09\\x2a\"
        \\\n    \"\\x86\\x48\\x86\\xf7\\x0d\\x01\\x01\\x0b\\x05\\x00\\x03\\x82\\x01\\x01\\x00\\x8f\\xac\\x9c\\x01\\x6d\\x81\\xaa\\x8c\\xae\\x5d\\xb5\\x16\\x74\\xea\\xe8\\xeb\"
        \\\n    \"\\x26\\x5b\\xb1\\x66\\xd5\\x6b\\xd4\\x4d\\x79\\x0d\\x6d\\x87\\xa9\\xb6\\xbf\\x74\\x2d\\xc1\\xb2\\x2e\\x52\\xb6\\x4b\\xca\\x0d\\x01\\x45\\x38\\x58\\x1a\\xd2\"
        \\\n    \"\\x6a\\x6d\\x20\\x98\\x5a\\x51\\xb0\\x6f\\x2c\\x3f\\x0f\\x12\\x88\\xed\\x7c\\x09\\xa5\\x74\\x00\\x21\\x3d\\x4b\\xd2\\x2d\\x54\\xaa\\x53\\x8b\\x64\\xf9\\x1e\"
        \\\n    \"\\xea\\xa5\\x8a\\xe7\\x61\\x5e\\x56\\x92\\x52\\x36\\x3e\\xa0\\x68\\x59\\x9c\\x7d\\xb3\\xe8\\x5c\\x4b\\x77\\x6e\\xde\\x28\\xed\\x18\\x91\\xa9\\x9c\\x39\\xd2\"
        \\\n    \"\\x96\\xcc\\x98\\x05\\x8c\\x74\\xdc\\x1e\\x12\\x5b\\x38\\xbd\\x56\\xcb\\xa3\\xe8\\xe1\\x2a\\x5a\\x2b\\xd2\\x32\\x45\\xc1\\x10\\x85\\x20\\x6c\\x6b\\x34\\xea\"
        \\\n    \"\\x66\\x91\\x0e\\x2e\\xb8\\x64\\x87\\x9f\\x07\\xbc\\x23\\x4f\\x23\\xad\\xbe\\x89\\xdf\\x0a\\x98\\x47\\xe9\\x63\\x02\\xd3\\x41\\xf4\\x2d\\xa4\\xce\\xdd\\xe3\"
        \\\n    \"\\xd8\\x41\\x08\\xfe\\xdf\\x47\\xc0\\xe7\\x63\\x8e\\x1f\\xf0\\x4b\\xc5\\xae\\xab\\xc0\\xba\\x38\\x3e\\xe3\\x90\\x9c\\x08\\xbd\\x75\\x1c\\xb9\\xb8\\x54\\x43\"
        \\\n    \"\\x1d\\x99\\x42\\xe0\\xa2\\xb7\\x75\\xbb\\x14\\x03\\x79\\x9a\\xf6\\x07\\xd8\\xa5\\xab\\x2b\\x3a\\x70\\x8b\\x77\\x85\\x70\\x8a\\x98\\x38\\x9b\\x35\\x09\\xf6\"
        \\\n    \"\\x62\\x6b\\x29\\x4a\\xa7\\xa7\\xf9\\x3b\\xde\\xd8\\xc8\\x90\\x57\\xf2\\x76\\x2a\\x23\\x0b\\x01\\x68\\xc6\\x9a\\xf2\""
    - item_type: preproc_def
      name: ECH_CONFIG_LIST
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/h2o/deps/picotls/t/test.h
      type_or_value: "\"\\x00\\x63\\xfe\\x0d\\x00\\x5f\\x12\\x00\\x10\\x00\\x41\\x04\\xfe\\x8c\\x19\\xce\\x09\\x05\\x19\\x1e\\xbc\\x29\\x8a\\x92\\x45\\x79\\x25\\x31\\xf2\\x6f\\x0c\"
        \\\n    \"\\xec\\xe2\\x46\\x06\\x39\\xe8\\xbc\\x39\\xcb\\x7f\\x70\\x6a\\x82\\x6a\\x77\\x9b\\x4c\\xf9\\x69\\xb8\\xa0\\xe5\\x39\\xc7\\xf6\\x2f\\xb3\\xd3\\x0a\\xd6\\xaa\"
        \\\n    \"\\x8f\\x80\\xe3\\x0f\\x1d\\x12\\x8a\\xaf\\xd6\\x8a\\x2c\\xe7\\x2e\\xa0\\x00\\x08\\x00\\x02\\x00\\x02\\x00\\x01\\x00\\x01\\x40\\x0b\\x65\\x78\\x61\\x6d\\x70\"
        \\\n    \"\\x6c\\x65\\x2e\\x63\\x6f\\x6d\\x00\\x00\""
    - item_type: preproc_def
      name: ECH_ALTERNATIVE_CONFIG_LIST
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/h2o/deps/picotls/t/test.h
      type_or_value: "\"\\x00\\x63\\xfe\\x0d\\x00\\x5f\\x13\\x00\\x10\\x00\\x41\\x04\\x39\\xd2\\xc8\\xfb\\x6f\\xcc\\x79\\x72\\xb2\\x28\\x20\\x33\\xad\\xc4\\x97\\x01\\xff\\xd6\\x91\"
        \\\n    \"\\x76\\xaa\\x1a\\x11\\xd9\\x36\\x51\\xb1\\xb1\\x29\\xd9\\x0e\\xe0\\x96\\x1f\\x75\\xfa\\x19\\xff\\xec\\xe2\\xd7\\x91\\xab\\xf5\\x29\\x39\\x35\\x66\\x90\\xbf\"
        \\\n    \"\\xf3\\x56\\x73\\xcf\\xc1\\x42\\xc1\\x6e\\x99\\x25\\xd2\\xab\\xdb\\xb6\\x00\\x08\\x00\\x02\\x00\\x02\\x00\\x01\\x00\\x01\\x40\\x0b\\x65\\x78\\x61\\x6d\\x70\"
        \\\n    \"\\x6c\\x65\\x2e\\x63\\x6f\\x6d\\x00\\x00\""
    - item_type: preproc_def
      name: ECH_PRIVATE_KEY
      pos:
        line_end: 71
        line_start: 65
        source_file: /src/h2o/deps/picotls/t/test.h
      type_or_value: "\"-----BEGIN PRIVATE KEY-----\\n\"                                                                                                \\\n
        \   \"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg885/2uV+GjENh/Hr\\n\"
        \                                                          \\\n    \"vebzKL4Kmc28rfTWWJzyneS4/9KhRANCAAT+jBnOCQUZHrwpipJFeSUx8m8M7OJG\\n\"
        \                                                          \\\n    \"BjnovDnLf3Bqgmp3m0z5abig5TnH9i+z0wrWqo+A4w8dEoqv1oos5y6g\\n\"
        \                                                                  \\\n    \"-----END
        PRIVATE KEY-----\\n\""
    structs:
    - fields:
      - name: '*algo'
        type: ptls_cipher_algorithm_t
      - name: bit_length
        type: int
      item_type: struct
      name: st_ptls_ffx_test_variants_t
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/h2o/deps/picotls/t/test.h
    typedefs: []
    union: []
- function_names:
  - test_bf
  - test_key_exchanges
  - test_sign_verify
  - test_sha
  - test_rsa_sign
  - do_test_ecdsa_sign
  - test_ecdsa_sign
  - test_ed25519_sign
  - x509_from_pem
  - key_from_pem
  - test_cert_verify
  - setup_certificate
  - setup_sign_certificate
  - verify_cert_cb
  - test_all_hpke
  - create_ech_opener
  - load_engine
  - qat_set_pending
  - many_handshakes
  - main
  source_file: /src/h2o/deps/picotls/t/openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/picotls/t/openssl.c
      type_or_value: 0x00908000L
    - item_type: preproc_def
      name: ASYNC_TESTS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/picotls/t/openssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RSA_PRIVATE_KEY
      pos:
        line_end: 79
        line_start: 51
        source_file: /src/h2o/deps/picotls/t/openssl.c
      type_or_value: "\"-----BEGIN RSA PRIVATE KEY-----\\n\"                                                                                            \\\n
        \   \"MIIEowIBAAKCAQEA5soWzSG7iyawQlHM1yaX2dUAATUkhpbg2WPFOEem7E3zYzc6\\n\"
        \                                                          \\\n    \"A/Z+bViFlfEgL37cbDUb4pnOAHrrsjGgkyBYh5i9iCTVfCk+H6SOHZJORO1Tq8X9\\n\"
        \                                                          \\\n    \"C7WcNcshpSdm2Pa8hmv9hsHbLSeoPNeg8NkTPwMVaMZ2GpdmiyAmhzSZ2H9mzNI7\\n\"
        \                                                          \\\n    \"ntPW/XCchVf+ax2yt9haZ+mQE2NPYwHDjqCtdGkP5ZXXnYhJSBzSEhxfGckIiKDy\\n\"
        \                                                          \\\n    \"OxiNkLFLvUdT4ERSFBjauP2cSI0XoOUsiBxJNwHH310AU8jZbveSTcXGYgEuu2MI\\n\"
        \                                                          \\\n    \"uDo7Vhkq5+TCqXsIFNbjy0taOoPRvUbPsbqFlQIDAQABAoIBAQCWcUv1wjR/2+Nw\\n\"
        \                                                          \\\n    \"B+Swp267R9bt8pdxyK6f5yKrskGErremiFygMrFtVBQYjws9CsRjISehSkN4GqjE\\n\"
        \                                                          \\\n    \"CweygJZVJeL++YvUmQnvFJSzgCjXU6GEStbOKD/A7T5sa0fmzMhOE907V+kpAT3x\\n\"
        \                                                          \\\n    \"E1rNRaP/ImJ1X1GjuefVb0rOPiK/dehFQWfsUkOvh+J3PU76wcnexxzJgxhVxdfX\\n\"
        \                                                          \\\n    \"qNa7UDsWzTImUjcHIfnhXc1K/oSKk6HjImQi/oE4lgoJUCEDaUbq0nXNrM0EmTTv\\n\"
        \                                                          \\\n    \"OQ5TVP5Lds9p8UDEa55eZllGXam0zKjhDKtkQ/5UfnxsAv2adY5cuH+XN0ExfKD8\\n\"
        \                                                          \\\n    \"wIZ5qINtAoGBAPRbQGZZkP/HOYA4YZ9HYAUQwFS9IZrQ8Y7C/UbL01Xli13nKalH\\n\"
        \                                                          \\\n    \"xXdG6Zv6Yv0FCJKA3N945lEof9rwriwhuZbyrA1TcKok/s7HR8Bhcsm2DzRD5OiC\\n\"
        \                                                          \\\n    \"3HK+Xy+6fBaMebffqBPp3Lfj/lSPNt0w/8DdrKBTw/cAy40g0n1zEu07AoGBAPHJ\\n\"
        \                                                          \\\n    \"V4IfQBiblCqDh77FfQRUNR4hVbbl00Gviigiw563nk7sxdrOJ1edTyTOUBHtM3zg\\n\"
        \                                                          \\\n    \"AT9sYz2CUXvsyEPqzMDANWMb9e2R//NcP6aM4k7WQRnwkZkp0WOIH95U2o1MHCYc\\n\"
        \                                                          \\\n    \"5meAHVf2UMl+64xU2ZfY3rjMmPLjWMt0hKYsOmtvAoGAClIQVkJSLXtsok2/Ucrh\\n\"
        \                                                          \\\n    \"81TRysJyOOe6TB1QNT1Gn8oiKMUqrUuqu27zTvM0WxtrUUTAD3A7yhG71LN1p8eE\\n\"
        \                                                          \\\n    \"3ytAuQ9dItKNMI6aKTX0czCNU9fKQ0fDp9UCkDGALDOisHFx1+V4vQuUIl4qIw1+\\n\"
        \                                                          \\\n    \"v9adA+iFzljqP/uy6DmEAyECgYAyWCgecf9YoFxzlbuYH2rukdIVmf9M/AHG9ZQg\\n\"
        \                                                          \\\n    \"00xEKhuOd4KjErXiamDmWwcVFHzaDZJ08E6hqhbpZN42Nhe4Ms1q+5FzjCjtNVIT\\n\"
        \                                                          \\\n    \"jdY5cCdSDWNjru9oeBmao7R2I1jhHrdi6awyeplLu1+0cp50HbYSaJeYS3pbssFE\\n\"
        \                                                          \\\n    \"EIWBhQKBgG3xleD4Sg9rG2OWQz5IrvLFg/Hy7YWyushVez61kZeLDnt9iM2um76k\\n\"
        \                                                          \\\n    \"/xFNIW0a+eL2VxRTCbXr9z86hjc/6CeSJHKYFQl4zsSAZkaIJ0+HbrhDNBAYh9b2\\n\"
        \                                                          \\\n    \"mRdX+OMdZ7Z5J3Glt8ENFRqe8RlESMpAKxjR+dID0bjwAjVr2KCh\\n\"
        \                                                                      \\\n
        \   \"-----END RSA PRIVATE KEY-----\\n\""
    - item_type: preproc_def
      name: RSA_CERTIFICATE
      pos:
        line_end: 101
        line_start: 80
        source_file: /src/h2o/deps/picotls/t/openssl.c
      type_or_value: "\"-----BEGIN CERTIFICATE-----\\n\"                                                                                                \\\n
        \   \"MIIDQjCCAiqgAwIBAgIBBTANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9waWNv\\n\"
        \                                                          \\\n    \"dGxzIHRlc3QgY2EwHhcNMjExMjEzMDY1MzQwWhcNMzExMjExMDY1MzQwWjAbMRkw\\n\"
        \                                                          \\\n    \"FwYDVQQDExB0ZXN0LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\\n\"
        \                                                          \\\n    \"MIIBCgKCAQEA5soWzSG7iyawQlHM1yaX2dUAATUkhpbg2WPFOEem7E3zYzc6A/Z+\\n\"
        \                                                          \\\n    \"bViFlfEgL37cbDUb4pnOAHrrsjGgkyBYh5i9iCTVfCk+H6SOHZJORO1Tq8X9C7Wc\\n\"
        \                                                          \\\n    \"NcshpSdm2Pa8hmv9hsHbLSeoPNeg8NkTPwMVaMZ2GpdmiyAmhzSZ2H9mzNI7ntPW\\n\"
        \                                                          \\\n    \"/XCchVf+ax2yt9haZ+mQE2NPYwHDjqCtdGkP5ZXXnYhJSBzSEhxfGckIiKDyOxiN\\n\"
        \                                                          \\\n    \"kLFLvUdT4ERSFBjauP2cSI0XoOUsiBxJNwHH310AU8jZbveSTcXGYgEuu2MIuDo7\\n\"
        \                                                          \\\n    \"Vhkq5+TCqXsIFNbjy0taOoPRvUbPsbqFlQIDAQABo4GRMIGOMAkGA1UdEwQCMAAw\\n\"
        \                                                          \\\n    \"LAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0G\\n\"
        \                                                          \\\n    \"A1UdDgQWBBQTW9cOMFPyPZ60/hut8dD0N4qemDAfBgNVHSMEGDAWgBS/ecqXsmB4\\n\"
        \                                                          \\\n    \"IJaqRlec36eyI/UlYzATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsF\\n\"
        \                                                          \\\n    \"AAOCAQEAYTglgIYqxhbmErQar8yFmRRJp93Zul+PnCuq1nkGPokJoytszoQtGBfw\\n\"
        \                                                          \\\n    \"ftgcMyTH3TOR22XThQafi/qWj3gz//oicZ09AuDfk/GMweWPjPGSs2lNUCbC9FqW\\n\"
        \                                                          \\\n    \"75JpYWsKqk8s0GwetZ710rX/65wJQAb4EcibMdWq98C/HUwQspXiXBXkEMDbMF5Q\\n\"
        \                                                          \\\n    \"s41vyeASk03jff+ofvTZl33sPurltO2oyRtDfUKWFAMBS7Bk/h/d3ZIwmv7DjXVw\\n\"
        \                                                          \\\n    \"ZKjxMZbXSmlgdngzBCBYZb5p+VkGXHqVjd07KhZd4nn5sqLy2i1COWB4OCb0xUHr\\n\"
        \                                                          \\\n    \"QxHvmJiqQ57FTFDypV0sKZRLuY9ovQ==\\n\"
        \                                                                                          \\\n
        \   \"-----END CERTIFICATE-----\\n\""
    structs:
    - fields:
      - name: '*algo'
        type: ptls_hash_algorithm_t
      - name: expected[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      item_type: struct
      name: "all[] = {\n        {&ptls_openssl_sha256, {0x9b, 0x5d, 0x38, 0x9a, 0xa5,
        0xfd, 0xc8, 0x3a, 0xf5, 0x59, 0x8e, 0x90, 0xd7, 0x4e, 0x99, 0xb2,\n                                0xbc,
        0xeb, 0x97, 0x45, 0x7a, 0xc5, 0xda, 0xde, 0xd5, 0xd2, 0x18, 0x1c, 0x33, 0x5c,
        0x93, 0x41}},\n        {&ptls_openssl_sha384, {0x41, 0x7a, 0x7e, 0xda, 0x89,
        0x55, 0xc6, 0xb4, 0x31, 0xde, 0x73, 0x2c, 0x8d, 0xc9, 0x3b, 0xcc,\n                                0xc7,
        0xbc, 0xe8, 0x96, 0x91, 0x7a, 0xa6, 0xa2, 0xf8, 0x73, 0x7e, 0xb9, 0xff, 0x09,
        0xc6, 0x32,\n                                0x31, 0x7b, 0xe1, 0x5b, 0xd7,
        0xaa, 0xf2, 0xbd, 0x2a, 0x5c, 0x3a, 0xda, 0x3b, 0x24, 0x75, 0x92}},\n        {&ptls_openssl_sha512,
        {0x40, 0x9d, 0x7f, 0x12, 0x8e, 0x32, 0x96, 0x89, 0xdc, 0xa5, 0x72, 0xe4, 0xa5,
        0x39, 0xb4, 0x2b,\n                                0xf0, 0x24, 0xe5, 0x42,
        0x7a, 0x61, 0x77, 0x69, 0xda, 0xd5, 0xfd, 0x72, 0x85, 0x83, 0x39, 0x01,\n
        \                               0x31, 0xa6, 0xc8, 0x2f, 0x6a, 0x09, 0xfe,
        0xa0, 0x54, 0x0c, 0xe3, 0x89, 0xdb, 0x8c, 0x4a, 0x83,\n                                0x2f,
        0x90, 0x94, 0x54, 0x93, 0x3f, 0xe9, 0x8a, 0x32, 0x3f, 0x85, 0x24, 0xa5, 0x9b,
        0x5b, 0x02}},\n\n        {NULL}}"
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/h2o/deps/picotls/t/openssl.c
    - fields:
      - name: conns[10]
        type: "struct {\n        size_t next_pending;\n        ptls_t *tls;\n        int
          wait_fd;\n    }"
      - name: first_pending
        type: size_t
      item_type: struct
      name: qat
      pos:
        line_end: 412
        line_start: 405
        source_file: /src/h2o/deps/picotls/t/openssl.c
    typedefs: []
    union: []
- function_names:
  - test_quiclb
  source_file: /src/h2o/deps/picotls/t/quiclb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - random_trial
  - test_random
  - test_secp256r1
  - test_x25519
  - test_key_exchanges
  - test_load_one_der_key
  - test_load_rsa_key
  - test_load_secp256r1_key
  - test_load_secp384r1_key
  - test_load_secp521r1_key
  - test_load_secp256r1_pkcs8_key
  - test_load_rsa_pkcs8_key
  - test_sign_certificate
  - main
  source_file: /src/h2o/deps/picotls/t/mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASSET_RSA_KEY
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/rsa/key.pem"'
    - item_type: preproc_def
      name: ASSET_RSA_PKCS8_KEY
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/rsa-pkcs8/key.pem"'
    - item_type: preproc_def
      name: ASSET_SECP256R1_KEY
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/secp256r1/key.pem"'
    - item_type: preproc_def
      name: ASSET_SECP384R1_KEY
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/secp384r1/key.pem"'
    - item_type: preproc_def
      name: ASSET_SECP521R1_KEY
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/secp521r1/key.pem"'
    - item_type: preproc_def
      name: ASSET_SECP256R1_PKCS8_KEY
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
      type_or_value: '"t/assets/secp256r1-pkcs8/key.pem"'
    structs:
    - fields:
      - name: scheme_id
        type: uint16_t
      - name: hash_algo
        type: psa_algorithm_t
      item_type: struct
      name: st_ptls_mbedtls_signature_scheme_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
    - fields:
      - name: super
        type: ptls_sign_certificate_t
      - name: key_id
        type: mbedtls_svc_key_id_t
      - name: attributes
        type: psa_key_attributes_t
      - name: '*schemes'
        type: ptls_mbedtls_signature_scheme_t
      item_type: struct
      name: st_ptls_mbedtls_sign_certificate_t
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/h2o/deps/picotls/t/mbedtls.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-minicrypto/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KeyInit
  - KeyRelease
  - EncodeOneShot
  - DecodeOneShot
  - test_oneshot
  - delete_test_aead_context
  - new_test_aead_context
  - test_decrypt
  - test_encrypt
  - test_encrypt_vector
  - test_for_size
  - test_one_aead
  - test_cipher_one_way
  - test_cipher_pair
  - test_hash_calc
  - main
  source_file: /src/h2o/deps/picotls/picotlsvs/bcrypt-test/bcrypt-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_printf
  - openPemTest
  - openPemFile
  - get_certificates
  - SetSignCertificate
  - handshake_init
  - handshake_progress
  - extract_1rtt_secret
  - verify_1rtt_secret_extraction
  - openssl_init_cert_store
  - openssl_init_test_client
  - openssl_init_test_server
  - minicrypto_init_test_client
  - minicrypto_init_test_server
  - collect_test_extension
  - set_test_extensions
  - collected_test_extensions
  - client_hello_call_back
  - set_handshake_context
  - verify_handshake_extension
  - ptls_memory_loopback_test
  - main
  source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PICOTLS_CERT_STORE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
      type_or_value: '"..\\..\\t\\assets\\test-ca.crt"'
    - item_type: preproc_def
      name: PICOTLS_CERT_STORE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
      type_or_value: '"../../t/assets/test-ca.crt"'
    - item_type: preproc_def
      name: PICOTLS_VS_TEST_EXTENSION
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
      type_or_value: '1234'
    structs:
    - fields:
      - name: client_mode
        type: int
      - name: received_extension_length
        type: size_t
      - name: received_extension[16]
        type: uint8_t
      - name: ext[2]
        type: ptls_raw_extension_t
      - name: handshake_properties
        type: ptls_handshake_properties_t
      item_type: struct
      name: st_picotls_vs_test_context_t
      pos:
        line_end: 376
        line_start: 367
        source_file: /src/h2o/deps/picotls/picotlsvs/picotlsvs/picotlsvs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wincompat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wincompat.h
      type_or_value: int
    - item_type: preproc_def
      name: gettimeofday
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wincompat.h
      type_or_value: wintimeofday
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wincompat.h
      type_or_value: _stricmp
    structs:
    - fields:
      - name: tz_minuteswest
        type: int
      - name: tz_dsttime
        type: int
      item_type: struct
      name: timezone
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wincompat.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wintimeofday
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls/wintimeofday.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-openssl/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getopt
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c
      type_or_value: (int)':'
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/picotls/picotlsvs/picotls-esni/getopt.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/pioctls-core/stdafx.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/pioctls-core/stdafx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/pioctls-core/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-minicrypto-deps/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/picotlsvs/picotls-core/targetver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PTLS_LIKELY
  - PTLS_UNLIKELY
  - PTLS_BUILD_ASSERT_EXPR
  - PTLS_BUILD_ASSERT
  - PTLS_LIKELY
  - PTLS_UNLIKELY
  - PTLS_BUILD_ASSERT
  - PTLS_ASSERT_IS_ARRAY_EXPR
  - PTLS_ASSERT_IS_ARRAY_EXPR
  - PTLS_ELEMENTSOF
  - PTLS_ERROR_GET_CLASS
  - PTLS_ALERT_TO_SELF_ERROR
  - PTLS_ALERT_TO_PEER_ERROR
  - PTLS_ERROR_TO_ALERT
  - PTLS_TO__STR
  - PTLS_TO_STR
  - PTLS_CALLBACK_TYPE0
  - PTLS_CALLBACK_TYPE
  - ptls_buffer_pushv
  - ptls_buffer_push
  - ptls_buffer_push16
  - ptls_buffer_push24
  - ptls_buffer_push32
  - ptls_buffer_push64
  - ptls_buffer_push_quicint
  - ptls_buffer_push_block
  - ptls_buffer_push_asn1_block
  - ptls_buffer_push_asn1_sequence
  - ptls_buffer_push_message_body
  - ptls_push_message
  - ptls_decode_open_block
  - ptls_decode_assert_block_close
  - ptls_decode_block
  - PTLS_LOG_DEFINE_GETSNI
  - PTLS_LOG__DO_LOG
  - PTLS_LOG_DEFINE_POINT
  - PTLS_LOG
  - PTLS_LOG_CONN
  - PTLS_LOG__ELEMENT_PREFIX_CORE
  - PTLS_LOG__ELEMENT_PREFIX
  - PTLS_LOG_ELEMENT_SAFESTR
  - PTLS_LOG_ELEMENT_UNSAFESTR
  - PTLS_LOG_ELEMENT_HEXDUMP
  - PTLS_LOG_ELEMENT_PTR
  - PTLS_LOG_ELEMENT_SIGNED
  - PTLS_LOG__DO_ELEMENT_UNSIGNED
  - PTLS_LOG_ELEMENT_UNSIGNED
  - PTLS_LOG_ELEMENT_BOOL
  - PTLS_LOG_APPDATA_ELEMENT_UNSAFESTR
  - PTLS_LOG_APPDATA_ELEMENT_HEXDUMP
  - ptls_log_point_maybe_active
  - ptls_log_recalc_conn_state
  - ptls_log_conn_maybe_active
  - ptls_new
  - ptls_iovec_init
  - ptls_buffer_init
  - ptls_buffer_dispose
  - ptls_encode_quicint
  - ptls_cipher_init
  - ptls_cipher_encrypt
  - ptls_aead_get_iv
  - ptls_aead_set_iv
  - ptls_aead_encrypt
  - ptls_aead_encrypt_s
  - ptls_aead_encrypt_v
  - ptls_aead_encrypt_init
  - ptls_aead_encrypt_update
  - ptls_aead_encrypt_final
  - ptls_aead__do_encrypt
  - ptls_aead__do_encrypt_v
  - ptls_aead_decrypt
  - ptls_hash_clone_memcpy
  - ptls_define_hash
  - ptls_define_hash6
  source_file: /src/h2o/deps/picotls/include/picotls.h
  types:
    enum:
    - enumerators:
      - name: PTLS_HASH_FINAL_MODE_FREE
        value: '0'
      - name: PTLS_HASH_FINAL_MODE_RESET
        value: '1'
      - name: PTLS_HASH_FINAL_MODE_SNAPSHOT
        value: '2'
      item_type: enum
      name: en_ptls_hash_final_mode_t
      pos:
        line_end: 597
        line_start: 584
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - enumerators:
      - name: PTLS_EARLY_DATA_ACCEPTANCE_UNKNOWN
        value: '0'
      - name: PTLS_EARLY_DATA_REJECTED
      - name: PTLS_EARLY_DATA_ACCEPTED
      item_type: enum
      name: en_ptls_early_data_acceptance_t
      pos:
        line_end: 1081
        line_start: 1077
        source_file: /src/h2o/deps/picotls/include/picotls.h
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_THREADLOCAL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: __declspec(thread)
    - item_type: preproc_def
      name: PTLS_THREADLOCAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: __thread
    - item_type: preproc_def
      name: PTLS_HAVE_LOG
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_HAVE_LOG
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_FUZZ_HANDSHAKE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_HELLO_RANDOM_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_AES128_KEY_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AES256_KEY_SIZE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_AES_BLOCK_SIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AES_IV_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AESGCM_IV_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PTLS_AESGCM_TAG_SIZE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AESGCM_CONFIDENTIALITY_LIMIT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x2000000            '
    - item_type: preproc_def
      name: PTLS_AESGCM_INTEGRITY_LIMIT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_C(0x40000000000000) '
    - item_type: preproc_def
      name: PTLS_AESCCM_CONFIDENTIALITY_LIMIT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xB504F3             '
    - item_type: preproc_def
      name: PTLS_AESCCM_INTEGRITY_LIMIT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xB504F3                   '
    - item_type: preproc_def
      name: PTLS_CHACHA20_KEY_SIZE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_CHACHA20_IV_SIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: PTLS_CHACHA20POLY1305_IV_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PTLS_CHACHA20POLY1305_TAG_SIZE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_CHACHA20POLY1305_CONFIDENTIALITY_LIMIT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_MAX       '
    - item_type: preproc_def
      name: PTLS_CHACHA20POLY1305_INTEGRITY_LIMIT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_C(0x1000000000) '
    - item_type: preproc_def
      name: PTLS_AEGIS128L_KEY_SIZE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AEGIS128L_IV_SIZE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AEGIS128L_TAG_SIZE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AEGIS128L_CONFIDENTIALITY_LIMIT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_MAX          '
    - item_type: preproc_def
      name: PTLS_AEGIS128L_INTEGRITY_LIMIT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_C(0x1000000000000) '
    - item_type: preproc_def
      name: PTLS_AEGIS256_KEY_SIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_AEGIS256_IV_SIZE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_AEGIS256_TAG_SIZE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_AEGIS256_CONFIDENTIALITY_LIMIT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_MAX          '
    - item_type: preproc_def
      name: PTLS_AEGIS256_INTEGRITY_LIMIT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 'UINT64_C(0x1000000000000) '
    - item_type: preproc_def
      name: PTLS_BLOWFISH_KEY_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_BLOWFISH_BLOCK_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PTLS_QUICLB_KEY_SIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: PTLS_QUICLB_MIN_BLOCK_SIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PTLS_QUICLB_MAX_BLOCK_SIZE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '19 '
    - item_type: preproc_def
      name: PTLS_QUICLB_DEFAULT_BLOCK_SIZE
      pos:
        line_end: 121
        line_start: 118
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: PTLS_SHA256_BLOCK_SIZE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PTLS_SHA256_DIGEST_SIZE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_SHA384_BLOCK_SIZE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '128'
    - item_type: preproc_def
      name: PTLS_SHA384_DIGEST_SIZE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '48'
    - item_type: preproc_def
      name: PTLS_SHA512_BLOCK_SIZE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '128'
    - item_type: preproc_def
      name: PTLS_SHA512_DIGEST_SIZE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PTLS_MAX_SECRET_SIZE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_MAX_IV_SIZE
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_MAX_DIGEST_SIZE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PTLS_MAX_SIGNATURE_ALGORITHMS
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PTLS_PROTOCOL_VERSION_TLS12
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0303'
    - item_type: preproc_def
      name: PTLS_PROTOCOL_VERSION_TLS13
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0304'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_AES_128_GCM_SHA256
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x1301'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_AES_128_GCM_SHA256
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"TLS_AES_128_GCM_SHA256"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_AES_256_GCM_SHA384
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x1302'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_AES_256_GCM_SHA384
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"TLS_AES_256_GCM_SHA384"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x1303'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"TLS_CHACHA20_POLY1305_SHA256"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_AEGIS256_SHA512
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x1306'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_AEGIS256_SHA512
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"TLS_AEGIS_256_SHA512"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_AEGIS128L_SHA256
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x1307'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_AEGIS128L_SHA256
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"TLS_AEGIS_128L_SHA256"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xc02b'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-ECDSA-AES128-GCM-SHA256"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xc02c'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-ECDSA-AES256-GCM-SHA384"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xc02f'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-RSA-AES128-GCM-SHA256"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xc030'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_AES_256_GCM_SHA384
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-RSA-AES256-GCM-SHA384"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xcca8'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-RSA-CHACHA20-POLY1305"'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0xcca9'
    - item_type: preproc_def
      name: PTLS_CIPHER_SUITE_NAME_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"ECDHE-ECDSA-CHACHA20-POLY1305"'
    - item_type: preproc_def
      name: PTLS_GROUP_SECP256R1
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '23'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_SECP256R1
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"secp256r1"'
    - item_type: preproc_def
      name: PTLS_GROUP_SECP384R1
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '24'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_SECP384R1
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"secp384r1"'
    - item_type: preproc_def
      name: PTLS_GROUP_SECP521R1
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '25'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_SECP521R1
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"secp521r1"'
    - item_type: preproc_def
      name: PTLS_GROUP_X25519
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '29'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_X25519
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"x25519"'
    - item_type: preproc_def
      name: PTLS_GROUP_X448
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '30'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_X448
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"x448"'
    - item_type: preproc_def
      name: PTLS_GROUP_SECP256R1MLKEM768
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4587'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_SECP256R1MLKEM768
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"SecP256r1MLKEM768"'
    - item_type: preproc_def
      name: PTLS_GROUP_X25519MLKEM768
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4588'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_X25519MLKEM768
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"X25519MLKEM768"'
    - item_type: preproc_def
      name: PTLS_GROUP_SECP384R1MLKEM1024
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4589'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_SECP384R1MLKEM1024
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"SecP384r1MLKEM1024"'
    - item_type: preproc_def
      name: PTLS_GROUP_MLKEM512
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '512'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_MLKEM512
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"MLKEM512"'
    - item_type: preproc_def
      name: PTLS_GROUP_MLKEM768
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '513'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_MLKEM768
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"MLKEM768"'
    - item_type: preproc_def
      name: PTLS_GROUP_MLKEM1024
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '514'
    - item_type: preproc_def
      name: PTLS_GROUP_NAME_MLKEM1024
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"MLKEM1024"'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_RSA_PKCS1_SHA1
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0201'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_RSA_PKCS1_SHA256
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0401'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_ECDSA_SECP256R1_SHA256
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_ECDSA_SECP384R1_SHA384
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0503'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_ECDSA_SECP521R1_SHA512
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0603'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_RSA_PSS_RSAE_SHA256
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0804'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_RSA_PSS_RSAE_SHA384
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0805'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_RSA_PSS_RSAE_SHA512
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0806'
    - item_type: preproc_def
      name: PTLS_SIGNATURE_ED25519
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x0807'
    - item_type: preproc_def
      name: PTLS_HPKE_MODE_BASE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_HPKE_MODE_PSK
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_HPKE_MODE_AUTH
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_HPKE_MODE_AUTH_PSK
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PTLS_HPKE_KEM_P256_SHA256
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_HPKE_KEM_P384_SHA384
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '17'
    - item_type: preproc_def
      name: PTLS_HPKE_KEM_X25519_SHA256
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PTLS_HPKE_HKDF_SHA256
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_HPKE_HKDF_SHA384
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_HPKE_HKDF_SHA512
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PTLS_HPKE_AEAD_AES_128_GCM
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_HPKE_AEAD_AES_256_GCM
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_HPKE_AEAD_CHACHA20POLY1305
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PTLS_ERROR_CLASS_SELF_ALERT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_ERROR_CLASS_PEER_ALERT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: PTLS_ERROR_CLASS_INTERNAL
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: PTLS_HKDF_EXPAND_LABEL_PREFIX
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"tls13 "'
    - item_type: preproc_def
      name: PTLS_ALERT_LEVEL_WARNING
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_ALERT_LEVEL_FATAL
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_ALERT_CLOSE_NOTIFY
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_ALERT_UNEXPECTED_MESSAGE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PTLS_ALERT_BAD_RECORD_MAC
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PTLS_ALERT_HANDSHAKE_FAILURE
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '40'
    - item_type: preproc_def
      name: PTLS_ALERT_BAD_CERTIFICATE
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '42'
    - item_type: preproc_def
      name: PTLS_ALERT_UNSUPPORTED_CERTIFICATE
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '43'
    - item_type: preproc_def
      name: PTLS_ALERT_CERTIFICATE_REVOKED
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '44'
    - item_type: preproc_def
      name: PTLS_ALERT_CERTIFICATE_EXPIRED
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '45'
    - item_type: preproc_def
      name: PTLS_ALERT_CERTIFICATE_UNKNOWN
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '46'
    - item_type: preproc_def
      name: PTLS_ALERT_ILLEGAL_PARAMETER
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '47'
    - item_type: preproc_def
      name: PTLS_ALERT_UNKNOWN_CA
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '48'
    - item_type: preproc_def
      name: PTLS_ALERT_ACCESS_DENIED
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '49'
    - item_type: preproc_def
      name: PTLS_ALERT_DECODE_ERROR
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '50'
    - item_type: preproc_def
      name: PTLS_ALERT_DECRYPT_ERROR
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '51'
    - item_type: preproc_def
      name: PTLS_ALERT_PROTOCOL_VERSION
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '70'
    - item_type: preproc_def
      name: PTLS_ALERT_INTERNAL_ERROR
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '80'
    - item_type: preproc_def
      name: PTLS_ALERT_USER_CANCELED
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '90'
    - item_type: preproc_def
      name: PTLS_ALERT_MISSING_EXTENSION
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '109'
    - item_type: preproc_def
      name: PTLS_ALERT_UNSUPPORTED_EXTENSION
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '110'
    - item_type: preproc_def
      name: PTLS_ALERT_UNRECOGNIZED_NAME
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '112'
    - item_type: preproc_def
      name: PTLS_ALERT_UNKNOWN_PSK_IDENTITY
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '115'
    - item_type: preproc_def
      name: PTLS_ALERT_CERTIFICATE_REQUIRED
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '116'
    - item_type: preproc_def
      name: PTLS_ALERT_NO_APPLICATION_PROTOCOL
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '120'
    - item_type: preproc_def
      name: PTLS_ALERT_ECH_REQUIRED
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '121'
    - item_type: preproc_def
      name: PTLS_TLS12_MASTER_SECRET_SIZE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '48'
    - item_type: preproc_def
      name: PTLS_TLS12_AAD_SIZE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '13'
    - item_type: preproc_def
      name: PTLS_TLS12_AESGCM_FIXED_IV_SIZE
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PTLS_TLS12_AESGCM_RECORD_IV_SIZE
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PTLS_TLS12_CHACHAPOLY_FIXED_IV_SIZE
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PTLS_TLS12_CHACHAPOLY_RECORD_IV_SIZE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_ERROR_NO_MEMORY
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 1)
    - item_type: preproc_def
      name: PTLS_ERROR_IN_PROGRESS
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 2)
    - item_type: preproc_def
      name: PTLS_ERROR_LIBRARY
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 3)
    - item_type: preproc_def
      name: PTLS_ERROR_INCOMPATIBLE_KEY
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 4)
    - item_type: preproc_def
      name: PTLS_ERROR_SESSION_NOT_FOUND
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 5)
    - item_type: preproc_def
      name: PTLS_ERROR_STATELESS_RETRY
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 6)
    - item_type: preproc_def
      name: PTLS_ERROR_NOT_AVAILABLE
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 7)
    - item_type: preproc_def
      name: PTLS_ERROR_COMPRESSION_FAILURE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 8)
    - item_type: preproc_def
      name: PTLS_ERROR_REJECT_EARLY_DATA
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 9)
    - item_type: preproc_def
      name: PTLS_ERROR_DELEGATE
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 10)
    - item_type: preproc_def
      name: PTLS_ERROR_ASYNC_OPERATION
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 11)
    - item_type: preproc_def
      name: PTLS_ERROR_BLOCK_OVERFLOW
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 12)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_BASE64
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 50)
    - item_type: preproc_def
      name: PTLS_ERROR_PEM_LABEL_NOT_FOUND
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 51)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_INCORRECT_ENCODING
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 52)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_MALFORMED_TYPE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 53)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_MALFORMED_LENGTH
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 54)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_EXCESSIVE_LENGTH
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 55)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_ELEMENT_TOO_SHORT
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 56)
    - item_type: preproc_def
      name: PTLS_ERROR_BER_UNEXPECTED_EOC
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 57)
    - item_type: preproc_def
      name: PTLS_ERROR_DER_INDEFINITE_LENGTH
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 58)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_ASN1_SYNTAX
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 59)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_PEM_KEY_VERSION
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 60)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_PEM_ECDSA_KEY_VERSION
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 61)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_PEM_ECDSA_CURVE
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 62)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_PEM_ECDSA_KEYSIZE
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 63)
    - item_type: preproc_def
      name: PTLS_ERROR_INCORRECT_ASN1_ECDSA_KEY_SYNTAX
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: (PTLS_ERROR_CLASS_INTERNAL + 64)
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_CLIENT_HELLO
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_SERVER_HELLO
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_NEW_SESSION_TICKET
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_END_OF_EARLY_DATA
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_ENCRYPTED_EXTENSIONS
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_CERTIFICATE
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '11'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '13'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '15'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_FINISHED
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_KEY_UPDATE
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '24'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '25'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_MESSAGE_HASH
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '254'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_TYPE_PSEUDO_HRR
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: PTLS_CERTIFICATE_TYPE_X509
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_CERTIFICATE_TYPE_RAW_PUBLIC_KEY
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PTLS_ZERO_DIGEST_SHA256
      pos:
        line_end: 316
        line_start: 313
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: "{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb,
        0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24,                               \\\n     0x27,
        0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52,
        0xb8, 0x55}"
    - item_type: preproc_def
      name: PTLS_ZERO_DIGEST_SHA384
      pos:
        line_end: 321
        line_start: 317
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: "{0x38, 0xb0, 0x60, 0xa7, 0x51, 0xac, 0x96, 0x38, 0x4c, 0xd9,
        0x32, 0x7e, 0xb1, 0xb1, 0xe3, 0x6a,                               \\\n     0x21,
        0xfd, 0xb7, 0x11, 0x14, 0xbe, 0x07, 0x43, 0x4c, 0x0c, 0xc7, 0xbf, 0x63, 0xf6,
        0xe1, 0xda,                               \\\n     0x27, 0x4e, 0xde, 0xbf,
        0xe7, 0x6f, 0x65, 0xfb, 0xd5, 0x1a, 0xd2, 0xf1, 0x48, 0x98, 0xb9, 0x5b}"
    - item_type: preproc_def
      name: PTLS_ZERO_DIGEST_SHA512
      pos:
        line_end: 327
        line_start: 322
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: "{0xcf, 0x83, 0xe1, 0x35, 0x7e, 0xef, 0xb8, 0xbd, 0xf1, 0x54,
        0x28, 0x50, 0xd6, 0x6d, 0x80, 0x07,                               \\\n     0xd6,
        0x20, 0xe4, 0x05, 0x0b, 0x57, 0x15, 0xdc, 0x83, 0xf4, 0xa9, 0x21, 0xd3, 0x6c,
        0xe9, 0xce,                               \\\n     0x47, 0xd0, 0xd1, 0x3c,
        0x5d, 0x85, 0xf2, 0xb0, 0xff, 0x83, 0x18, 0xd2, 0x87, 0x7e, 0xec, 0x2f,                               \\\n
        \    0x63, 0xb9, 0x31, 0xbd, 0x47, 0x41, 0x7a, 0x81, 0xa5, 0x38, 0x32, 0x7a,
        0xf9, 0x27, 0xda, 0x3e}"
    - item_type: preproc_def
      name: PTLS_DEFAULT_MAX_TICKETS_TO_SERVE
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PTLS_ENCODE_QUICINT_CAPACITY
      pos:
        line_end: 1234
        line_start: 1233
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PTLS_QUICINT_MAX
      pos:
        line_end: 1236
        line_start: 1235
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: 4611686018427387903 // (1 << 62) - 1
    - item_type: preproc_def
      name: PTLS_QUICINT_LONGEST_STR
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type_or_value: '"4611686018427387903"'
    structs:
    - fields:
      - name: '*base'
        type: uint8_t
      - name: len
        type: size_t
      item_type: struct
      name: st_ptls_iovec_t
      pos:
        line_end: 346
        line_start: 343
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*base'
        type: uint8_t
      - name: capacity
        type: size_t
      - name: 'off'
        type: size_t
      - name: is_allocated
        type: uint8_t
      - name: align_bits
        type: uint8_t
      item_type: struct
      name: st_ptls_buffer_t
      pos:
        line_end: 357
        line_start: 351
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*algo'
        type: struct st_ptls_key_exchange_algorithm_t
      - name: pubkey
        type: ptls_iovec_t
      - name: (*on_exchange)(struct st_ptls_key_exchange_context_t **keyex, int release,
          ptls_iovec_t *secret, ptls_iovec_t peerkey)
        type: int
      item_type: struct
      name: st_ptls_key_exchange_context_t
      pos:
        line_end: 379
        line_start: 362
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: id
        type: uint16_t
      - name: (*create)(const struct st_ptls_key_exchange_algorithm_t *algo, ptls_key_exchange_context_t
          **ctx)
        type: int
      - name: "(*exchange)(const struct st_ptls_key_exchange_algorithm_t *algo, ptls_iovec_t
          *pubkey, ptls_iovec_t *secret,\n                    ptls_iovec_t peerkey)"
        type: int
      - name: data
        type: intptr_t
      - name: '*name'
        type: char
      item_type: struct
      name: st_ptls_key_exchange_algorithm_t
      pos:
        line_end: 411
        line_start: 384
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*algo'
        type: struct st_ptls_cipher_algorithm_t
      - name: (*do_dispose)(struct st_ptls_cipher_context_t *ctx)
        type: void
      - name: (*do_init)(struct st_ptls_cipher_context_t *ctx, const void *iv)
        type: void
      - name: (*do_transform)(struct st_ptls_cipher_context_t *ctx, void *output,
          const void *input, size_t len)
        type: void
      item_type: struct
      name: st_ptls_cipher_context_t
      pos:
        line_end: 422
        line_start: 416
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*name'
        type: char
      - name: key_size
        type: size_t
      - name: block_size
        type: size_t
      - name: iv_size
        type: size_t
      - name: context_size
        type: size_t
      - name: (*setup_crypto)(ptls_cipher_context_t *ctx, int is_enc, const void *key)
        type: int
      item_type: struct
      name: st_ptls_cipher_algorithm_t
      pos:
        line_end: 434
        line_start: 427
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*ctx'
        type: ptls_cipher_context_t
      - name: '*input'
        type: void
      - name: output[16]
        type: uint8_t
      item_type: struct
      name: st_ptls_aead_supplementary_encryption_t
      pos:
        line_end: 455
        line_start: 440
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*algo'
        type: struct st_ptls_aead_algorithm_t
      - name: (*dispose_crypto)(struct st_ptls_aead_context_t *ctx)
        type: void
      - name: (*do_get_iv)(struct st_ptls_aead_context_t *ctx, void *iv)
        type: void
      - name: (*do_set_iv)(struct st_ptls_aead_context_t *ctx, const void *iv)
        type: void
      - name: (*do_encrypt_init)(struct st_ptls_aead_context_t *ctx, uint64_t seq,
          const void *aad, size_t aadlen)
        type: void
      - name: (*do_encrypt_update)(struct st_ptls_aead_context_t *ctx, void *output,
          const void *input, size_t inlen)
        type: size_t
      - name: (*do_encrypt_final)(struct st_ptls_aead_context_t *ctx, void *output)
        type: size_t
      - name: "(*do_encrypt)(struct st_ptls_aead_context_t *ctx, void *output, const
          void *input, size_t inlen, uint64_t seq,\n                       const void
          *aad, size_t aadlen, ptls_aead_supplementary_encryption_t *supp)"
        type: void
      - name: "(*do_encrypt_v)(struct st_ptls_aead_context_t *ctx, void *output, ptls_iovec_t
          *input, size_t incnt, uint64_t seq,\n                         const void
          *aad, size_t aadlen)"
        type: void
      - name: "(*do_decrypt)(struct st_ptls_aead_context_t *ctx, void *output, const
          void *input, size_t inlen, uint64_t seq,\n                         const
          void *aad, size_t aadlen)"
        type: size_t
      item_type: struct
      name: st_ptls_aead_context_t
      pos:
        line_end: 513
        line_start: 463
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*name'
        type: char
      - name: confidentiality_limit
        type: uint64_t
      - name: integrity_limit
        type: uint64_t
      - name: '*ctr_cipher'
        type: ptls_cipher_algorithm_t
      - name: '*ecb_cipher'
        type: ptls_cipher_algorithm_t
      - name: key_size
        type: size_t
      - name: iv_size
        type: size_t
      - name: tag_size
        type: size_t
      - name: tls12
        type: "struct {\n        size_t fixed_iv_size;\n        size_t record_iv_size;\n
          \   }"
      - name: non_temporal
        type: unsigned
      - name: align_bits
        type: uint8_t
      - name: context_size
        type: size_t
      - name: (*setup_crypto)(ptls_aead_context_t *ctx, int is_enc, const void *key,
          const void *iv)
        type: int
      item_type: struct
      name: st_ptls_aead_algorithm_t
      pos:
        line_end: 579
        line_start: 518
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: (*update)(struct st_ptls_hash_context_t *ctx, const void *src, size_t
          len)
        type: void
      - name: (*final)(struct st_ptls_hash_context_t *ctx, void *md, ptls_hash_final_mode_t
          mode)
        type: void
      - name: '*(*clone_)(struct st_ptls_hash_context_t *src)'
        type: struct st_ptls_hash_context_t
      item_type: struct
      name: st_ptls_hash_context_t
      pos:
        line_end: 615
        line_start: 602
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*name'
        type: char
      - name: block_size
        type: size_t
      - name: digest_size
        type: size_t
      - name: '*(*create)(void)'
        type: ptls_hash_context_t
      - name: empty_digest[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      item_type: struct
      name: st_ptls_hash_algorithm_t
      pos:
        line_end: 641
        line_start: 620
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: id
        type: uint16_t
      - name: '*aead'
        type: ptls_aead_algorithm_t
      - name: '*hash'
        type: ptls_hash_algorithm_t
      - name: '*name'
        type: char
      item_type: struct
      name: st_ptls_cipher_suite_t
      pos:
        line_end: 660
        line_start: 643
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*buf'
        type: ptls_buffer_t
      - name: '*enc'
        type: struct st_ptls_traffic_protection_t
      - name: record_header_length
        type: size_t
      - name: (*begin_message)(struct st_ptls_message_emitter_t *self)
        type: int
      - name: (*commit_message)(struct st_ptls_message_emitter_t *self)
        type: int
      item_type: struct
      name: st_ptls_message_emitter_t
      pos:
        line_end: 670
        line_start: 664
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: id
        type: uint16_t
      - name: '*keyex'
        type: ptls_key_exchange_algorithm_t
      - name: '*hash'
        type: ptls_hash_algorithm_t
      item_type: struct
      name: st_ptls_hpke_kem_t
      pos:
        line_end: 679
        line_start: 675
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: kdf
        type: uint16_t
      - name: aead
        type: uint16_t
      item_type: struct
      name: st_ptls_hpke_cipher_suite_id_t
      pos:
        line_end: 684
        line_start: 681
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: id
        type: ptls_hpke_cipher_suite_id_t
      - name: '*name'
        type: char
      - name: '*hash'
        type: ptls_hash_algorithm_t
      - name: '*aead'
        type: ptls_aead_algorithm_t
      item_type: struct
      name: st_ptls_hpke_cipher_suite_t
      pos:
        line_end: 691
        line_start: 686
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: identity
        type: ptls_iovec_t
      - name: obfuscated_ticket_age
        type: uint32_t
      - name: binder
        type: ptls_iovec_t
      item_type: struct
      name: st_ptls_client_hello_psk_identity_t
      pos:
        line_end: 707
        line_start: 703
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: server_name
        type: ptls_iovec_t
      - name: raw_message
        type: ptls_iovec_t
      - name: cipher_suites
        type: ptls_iovec_t
      - name: negotiated_protocols
        type: "struct {\n        ptls_iovec_t *list;\n        size_t count;\n    }"
      - name: signature_algorithms
        type: "struct {\n        const uint16_t *list;\n        size_t count;\n    }"
      - name: certificate_compression_algorithms
        type: "struct {\n        const uint16_t *list;\n        size_t count;\n    }"
      - name: server_certificate_types
        type: "struct {\n        const uint8_t *list;\n        size_t count;\n    }"
      - name: psk_identities
        type: "struct {\n        const ptls_client_hello_psk_identity_t *list;\n        size_t
          count;\n    }"
      - name: incompatible_version
        type: unsigned
      item_type: struct
      name: st_ptls_on_client_hello_parameters_t
      pos:
        line_end: 752
        line_start: 712
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: (*destroy_)(struct st_ptls_async_job_t *self)
        type: void
      - name: (*get_fd)(struct st_ptls_async_job_t *self)
        type: int
      - name: (*set_completion_callback)(struct st_ptls_async_job_t *self, void (*cb)(void
          *), void *cbdata)
        type: void
      item_type: struct
      name: st_ptls_async_job_t
      pos:
        line_end: 786
        line_start: 776
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: "(*cb)(struct st_ptls_verify_certificate_t *self, ptls_t *tls, const
          char *server_name,\n              int (**verify_sign)(void *verify_ctx,
          uint16_t algo, ptls_iovec_t data, ptls_iovec_t sign), void **verify_data,\n
          \             ptls_iovec_t *certs, size_t num_certs)"
        type: int
      - name: '*algos'
        type: uint16_t
      item_type: struct
      name: st_ptls_verify_certificate_t
      pos:
        line_end: 810
        line_start: 802
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: "(*cb)(struct st_ptls_log_event_t *self, ptls_t *tls, const char *type,
          const char *fmt, ...)\n        __attribute__((format(printf, 4, 5)))"
        type: void
      item_type: struct
      name: st_ptls_log_event_t
      pos:
        line_end: 828
        line_start: 825
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*supported_algorithms'
        type: uint16_t
      - name: "(*cb)(struct st_ptls_decompress_certificate_t *self, ptls_t *tls, uint16_t
          algorithm, ptls_iovec_t output,\n              ptls_iovec_t input)"
        type: int
      item_type: struct
      name: st_ptls_decompress_certificate_t
      pos:
        line_end: 855
        line_start: 845
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: (*random_bytes)(void *buf, size_t len)
        type: void
      - name: '*get_time'
        type: ptls_get_time_t
      - name: '**key_exchanges'
        type: ptls_key_exchange_algorithm_t
      - name: '**cipher_suites'
        type: ptls_cipher_suite_t
      - name: certificates
        type: "struct {\n        ptls_iovec_t *list;\n        size_t count;\n    }"
      - name: pre_shared_key
        type: "struct {\n        ptls_iovec_t identity;\n        ptls_iovec_t secret;\n
          \       /**\n         * (mandatory) hash algorithm associated to the PSK;
          cipher-suites not sharing the same `ptls_hash_algorithm_t` will be\n         *
          ignored\n         */\n        ptls_hash_algorithm_t *hash;\n    }"
      - name: ech
        type: "struct {\n        struct {\n            /**\n             * list of
          HPKE symmetric cipher-suites (set to NULL to disable ECH altogether)\n             */\n
          \           ptls_hpke_cipher_suite_t **ciphers;\n            /**\n             *
          KEMs being supported\n             */\n            ptls_hpke_kem_t **kems;\n
          \       } client;\n        struct {\n            /**\n             * callback
          that does ECDH key exchange and returns the AEAD context\n             */\n
          \           ptls_ech_create_opener_t *create_opener;\n            /**\n
          \            * ECHConfigList to be sent to the client when there is mismatch
          (or when the client sends a grease)\n             */\n            ptls_iovec_t
          retry_configs;\n        } server;\n    }"
      - name: '*on_client_hello'
        type: ptls_on_client_hello_t
      - name: '*emit_certificate'
        type: ptls_emit_certificate_t
      - name: '*sign_certificate'
        type: ptls_sign_certificate_t
      - name: '*verify_certificate'
        type: ptls_verify_certificate_t
      - name: ticket_lifetime
        type: uint32_t
      - name: max_early_data_size
        type: uint32_t
      - name: max_buffer_size
        type: size_t
      - name: '*hkdf_label_prefix__obsolete'
        type: char
      - name: require_dhe_on_psk
        type: unsigned
      - name: use_exporter
        type: unsigned
      - name: send_change_cipher_spec
        type: unsigned
      - name: require_client_authentication
        type: unsigned
      - name: omit_end_of_early_data
        type: unsigned
      - name: use_raw_public_keys
        type: unsigned
      - name: server_cipher_preference
        type: unsigned
      - name: server_cipher_chacha_priority
        type: unsigned
      - name: '*encrypt_ticket'
        type: ptls_encrypt_ticket_t
      - name: '*save_ticket'
        type: ptls_save_ticket_t
      - name: '*log_event'
        type: ptls_log_event_t
      - name: '*update_open_count'
        type: ptls_update_open_count_t
      - name: '*update_traffic_key'
        type: ptls_update_traffic_key_t
      - name: '*decompress_certificate'
        type: ptls_decompress_certificate_t
      - name: '*on_extension'
        type: ptls_on_extension_t
      - name: '**tls12_cipher_suites'
        type: ptls_cipher_suite_t
      - name: ticket_context
        type: "struct {\n        uint8_t bytes[PTLS_SHA256_DIGEST_SIZE];\n        unsigned
          is_set : 1;\n    }"
      - name: client_ca_names
        type: "struct {\n        const ptls_iovec_t *list;\n        size_t count;\n
          \   }"
      - name: ticket_requests
        type: "struct {\n        /**\n         * if set to non-zero and if the save_ticket
          callback is provided, a ticket_request extension containing the specified\n
          \        * values is sent\n         */\n        struct {\n            uint8_t
          new_session_count;\n            uint8_t resumption_count;\n        } client;\n
          \       /**\n         * if set to non-zero, the maximum number of tickets
          being sent is capped to the specifed value; if set to zero, the maximum\n
          \        * adopted is PTLS_DEFAULT_MAX_TICKETS_TO_SERVE.\n         */\n
          \       struct {\n            uint8_t max_count;\n        } server;\n    }"
      item_type: struct
      name: st_ptls_context_t
      pos:
        line_end: 1070
        line_start: 867
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: type
        type: uint16_t
      - name: data
        type: ptls_iovec_t
      item_type: struct
      name: st_ptls_raw_extension_t
      pos:
        line_end: 1075
        line_start: 1072
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*additional_extensions'
        type: ptls_raw_extension_t
      - name: (*collect_extension)(ptls_t *tls, struct st_ptls_handshake_properties_t
          *properties, uint16_t type)
        type: int
      - name: (*collected_extensions)(ptls_t *tls, struct st_ptls_handshake_properties_t
          *properties, ptls_raw_extension_t *extensions)
        type: int
      item_type: struct
      name: st_ptls_handshake_properties_t
      pos:
        line_end: 1181
        line_start: 1091
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*(*cb)(void *arg)'
        type: char
      - name: '*arg'
        type: void
      item_type: struct
      name: st_ptls_log_getsni_t
      pos:
        line_end: 1412
        line_start: 1409
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: active_conns
        type: uint32_t
      - name: generation
        type: uint64_t
      item_type: struct
      name: st_ptls_log_state_t
      pos:
        line_end: 1532
        line_start: 1523
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: '*name'
        type: char
      - name: state
        type: struct st_ptls_log_state_t
      item_type: struct
      name: st_ptls_log_point_t
      pos:
        line_end: 1540
        line_start: 1537
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: random_
        type: float
      - name: address[16]
        type: uint8_t
      - name: conn_id
        type: uint64_t
      - name: state
        type: struct st_ptls_log_state_t
      item_type: struct
      name: st_ptls_log_conn_state_t
      pos:
        line_end: 1560
        line_start: 1545
        source_file: /src/h2o/deps/picotls/include/picotls.h
    - fields:
      - name: may_include_appdata
        type: unsigned
      - name: dummy_conn_state
        type: ptls_log_conn_state_t
      - name: _generation
        type: uint64_t
      item_type: struct
      name: st_ptls_log_t
      pos:
        line_end: 1583
        line_start: 1570
        source_file: /src/h2o/deps/picotls/include/picotls.h
    typedefs:
    - item_type: typedef
      name: ptls_t
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type: st_ptls_t
    - item_type: typedef
      name: ptls_context_t
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type: st_ptls_context_t
    - item_type: typedef
      name: ptls_key_schedule_t
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/h2o/deps/picotls/include/picotls.h
      type: st_ptls_key_schedule_t
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_CHACHA20_POLY1305
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_CHACHA20_POLY1305
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_ASYNC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_ASYNC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_SECP384R1
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAS_SECP384R1
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_SECP521R1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAS_SECP521R1
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_ED25519
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_X25519
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAS_X25519
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_X25519
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAS_X25519
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_MLKEM
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_X25519MLKEM768
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_MLKEM
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_X25519MLKEM768
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_MLKEM
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_X25519MLKEM768
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_BF
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_OPENSSL_HAVE_BF
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
      type_or_value: '0'
    structs:
    - fields:
      - name: scheme_id
        type: uint16_t
      - name: '*(*scheme_md)(void)'
        type: EVP_MD
      item_type: struct
      name: st_ptls_openssl_signature_scheme_t
      pos:
        line_end: 177
        line_start: 174
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
    - fields:
      - name: super
        type: ptls_sign_certificate_t
      - name: '*key'
        type: EVP_PKEY
      - name: '*schemes'
        type: ptls_openssl_signature_scheme_t
      - name: async
        type: unsigned
      item_type: struct
      name: st_ptls_openssl_sign_certificate_t
      pos:
        line_end: 201
        line_start: 189
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
    - fields:
      - name: super
        type: ptls_verify_certificate_t
      - name: '*expected_pubkey'
        type: EVP_PKEY
      item_type: struct
      name: st_ptls_openssl_raw_pubkey_verify_certificate_t
      pos:
        line_end: 210
        line_start: 207
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
    - fields:
      - name: super
        type: ptls_verify_certificate_t
      - name: '*cert_store'
        type: X509_STORE
      - name: '*override_callback'
        type: ptls_openssl_override_verify_certificate_t
      item_type: struct
      name: st_ptls_openssl_verify_certificate_t
      pos:
        line_end: 226
        line_start: 222
        source_file: /src/h2o/deps/picotls/include/picotls/openssl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/mbedtls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PTLS_FFX_CIPHER_ALGO_NAME
  - PTLS_FFX_CIPHER_ALGO
  source_file: /src/h2o/deps/picotls/include/picotls/ffx.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: '*enc_ctx'
        type: ptls_cipher_context_t
      - name: nb_rounds
        type: int
      - name: is_enc
        type: int
      - name: byte_length
        type: size_t
      - name: nb_left
        type: size_t
      - name: nb_right
        type: size_t
      - name: mask_last_byte
        type: uint8_t
      - name: tweaks[16]
        type: uint8_t
      item_type: struct
      name: st_ptls_ffx_context_t
      pos:
        line_end: 87
        line_start: 77
        source_file: /src/h2o/deps/picotls/include/picotls/ffx.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECP256R1_PRIVATE_KEY_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SECP256R1_PUBLIC_KEY_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
      type_or_value: '65 '
    - item_type: preproc_def
      name: SECP256R1_SHARED_SECRET_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
      type_or_value: '32'
    structs:
    - fields:
      - name: super
        type: ptls_sign_certificate_t
      - name: key[SECP256R1_PRIVATE_KEY_SIZE]
        type: uint8_t
      item_type: struct
      name: st_ptls_minicrypto_secp256r1sha256_sign_certificate_t
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
    - fields:
      - name: vec
        type: ptls_iovec_t
      - name: algorithm_index
        type: size_t
      - name: algorithm_length
        type: uint32_t
      - name: parameters_index
        type: size_t
      - name: parameters_length
        type: uint32_t
      - name: key_data_index
        type: size_t
      - name: key_data_length
        type: uint32_t
      item_type: struct
      name: st_ptls_asn1_pkcs8_private_key_t
      pos:
        line_end: 70
        line_start: 62
        source_file: /src/h2o/deps/picotls/include/picotls/minicrypto.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/asn1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: void
      - name: (*fn)(void *ctx, const char *format, ...)
        type: void
      item_type: struct
      name: st_ptls_minicrypto_log_ctx_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/h2o/deps/picotls/include/picotls/asn1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_FUSION_AES128_ROUNDS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PTLS_FUSION_AES256_ROUNDS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
      type_or_value: '14'
    - item_type: preproc_def
      name: PTLS_X86_CACHE_LINE_ALIGN_BITS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
      type_or_value: '6 '
    structs:
    - fields:
      - name: keys
        type: "union {\n        __m128i m128[PTLS_FUSION_AES256_ROUNDS + 1];\n        __m256i
          m256[PTLS_FUSION_AES256_ROUNDS + 1];\n    }"
      - name: rounds
        type: unsigned
      - name: aesni256
        type: uint8_t
      item_type: struct
      name: ptls_fusion_aesecb_context
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
    typedefs:
    - item_type: typedef
      name: ptls_fusion_aesgcm_context_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/deps/picotls/include/picotls/fusion.h
      type: ptls_fusion_aesgcm_context
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/certificate_compression.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_CERTIFICATE_COMPRESSION_ALGORITHM_GZIP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/picotls/include/picotls/certificate_compression.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_CERTIFICATE_COMPRESSION_ALGORITHM_BROTLI
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/include/picotls/certificate_compression.h
      type_or_value: '2'
    structs:
    - fields:
      - name: super
        type: ptls_emit_certificate_t
      - name: algo
        type: uint16_t
      - name: with_ocsp_status
        type: "struct st_ptls_compressed_certificate_entry_t {\n        uint32_t uncompressed_length;\n
          \       ptls_iovec_t bytes;\n    }"
      item_type: struct
      name: st_ptls_emit_compressed_certificate_t
      pos:
        line_end: 40
        line_start: 33
        source_file: /src/h2o/deps/picotls/include/picotls/certificate_compression.h
    - fields:
      - name: uncompressed_length
        type: uint32_t
      - name: bytes
        type: ptls_iovec_t
      item_type: struct
      name: st_ptls_compressed_certificate_entry_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/h2o/deps/picotls/include/picotls/certificate_compression.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/ptlsbcrypt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/include/picotls/pembase64.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_BASE64_DECODE_DONE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/picotls/include/picotls/pembase64.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_BASE64_DECODE_IN_PROGRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/picotls/include/picotls/pembase64.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_BASE64_DECODE_FAILED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/include/picotls/pembase64.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: nbc
        type: int
      - name: nbo
        type: int
      - name: status
        type: int
      - name: v
        type: uint32_t
      item_type: struct
      name: st_ptls_base64_decode_state_t
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/h2o/deps/picotls/include/picotls/pembase64.h
    typedefs: []
    union: []
- function_names:
  - test_salsa20_core
  - test_salsa20
  - test_chacha20_core
  - test_chacha20
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testsalsa20.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - process
  - PADLEN
  - cf_chacha20poly1305_encrypt
  - cf_chacha20poly1305_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENCRYPT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DECRYPT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAILURE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_memclean
  - test_bitops_select
  - test_bitops_incr
  - CHECK_BE
  - CHECK_LE
  - test_bitops_unaligned
  - CHECK
  - test_expand
  - test_expand_128
  - test_expand_192
  - test_expand_256
  - vector
  - test_vectors
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testaes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CH
  - MAJ
  - BSIG0
  - BSIG1
  - SSIG0
  - SSIG1
  - cf_sha512_init
  - cf_sha384_init
  - sha512_update_block
  - cf_sha512_update
  - cf_sha384_update
  - cf_sha512_digest
  - cf_sha512_digest_final
  - cf_sha384_digest
  - cf_sha384_digest_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha512.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/salsa20.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key0[16]
        type: uint8_t
      - name: nonce[16]
        type: uint8_t
      - name: '*constant'
        type: uint8_t
      - name: block[64]
        type: uint8_t
      - name: nblock
        type: size_t
      - name: ncounter
        type: size_t
      item_type: struct
      name: cf_salsa20_ctx
      pos:
        line_end: 80
        line_start: 72
        source_file: /src/h2o/deps/picotls/deps/cifra/src/salsa20.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_CHASH_MAXCTX
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type_or_value: '360'
    - item_type: preproc_def
      name: CF_CHASH_MAXBLK
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CF_MAXHASH
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type_or_value: '64'
    structs:
    - fields:
      - name: hashsz
        type: size_t
      - name: blocksz
        type: size_t
      - name: init
        type: cf_chash_init
      - name: update
        type: cf_chash_update
      - name: digest
        type: cf_chash_digest
      item_type: struct
      name: cf_chash
      pos:
        line_end: 97
        line_start: 89
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
    typedefs:
    - item_type: typedef
      name: (*cf_chash_init)(void *ctx)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type: void
    - item_type: typedef
      name: (*cf_chash_update)(void *ctx, const void *data, size_t count)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type: void
    - item_type: typedef
      name: (*cf_chash_digest)(const void *ctx, uint8_t *hash)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
      type: void
    union:
    - fields:
      - name: ctx[CF_CHASH_MAXCTX]
        type: uint8_t
      - name: u16
        type: uint16_t
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      item_type: union
      name: cf_chash_ctx
      pos:
        line_end: 121
        line_start: 115
        source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.h
- function_names:
  - assert
  source_file: /src/h2o/deps/picotls/deps/cifra/src/tassert.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_curve25519_mul
  - cf_curve25519_mul_base
  source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_sha1
  - test_hmac_sha1
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testsha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_hashdrbg_sha256_vector
  - test_hashdrbg_sha256_vector_addnl
  - test_hmacdrbg_sha1_vector
  - test_hmacdrbg_sha1_vector_addnl
  - test_hmacdrbg_sha256_vector
  - test_hmacdrbg_sha256_vector_addnl
  - test_hmacdrbg_sha512_vector
  - test_hmacdrbg_sha512_vector_addnl
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testdrbg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_cmac_init
  - cf_cmac_sign
  - cf_cmac_stream_init
  - cf_cmac_stream_reset
  - cmac_process
  - cmac_process_final
  - cmac_process_final_nopad
  - cmac_process_final_pad
  - cf_cmac_stream_update
  - cf_cmac_stream_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/cmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - F
  - cf_pbkdf2_hmac
  source_file: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add
  - sub
  - squeeze
  - freeze
  - mult
  - mult121665
  - square
  - select
  - mainloop
  - recip
  - crypto_scalarmult
  - cf_curve25519_mul
  - cf_curve25519_mul_base
  source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.naclref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_gf128_tobytes_be
  - cf_gf128_frombytes_be
  - cf_gf128_double
  - cf_gf128_double_le
  - cf_gf128_add
  - cf_gf128_mul
  source_file: /src/h2o/deps/picotls/deps/cifra/src/gf128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ghash_init
  - ghash_block
  - ghash_add
  - ghash_add_pad
  - ghash_add_aad
  - ghash_add_cipher
  - ghash_final
  - cf_gcm_encrypt_init
  - cf_gcm_encrypt_update
  - cf_gcm_encrypt_final
  - cf_gcm_encrypt
  - cf_gcm_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATE_INVALID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: STATE_AAD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATE_CIPHER
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gcm.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - permute
  - in
  - LOAD
  - STORE
  - P
  - G
  - P
  - G
  - init
  - switch_domain
  - input_block_final
  - input_block
  - input
  - do_header
  - do_trailer
  - body_block_encrypt
  - encrypt_body
  - body_block_decrypt
  - undo_padding
  - decrypt_body
  - get_tag
  - cf_norx32_encrypt
  - cf_norx32_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOMAIN_HEADER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DOMAIN_PAYLOAD
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: DOMAIN_TRAILER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DOMAIN_TAG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: WORD_BYTES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '4'
    - item_type: preproc_def
      name: WORD_BITS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ROUNDS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DEGREE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TAG_BITS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '128'
    - item_type: preproc_def
      name: RATE_BYTES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '48'
    - item_type: preproc_def
      name: RATE_WORDS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
      type_or_value: '12'
    structs:
    - fields:
      - name: s[16]
        type: uint32_t
      item_type: struct
      name: norx32_ctx
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    - fields:
      - name: '*ctx'
        type: norx32_ctx
      - name: type
        type: uint32_t
      item_type: struct
      name: blockctx
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.c
    typedefs: []
    union: []
- function_names:
  - rotr32
  - rotl32
  - rotr64
  - rotl64
  - read32_be
  - read32_le
  - read64_be
  - read64_le
  - write32_be
  - write32_le
  - write64_be
  - write64_le
  - xor_b8
  - xor_bb
  - xor_words
  - mask_u32
  - mask_u8
  - select_u32
  - select_u8
  - select_u8x4
  - select_xor128
  - incr_le
  - incr_be
  - copy_bytes_unaligned
  - count_trailing_zeroes
  source_file: /src/h2o/deps/picotls/deps/cifra/src/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_df
  - cf_hash_drbg_sha256_init
  - add
  - hash_process_addnl
  - hash_generate
  - hash_step
  - hash_gen_request
  - cf_hash_drbg_sha256_gen_additional
  - cf_hash_drbg_sha256_gen
  - cf_hash_drbg_sha256_reseed
  - cf_hash_drbg_sha256_needs_reseed
  - hmac_drbg_update
  - cf_hmac_drbg_init
  - cf_hmac_drbg_needs_reseed
  - hmac_drbg_generate
  - cf_hmac_drbg_gen_additional
  - cf_hmac_drbg_gen
  - cf_hmac_drbg_reseed
  source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DRBG_GENERATE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.c
      type_or_value: 0x10000ul
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_salsa20_core
  - QUARTER
  - cf_salsa20_init
  - cf_salsa20_next_block
  - cf_salsa20_cipher
  source_file: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROW
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
      type_or_value: "QUARTER(z0, z1, z2, z3); \\\n  QUARTER(z5, z6, z7, z4); \\\n
        \ QUARTER(za, zb, z8, z9); \\\n  QUARTER(zf, zc, zd, ze)"
    - item_type: preproc_def
      name: COLUMN
      pos:
        line_end: 77
        line_start: 72
        source_file: /src/h2o/deps/picotls/deps/cifra/src/salsa20.c
      type_or_value: "QUARTER(z0, z4, z8, zc); \\\n  QUARTER(z5, z9, zd, z1); \\\n
        \ QUARTER(za, ze, z2, z6); \\\n  QUARTER(zf, z3, z7, zb)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_base_mul
  - test_mul
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testcurve25519.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_SHA1_HASHSZ
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.h
      type_or_value: '20'
    - item_type: preproc_def
      name: CF_SHA1_BLOCKSZ
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.h
      type_or_value: '64'
    structs:
    - fields:
      - name: H[5]
        type: uint32_t
      - name: partial[CF_SHA1_BLOCKSZ]
        type: uint8_t
      - name: blocks
        type: uint32_t
      - name: npartial
        type: size_t
      item_type: struct
      name: cf_sha1_context
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_SHA3_224_HASHSZ
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '28'
    - item_type: preproc_def
      name: CF_SHA3_256_HASHSZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CF_SHA3_384_HASHSZ
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '48'
    - item_type: preproc_def
      name: CF_SHA3_512_HASHSZ
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CF_SHA3_224_BLOCKSZ
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '144'
    - item_type: preproc_def
      name: CF_SHA3_256_BLOCKSZ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '136'
    - item_type: preproc_def
      name: CF_SHA3_384_BLOCKSZ
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '104'
    - item_type: preproc_def
      name: CF_SHA3_512_BLOCKSZ
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
      type_or_value: '72'
    structs:
    - fields:
      - name: odd
        type: uint32_t
      item_type: struct
      name: cf_sha3_bi
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
    - fields:
      - name: A[5][5]
        type: cf_sha3_bi
      - name: partial[CF_SHA3_224_BLOCKSZ]
        type: uint8_t
      - name: npartial
        type: size_t
      - name: rate
        type: uint16_t
      item_type: struct
      name: cf_sha3_context
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.h
    typedefs: []
    union: []
- function_names:
  - write_be
  - zero_pad
  - add_aad
  - add_block0
  - build_ctr_nonce
  - cf_ccm_encrypt
  - cf_ccm_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CCM_ADATA_PRESENT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ccm.c
      type_or_value: '0x40'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/norx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vector
  - test_vectors
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testchacha20poly1305.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/poly1305.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: h[17]
        type: uint32_t
      - name: r[17]
        type: uint32_t
      - name: s[16]
        type: uint8_t
      - name: partial[16]
        type: uint8_t
      - name: npartial
        type: size_t
      item_type: struct
      name: cf_poly1305
      pos:
        line_end: 57
        line_start: 50
        source_file: /src/h2o/deps/picotls/deps/cifra/src/poly1305.h
    typedefs: []
    union: []
- function_names:
  - cf_blockwise_accumulate
  - cf_blockwise_accumulate_final
  - cf_blockwise_xor
  - cf_blockwise_acc_byte
  - cf_blockwise_acc_pad
  source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_poly1305_init
  - poly1305_add
  - poly1305_min_reduce
  - poly1305_full_reduce
  - poly1305_mul
  - poly1305_block
  - poly1305_whole_block
  - poly1305_last_block
  - cf_poly1305_update
  - cf_poly1305_finish
  source_file: /src/h2o/deps/picotls/deps/cifra/src/poly1305.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/cf_config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_SIDE_CHANNEL_PROTECTION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cf_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CF_TIME_SIDE_CHANNEL_PROTECTION
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cf_config.h
      type_or_value: CF_SIDE_CHANNEL_PROTECTION
    - item_type: preproc_def
      name: CF_CACHE_SIDE_CHANNEL_PROTECTION
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/picotls/deps/cifra/src/cf_config.h
      type_or_value: CF_SIDE_CHANNEL_PROTECTION
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20poly1305.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/pbkdf2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_vector
  - test_kat
  - FILL
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testnorx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unhex_chr
  - unhex
  - dump
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_hmac_init
  - cf_hmac_update
  - cf_hmac_finish
  - cf_hmac
  source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/gf128.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cf_gf128[4]
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/h2o/deps/picotls/deps/cifra/src/gf128.h
      type: uint32_t
    union: []
- function_names:
  - test_sha3_224
  - test_sha3_256
  - test_sha3_384
  - test_sha3_512
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testsha3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vector
  - hmac_test
  - hmac_test_sha2
  - hmac_test_sha1
  - vector_abc_final
  - vector_length
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*final_fn)(void *ctx, uint8_t *out)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testsha.h
      type: void
    union: []
- function_names:
  - check
  - test_poly1305
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testpoly1305.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: V[440/8]
        type: uint8_t
      - name: C[440/8]
        type: uint8_t
      - name: reseed_counter
        type: uint32_t
      item_type: struct
      name: cf_hash_drbg_sha256
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.h
    - fields:
      - name: V[CF_MAXHASH]
        type: uint8_t
      - name: hmac
        type: cf_hmac_ctx
      - name: reseed_counter
        type: uint32_t
      item_type: struct
      name: cf_hmac_drbg
      pos:
        line_end: 146
        line_start: 141
        source_file: /src/h2o/deps/picotls/deps/cifra/src/drbg.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_SHA224_HASHSZ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '28'
    - item_type: preproc_def
      name: CF_SHA224_BLOCKSZ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CF_SHA256_HASHSZ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CF_SHA256_BLOCKSZ
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CF_SHA384_HASHSZ
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '48'
    - item_type: preproc_def
      name: CF_SHA384_BLOCKSZ
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CF_SHA512_HASHSZ
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CF_SHA512_BLOCKSZ
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
      type_or_value: '128'
    structs:
    - fields:
      - name: H[8]
        type: uint32_t
      - name: partial[CF_SHA256_BLOCKSZ]
        type: uint8_t
      - name: blocks
        type: uint32_t
      - name: npartial
        type: size_t
      item_type: struct
      name: cf_sha256_context
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
    - fields:
      - name: H[8]
        type: uint64_t
      - name: partial[CF_SHA512_BLOCKSZ]
        type: uint8_t
      - name: blocks
        type: uint32_t
      - name: npartial
        type: size_t
      item_type: struct
      name: cf_sha512_context
      pos:
        line_end: 170
        line_start: 164
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/prp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAXBLOCK
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/picotls/deps/cifra/src/prp.h
      type_or_value: '16'
    structs:
    - fields:
      - name: blocksz
        type: size_t
      - name: encrypt
        type: cf_prp_block
      - name: decrypt
        type: cf_prp_block
      item_type: struct
      name: cf_prp
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/h2o/deps/picotls/deps/cifra/src/prp.h
    typedefs:
    - item_type: typedef
      name: (*cf_prp_block)(void *ctx, const uint8_t *in, uint8_t *out)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/prp.h
      type: void
    union: []
- function_names:
  - ocb_init
  - ocb_start_cipher
  - ocb_add_Ln
  - ocb_hash_init
  - ocb_hash_sum
  - ocb_hash_block
  - ocb_process_header
  - ocb_encrypt_block
  - cf_ocb_encrypt
  - ocb_decrypt_block
  - cf_ocb_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_L
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BLOCK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*prp'
        type: cf_prp
      - name: '*prpctx'
        type: void
      - name: '*out'
        type: uint8_t
      - name: L_star
        type: cf_gf128
      - name: L_dollar
        type: cf_gf128
      - name: L[MAX_L]
        type: cf_gf128
      - name: offset
        type: cf_gf128
      - name: checksum
        type: cf_gf128
      - name: i
        type: uint32_t
      item_type: struct
      name: ocb
      pos:
        line_end: 41
        line_start: 30
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    - fields:
      - name: '*o'
        type: ocb
      - name: sum
        type: cf_gf128
      - name: offset
        type: cf_gf128
      - name: i
        type: uint32_t
      item_type: struct
      name: ocb_hash
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ocb.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hash'
        type: cf_chash
      - name: inner
        type: cf_chash_ctx
      - name: outer
        type: cf_chash_ctx
      item_type: struct
      name: cf_hmac_ctx
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/h2o/deps/picotls/deps/cifra/src/hmac.h
    typedefs: []
    union: []
- function_names:
  - test_sha224
  - test_hmac_sha224
  - test_sha256
  - test_hmac_sha256
  - test_sha384
  - test_hmac_sha384
  - test_sha512
  - test_hmac_sha512
  - test_sha256_long
  - check_pkbdf2_sha256
  - test_pbkdf2_sha256
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testsha2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*cf_blockwise_in_fn)(void *ctx, const uint8_t *data)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.h
      type: void
    - item_type: typedef
      name: (*cf_blockwise_out_fn)(void *ctx, uint8_t *data)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/h2o/deps/picotls/deps/cifra/src/blockwise.h
      type: void
    union: []
- function_names:
  - test_cbc
  - cbcmac_vector
  - test_cbcmac
  - test_ctr
  - check_eax
  - test_eax
  - check_cmac
  - test_cmac
  - test_gf128_mul
  - check_gcm
  - test_gcm
  - check_ccm
  - fill
  - test_ccm_long
  - test_ccm
  - check_ocb
  - test_ocb
  - check_ocb_long
  - test_ocb_long
  source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCU_TARGET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MCU_TARGET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/picotls/deps/cifra/src/testmodes.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_sha1_init
  - sha1_update_block
  - cf_sha1_update
  - cf_sha1_digest
  - cf_sha1_digest_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsum
  - fdifference
  - fscalar_product
  - fproduct
  - freduce_degree
  - div_by_2_26
  - div_by_2_25
  - freduce_coefficients
  - fmul
  - fsquare_inner
  - fsquare
  - fexpand
  - F
  - s32_eq
  - s32_gte
  - fcontract
  - F
  - fmonty
  - swap_conditional
  - cmult
  - crecip
  - cf_curve25519_mul
  - cf_curve25519_mul_base
  source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
      type_or_value: __inline
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
      type: uint8_t
    - item_type: typedef
      name: s32
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
      type: int32_t
    - item_type: typedef
      name: limb
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.donna.c
      type: int64_t
    union: []
- function_names:
  - cf_chacha20_core
  - QUARTER
  - set_key
  - cf_chacha20_init
  - cf_chacha20_init_custom
  - cf_chacha20_next_block
  - cf_chacha20_cipher
  source_file: /src/h2o/deps/picotls/deps/cifra/src/chacha20.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_hash
  source_file: /src/h2o/deps/picotls/deps/cifra/src/chash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_cbc_init
  - cf_cbc_encrypt
  - cf_cbc_decrypt
  - cf_ctr_init
  - cf_ctr_custom_counter
  - ctr_next_block
  - cf_ctr_cipher
  - cf_ctr_discard_block
  source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - word4
  - byte
  - round_constant
  - rot_word
  - word4
  - byte
  - round_constant
  - rot_word
  - sub_word
  - aes_schedule
  - cf_aes_init
  - add_round_key
  - sub_block
  - shift_rows
  - gf_poly_mul2
  - mix_column
  - mix_columns
  - cf_aes_encrypt
  - inv_sub_block
  - inv_shift_rows
  - inv_mix_column
  - inv_mix_columns
  - cf_aes_decrypt
  - cf_aes_decrypt
  - cf_aes_finish
  source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*prp'
        type: cf_prp
      - name: '*prpctx'
        type: void
      - name: block[CF_MAXBLOCK]
        type: uint8_t
      item_type: struct
      name: cf_cbc
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: '*prp'
        type: cf_prp
      - name: '*prpctx'
        type: void
      - name: nonce[CF_MAXBLOCK]
        type: uint8_t
      - name: keymat[CF_MAXBLOCK]
        type: uint8_t
      - name: nkeymat
        type: size_t
      - name: counter_offset
        type: size_t
      - name: counter_width
        type: size_t
      item_type: struct
      name: cf_ctr
      pos:
        line_end: 122
        line_start: 113
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: '*prp'
        type: cf_prp
      - name: '*prpctx'
        type: void
      - name: cbc
        type: cf_cbc
      - name: buffer[CF_MAXBLOCK]
        type: uint8_t
      - name: used
        type: size_t
      item_type: struct
      name: cf_cbcmac_stream
      pos:
        line_end: 183
        line_start: 176
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: '*prp'
        type: cf_prp
      - name: '*prpctx'
        type: void
      - name: B[CF_MAXBLOCK]
        type: uint8_t
      - name: P[CF_MAXBLOCK]
        type: uint8_t
      item_type: struct
      name: cf_cmac
      pos:
        line_end: 251
        line_start: 245
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: cmac
        type: cf_cmac
      - name: cbc
        type: cf_cbc
      - name: buffer[CF_MAXBLOCK]
        type: uint8_t
      - name: used
        type: size_t
      - name: processed
        type: size_t
      - name: finalised
        type: int
      item_type: struct
      name: cf_cmac_stream
      pos:
        line_end: 299
        line_start: 291
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: H
        type: cf_gf128
      - name: Y
        type: cf_gf128
      - name: buffer[16]
        type: uint8_t
      - name: buffer_used
        type: size_t
      - name: len_aad
        type: uint64_t
      - name: len_cipher
        type: uint64_t
      - name: state
        type: unsigned
      item_type: struct
      name: ghash_ctx
      pos:
        line_end: 423
        line_start: 414
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    - fields:
      - name: ctr
        type: cf_ctr
      - name: gh
        type: ghash_ctx
      - name: Y0[16]
        type: uint8_t
      - name: e_Y0[16]
        type: uint8_t
      item_type: struct
      name: cf_gcm_ctx
      pos:
        line_end: 431
        line_start: 425
        source_file: /src/h2o/deps/picotls/deps/cifra/src/modes.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AES_BLOCKSZ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: '16'
    - item_type: preproc_def
      name: AES128_ROUNDS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: '10'
    - item_type: preproc_def
      name: AES192_ROUNDS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: '12'
    - item_type: preproc_def
      name: AES256_ROUNDS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: '14'
    - item_type: preproc_def
      name: CF_AES_MAXROUNDS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: AES256_ROUNDS
    - item_type: preproc_def
      name: CF_AES_ENCRYPT_ONLY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
      type_or_value: '0'
    structs:
    - fields:
      - name: rounds
        type: uint32_t
      - name: ks[AES_BLOCKSZ / 4 * (CF_AES_MAXROUNDS + 1)]
        type: uint32_t
      item_type: struct
      name: cf_aes_context
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/h2o/deps/picotls/deps/cifra/src/aes.h
    typedefs: []
    union: []
- function_names:
  - cf_cbcmac_stream_init
  - cf_cbcmac_stream_reset
  - cbcmac_process
  - cf_cbcmac_stream_update
  - cf_cbcmac_stream_finish_block_zero
  - cf_cbcmac_stream_nopad_final
  - cf_cbcmac_stream_pad_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/cbcmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CH
  - MAJ
  - BSIG0
  - BSIG1
  - SSIG0
  - SSIG1
  - cf_sha256_init
  - cf_sha224_init
  - sha256_update_block
  - cf_sha256_update
  - cf_sha224_update
  - cf_sha256_digest
  - cf_sha256_digest_final
  - cf_sha224_digest
  - cf_sha224_digest_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha256.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set25519
  - car25519
  - sel25519
  - pack25519
  - unpack25519
  - add
  - sub
  - mul
  - sqr
  - inv25519
  - cf_curve25519_mul
  - cf_curve25519_mul_base
  source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: gf[16]
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c
      type: int64_t
    union: []
- function_names:
  - cmac_compute_n
  - cf_eax_encrypt
  - cf_eax_decrypt
  source_file: /src/h2o/deps/picotls/deps/cifra/src/eax.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shuffle_out
  - shuffle_in
  - read64_bi
  - write64_bi
  - rotl_bi_1
  - rotl_bi_n
  - sha3_init
  - absorb
  - MOD5
  - theta
  - rho_pi_chi
  - permute
  - extract
  - squeeze
  - sha3_block
  - sha3_update
  - pad
  - pad_and_squeeze
  - cf_sha3_224_init
  - cf_sha3_224_update
  - cf_sha3_224_digest
  - cf_sha3_224_digest_final
  - cf_sha3_256_init
  - cf_sha3_256_update
  - cf_sha3_256_digest
  - cf_sha3_256_digest_final
  - cf_sha3_384_init
  - cf_sha3_384_update
  - cf_sha3_384_digest
  - cf_sha3_384_digest_final
  - cf_sha3_512_init
  - cf_sha3_512_update
  - cf_sha3_512_digest
  - cf_sha3_512_digest_final
  source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOMAIN_HASH_PAD
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: DOMAIN_SHAKE_PAD
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/h2o/deps/picotls/deps/cifra/src/sha3.c
      type_or_value: '0x1f'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_CHECK_
  - TEST_CHECK
  - test_print_in_color
  - test_check__
  - test_list_names__
  - test_by_name__
  - test_do_run__
  - test_error__
  - test_run__
  - test_exception_filter__
  - test_help__
  - main
  source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_LIST
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: const struct test__ test_list__[]
    - item_type: preproc_def
      name: CUTEST_UNIX__
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CUTEST_WIN__
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CUTEST_COLOR_DEFAULT__
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CUTEST_COLOR_GREEN__
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CUTEST_COLOR_RED__
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CUTEST_COLOR_DEFAULT_INTENSIVE__
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CUTEST_COLOR_GREEN_INTENSIVE__
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CUTEST_COLOR_RED_INTENSIVE__
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
      type_or_value: '5'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*func)(void)
        type: void
      item_type: struct
      name: test__
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/cutest.h
    typedefs: []
    union: []
- function_names:
  - ARRAYCOUNT
  - MIN
  - STRINGIFY
  - STRINGIFY_
  - ER
  - EG
  - mem_clean
  - mem_eq
  source_file: /src/h2o/deps/picotls/deps/cifra/src/ext/handy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_nothing
  - stack_64w
  - stack_8w
  - hashtest_sha256
  - hashtest_sha512
  - hashtest_sha3_256
  - hashtest_sha3_512
  - aes128block_test
  - aes128sched_test
  - aes256block_test
  - aes256sched_test
  - aes128gcm_test
  - aes128eax_test
  - aes128ccm_test
  - salsa20_test
  - chacha20_test
  - curve25519_test
  - poly1305_test
  - hmacsha256_test
  - norx_test
  - aeadperf_norx
  - aeadperf_chacha20poly1305
  - aeadperf_aes128gcm
  - aeadperf_aes128ccm
  - aeadperf_aes128eax
  - aeadperf_aes256gcm
  - aeadperf_aes256ccm
  - aeadperf_aes256eax
  - clear_stack
  - measure_stack
  - measure
  - STRING_
  - STRING
  - main
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AEADPERF_LEN
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
      type_or_value: '1'
    - item_type: preproc_def
      name: AEADPERF_LEN
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
      type_or_value: BRACKET_END
    - item_type: preproc_def
      name: STACK_MAGIC
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
      type_or_value: '0x57ac34df'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*measure_fn)(void)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/main.c
      type: void
    union: []
- function_names:
  - quit_success
  - quit_failure
  - emit
  - emit_extent
  - emitf
  - emit_hex
  - emit_uint32
  - reset_cycles
  - get_cycles
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OP_WRITE0
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: OP_EXIT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: OP_EXIT_ARG_FAILURE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: OP_EXIT_ARG_SUCCESS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x20026'
    - item_type: preproc_def
      name: SysTick
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: ((systick *)0xe000e010)
    - item_type: preproc_def
      name: STCTRL_SYSCLOCK
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: STCTRL_TICKINT
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: STCTRL_ENABLE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: STCTRL_MAX
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '0xffffff'
    - item_type: preproc_def
      name: STCTRL_SHIFT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
      type_or_value: '24'
    structs:
    - fields:
      - name: ctrl
        type: uint32_t
      - name: reload
        type: uint32_t
      - name: current
        type: uint32_t
      item_type: struct
      name: systick
      pos:
        line_end: 142
        line_start: 137
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/semihost.c
    typedefs: []
    union: []
- function_names:
  - ATTR_SECTION
  - COPY2
  - COPY4
  - COPY8
  - COPY16
  - COPY32
  - COPY64
  - COPY128
  - Reset_Handler
  - __assert_func
  - infinite_loop
  - do_nothing
  - SysTick_Handler
  - get_ticks
  - reset_ticks
  - memmove
  - memcmp
  - strlen
  - abort
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*stack_top'
        type: uint32_t
      - name: reset
        type: vector_fn
      - name: reserved0[4]
        type: vector_fn
      - name: svc
        type: vector_fn
      - name: reserved1
        type: vector_fn
      - name: pendsv
        type: vector_fn
      - name: irq[128]
        type: vector_fn
      item_type: struct
      name: vectors_t
      pos:
        line_end: 30
        line_start: 22
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
    typedefs:
    - item_type: typedef
      name: (*vector_fn)(void)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/boot.c
      type: void
    union: []
- function_names:
  - TEST_CHECK
  - test_check__
  - run_test__
  - main
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_LIST
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
      type_or_value: const struct test__ test_list__[]
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*func)(void)
        type: void
      item_type: struct
      name: test__
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/ext/cutest.h
    typedefs: []
    union: []
- function_names:
  - fe25519_cpy
  - fe25519_unpack
  - fe25519_sub
  - fe25519_add
  - fe25519_mul
  - fe25519_square
  - fe25519_reduceCompletely
  - fe25519_pack
  - fe25519_invert_useProvidedScratchBuffers
  - fe25519_setzero
  - fe25519_setone
  - fe25519_cswap
  - curve25519_ladderstep
  - curve25519_cswap
  - curve25519_doublePointP
  - crypto_scalarmult_curve25519
  - crypto_scalarmult_curve25519_base
  source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: fe25519_mpyWith121666
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type_or_value: fe25519_mpyWith121666_asm
    - item_type: preproc_def
      name: multiply256x256
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type_or_value: multiply256x256_asm
    - item_type: preproc_def
      name: square256
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type_or_value: square256_asm
    structs:
    - fields:
      - name: x0
        type: fe25519
      - name: xp
        type: fe25519
      - name: zp
        type: fe25519
      - name: xq
        type: fe25519
      - name: zq
        type: fe25519
      - name: s
        type: UN_256bitValue
      - name: nextScalarBitToProcess
        type: int
      - name: previousProcessedBit
        type: uint8
      item_type: struct
      name: _ST_curve25519ladderstepWorkingState
      pos:
        line_end: 525
        line_start: 502
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    typedefs:
    - item_type: typedef
      name: uint8
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: uint8_t
    - item_type: typedef
      name: uint16
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: uint16_t
    - item_type: typedef
      name: uint32
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: uint32_t
    - item_type: typedef
      name: uint64
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: uint64_t
    - item_type: typedef
      name: uintptr
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: uintptr_t
    - item_type: typedef
      name: int8
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: int8_t
    - item_type: typedef
      name: int16
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: int16_t
    - item_type: typedef
      name: int32
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: int32_t
    - item_type: typedef
      name: int64
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: int64_t
    - item_type: typedef
      name: intptr
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: intptr_t
    - item_type: typedef
      name: fe25519
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
      type: UN_256bitValue
    union:
    - fields:
      - name: as_uint8[32]
        type: uint8
      - name: as_uint16[16]
        type: uint16
      - name: as_uint32[8]
        type: uint32
      - name: as_uint64[4]
        type: uint64
      item_type: union
      name: UN_256bitValue_
      pos:
        line_end: 87
        line_start: 81
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
    - fields:
      - name: as_uint8[64]
        type: uint8
      - name: as_uint16[32]
        type: uint16
      - name: as_uint32[16]
        type: uint32
      - name: as_uint64[8]
        type: uint64
      - name: as_256_bitValue[2]
        type: UN_256bitValue
      item_type: union
      name: UN_512bitValue_
      pos:
        line_end: 98
        line_start: 91
        source_file: /src/h2o/deps/picotls/deps/cifra/src/arm/unacl/scalarmult.c
- function_names:
  - printhex
  - emit_length_test
  - main
  source_file: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LENGTH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/picotls/deps/cifra/extra_vecs/openssl-hash.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - aes_block_fn
  - aes_block_encrypt
  - aes_block_decrypt
  - hash_fn
  - sha224
  - sha256
  - sha384
  - sha512
  - hmac_fn
  - hmac_sha224
  - hmac_sha256
  - hmac_sha384
  - hmac_sha512
  - do_pbkdf2
  - pbkdf2_fn
  - pbkdf2_sha224
  - pbkdf2_sha256
  - SL_MODULE_ENTRY
  source_file: /src/h2o/deps/picotls/deps/cifra/shitlisp/sl-cifra.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC_vli.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uECC_ENABLE_VLI_API
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC_vli.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CONCATX
  - CONCAT
  - STRX
  - STR
  - EVAL
  - EVAL1
  - EVAL2
  - EVAL3
  - EVAL4
  - DEC
  - SECOND_ARG
  - GET_SECOND_ARG
  - SOME_OR_0
  - DEFER
  - REPEAT_NAME_0
  - REPEAT_NAME_SOME
  - REPEAT_SOME
  - REPEAT
  - REPEATM_NAME_0
  - REPEATM_NAME_SOME
  - REPEATM_SOME
  - REPEATM
  - BITS_TO_WORDS
  - BITS_TO_BYTES
  - bcopy
  - uECC_set_rng
  - uECC_get_rng
  - uECC_curve_private_key_size
  - uECC_curve_public_key_size
  - uECC_vli_clear
  - uECC_word_t::uECC_vli_isZero
  - uECC_word_t::uECC_vli_testBit
  - vli_numDigits
  - uECC_vli_numBits
  - uECC_vli_set
  - uECC_vli_cmp_unsafe
  - uECC_word_t::uECC_vli_equal
  - cmpresult_t::uECC_vli_cmp
  - uECC_vli_rshift1
  - uECC_word_t::uECC_vli_add
  - uECC_word_t::uECC_vli_sub
  - muladd
  - uECC_vli_mult
  - mul2add
  - uECC_vli_square
  - uECC_vli_square
  - uECC_vli_modAdd
  - uECC_vli_modSub
  - uECC_vli_mmod
  - uECC_vli_modMult
  - uECC_vli_modMult_fast
  - uECC_vli_modSquare
  - uECC_vli_modSquare_fast
  - uECC_vli_modSquare
  - uECC_vli_modSquare_fast
  - EVEN
  - vli_modInv_update
  - uECC_vli_modInv
  - EccPoint_isZero
  - apply_z
  - XYcZ_initial_double
  - XYcZ_add
  - XYcZ_addC
  - EccPoint_mult
  - regularize_k
  - uECC_generate_random_int
  - EccPoint_compute_public_key
  - uECC_vli_nativeToBytes
  - uECC_vli_bytesToNative
  - uECC_vli_nativeToBytes
  - uECC_vli_bytesToNative
  - uECC_make_key
  - uECC_shared_secret
  - uECC_compress
  - uECC_decompress
  - uECC_valid_point
  - uECC_valid_public_key
  - uECC_compute_public_key
  - bits2int
  - uECC_sign_with_k_internal
  - uECC_sign_with_k
  - uECC_sign
  - HMAC_init
  - HMAC_update
  - HMAC_finish
  - update_V
  - uECC_sign_deterministic
  - smax
  - uECC_verify
  - uECC_curve_num_words
  - uECC_curve_num_bytes
  - uECC_curve_num_bits
  - uECC_curve_num_n_words
  - uECC_curve_num_n_bytes
  - uECC_curve_num_n_bits
  - uECC_curve_p
  - uECC_curve_n
  - uECC_curve_G
  - uECC_curve_b
  - uECC_vli_mod_sqrt
  - uECC_vli_mmod_fast
  - uECC_point_mult
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uECC_RNG_MAX_TRIES
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '64'
    - item_type: preproc_def
      name: uECC_VLI_API
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: static
    - item_type: preproc_def
      name: DEC_1
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEC_2
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEC_3
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEC_4
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DEC_5
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DEC_6
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DEC_7
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DEC_8
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '7'
    - item_type: preproc_def
      name: DEC_9
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '8'
    - item_type: preproc_def
      name: DEC_10
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '9'
    - item_type: preproc_def
      name: DEC_11
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '10'
    - item_type: preproc_def
      name: DEC_12
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '11'
    - item_type: preproc_def
      name: DEC_13
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '12'
    - item_type: preproc_def
      name: DEC_14
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '13'
    - item_type: preproc_def
      name: DEC_15
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '14'
    - item_type: preproc_def
      name: DEC_16
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '15'
    - item_type: preproc_def
      name: DEC_17
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DEC_18
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '17'
    - item_type: preproc_def
      name: DEC_19
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '18'
    - item_type: preproc_def
      name: DEC_20
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '19'
    - item_type: preproc_def
      name: DEC_21
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '20'
    - item_type: preproc_def
      name: DEC_22
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '21'
    - item_type: preproc_def
      name: DEC_23
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '22'
    - item_type: preproc_def
      name: DEC_24
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '23'
    - item_type: preproc_def
      name: DEC_25
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '24'
    - item_type: preproc_def
      name: DEC_26
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '25'
    - item_type: preproc_def
      name: DEC_27
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '26'
    - item_type: preproc_def
      name: DEC_28
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '27'
    - item_type: preproc_def
      name: DEC_29
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '28'
    - item_type: preproc_def
      name: DEC_30
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '29'
    - item_type: preproc_def
      name: DEC_31
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '30'
    - item_type: preproc_def
      name: DEC_32
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '31'
    - item_type: preproc_def
      name: SOME_CHECK_0
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: ~, 0
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '21 '
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '24'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '28'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '32'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '6 '
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '6'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '7'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '8'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '3'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '3'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '4'
    - item_type: preproc_def
      name: uECC_MAX_WORDS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
      type_or_value: '4'
    structs:
    - fields:
      - name: num_words
        type: wordcount_t
      - name: num_bytes
        type: wordcount_t
      - name: num_n_bits
        type: bitcount_t
      - name: p[uECC_MAX_WORDS]
        type: uECC_word_t
      - name: n[uECC_MAX_WORDS]
        type: uECC_word_t
      - name: G[uECC_MAX_WORDS * 2]
        type: uECC_word_t
      - name: b[uECC_MAX_WORDS]
        type: uECC_word_t
      - name: "(*double_jacobian)(uECC_word_t * X1,\n                            uECC_word_t
          * Y1,\n                            uECC_word_t * Z1,\n                            uECC_Curve
          curve)"
        type: void
      - name: (*x_side)(uECC_word_t *result, const uECC_word_t *x, uECC_Curve curve)
        type: void
      item_type: struct
      name: uECC_Curve_t
      pos:
        line_end: 162
        line_start: 143
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uECC_arch_other
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '0'
    - item_type: preproc_def
      name: uECC_x86
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_x86_64
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '2'
    - item_type: preproc_def
      name: uECC_arm
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '3'
    - item_type: preproc_def
      name: uECC_arm_thumb
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '4'
    - item_type: preproc_def
      name: uECC_arm_thumb2
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '5'
    - item_type: preproc_def
      name: uECC_arm64
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '6'
    - item_type: preproc_def
      name: uECC_avr
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '7'
    - item_type: preproc_def
      name: uECC_OPTIMIZATION_LEVEL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '2'
    - item_type: preproc_def
      name: uECC_SQUARE_FUNC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '0'
    - item_type: preproc_def
      name: uECC_VLI_NATIVE_LITTLE_ENDIAN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '0'
    - item_type: preproc_def
      name: uECC_SUPPORTS_secp160r1
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_SUPPORTS_secp192r1
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_SUPPORTS_secp224r1
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_SUPPORTS_secp256r1
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_SUPPORTS_secp256k1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_SUPPORT_COMPRESSED_POINT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type_or_value: '1'
    structs:
    - fields:
      - name: (*init_hash)(const struct uECC_HashContext *context)
        type: void
      - name: "(*update_hash)(const struct uECC_HashContext *context,\n                        const
          uint8_t *message,\n                        unsigned message_size)"
        type: void
      - name: (*finish_hash)(const struct uECC_HashContext *context, uint8_t *hash_result)
        type: void
      - name: block_size
        type: unsigned
      - name: result_size
        type: unsigned
      - name: '*tmp'
        type: uint8_t
      item_type: struct
      name: uECC_HashContext
      pos:
        line_end: 312
        line_start: 303
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
    typedefs:
    - item_type: typedef
      name: '* uECC_Curve'
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type: uECC_Curve_t
    - item_type: typedef
      name: (*uECC_RNG_Function)(uint8_t *dest, unsigned size)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/uECC.h
      type: int
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_avr
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_arm_thumb2
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_arm_thumb
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_arm
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_arm64
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_x86
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_x86_64
    - item_type: preproc_def
      name: uECC_PLATFORM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: uECC_arch_other
    - item_type: preproc_def
      name: uECC_ARM_USE_UMAAL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_ARM_USE_UMAAL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_ARM_USE_UMAAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0'
    - item_type: preproc_def
      name: uECC_WORD_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_WORD_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '8'
    - item_type: preproc_def
      name: uECC_WORD_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '4'
    - item_type: preproc_def
      name: uECC_WORD_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uECC_WORD_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SUPPORTS_INT128
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SUPPORTS_INT128
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HIGH_BIT_SET
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: uECC_WORD_BITS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '8'
    - item_type: preproc_def
      name: uECC_WORD_BITS_SHIFT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '3'
    - item_type: preproc_def
      name: uECC_WORD_BITS_MASK
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: HIGH_BIT_SET
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: uECC_WORD_BITS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '32'
    - item_type: preproc_def
      name: uECC_WORD_BITS_SHIFT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '5'
    - item_type: preproc_def
      name: uECC_WORD_BITS_MASK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0x01F'
    - item_type: preproc_def
      name: HIGH_BIT_SET
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: 0x8000000000000000ull
    - item_type: preproc_def
      name: uECC_WORD_BITS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '64'
    - item_type: preproc_def
      name: uECC_WORD_BITS_SHIFT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '6'
    - item_type: preproc_def
      name: uECC_WORD_BITS_MASK
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type_or_value: '0x03F'
    structs: []
    typedefs:
    - item_type: typedef
      name: wordcount_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: int8_t
    - item_type: typedef
      name: bitcount_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: int16_t
    - item_type: typedef
      name: cmpresult_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: int8_t
    - item_type: typedef
      name: uECC_word_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: uint8_t
    - item_type: typedef
      name: uECC_dword_t
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: uint16_t
    - item_type: typedef
      name: uECC_word_t
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: uint32_t
    - item_type: typedef
      name: uECC_dword_t
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: uint64_t
    - item_type: typedef
      name: uECC_word_t
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: uint64_t
    - item_type: typedef
      name: uECC_dword_t
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/types.h
      type: unsigned __int128
    union: []
- function_names:
  - vli_print
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compute.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vli_print
  - strtobytes
  - run
  - RUN_TESTS
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* private_key'
        type: char
      - name: '* public_key'
        type: char
      - name: '* k'
        type: char
      - name: '* hash'
        type: char
      - name: '* r'
        type: char
      - name: '* s'
        type: char
      item_type: struct
      name: Test
      pos:
        line_end: 15
        line_start: 8
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/ecdsa_test_vectors.c
    typedefs: []
    union: []
- function_names:
  - vli_print
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdh.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/test_ecdsa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vli_print
  - strtobytes
  - run
  - RUN_TESTS
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* k'
        type: char
      - name: '* Q'
        type: char
      - name: success
        type: int
      item_type: struct
      name: Test
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/public_key_test_vectors.c
    typedefs: []
    union: []
- function_names:
  - vli_print
  - main
  source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uECC_TEST_NUMBER_OF_ITERATIONS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/picotls/deps/micro-ecc/test/test_compress.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ptls_asn1_print_indent
  - ptls_asn1_error_message
  - ptls_asn1_dump_content
  - ptls_asn1_read_type
  - ptls_asn1_print_type
  - ptls_asn1_read_length
  - ptls_asn1_get_expected_type_and_length
  - ptls_asn1_validation_recursive
  - ptls_asn1_validation
  source_file: /src/h2o/deps/picotls/lib/asn1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_ASN1_MAX_RECURSION
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/picotls/lib/asn1.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - aegis128l_get_iv
  - aegis128l_set_iv
  - aegis128l_init
  - aegis128l_encrypt_update
  - aegis128l_encrypt_final
  - aegis128l_decrypt_oneshot
  - aegis128l_dispose_crypto
  - aegis128l_setup_crypto
  - aegis256_get_iv
  - aegis256_set_iv
  - aegis256_init
  - aegis256_encrypt_update
  - aegis256_encrypt_final
  - aegis256_decrypt_oneshot
  - aegis256_dispose_crypto
  - aegis256_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/libaegis.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: st
        type: aegis128l_state
      - name: key[PTLS_AEGIS128L_KEY_SIZE]
        type: uint8_t
      - name: static_iv[PTLS_AEGIS128L_IV_SIZE]
        type: uint8_t
      item_type: struct
      name: aegis128l_context_t
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/h2o/deps/picotls/lib/libaegis.h
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: st
        type: aegis256_state
      - name: key[PTLS_AEGIS256_KEY_SIZE]
        type: uint8_t
      - name: static_iv[PTLS_AEGIS256_IV_SIZE]
        type: uint8_t
      item_type: struct
      name: aegis256_context_t
      pos:
        line_end: 144
        line_start: 139
        source_file: /src/h2o/deps/picotls/lib/libaegis.h
    typedefs: []
    union: []
- function_names:
  - ptls_ffx_setup_crypto
  - ffx_dispose
  - ptls_ffx_new
  - ptls_ffx_one_pass
  - ffx_encrypt
  - ffx_init
  source_file: /src/h2o/deps/picotls/lib/ffx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - aligned_alloc
  - aligned_free
  - aligned_free
  - transformH
  - gfmul
  - gfmul_do_reduce
  - xor128
  - gfmul_do_step128
  - gfmul_firststep128
  - gfmul_nextstep128
  - gfmul_reduce128
  - gfmul_get_tag128
  - gfmul_do_step256
  - gfmul_firststep256
  - gfmul_nextstep256
  - gfmul_reduce256
  - XOR_256TO128
  - gfmul_get_tag256
  - aesecb_encrypt
  - ROUNDKEY
  - loadn_end_of_page
  - loadn128
  - loadn256
  - storen128
  - ptls_fusion_aesgcm_encrypt
  - AESECB6_INIT
  - AESECB6_UPDATE
  - AESECB6_FINAL
  - STATE_EK0_READY
  - APPLY
  - APPLY
  - ptls_fusion_aesgcm_decrypt
  - INIT_BITS
  - AESECB6_UPDATE
  - APPLY
  - APPLY
  - expand_key
  - ptls_fusion_aesecb_init
  - EXPAND
  - ptls_fusion_aesecb_dispose
  - ptls_fusion_aesecb_encrypt
  - aesgcm_calc_ghash_cnt
  - setup_one_ghash_entry
  - GET_SLOT
  - calc_aesgcm_context_size
  - new_aesgcm
  - ptls_fusion_aesgcm_new
  - ptls_fusion_aesgcm_set_capacity
  - ptls_fusion_aesgcm_free
  - ctr_dispose
  - ctr_init
  - ctr_transform
  - aesctr_setup
  - aes128ctr_setup
  - aes256ctr_setup
  - aesgcm_dispose_crypto
  - aead_do_encrypt_init
  - aead_do_encrypt_update
  - aead_do_encrypt_final
  - calc_counter
  - aead_do_encrypt
  - aead_do_encrypt_v
  - aead_do_decrypt
  - aesgcm_get_iv
  - aesgcm_set_iv
  - aesgcm_setup
  - aes128gcm_setup
  - aes256gcm_setup
  - calc_total_length
  - reduce_aad128
  - load_preceding_unaligned
  - write_remaining_bytes
  - non_temporal_encrypt_v128
  - AESECB6_INIT
  - AESECB6_UPDATE
  - AESECB6_FINAL
  - APPLY
  - APPLY
  - non_temporal_decrypt128
  - AESECB6_INIT
  - AESECB6_UPDATE
  - AESECB6_FINAL
  - DECRYPT
  - GFMUL_NEXT
  - ONEBLOCK
  - non_temporal_encrypt_v256
  - AESECB6_INIT
  - AESECB6_UPDATE
  - AESECB6_FINAL
  - APPLY
  - APPLY
  - non_temporal_setup
  - non_temporal_aes128gcm_setup
  - non_temporal_aes256gcm_setup
  - fusion_quiclb_dispose
  - fusion_quiclb_aes
  - fusion_quiclb_encrypt
  - fusion_quiclb_decrypt
  - fusion_quiclb_setup_crypto
  - ptls_fusion_is_supported_by_cpu
  - ptls_fusion_is_supported_by_cpu
  source_file: /src/h2o/deps/picotls/lib/fusion.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NO_SANITIZE_ADDRESS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: __attribute__((no_sanitize("address")))
    - item_type: preproc_def
      name: NO_SANITIZE_ADDRESS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: __attribute__((no_sanitize_address))
    - item_type: preproc_def
      name: poly
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: (*(__m128i *)poly_)
    - item_type: preproc_def
      name: byteswap128
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: (*(__m128i *)byteswap_)
    - item_type: preproc_def
      name: byteswap256
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: (*(__m256i *)byteswap_)
    - item_type: preproc_def
      name: one8
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: (*(__m128i *)one_)
    - item_type: preproc_def
      name: incr128x2
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: (*(__m256i *)incr128x2_)
    - item_type: preproc_def
      name: xor128
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: _mm_xor_si128
    - item_type: preproc_def
      name: STATE_EK0_BEEN_FED
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: STATE_EK0_INCOMPLETE
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: STATE_SUPP_USED
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: STATE_SUPP_IN_PROCESS
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: STATE_IS_FIRST_RUN
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: STATE_GHASH_HAS_MORE
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: STATE_EK0_READY
      pos:
        line_end: 1404
        line_start: 1403
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: STATE_COPY_128B
      pos:
        line_end: 1405
        line_start: 1404
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: STATE_EK0_READY
      pos:
        line_end: 1682
        line_start: 1681
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: STATE_EK0_READY
      pos:
        line_end: 1867
        line_start: 1866
        source_file: /src/h2o/deps/picotls/lib/fusion.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: ecb
        type: ptls_fusion_aesecb_context_t
      - name: capacity
        type: size_t
      - name: ghash_cnt
        type: size_t
      item_type: struct
      name: ptls_fusion_aesgcm_context
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: super
        type: struct ptls_fusion_aesgcm_context
      - name: ghash[0]
        type: "struct ptls_fusion_aesgcm_ghash_precompute128 {\n        __m128i H;\n
          \       __m128i r;\n    }"
      item_type: struct
      name: ptls_fusion_aesgcm_context128
      pos:
        line_end: 81
        line_start: 75
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: H
        type: __m128i
      - name: r
        type: __m128i
      item_type: struct
      name: ptls_fusion_aesgcm_ghash_precompute128
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: super
        type: struct ptls_fusion_aesgcm_context
      - name: ghash[0]
        type: "union ptls_fusion_aesgcm_ghash_precompute256 {\n        struct {\n
          \           __m128i H[2];\n            __m128i r[2];\n        };\n        struct
          {\n            __m256i Hx2;\n            __m256i rx2;\n        };\n    }"
      item_type: struct
      name: ptls_fusion_aesgcm_context256
      pos:
        line_end: 95
        line_start: 83
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: fusion
        type: ptls_fusion_aesecb_context_t
      - name: bits
        type: __m128i
      - name: is_ready
        type: uint8_t
      item_type: struct
      name: ctr_context
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: '*aesgcm'
        type: ptls_fusion_aesgcm_context_t
      - name: static_iv
        type: __m128i
      item_type: struct
      name: aesgcm_context
      pos:
        line_end: 111
        line_start: 104
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: hi
        type: __m128i
      item_type: struct
      name: ptls_fusion_gfmul_state128
      pos:
        line_end: 208
        line_start: 206
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: hi
        type: __m256i
      item_type: struct
      name: ptls_fusion_gfmul_state256
      pos:
        line_end: 268
        line_start: 266
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: aesecb
        type: ptls_fusion_aesecb_context_t
      item_type: struct
      name: fusion_quiclb_context
      pos:
        line_end: 2188
        line_start: 2185
        source_file: /src/h2o/deps/picotls/lib/fusion.c
    typedefs: []
    union:
    - fields: []
      item_type: union
      name: ptls_fusion_aesgcm_ghash_precompute256
      pos:
        line_end: 94
        line_start: 85
        source_file: /src/h2o/deps/picotls/lib/fusion.c
- function_names:
  - decompress_certificate
  - emit_compressed_certificate
  - build_compressed
  - ptls_init_compressed_certificate
  - ptls_dispose_compressed_certificate
  source_file: /src/h2o/deps/picotls/lib/certificate_compression.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ptls_minicrypto_asn1_decode_private_key
  - ptls_pem_parse_private_key
  - ptls_set_ecdsa_private_key
  - ptls_minicrypto_load_private_key
  source_file: /src/h2o/deps/picotls/lib/minicrypto-pem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_suite_id
  - labeled_extract
  - labeled_expand
  - extract_and_expand
  - dh_derive
  - dh_encap
  - dh_decap
  - key_schedule
  - ptls_hpke_setup_base_s
  - ptls_hpke_setup_base_r
  source_file: /src/h2o/deps/picotls/lib/hpke.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HPKE_V1_LABEL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/picotls/lib/hpke.c
      type_or_value: '"HPKE-v1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ptls_mbedtls_parse_der_length
  - ptls_mbedtls_parse_ecdsa_field
  - ptls_mbedtls_parse_eddsa_key
  - ptls_mbedtls_parse_ec_private_key
  - test_parse_private_key_field
  - ptls_mbedtls_get_der_key
  - ptls_mbedtls_select_signature_scheme
  - ptls_mbedtls_set_available_schemes
  - ptls_mbedtls_sign_certificate
  - ptls_mbedtls_dispose_sign_certificate
  - ptls_mbedtls_rsa_get_key_bits
  - ptls_mbedtls_set_rsa_key_attributes
  - ptls_mbedtls_set_ec_key_attributes
  - ptls_mbedtls_load_private_key
  source_file: /src/h2o/deps/picotls/lib/mbedtls_sign.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: scheme_id
        type: uint16_t
      - name: hash_algo
        type: psa_algorithm_t
      item_type: struct
      name: st_ptls_mbedtls_signature_scheme_t
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    - fields:
      - name: super
        type: ptls_sign_certificate_t
      - name: key_id
        type: mbedtls_svc_key_id_t
      - name: attributes
        type: psa_key_attributes_t
      - name: '*schemes'
        type: ptls_mbedtls_signature_scheme_t
      item_type: struct
      name: st_ptls_mbedtls_sign_certificate_t
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/h2o/deps/picotls/lib/mbedtls_sign.c
    typedefs: []
    union: []
- function_names:
  - PTLS_DEBUGF
  - PTLS_PROBE0
  - PTLS_PROBE
  - is_supported_version
  - extension_bitmap_testandset
  - HSTYPE_TO_BIT
  - DEFINE_BIT
  - EXT
  - ntoh16
  - ntoh24
  - ntoh32
  - ntoh64
  - encode64
  - duplicate_as_str
  - ptls_buffer__release_memory
  - ptls_buffer_reserve
  - ptls_buffer_reserve_aligned
  - ptls_buffer__do_pushv
  - ptls_buffer__adjust_quic_blocksize
  - ptls_buffer__adjust_asn1_blocksize
  - ptls_buffer_push_asn1_ubigint
  - aead_encrypt
  - aead_decrypt
  - build_aad
  - aead_encrypt
  - aead_decrypt
  - build_tls12_aad
  - buffer_push_record
  - buffer_push_encrypted_records
  - buffer_encrypt_record
  - begin_record_message
  - commit_record_message
  - buffer_push_extension
  - decode_open_extensions
  - decode_extensions
  - ptls_decode8
  - ptls_decode16
  - ptls_decode24
  - ptls_decode32
  - ptls_decode64
  - ptls_decode_quicint
  - log_secret
  - clear_ech
  - decode_one_ech_config
  - SKIP_DECODED
  - client_decode_ech_config_list
  - client_setup_ech
  - client_setup_ech_grease
  - ech_calc_confirmation
  - key_schedule_free
  - key_schedule_new
  - FOREACH_HASH
  - key_schedule_extract
  - key_schedule_select_cipher
  - key_schedule_select_outer
  - ptls__key_schedule_update_hash
  - key_schedule_update_ch1hash_prefix
  - key_schedule_extract_ch1hash
  - key_schedule_transform_post_ch1hash
  - derive_secret_with_hash
  - derive_secret
  - derive_secret_with_empty_digest
  - derive_exporter_secret
  - free_exporter_master_secret
  - derive_resumption_secret
  - decode_new_session_ticket
  - decode_stored_session_ticket
  - get_traffic_key
  - get_traffic_keys
  - setup_traffic_protection
  - commission_handshake_secret
  - log_client_random
  - encode_session_identifier
  - decode_session_identifier
  - build_certificate_verify_signdata
  - calc_verify_data
  - verify_finished
  - send_finished
  - send_session_ticket
  - push_change_cipher_spec
  - push_additional_extensions
  - push_signature_algorithms
  - decode_signature_algorithms
  - select_cipher
  - push_key_share_entry
  - decode_key_share_entry
  - select_key_share
  - emit_server_name_extension
  - outer_ech_header_size
  - encode_client_hello
  - update_ch_hash_and_binder
  - send_client_hello
  - ptls_find_cipher_suite
  - decode_server_hello
  - handle_hello_retry_request
  - client_ech_select_hello
  - client_handle_hello
  - should_collect_unknown_extension
  - collect_unknown_extension
  - report_unknown_extensions
  - client_handle_encrypted_extensions
  - decode_certificate_request
  - ptls_build_certificate_message
  - default_emit_certificate_cb
  - send_certificate
  - send_certificate_verify
  - client_handle_certificate_request
  - handle_certificate
  - client_do_handle_certificate
  - client_handle_certificate
  - client_handle_compressed_certificate
  - server_handle_certificate
  - handle_certificate_verify
  - client_handle_certificate_verify
  - server_handle_certificate_verify
  - client_handle_finished
  - client_handle_new_session_ticket
  - client_hello_decode_server_name
  - select_negotiated_group
  - decode_client_hello
  - rebuild_ch_inner_extensions
  - rebuild_ch_inner
  - COPY_BLOCK
  - call_on_client_hello_cb
  - check_client_hello_constraints
  - vec_is_string
  - try_psk_handshake
  - calc_cookie_signature
  - UPDATE_BLOCK
  - UPDATE16
  - certificate_type_exists
  - server_handle_hello
  - EMIT_HELLO_RETRY_REQUEST
  - server_finish_handshake
  - server_handle_end_of_early_data
  - server_handle_finished
  - update_traffic_key
  - handle_key_update
  - parse_record_header
  - parse_record
  - update_open_count
  - new_instance
  - ptls_client_new
  - PTLS_LOG_CONN
  - ptls_build_tls12_export_params
  - ptls_export
  - import_tls12_traffic_protection
  - import_tls13_traffic_protection
  - ptls_import
  - ptls_free
  - ptls_get_context
  - ptls_set_context
  - ptls_get_async_job
  - ptls_get_client_random
  - ptls_get_cipher
  - ptls_get_protocol_version
  - ptls_get_traffic_keys
  - ptls_get_server_name
  - ptls_set_server_name
  - ptls_get_negotiated_protocol
  - ptls_set_negotiated_protocol
  - ptls_handshake_is_complete
  - ptls_is_psk_handshake
  - ptls_is_ech_handshake
  - ptls_get_data_ptr
  - ptls_get_log_state
  - handle_client_handshake_message
  - handle_server_handshake_message
  - handle_alert
  - message_buffer_is_overflow
  - handle_handshake_record
  - handle_input
  - handle_input_tls12
  - init_record_message_emitter
  - ptls_handshake
  - ptls_receive
  - update_send_key
  - ptls_send
  - ptls_update_key
  - ptls_get_record_overhead
  - ptls_send_alert
  - ptls_export_secret
  - hmac_update
  - hmac_apply_key
  - hmac_final
  - ptls_calc_hash
  - ptls_hmac_create
  - ptls_hkdf_extract
  - ptls_hkdf_expand
  - ptls_hkdf_expand_label
  - ptls_tls12_phash
  - ptls_cipher_new
  - ptls_cipher_free
  - new_aead
  - ptls_aead_new
  - ptls_aead_new_direct
  - ptls_aead_free
  - ptls_aead_xor_iv
  - ptls_aead__build_iv
  - clear_memory
  - mem_equal
  - get_time
  - ptls_is_server
  - begin_raw_message
  - commit_raw_message
  - ptls_get_read_epoch
  - ptls_handle_message
  - ptls_client_handle_message
  - ptls_server_handle_message
  - ptls_server_name_is_ipaddr
  - ptls_ech_encode_config
  - byte_to_hex
  - ptls_hexdump
  - ptls_jsonescape
  - MAP
  - ptls_build_v4_mapped_v6_address
  - struct
  - close_log_fd
  - duplicate_stringlist
  - is_in_stringlist
  - is_in_addresslist
  - IS_EQUAL
  - ptls_log__recalc_point
  - ptls_log__recalc_conn
  - expand_logbuf_or_invalidate
  - pushf_logbuf_or_invalidate
  - ptls_log__do_push_element_safestr
  - ptls_log__do_push_element_unsafestr
  - ptls_log__do_push_element_hexdump
  - ptls_log__do_push_element_signed32
  - ptls_log__do_push_element_signed64
  - ptls_log__do_push_element_unsigned32
  - ptls_log__do_push_element_unsigned64
  - ptls_log__do_push_element_bool
  - ptls_log__do_write_start
  - ptls_log__do_write_end
  - ptls_log_init_conn_state
  - ptls_log_num_lost
  - ptls_log_add_fd
  source_file: /src/h2o/deps/picotls/lib/picotls.c
  types:
    enum:
    - enumerators:
      - name: PTLS_ECH_STATE_NONE
        value: '0'
      - name: PTLS_ECH_STATE_ACCEPTED
      - name: PTLS_ECH_STATE_GREASE
      - name: PTLS_ECH_STATE_OFFERED
      item_type: enum
      name: en_ptls_ech_state_t
      pos:
        line_end: 191
        line_start: 186
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - enumerators:
      - name: PTLS_STATE_CLIENT_HANDSHAKE_START
      - name: PTLS_STATE_CLIENT_EXPECT_CERTIFICATE_REQUEST_OR_CERTIFICATE
      - name: PTLS_STATE_CLIENT_EXPECT_SECOND_SERVER_HELLO
      - name: PTLS_STATE_CLIENT_EXPECT_ENCRYPTED_EXTENSIONS
      - name: PTLS_STATE_CLIENT_EXPECT_SERVER_HELLO
      - name: PTLS_STATE_CLIENT_EXPECT_CERTIFICATE
      - name: PTLS_STATE_CLIENT_EXPECT_CERTIFICATE_VERIFY
      - name: PTLS_STATE_CLIENT_EXPECT_FINISHED
      - name: PTLS_STATE_SERVER_EXPECT_CLIENT_HELLO
      - name: PTLS_STATE_SERVER_EXPECT_SECOND_CLIENT_HELLO
      - name: PTLS_STATE_SERVER_EXPECT_CERTIFICATE_VERIFY
      - name: PTLS_STATE_SERVER_EXPECT_END_OF_EARLY_DATA
      - name: PTLS_STATE_CLIENT_POST_HANDSHAKE
        value: PTLS_STATE_POST_HANDSHAKE_MIN
      - name: PTLS_STATE_SERVER_POST_HANDSHAKE
      - name: PTLS_STATE_SERVER_GENERATING_CERTIFICATE_VERIFY
      - name: PTLS_STATE_SERVER_EXPECT_FINISHED
      - name: PTLS_STATE_POST_HANDSHAKE_MIN
      - name: PTLS_STATE_SERVER_EXPECT_CERTIFICATE
      item_type: enum
      name: en_ptls_state_t
      pos:
        line_end: 236
        line_start: 216
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - enumerators:
      - name: ENCODE_CH_MODE_INNER
      - name: ENCODE_CH_MODE_ENCODED_INNER
      - name: ENCODE_CH_MODE_OUTER
      item_type: enum
      name: encode_ch_mode
      pos:
        line_end: 2156
        line_start: 2156
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_MAX_PLAINTEXT_RECORD_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: PTLS_MAX_ENCRYPTED_RECORD_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: (16384 + 256)
    - item_type: preproc_def
      name: PTLS_RECORD_VERSION_MAJOR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PTLS_RECORD_VERSION_MINOR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PTLS_CONTENT_TYPE_CHANGE_CIPHER_SPEC
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PTLS_CONTENT_TYPE_ALERT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '21'
    - item_type: preproc_def
      name: PTLS_CONTENT_TYPE_HANDSHAKE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '22'
    - item_type: preproc_def
      name: PTLS_CONTENT_TYPE_APPDATA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '23'
    - item_type: preproc_def
      name: PTLS_PSK_KE_MODE_PSK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_PSK_KE_MODE_PSK_DHE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_HANDSHAKE_HEADER_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_SERVER_NAME
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_STATUS_REQUEST
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_SUPPORTED_GROUPS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '10'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_SIGNATURE_ALGORITHMS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '13'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_ALPN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_SERVER_CERTIFICATE_TYPE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_COMPRESS_CERTIFICATE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '27'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_PRE_SHARED_KEY
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '41'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_EARLY_DATA
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '42'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_SUPPORTED_VERSIONS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '43'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_COOKIE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '44'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_PSK_KEY_EXCHANGE_MODES
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '45'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_CERTIFICATE_AUTHORITIES
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '47'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_KEY_SHARE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '51'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_TICKET_REQUEST
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '58'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_ECH_OUTER_EXTENSIONS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0xfd00'
    - item_type: preproc_def
      name: PTLS_EXTENSION_TYPE_ENCRYPTED_CLIENT_HELLO
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0xfe0d'
    - item_type: preproc_def
      name: PTLS_SERVER_NAME_TYPE_HOSTNAME
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_ECH_CONFIG_VERSION
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0xfe0d'
    - item_type: preproc_def
      name: PTLS_ECH_CLIENT_HELLO_TYPE_OUTER
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTLS_ECH_CLIENT_HELLO_TYPE_INNER
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PTLS_ECH_CONFIRM_LENGTH
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PTLS_SERVER_CERTIFICATE_VERIFY_CONTEXT_STRING
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '"TLS 1.3, server CertificateVerify"'
    - item_type: preproc_def
      name: PTLS_CLIENT_CERTIFICATE_VERIFY_CONTEXT_STRING
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '"TLS 1.3, client CertificateVerify"'
    - item_type: preproc_def
      name: PTLS_MAX_CERTIFICATE_VERIFY_SIGNDATA_SIZE
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: (64 + sizeof(PTLS_SERVER_CERTIFICATE_VERIFY_CONTEXT_STRING) +
        PTLS_MAX_DIGEST_SIZE * 2)
    - item_type: preproc_def
      name: PTLS_EARLY_DATA_MAX_DELAY
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: PTLS_MAX_EARLY_DATA_SKIP_SIZE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: PTLS_MEMORY_DEBUG
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_UNKNOWN_EXTENSIONS
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_CERTIFICATE_TYPES
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ECH_CONFIRMATION_SERVER_HELLO
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '"ech accept confirmation"'
    - item_type: preproc_def
      name: ECH_CONFIRMATION_HRR
      pos:
        line_end: 1228
        line_start: 1227
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '"hrr ech accept confirmation"'
    - item_type: preproc_def
      name: SESSION_IDENTIFIER_MAGIC
      pos:
        line_end: 1715
        line_start: 1714
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: '"ptls0001" '
    - item_type: preproc_def
      name: SESSION_IDENTIFIER_MAGIC_SIZE
      pos:
        line_end: 1716
        line_start: 1715
        source_file: /src/h2o/deps/picotls/lib/picotls.c
      type_or_value: (sizeof(SESSION_IDENTIFIER_MAGIC) - 1)
    structs:
    - fields:
      - name: secret[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: epoch
        type: size_t
      - name: '*aead'
        type: ptls_aead_context_t
      - name: seq
        type: uint64_t
      - name: tls12
        type: unsigned
      - name: tls12_enc_record_iv
        type: uint64_t
      item_type: struct
      name: st_ptls_traffic_protection_t
      pos:
        line_end: 148
        line_start: 140
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: super
        type: ptls_message_emitter_t
      - name: rec_start
        type: size_t
      item_type: struct
      name: st_ptls_record_message_emitter_t
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: list[PTLS_MAX_SIGNATURE_ALGORITHMS]
        type: uint16_t
      - name: count
        type: size_t
      item_type: struct
      name: st_ptls_signature_algorithms_t
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: context
        type: ptls_iovec_t
      - name: signature_algorithms
        type: struct st_ptls_signature_algorithms_t
      item_type: struct
      name: st_ptls_certificate_request_t
      pos:
        line_end: 166
        line_start: 160
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: id
        type: uint8_t
      - name: '*kem'
        type: ptls_hpke_kem_t
      - name: public_key
        type: ptls_iovec_t
      - name: '*cipher'
        type: ptls_hpke_cipher_suite_t
      - name: max_name_length
        type: uint8_t
      - name: public_name
        type: ptls_iovec_t
      - name: bytes
        type: ptls_iovec_t
      item_type: struct
      name: st_decoded_ech_config_t
      pos:
        line_end: 176
        line_start: 168
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: state
        type: "enum en_ptls_ech_state_t {\n        PTLS_ECH_STATE_NONE = 0,\n        PTLS_ECH_STATE_OFFERED,\n
          \       PTLS_ECH_STATE_ACCEPTED,\n        PTLS_ECH_STATE_GREASE\n    }"
      - name: config_id
        type: uint8_t
      - name: '*kem'
        type: ptls_hpke_kem_t
      - name: '*cipher'
        type: ptls_hpke_cipher_suite_t
      - name: '*aead'
        type: ptls_aead_context_t
      - name: inner_client_random[PTLS_HELLO_RANDOM_SIZE]
        type: uint8_t
      - name: client
        type: "struct {\n        ptls_iovec_t enc;\n        uint8_t max_name_length;\n
          \       char *public_name;\n        /**\n         * retains a copy of entire
          ECH extension so that it can be replayed in the 2nd CH when ECH is rejected
          via HRR\n         */\n        ptls_iovec_t first_ech;\n    }"
      item_type: struct
      name: st_ptls_ech_t
      pos:
        line_end: 206
        line_start: 181
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: '*ctx'
        type: ptls_context_t
      - name: state
        type: "enum en_ptls_state_t {\n        PTLS_STATE_CLIENT_HANDSHAKE_START,\n
          \       PTLS_STATE_CLIENT_EXPECT_SERVER_HELLO,\n        PTLS_STATE_CLIENT_EXPECT_SECOND_SERVER_HELLO,\n
          \       PTLS_STATE_CLIENT_EXPECT_ENCRYPTED_EXTENSIONS,\n        PTLS_STATE_CLIENT_EXPECT_CERTIFICATE_REQUEST_OR_CERTIFICATE,\n
          \       PTLS_STATE_CLIENT_EXPECT_CERTIFICATE,\n        PTLS_STATE_CLIENT_EXPECT_CERTIFICATE_VERIFY,\n
          \       PTLS_STATE_CLIENT_EXPECT_FINISHED,\n        PTLS_STATE_SERVER_EXPECT_CLIENT_HELLO,\n
          \       PTLS_STATE_SERVER_EXPECT_SECOND_CLIENT_HELLO,\n        PTLS_STATE_SERVER_GENERATING_CERTIFICATE_VERIFY,\n
          \       PTLS_STATE_SERVER_EXPECT_CERTIFICATE,\n        PTLS_STATE_SERVER_EXPECT_CERTIFICATE_VERIFY,\n
          \       /* ptls_send can be called if the state is below here */\n        PTLS_STATE_SERVER_EXPECT_END_OF_EARLY_DATA,\n
          \       PTLS_STATE_SERVER_EXPECT_FINISHED,\n        PTLS_STATE_POST_HANDSHAKE_MIN,\n
          \       PTLS_STATE_CLIENT_POST_HANDSHAKE = PTLS_STATE_POST_HANDSHAKE_MIN,\n
          \       PTLS_STATE_SERVER_POST_HANDSHAKE\n    }"
      - name: recvbuf
        type: "struct {\n        ptls_buffer_t rec;\n        ptls_buffer_t mess;\n
          \   }"
      - name: '*key_schedule'
        type: ptls_key_schedule_t
      - name: traffic_protection
        type: "struct {\n        struct st_ptls_traffic_protection_t dec;\n        struct
          st_ptls_traffic_protection_t enc;\n    }"
      - name: '*server_name'
        type: char
      - name: '*negotiated_protocol'
        type: char
      - name: '*key_share'
        type: ptls_key_exchange_algorithm_t
      - name: '*cipher_suite'
        type: ptls_cipher_suite_t
      - name: client_random[PTLS_HELLO_RANDOM_SIZE]
        type: uint8_t
      - name: exporter_master_secret
        type: "struct {\n        uint8_t *early;\n        uint8_t *one_rtt;\n    }"
      - name: ech
        type: struct st_ptls_ech_t
      - name: is_server
        type: unsigned
      - name: is_psk_handshake
        type: unsigned
      - name: send_change_cipher_spec
        type: unsigned
      - name: needs_key_update
        type: unsigned
      - name: key_update_send_request
        type: unsigned
      - name: log_sni
        type: "struct {\n        uint32_t active_conns;\n        uint32_t generation;\n
          \   }"
      - name: certificate_verify
        type: "struct {\n        int (*cb)(void *verify_ctx, uint16_t algo, ptls_iovec_t
          data, ptls_iovec_t signature);\n        void *verify_ctx;\n    }"
      - name: '*pending_handshake_secret'
        type: uint8_t
      - name: '*data_ptr'
        type: void
      item_type: struct
      name: st_ptls_t
      pos:
        line_end: 339
        line_start: 208
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: type
        type: uint8_t
      - name: version
        type: uint16_t
      - name: length
        type: size_t
      - name: '*fragment'
        type: uint8_t
      item_type: struct
      name: st_ptls_record_t
      pos:
        line_end: 346
        line_start: 341
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: legacy_version
        type: uint16_t
      - name: '*random_bytes'
        type: uint8_t
      - name: legacy_session_id
        type: ptls_iovec_t
      - name: compression_methods
        type: "struct {\n        const uint8_t *ids;\n        size_t count;\n    }"
      - name: selected_version
        type: uint16_t
      - name: cipher_suites
        type: ptls_iovec_t
      - name: negotiated_groups
        type: ptls_iovec_t
      - name: key_shares
        type: ptls_iovec_t
      - name: signature_algorithms
        type: struct st_ptls_signature_algorithms_t
      - name: server_name
        type: ptls_iovec_t
      - name: alpn
        type: "struct {\n        ptls_iovec_t list[16];\n        size_t count;\n    }"
      - name: cert_compression_algos
        type: "struct {\n        uint16_t list[16];\n        size_t count;\n    }"
      - name: cookie
        type: "struct {\n        ptls_iovec_t all;\n        ptls_iovec_t tbs;\n        ptls_iovec_t
          ch1_hash;\n        ptls_iovec_t signature;\n        unsigned sent_key_share
          : 1;\n    }"
      - name: server_certificate_types
        type: "struct {\n        uint8_t list[MAX_CERTIFICATE_TYPES];\n        size_t
          count;\n    }"
      - name: status_request
        type: unsigned
      - name: ticket_request
        type: "struct {\n        uint8_t new_session_count;\n        uint8_t resumption_count;\n
          \   }"
      - name: ech
        type: "struct {\n        uint8_t type;\n        uint8_t config_id;\n        ptls_hpke_cipher_suite_id_t
          cipher_suite;\n        ptls_iovec_t enc;\n        ptls_iovec_t payload;\n
          \   }"
      - name: psk
        type: "struct {\n        const uint8_t *hash_end;\n        struct {\n            ptls_client_hello_psk_identity_t
          list[4];\n            size_t count;\n        } identities;\n        unsigned
          ke_modes;\n        unsigned early_data_indication : 1;\n        unsigned
          is_last_extension : 1;\n    }"
      - name: unknown_extensions[MAX_UNKNOWN_EXTENSIONS + 1]
        type: ptls_raw_extension_t
      - name: first_extension_at
        type: size_t
      item_type: struct
      name: st_ptls_client_hello_t
      pos:
        line_end: 411
        line_start: 351
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: random_[PTLS_HELLO_RANDOM_SIZE]
        type: uint8_t
      - name: legacy_session_id
        type: ptls_iovec_t
      - name: is_retry_request
        type: int
      item_type: struct
      name: st_ptls_server_hello_t
      pos:
        line_end: 425
        line_start: 413
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: generation
        type: unsigned
      - name: secret[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: num_hashes
        type: size_t
      - name: hashes[1]
        type: "struct {\n        ptls_hash_algorithm_t *algo;\n        ptls_hash_context_t
          *ctx, *ctx_outer;\n    }"
      item_type: struct
      name: st_ptls_key_schedule_t
      pos:
        line_end: 435
        line_start: 427
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: type
        type: uint16_t
      - name: (*cb)(ptls_t *tls, void *arg, const uint8_t *src, const uint8_t *const
          end)
        type: int
      item_type: struct
      name: st_ptls_extension_decoder_t
      pos:
        line_end: 440
        line_start: 437
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: bits
        type: uint64_t
      item_type: struct
      name: st_ptls_extension_bitmap_t
      pos:
        line_end: 444
        line_start: 442
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: secret
        type: ptls_iovec_t
      - name: identity
        type: ptls_iovec_t
      - name: '*label'
        type: char
      item_type: struct
      name: psk = {{NULL}}
      pos:
        line_end: 2379
        line_start: 2375
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: '*algorithm'
        type: ptls_key_exchange_algorithm_t
      - name: peer_key
        type: ptls_iovec_t
      item_type: struct
      name: key_share = {NULL}
      pos:
        line_end: 4395
        line_start: 4392
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: '*encoded_ch_inner'
        type: uint8_t
      - name: '*ch_outer_aad'
        type: uint8_t
      - name: ch_inner
        type: ptls_buffer_t
      item_type: struct
      name: ech = {NULL}
      pos:
        line_end: 4400
        line_start: 4396
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: '*key'
        type: void
      - name: '*iv'
        type: void
      item_type: struct
      name: client_secret
      pos:
        line_end: 5308
        line_start: 5305
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: super
        type: ptls_hash_context_t
      - name: '*algo'
        type: ptls_hash_algorithm_t
      - name: '*hash'
        type: ptls_hash_context_t
      - name: key[1]
        type: uint8_t
      item_type: struct
      name: st_picotls_hmac_context_t
      pos:
        line_end: 6291
        line_start: 6286
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: key[PTLS_MAX_SECRET_SIZE]
        type: uint8_t
      - name: iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      item_type: struct
      name: key_iv
      pos:
        line_end: 6509
        line_start: 6506
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: super
        type: ptls_message_emitter_t
      - name: start_off
        type: size_t
      - name: '*epoch_offsets'
        type: size_t
      item_type: struct
      name: st_ptls_raw_message_emitter_t
      pos:
        line_end: 6615
        line_start: 6611
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: conns[sizeof(((struct st_ptls_log_state_t *)NULL)->active_conns) * 8]
        type: "struct {\n        /**\n         * file descriptor\n         */\n        int
          fd;\n        /**\n         * see `ptls_log_add_fd`\n         */\n        char
          *points;\n        /**\n         *\n         */\n        char *snis;\n        /**\n
          \        * list of addresses terminated by ip6addr_any\n         */\n        struct
          in6_addr *addresses;\n        /**\n         *\n         */\n        float
          sample_ratio;\n        /**\n         *\n         */\n        unsigned appdata
          : 1;\n    }"
      - name: num_lost
        type: size_t
      - name: '*points'
        type: struct st_ptls_log_point_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: logctx = {.mutex = PTHREAD_MUTEX_INITIALIZER}
      pos:
        line_end: 6880
        line_start: 6838
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    - fields:
      - name: buf[sizeof(",\"tid\":-9223372036854775808")]
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: tid
      pos:
        line_end: 6888
        line_start: 6885
        source_file: /src/h2o/deps/picotls/lib/picotls.c
    typedefs: []
    union: []
- function_names:
  - chacha20poly1305_write_u64
  - chacha20poly1305_encrypt_pad
  - chacha20poly1305_finalize
  - chacha20poly1305_dispose_crypto
  - chacha20poly1305_init
  - chacha20poly1305_encrypt_update
  - chacha20poly1305_encrypt_final
  - chacha20poly1305_decrypt
  - chacha20poly1305_get_iv
  - chacha20poly1305_set_iv
  - chacha20poly1305_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/chacha20poly1305.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHACHA20POLY1305_BLOCKSIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/picotls/lib/chacha20poly1305.h
      type_or_value: '64'
    structs:
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: '*chacha'
        type: ptls_cipher_context_t
      - name: static_iv[PTLS_CHACHA20POLY1305_IV_SIZE]
        type: uint8_t
      - name: aadlen
        type: size_t
      - name: textlen
        type: size_t
      - name: (*poly1305_init)(struct chacha20poly1305_context_t *, const void *)
        type: void
      - name: (*poly1305_update)(struct chacha20poly1305_context_t *, const void *,
          size_t)
        type: void
      - name: (*poly1305_finish)(struct chacha20poly1305_context_t *, void *)
        type: void
      item_type: struct
      name: chacha20poly1305_context_t
      pos:
        line_end: 36
        line_start: 27
        source_file: /src/h2o/deps/picotls/lib/chacha20poly1305.h
    typedefs: []
    union: []
- function_names:
  - ptls_bcrypt_init
  - ptlc_bcrypt_dispose
  - ptls_bcrypt_init
  - ptlc_bcrypt_dispose
  - ptls_bcrypt_random_bytes
  - ptls_bcrypt_cipher_init_ctr
  - ptls_bcrypt_cipher_dispose
  - ptls_bcrypt_cipher_transform_ecb
  - ptls_bcrypt_cipher_transform_ctr
  - ptls_bcrypt_cipher_setup_crypto
  - ptls_bcrypt_cipher_setup_crypto_aes_ecb
  - ptls_bcrypt_cipher_setup_crypto_aes_ctr
  - ptls_bcrypt_aead_dispose_crypto
  - ptls_bcrypt_aead_do_encrypt_init
  - ptls_bcrypt_aead_do_encrypt_update
  - ptls_bcrypt_aead_do_encrypt_final
  - ptls_bcrypt_do_encrypt
  - ptls_bcrypt_aead_do_decrypt
  - ptls_bcrypt_aead_get_iv
  - ptls_bcrypt_aead_set_iv
  - ptls_bcrypt_aead_setup_crypto
  - ptls_bcrypt_aead_setup_crypto_aesgcm
  - ptls_bcrypt_hash_update
  - ptls_bcrypt_hash_context_free
  - ptls_bcrypt_hash_final
  - ptls_bcrypt_hash_clone
  - ptls_bcrypt_hash_create
  - ptls_bcrypt_sha256_create
  - ptls_bcrypt_sha384_create
  source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hKey
        type: HANDLE
      - name: dwFlags
        type: DWORD
      - name: cbKeyObject
        type: ULONG
      - name: iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: '*key_object'
        type: uint8_t
      - name: is_enc
        type: int
      item_type: struct
      name: ptls_bcrypt_symmetric_param_t
      pos:
        line_end: 76
        line_start: 69
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: bctx
        type: struct ptls_bcrypt_symmetric_param_t
      item_type: struct
      name: ptls_bcrypt_symmetric_context_t
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - fields:
      - name: hKey
        type: HANDLE
      - name: cbKeyObject
        type: ULONG
      - name: maxTagLength
        type: ULONG
      - name: nbExtraBytes
        type: ULONG
      - name: '*key_object'
        type: uint8_t
      - name: iv_static[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: extraBytes[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: ivbuf[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: tag[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: auth_tag[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: aead_params
        type: BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
      item_type: struct
      name: ptls_bcrypt_aead_param_t
      pos:
        line_end: 301
        line_start: 288
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - fields:
      - name: super
        type: struct st_ptls_aead_context_t
      - name: bctx
        type: struct ptls_bcrypt_aead_param_t
      item_type: struct
      name: ptls_bcrypt_aead_context_t
      pos:
        line_end: 306
        line_start: 303
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - fields:
      - name: '*bcrypt_name'
        type: wchar_t
      - name: hHash
        type: BCRYPT_HASH_HANDLE
      - name: pbHashObject
        type: PUCHAR
      - name: cbHashObject
        type: ULONG
      - name: hash_size
        type: ULONG
      - name: has_error
        type: int
      item_type: struct
      name: st_ptls_bcrypt_hash_param_t
      pos:
        line_end: 590
        line_start: 583
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    - fields:
      - name: super
        type: ptls_hash_context_t
      - name: ctx
        type: struct st_ptls_bcrypt_hash_param_t
      item_type: struct
      name: st_ptls_bcrypt_hash_context_t
      pos:
        line_end: 595
        line_start: 592
        source_file: /src/h2o/deps/picotls/lib/ptlsbcrypt.c
    typedefs: []
    union: []
- function_names:
  - secp256r1_on_exchange
  - secp256r1_create_key_exchange
  - secp256r1_key_exchange
  - secp256r1sha256_sign
  - ptls_minicrypto_init_secp256r1sha256_sign_certificate
  source_file: /src/h2o/deps/picotls/lib/uecc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_UNCOMPRESSED_PUBLIC_KEY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/picotls/lib/uecc.c
      type_or_value: '4'
    structs:
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: priv[SECP256R1_PRIVATE_KEY_SIZE]
        type: uint8_t
      - name: pub[SECP256R1_PUBLIC_KEY_SIZE]
        type: uint8_t
      item_type: struct
      name: st_secp256r1_key_exhchange_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/h2o/deps/picotls/lib/uecc.c
    typedefs: []
    union: []
- function_names:
  - EVP_PKEY_up_ref
  - X509_STORE_up_ref
  - X509_STORE_get0_param
  - HMAC_CTX_new
  - HMAC_CTX_free
  - EVP_CIPHER_CTX_reset
  - ptls_openssl_lookup_signature_schemes
  - ptls_openssl_select_signature_scheme
  - ptls_openssl_random_bytes
  - ecdh_generate_key
  - ecdh_calc_secret
  - x9_62_decode_point
  - x9_62_encode_point
  - x9_62_free_context
  - x9_62_on_exchange
  - x9_62_create_context
  - x9_62_setup_pubkey
  - x9_62_create_key_exchange
  - x9_62_init_key
  - x9_62_key_exchange
  - secp_key_exchange
  - evp_keyex_free
  - evp_keyex_on_exchange
  - evp_keyex_init
  - evp_keyex_create
  - evp_keyex_exchange
  - x25519mlkem768_on_exchange
  - x25519mlkem768_create
  - x25519mlkem768_exchange
  - evp_kem_on_exchange
  - evp_kem_create
  - evp_kem_exchange
  - ptls_openssl_create_key_exchange
  - async_sign_ctx_free
  - async_sign_ctx_get_fd
  - async_sign_ctx_new
  - do_sign_async_job
  - do_sign_async
  - do_sign
  - cipher_dispose
  - cipher_do_init
  - cipher_setup_crypto
  - cipher_encrypt
  - cipher_decrypt
  - aes128ecb_setup_crypto
  - aes256ecb_setup_crypto
  - aes128ctr_setup_crypto
  - aes256ctr_setup_crypto
  - boringssl_chacha20_dispose
  - boringssl_chacha20_init
  - boringssl_chacha20_transform_buffered
  - boringssl_chacha20_transform
  - boringssl_chacha20_setup_crypto
  - chacha20_setup_crypto
  - bfecb_setup_crypto
  - quiclb_dispose
  - quiclb_encrypt
  - quiclb_decrypt
  - quiclb_setup_crypto
  - aead_dispose_crypto
  - aead_get_iv
  - aead_set_iv
  - aead_do_encrypt_init
  - aead_do_encrypt_update
  - aead_do_encrypt_final
  - aead_do_decrypt
  - aead_setup_crypto
  - aead_aes128gcm_setup_crypto
  - aead_aes256gcm_setup_crypto
  - boringssl_poly1305_init
  - boringssl_poly1305_update
  - boringssl_poly1305_finish
  - boringssl_chacha20poly1305_setup_crypto
  - aead_chacha20poly1305_setup_crypto
  - _sha256_final
  - _sha384_final
  - _sha512_final
  - sign_certificate
  - to_x509
  - verify_sign
  - ptls_openssl_init_sign_certificate
  - ptls_openssl_dispose_sign_certificate
  - serialize_cert
  - verify_cert
  - ptls_openssl_init_verify_certificate
  - ptls_openssl_dispose_verify_certificate
  - ptls_openssl_create_default_certificate_store
  - verify_raw_cert
  - ptls_openssl_raw_pubkey_init_verify_certificate
  - ptls_openssl_raw_pubkey_dispose_verify_certificate
  - ptls_openssl_encrypt_ticket
  - ptls_openssl_decrypt_ticket
  - ptls_openssl_encrypt_ticket_evp
  - ptls_openssl_decrypt_ticket_evp
  - DEFINE_MLKEM_KEYEX
  source_file: /src/h2o/deps/picotls/lib/openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: 0x00908000L
    - item_type: preproc_def
      name: OPENSSL_1_1_API
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OPENSSL_1_1_API
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OPENSSL_1_1_API
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: X25519_KEY_SIZE
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: '32'
    - item_type: preproc_def
      name: TICKET_LABEL_SIZE
      pos:
        line_end: 2097
        line_start: 2096
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: '16'
    - item_type: preproc_def
      name: TICKET_IV_SIZE
      pos:
        line_end: 2098
        line_start: 2097
        source_file: /src/h2o/deps/picotls/lib/openssl.c
      type_or_value: EVP_MAX_IV_LENGTH
    structs:
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: '*bn_ctx'
        type: BN_CTX
      - name: '*privkey'
        type: EC_KEY
      item_type: struct
      name: st_x9_62_keyex_context_t
      pos:
        line_end: 281
        line_start: 277
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: '*privkey'
        type: EVP_PKEY
      item_type: struct
      name: st_evp_keyex_context_t
      pos:
        line_end: 499
        line_start: 496
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: pubkey[MLKEM768_PUBLIC_KEY_BYTES + X25519_PUBLIC_VALUE_LEN]
        type: uint8_t
      - name: privkey
        type: "struct {\n        uint8_t x25519[X25519_PRIVATE_KEY_LEN];\n        struct
          MLKEM768_private_key mlkem;\n    }"
      item_type: struct
      name: st_x25519mlkem768_context_t
      pos:
        line_end: 721
        line_start: 714
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: cbs
        type: CBS
      - name: key
        type: struct MLKEM768_public_key
      item_type: struct
      name: mlkem_peer
      pos:
        line_end: 791
        line_start: 788
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_async_job_t
      - name: '*scheme'
        type: ptls_openssl_signature_scheme_t
      - name: '*ctx'
        type: EVP_MD_CTX
      - name: '*waitctx'
        type: ASYNC_WAIT_CTX
      - name: '*job'
        type: ASYNC_JOB
      - name: siglen
        type: size_t
      - name: sig[0]
        type: uint8_t
      item_type: struct
      name: async_sign_ctx
      pos:
        line_end: 1070
        line_start: 1062
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: '*evp'
        type: EVP_CIPHER_CTX
      item_type: struct
      name: cipher_context_t
      pos:
        line_end: 1247
        line_start: 1244
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: key[PTLS_CHACHA20_KEY_SIZE]
        type: uint8_t
      - name: iv[12]
        type: uint8_t
      - name: keystream
        type: "struct {\n        uint32_t ctr;\n        uint8_t bytes[64];\n        size_t
          len;\n    }"
      item_type: struct
      name: boringssl_chacha20_context_t
      pos:
        line_end: 1338
        line_start: 1329
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: '*aesecb'
        type: ptls_cipher_context_t
      item_type: struct
      name: quiclb_context_t
      pos:
        line_end: 1442
        line_start: 1439
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: '*evp_ctx'
        type: EVP_CIPHER_CTX
      - name: static_iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      item_type: struct
      name: aead_crypto_context_t
      pos:
        line_end: 1479
        line_start: 1475
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    - fields:
      - name: super
        type: struct chacha20poly1305_context_t
      - name: poly1305
        type: poly1305_state
      item_type: struct
      name: boringssl_chacha20poly1305_context_t
      pos:
        line_end: 1648
        line_start: 1645
        source_file: /src/h2o/deps/picotls/lib/openssl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/lib/cifra.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - picotls_quiclb_cipher_aes
  - picotls_quiclb_one_round
  - picotls_quiclb_split_input
  - picotls_quiclb_merge_output
  - picotls_quiclb_do_init
  - picotls_quiclb_transform
  - ROUND
  source_file: /src/h2o/deps/picotls/lib/quiclb-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PICOTLS_QUICLB_HAVE_SSE2
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/picotls/lib/quiclb-impl.h
      type_or_value: '1'
    structs:
    - fields:
      - name: l
        type: union picotls_quiclb_block
      item_type: struct
      name: quiclb_mask_t
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/h2o/deps/picotls/lib/quiclb-impl.h
    typedefs: []
    union:
    - fields:
      - name: bytes[PTLS_AES_BLOCK_SIZE]
        type: uint8_t
      - name: u64[PTLS_AES_BLOCK_SIZE / sizeof(uint64_t)]
        type: uint64_t
      item_type: union
      name: picotls_quiclb_block
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/h2o/deps/picotls/lib/quiclb-impl.h
- function_names:
  - ptls_base64_cell
  - ptls_base64_howlong
  - ptls_base64_encode
  - ptls_base64_decode_init
  - ptls_base64_decode
  - ptls_compare_separator_line
  - ptls_get_pem_object
  - ptls_load_pem_objects
  - ptls_load_certificates
  source_file: /src/h2o/deps/picotls/lib/pembase64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_MAX_CERTS_IN_CONTEXT
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/h2o/deps/picotls/lib/pembase64.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PSA_FUNC_FAILED
  - CALL_WITH_CHECK
  - ptls_mbedtls_random_bytes
  - DEFINE_HASH
  - cipher_init
  - cipher_transform
  - cipher_dispose
  - cipher_setup
  - ecb_setup
  - setup_aes128ecb
  - setup_aes256ecb
  - setup_aes128ctr
  - setup_aes256ctr
  - setup_chacha20
  - chacha20_init
  - chacha20_transform
  - chacha20_dispose
  - setup_chacha20
  - aead_dispose_crypto
  - aead_get_iv
  - aead_set_iv
  - aead_encrypt_v
  - aead_decrypt
  - aead_setup
  - aead_setup_aes128gcm
  - aead_setup_aes256gcm
  - aead_setup_chacha20poly1305
  - generate_private_key
  - key_exchange_on_exchange
  - key_exchange_create
  - key_exchange_exchange
  - secp256r1_create
  - secp256r1_exchange
  - x25519_create
  - x25519_exchange
  source_file: /src/h2o/deps/picotls/lib/mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTLS_MBEDTLS_ECDH_PUBKEY_MAX
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
      type_or_value: '129'
    structs:
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: alg
        type: psa_algorithm_t
      - name: is_enc
        type: unsigned
      - name: is_op_in_progress
        type: unsigned
      - name: key
        type: mbedtls_svc_key_id_t
      - name: op
        type: psa_cipher_operation_t
      item_type: struct
      name: st_ptls_mbedtls_cipher_context_t
      pos:
        line_end: 90
        line_start: 83
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: mctx
        type: mbedtls_chacha20_context
      item_type: struct
      name: st_ptls_mbedtls_chacha20_context_t
      pos:
        line_end: 221
        line_start: 218
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    - fields:
      - name: super
        type: struct st_ptls_aead_context_t
      - name: static_iv[PTLS_MAX_IV_SIZE]
        type: uint8_t
      - name: alg
        type: psa_algorithm_t
      - name: key
        type: psa_key_id_t
      item_type: struct
      name: ptls_mbedtls_aead_context_t
      pos:
        line_end: 278
        line_start: 273
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    - fields:
      - name: alg
        type: psa_algorithm_t
      - name: curve
        type: psa_ecc_family_t
      - name: curve_bits
        type: size_t
      - name: secret_size
        type: size_t
      item_type: struct
      name: ptls_mbedtls_key_exchange_params_t
      pos:
        line_end: 471
        line_start: 466
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: '*params'
        type: struct ptls_mbedtls_key_exchange_params_t
      - name: private_key
        type: psa_key_id_t
      - name: pubkeybuf[PTLS_MBEDTLS_ECDH_PUBKEY_MAX]
        type: uint8_t
      item_type: struct
      name: ptls_mbedtls_key_exchange_context_t
      pos:
        line_end: 479
        line_start: 474
        source_file: /src/h2o/deps/picotls/lib/mbedtls.c
    typedefs: []
    union: []
- function_names:
  - read_entropy
  - read_entropy
  - read_entropy
  - ptls_minicrypto_random_bytes
  source_file: /src/h2o/deps/picotls/lib/cifra/random.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/picotls/lib/cifra/random.c
      type_or_value: '700 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - aes256ecb_setup_crypto
  - aes256ctr_setup_crypto
  - aead_aes256gcm_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/cifra/aes256.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - aesecb_dispose
  - aesecb_encrypt
  - aesecb_decrypt
  - aesecb_setup_crypto
  - aesctr_dispose
  - aesctr_init
  - aesctr_transform
  - aesctr_setup_crypto
  - aesgcm_dispose_crypto
  - aesgcm_encrypt_init
  - aesgcm_encrypt_update
  - aesgcm_encrypt_final
  - aesgcm_decrypt
  - aesgcm_get_iv
  - aesgcm_set_iv
  - aead_aesgcm_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: aes
        type: cf_aes_context
      item_type: struct
      name: aesecb_context_t
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: aes
        type: cf_aes_context
      - name: ctr
        type: cf_ctr
      item_type: struct
      name: aesctr_context_t
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    - fields:
      - name: super
        type: ptls_aead_context_t
      - name: aes
        type: cf_aes_context
      - name: gcm
        type: cf_gcm_ctx
      - name: static_iv[PTLS_AESGCM_IV_SIZE]
        type: uint8_t
      item_type: struct
      name: aesgcm_context_t
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/h2o/deps/picotls/lib/cifra/aes-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/picotls/lib/cifra/libaegis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x25519_create_keypair
  - x25519_derive_secret
  - x25519_on_exchange
  - x25519_create_key_exchange
  - x25519_key_exchange
  source_file: /src/h2o/deps/picotls/lib/cifra/x25519.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X25519_KEY_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/deps/picotls/lib/cifra/x25519.c
      type_or_value: '32'
    structs:
    - fields:
      - name: super
        type: ptls_key_exchange_context_t
      - name: priv[X25519_KEY_SIZE]
        type: uint8_t
      - name: pub[X25519_KEY_SIZE]
        type: uint8_t
      item_type: struct
      name: st_x25519_key_exchange_t
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/h2o/deps/picotls/lib/cifra/x25519.c
    typedefs: []
    union: []
- function_names:
  - aes128ecb_setup_crypto
  - aes128ctr_setup_crypto
  - aead_aes128gcm_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/cifra/aes128.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chacha20_dispose
  - chacha20_init
  - chacha20_transform
  - chacha20_setup_crypto
  - cifra_poly1305_init
  - cifra_poly1305_update
  - cifra_poly1305_finish
  - cifra_chacha20poly1305_setup_crypto
  source_file: /src/h2o/deps/picotls/lib/cifra/chacha20.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: ptls_cipher_context_t
      - name: chacha
        type: cf_chacha20_ctx
      - name: key[PTLS_CHACHA20_KEY_SIZE]
        type: uint8_t
      item_type: struct
      name: chacha20_context_t
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    - fields:
      - name: super
        type: struct chacha20poly1305_context_t
      - name: poly
        type: cf_poly1305
      item_type: struct
      name: cifra_chacha20poly1305_context_t
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/h2o/deps/picotls/lib/cifra/chacha20.c
    typedefs: []
    union: []
- function_names:
  - deterministic_random_bytes
  - fake_ticket_cb
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/picotls/fuzz/fuzz-server-hello.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - feeder_init
  - feeder_next_byte
  - count_printf
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: uint8_t
      - name: size
        type: size_t
      item_type: struct
      name: feeder
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/h2o/deps/picotls/fuzz/fuzz-asn1.c
    typedefs: []
    union: []
- function_names:
  - deterministic_random_bytes
  - encrypt_ticket_cb_fake
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/picotls/fuzz/fuzz-client-hello.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unsetenv
  - setenv
  - mrb_env_aget
  - mrb_env_has_key
  - mrb_env_keys
  - mrb_env_values
  - mrb_env_size
  - mrb_env_to_hash
  - mrb_env_to_a
  - mrb_env_inspect
  - mrb_env_to_s
  - mrb_env_aset
  - mrb_mruby_env_gem_init
  - mrb_mruby_env_gem_final
  source_file: /src/h2o/deps/mruby-env/src/env.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: environ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby-env/src/env.c
      type_or_value: _environ
    structs: []
    typedefs: []
    union: []
- function_names:
  - golombset_encode_bit
  - golombset_encode_bits
  - golombset_decode_bit
  - golombset_decode_bits
  - golombset_encode_value
  - golombset_decode_value
  - golombset_encode
  - golombset_decode
  source_file: /src/h2o/deps/golombset/golombset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dst'
        type: unsigned char
      - name: '*dst_max'
        type: unsigned char
      - name: dst_shift
        type: unsigned
      item_type: struct
      name: st_golombset_encode_t
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/h2o/deps/golombset/golombset.h
    - fields:
      - name: '*src'
        type: unsigned char
      - name: '*src_max'
        type: unsigned char
      - name: src_shift
        type: unsigned
      item_type: struct
      name: st_golombset_decode_t
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/h2o/deps/golombset/golombset.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/golombset/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yoml__strdup
  - yoml__scalar_get_line
  - yoml__new_node
  - yoml__parse_sequence
  - yoml__parse_mapping
  - yoml__parse_node
  - yoml__merge
  - yoml__resolve_merge
  - yoml__resolve_alias
  - yoml__resolve_tag
  - yoml_parse_document
  source_file: /src/h2o/deps/yoml/yoml-parser.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*(*mem_set)(void *, int, size_t)'
        type: void
      - name: resolve_tag
        type: "struct {\n        yoml_t *(*cb)(const char *tag, yoml_t *node, void
          *cb_arg);\n        void *cb_arg;\n    }"
      - name: resolve_alias
        type: unsigned
      - name: resolve_merge
        type: unsigned
      item_type: struct
      name: st_yoml_parse_args_t
      pos:
        line_end: 44
        line_start: 35
        source_file: /src/h2o/deps/yoml/yoml-parser.h
    typedefs: []
    union: []
- function_names:
  - parse
  - get_value
  - main
  source_file: /src/h2o/deps/yoml/test-yoml.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yoml_free
  - yoml_find_anchor
  - yoml_get
  source_file: /src/h2o/deps/yoml/yoml.h
  types:
    enum:
    - enumerators:
      - name: YOML_TYPE_SCALAR
      - name: YOML_TYPE_MAPPING
      - name: YOML_TYPE_SEQUENCE
      - name: YOML__TYPE_UNRESOLVED_ALIAS
      item_type: enum
      name: enum_yoml_type_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/deps/yoml/yoml.h
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*elements[]'
        type: yoml_t
      item_type: struct
      name: st_yoml_sequence_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/h2o/deps/yoml/yoml.h
    - fields:
      - name: '*key'
        type: yoml_t
      - name: '*value'
        type: yoml_t
      item_type: struct
      name: st_yoml_mapping_element_t
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/h2o/deps/yoml/yoml.h
    - fields:
      - name: size
        type: size_t
      - name: elements[]
        type: yoml_mapping_element_t
      item_type: struct
      name: st_yoml_mapping_t
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/h2o/deps/yoml/yoml.h
    - fields:
      - name: type
        type: yoml_type_t
      - name: '*filename'
        type: char
      - name: line
        type: size_t
      - name: column
        type: size_t
      - name: '*anchor'
        type: char
      - name: '*tag'
        type: char
      - name: _refcnt
        type: size_t
      - name: _merged
        type: unsigned
      - name: data
        type: "union {\n        char *scalar;\n        yoml_sequence_t sequence;\n
          \       yoml_mapping_t mapping;\n        char *alias;\n    }"
      item_type: struct
      name: st_yoml_t
      pos:
        line_end: 66
        line_start: 51
        source_file: /src/h2o/deps/yoml/yoml.h
    typedefs:
    - item_type: typedef
      name: yoml_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/deps/yoml/yoml.h
      type: st_yoml_t
    union: []
- function_names:
  - _wsaErrorToErrno
  - _updateErrno
  - _initWinsock
  - win32_getaddrinfo
  - win32_gai_strerror
  - win32_freeaddrinfo
  - win32_socket
  - win32_ioctl
  - win32_bind
  - win32_connect
  - win32_getsockopt
  - win32_setsockopt
  - win32_close
  - win32_recv
  - win32_send
  - win32_poll
  - win32_redisKeepAlive
  source_file: /src/h2o/deps/hiredis/sockcompat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DICT_NOTUSED
  - dictFreeEntryVal
  - dictSetHashVal
  - dictFreeEntryKey
  - dictSetHashKey
  - dictCompareHashKeys
  - dictHashKey
  - dictGetEntryKey
  - dictGetEntryVal
  - dictSlots
  - dictSize
  source_file: /src/h2o/deps/hiredis/dict.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DICT_OK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/hiredis/dict.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DICT_ERR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/hiredis/dict.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DICT_HT_INITIAL_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/h2o/deps/hiredis/dict.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*key'
        type: void
      - name: '*val'
        type: void
      - name: '*next'
        type: struct dictEntry
      item_type: struct
      name: dictEntry
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/h2o/deps/hiredis/dict.h
    - fields:
      - name: (*hashFunction)(const void *key)
        type: unsigned int
      - name: '*(*keyDup)(void *privdata, const void *key)'
        type: void
      - name: '*(*valDup)(void *privdata, const void *obj)'
        type: void
      - name: (*keyCompare)(void *privdata, const void *key1, const void *key2)
        type: int
      - name: (*keyDestructor)(void *privdata, void *key)
        type: void
      - name: (*valDestructor)(void *privdata, void *obj)
        type: void
      item_type: struct
      name: dictType
      pos:
        line_end: 57
        line_start: 50
        source_file: /src/h2o/deps/hiredis/dict.h
    - fields:
      - name: '**table'
        type: dictEntry
      - name: '*type'
        type: dictType
      - name: size
        type: unsigned long
      - name: sizemask
        type: unsigned long
      - name: used
        type: unsigned long
      - name: '*privdata'
        type: void
      item_type: struct
      name: dict
      pos:
        line_end: 66
        line_start: 59
        source_file: /src/h2o/deps/hiredis/dict.h
    - fields:
      - name: '*ht'
        type: dict
      - name: index
        type: int
      - name: '*entry'
        type: dictEntry
      item_type: struct
      name: dictIterator
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/h2o/deps/hiredis/dict.h
    typedefs: []
    union: []
- function_names:
  - test
  - test_cond
  - test_skipped
  - millisleep
  - usec
  - assert
  - get_redis_version
  - select_database
  - send_hello
  - send_client_tracking
  - disconnect
  - do_ssl_handshake
  - do_connect
  - do_reconnect
  - test_format_commands
  - INTEGER_WIDTH_TEST
  - FLOAT_WIDTH_TEST
  - test_append_formatted_commands
  - test_tcp_options
  - test_reply_reader
  - test_free_null
  - hi_malloc_fail
  - hi_calloc_fail
  - hi_calloc_insecure
  - hi_realloc_fail
  - test_allocator_injection
  - test_blocking_connection_errors
  - push_handler
  - push_handler_async
  - test_resp3_push_handler
  - get_redis_tcp_options
  - test_resp3_push_options
  - free_privdata
  - test_privdata_hooks
  - test_blocking_connection
  - detect_debug_sleep
  - test_blocking_connection_timeouts
  - test_blocking_io_errors
  - test_invalid_timeout_errors
  - hi_malloc_safe
  - test_throughput
  - async_disconnect
  - timeout_cb
  - unexpected_cb
  - publish_msg
  - integer_cb
  - subscribe_cb
  - array_cb
  - null_cb
  - test_pubsub_handling
  - unexpected_push_cb
  - test_pubsub_handling_resp3
  - subscribe_with_timeout_cb
  - test_command_timeout_during_pubsub
  - subscribe_channel_a_cb
  - subscribe_channel_b_cb
  - test_pubsub_multiple_channels
  - monitor_cb
  - test_monitor
  - asCleanup
  - connectCallback
  - disconnectCallback
  - commandCallback
  - do_aconnect
  - as_printerr
  - ASASSERT
  - test_async_polling
  - main
  source_file: /src/h2o/deps/hiredis/test.c
  types:
    enum:
    - enumerators:
      - name: CONN_TCP
      - name: CONN_UNIX
      - name: CONN_FD
      - name: CONN_SSL
      item_type: enum
      name: connection_type
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/h2o/deps/hiredis/test.c
    - enumerators:
      - name: ASTEST_CONNECT
        value: '0'
      - name: ASTEST_ISSUE_931
      - name: ASTEST_PINGPONG_TIMEOUT
      - name: ASTEST_PINGPONG
      - name: ASTEST_CONN_TIMEOUT
      - name: ASTEST_ISSUE_931_PING
      item_type: enum
      name: astest_no
      pos:
        line_end: 2032
        line_start: 2024
        source_file: /src/h2o/deps/hiredis/test.c
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_VERSION_FIELD
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/h2o/deps/hiredis/test.c
      type_or_value: '"redis_version:"'
    - item_type: preproc_def
      name: HIREDIS_BAD_DOMAIN
      pos:
        line_end: 891
        line_start: 890
        source_file: /src/h2o/deps/hiredis/test.c
      type_or_value: '"idontexist-noreally.com"'
    structs:
    - fields:
      - name: type
        type: enum connection_type
      - name: connect_timeout
        type: struct timeval
      - name: tcp
        type: "struct {\n        const char *host;\n        int port;\n    }"
      - name: unix_sock
        type: "struct {\n        const char *path;\n    }"
      - name: ssl
        type: "struct {\n        const char *host;\n        int port;\n        const
          char *ca_cert;\n        const char *cert;\n        const char *key;\n    }"
      item_type: struct
      name: config
      pos:
        line_end: 55
        line_start: 35
        source_file: /src/h2o/deps/hiredis/test.c
    - fields:
      - name: dtor_counter
        type: int
      item_type: struct
      name: privdata
      pos:
        line_end: 59
        line_start: 57
        source_file: /src/h2o/deps/hiredis/test.c
    - fields:
      - name: nil
        type: int
      - name: str
        type: int
      item_type: struct
      name: pushCounters
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/h2o/deps/hiredis/test.c
    - fields:
      - name: '*options'
        type: redisOptions
      - name: checkpoint
        type: int
      - name: resp3
        type: int
      - name: disconnect
        type: int
      item_type: struct
      name: TestState
      pos:
        line_end: 1588
        line_start: 1583
        source_file: /src/h2o/deps/hiredis/test.c
    - fields:
      - name: '*ac'
        type: redisAsyncContext
      - name: testno
        type: astest_no
      - name: counter
        type: int
      - name: connects
        type: int
      - name: connect_status
        type: int
      - name: disconnects
        type: int
      - name: pongs
        type: int
      - name: disconnect_status
        type: int
      - name: connected
        type: int
      - name: err
        type: int
      - name: errstr[256]
        type: char
      item_type: struct
      name: _astest
      pos:
        line_end: 2047
        line_start: 2035
        source_file: /src/h2o/deps/hiredis/test.c
    typedefs: []
    union: []
- function_names:
  - hi_malloc
  - hi_calloc
  - hi_realloc
  - hi_strdup
  - hi_free
  source_file: /src/h2o/deps/hiredis/alloc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*(*mallocFn)(size_t)'
        type: void
      - name: '*(*callocFn)(size_t,size_t)'
        type: void
      - name: '*(*reallocFn)(void*,size_t)'
        type: void
      - name: '*(*strdupFn)(const char*)'
        type: char
      - name: (*freeFn)(void*)
        type: void
      item_type: struct
      name: hiredisAllocFuncs
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/h2o/deps/hiredis/alloc.h
    typedefs: []
    union: []
- function_names:
  - redisReaderSetPrivdata
  - redisReaderGetObject
  - redisReaderGetError
  source_file: /src/h2o/deps/hiredis/read.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_ERR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: REDIS_OK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REDIS_ERR_IO
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: REDIS_ERR_EOF
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: REDIS_ERR_PROTOCOL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: REDIS_ERR_OOM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: REDIS_ERR_TIMEOUT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: REDIS_ERR_OTHER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: REDIS_REPLY_STRING
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDIS_REPLY_ARRAY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REDIS_REPLY_INTEGER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '3'
    - item_type: preproc_def
      name: REDIS_REPLY_NIL
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '4'
    - item_type: preproc_def
      name: REDIS_REPLY_STATUS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '5'
    - item_type: preproc_def
      name: REDIS_REPLY_ERROR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '6'
    - item_type: preproc_def
      name: REDIS_REPLY_DOUBLE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '7'
    - item_type: preproc_def
      name: REDIS_REPLY_BOOL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '8'
    - item_type: preproc_def
      name: REDIS_REPLY_MAP
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '9'
    - item_type: preproc_def
      name: REDIS_REPLY_SET
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '10'
    - item_type: preproc_def
      name: REDIS_REPLY_ATTR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '11'
    - item_type: preproc_def
      name: REDIS_REPLY_PUSH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '12'
    - item_type: preproc_def
      name: REDIS_REPLY_BIGNUM
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '13'
    - item_type: preproc_def
      name: REDIS_REPLY_VERB
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: '14'
    - item_type: preproc_def
      name: REDIS_READER_MAX_BUF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: (1024*16)
    - item_type: preproc_def
      name: REDIS_READER_MAX_ARRAY_ELEMENTS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/hiredis/read.h
      type_or_value: ((1LL<<32) - 1)
    structs:
    - fields:
      - name: type
        type: int
      - name: elements
        type: long long
      - name: idx
        type: int
      - name: '*obj'
        type: void
      - name: '*parent'
        type: struct redisReadTask
      - name: '*privdata'
        type: void
      item_type: struct
      name: redisReadTask
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/h2o/deps/hiredis/read.h
    - fields:
      - name: '*(*createString)(const redisReadTask*, char*, size_t)'
        type: void
      - name: '*(*createArray)(const redisReadTask*, size_t)'
        type: void
      - name: '*(*createInteger)(const redisReadTask*, long long)'
        type: void
      - name: '*(*createDouble)(const redisReadTask*, double, char*, size_t)'
        type: void
      - name: '*(*createNil)(const redisReadTask*)'
        type: void
      - name: '*(*createBool)(const redisReadTask*, int)'
        type: void
      - name: (*freeObject)(void*)
        type: void
      item_type: struct
      name: redisReplyObjectFunctions
      pos:
        line_end: 92
        line_start: 84
        source_file: /src/h2o/deps/hiredis/read.h
    - fields:
      - name: err
        type: int
      - name: errstr[128]
        type: char
      - name: '*buf'
        type: char
      - name: pos
        type: size_t
      - name: len
        type: size_t
      - name: maxbuf
        type: size_t
      - name: maxelements
        type: long long
      - name: '**task'
        type: redisReadTask
      - name: tasks
        type: int
      - name: ridx
        type: int
      - name: '*reply'
        type: void
      - name: '*fn'
        type: redisReplyObjectFunctions
      - name: '*privdata'
        type: void
      item_type: struct
      name: redisReader
      pos:
        line_end: 112
        line_start: 94
        source_file: /src/h2o/deps/hiredis/read.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/hiredis/async.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct redisCallback
      - name: '*fn'
        type: redisCallbackFn
      - name: pending_subs
        type: int
      - name: unsubscribe_sent
        type: int
      - name: '*privdata'
        type: void
      item_type: struct
      name: redisCallback
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/h2o/deps/hiredis/async.h
    - fields:
      - name: '*head'
        type: redisCallback
      item_type: struct
      name: redisCallbackList
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/h2o/deps/hiredis/async.h
    - fields:
      - name: c
        type: redisContext
      - name: err
        type: int
      - name: '*errstr'
        type: char
      - name: '*data'
        type: void
      - name: (*dataCleanup)(void *privdata)
        type: void
      - name: ev
        type: "struct {\n        void *data;\n\n        /* Hooks that are called when
          the library expects to start\n         * reading/writing. These functions
          should be idempotent. */\n        void (*addRead)(void *privdata);\n        void
          (*delRead)(void *privdata);\n        void (*addWrite)(void *privdata);\n
          \       void (*delWrite)(void *privdata);\n        void (*cleanup)(void
          *privdata);\n        void (*scheduleTimer)(void *privdata, struct timeval
          tv);\n    }"
      - name: '*onDisconnect'
        type: redisDisconnectCallback
      - name: '*onConnect'
        type: redisConnectCallback
      - name: '*onConnectNC'
        type: redisConnectCallbackNC
      - name: replies
        type: redisCallbackList
      - name: '*saddr'
        type: struct sockaddr
      - name: addrlen
        type: size_t
      - name: sub
        type: "struct {\n        redisCallbackList replies;\n        struct dict *channels;\n
          \       struct dict *patterns;\n        int pending_unsubs;\n    }"
      - name: '*push_cb'
        type: redisAsyncPushFn
      item_type: struct
      name: redisAsyncContext
      pos:
        line_end: 115
        line_start: 64
        source_file: /src/h2o/deps/hiredis/async.h
    typedefs:
    - item_type: typedef
      name: (redisCallbackFn)(struct redisAsyncContext*, void*, void*)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/h2o/deps/hiredis/async.h
      type: void
    - item_type: typedef
      name: (redisDisconnectCallback)(const struct redisAsyncContext*, int status)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/h2o/deps/hiredis/async.h
      type: void
    - item_type: typedef
      name: (redisConnectCallback)(const struct redisAsyncContext*, int status)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/deps/hiredis/async.h
      type: void
    - item_type: typedef
      name: (redisConnectCallbackNC)(struct redisAsyncContext *, int status)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/h2o/deps/hiredis/async.h
      type: void
    - item_type: typedef
      name: (redisTimerCallback)(void *timer, void *privdata)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/h2o/deps/hiredis/async.h
      type: void
    union: []
- function_names:
  - sdsHdrSize
  - sdsReqType
  - sdsnewlen
  - sdsempty
  - sdsnew
  - sdsdup
  - sdsfree
  - sdsupdatelen
  - sdsclear
  - sdsMakeRoomFor
  - sdsRemoveFreeSpace
  - sdsAllocSize
  - sdsAllocPtr
  - sdsIncrLen
  - sdsgrowzero
  - sdscatlen
  - sdscat
  - sdscatsds
  - sdscpylen
  - sdscpy
  - sdsll2str
  - sdsull2str
  - sdsfromlonglong
  - sdscatvprintf
  - sdscatprintf
  - sdscatfmt
  - sdstrim
  - sdsrange
  - sdstolower
  - sdstoupper
  - sdscmp
  - sdssplitlen
  - sdsfreesplitres
  - sdscatrepr
  - hex_digit_to_int
  - sdssplitargs
  - sdsmapchars
  - sdsjoin
  - sdsjoinsds
  - sds_malloc
  - sds_realloc
  - sds_free
  - UNUSED
  - sdsTest
  - main
  source_file: /src/h2o/deps/hiredis/sds.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SDS_LLSTR_SIZE
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/h2o/deps/hiredis/sds.c
      type_or_value: '21'
    structs: []
    typedefs: []
    union: []
- function_names:
  - redisIsPushReply
  - REDIS_OPTIONS_SET_TCP
  - REDIS_OPTIONS_SET_UNIX
  - REDIS_OPTIONS_SET_PRIVDATA
  source_file: /src/h2o/deps/hiredis/hiredis.h
  types:
    enum:
    - enumerators:
      - name: REDIS_CONN_TCP
      - name: REDIS_CONN_UNIX
      - name: REDIS_CONN_USERFD
      item_type: enum
      name: redisConnectionType
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/h2o/deps/hiredis/hiredis.h
    preproc_defs:
    - item_type: preproc_def
      name: HIREDIS_MAJOR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HIREDIS_MINOR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HIREDIS_PATCH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HIREDIS_SONAME
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: 1.1.0
    - item_type: preproc_def
      name: REDIS_BLOCK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: REDIS_CONNECTED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: REDIS_DISCONNECTING
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: REDIS_FREEING
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: REDIS_IN_CALLBACK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: REDIS_SUBSCRIBED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: REDIS_MONITORING
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: REDIS_REUSEADDR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: REDIS_SUPPORTS_PUSH
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: REDIS_NO_AUTO_FREE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: REDIS_NO_AUTO_FREE_REPLIES
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: REDIS_PREFER_IPV4
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: REDIS_PREFER_IPV6
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: REDIS_KEEPALIVE_INTERVAL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '15 '
    - item_type: preproc_def
      name: REDIS_CONNECT_RETRIES
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '10'
    - item_type: preproc_def
      name: REDIS_OPT_NONBLOCK
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REDIS_OPT_REUSEADDR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REDIS_OPT_NOAUTOFREE
      pos:
        line_end: 161
        line_start: 156
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x04        '
    - item_type: preproc_def
      name: REDIS_OPT_NO_PUSH_AUTOFREE
      pos:
        line_end: 163
        line_start: 161
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: REDIS_OPT_NOAUTOFREEREPLIES
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: REDIS_OPT_PREFER_IPV4
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x20       '
    - item_type: preproc_def
      name: REDIS_OPT_PREFER_IPV6
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '0x40       '
    - item_type: preproc_def
      name: REDIS_OPT_PREFER_IP_UNSPEC
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: (REDIS_OPT_PREFER_IPV4 | REDIS_OPT_PREFER_IPV6)
    - item_type: preproc_def
      name: REDIS_INVALID_FD
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: REDIS_INVALID_FD
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type_or_value: '((redisFD)(~0)) '
    structs:
    - fields:
      - name: type
        type: int
      - name: integer
        type: long long
      - name: dval
        type: double
      - name: len
        type: size_t
      - name: '*str'
        type: char
      - name: vtype[4]
        type: char
      - name: elements
        type: size_t
      - name: '**element'
        type: struct redisReply
      item_type: struct
      name: redisReply
      pos:
        line_end: 131
        line_start: 119
        source_file: /src/h2o/deps/hiredis/hiredis.h
    - fields:
      - name: type
        type: int
      - name: options
        type: int
      - name: '*connect_timeout'
        type: struct timeval
      - name: '*command_timeout'
        type: struct timeval
      - name: endpoint
        type: "union {\n        /** use this field for tcp/ip connections */\n        struct
          {\n            const char *source_addr;\n            const char *ip;\n            int
          port;\n        } tcp;\n        /** use this field for unix domain sockets
          */\n        const char *unix_socket;\n        /**\n         * use this field
          to have hiredis operate an already-open\n         * file descriptor */\n
          \       redisFD fd;\n    }"
      - name: '*privdata'
        type: void
      - name: (*free_privdata)(void *)
        type: void
      - name: '*push_cb'
        type: redisPushFn
      - name: '*async_push_cb'
        type: redisAsyncPushFn
      item_type: struct
      name: redisOptions
      pos:
        line_end: 219
        line_start: 184
        source_file: /src/h2o/deps/hiredis/hiredis.h
    - fields:
      - name: (*close)(struct redisContext *)
        type: void
      - name: (*free_privctx)(void *)
        type: void
      - name: (*async_read)(struct redisAsyncContext *)
        type: void
      - name: (*async_write)(struct redisAsyncContext *)
        type: void
      - name: (*read)(struct redisContext *, char *, size_t)
        type: ssize_t
      - name: (*write)(struct redisContext *)
        type: ssize_t
      item_type: struct
      name: redisContextFuncs
      pos:
        line_end: 252
        line_start: 240
        source_file: /src/h2o/deps/hiredis/hiredis.h
    - fields:
      - name: '*funcs'
        type: redisContextFuncs
      - name: err
        type: int
      - name: errstr[128]
        type: char
      - name: fd
        type: redisFD
      - name: flags
        type: int
      - name: '*obuf'
        type: char
      - name: '*reader'
        type: redisReader
      - name: connection_type
        type: enum redisConnectionType
      - name: '*connect_timeout'
        type: struct timeval
      - name: '*command_timeout'
        type: struct timeval
      - name: tcp
        type: "struct {\n        char *host;\n        char *source_addr;\n        int
          port;\n    }"
      - name: unix_sock
        type: "struct {\n        char *path;\n    }"
      - name: '*saddr'
        type: struct sockaddr
      - name: addrlen
        type: size_t
      - name: '*privdata'
        type: void
      - name: (*free_privdata)(void *)
        type: void
      - name: '*privctx'
        type: void
      - name: '*push_cb'
        type: redisPushFn
      item_type: struct
      name: redisContext
      pos:
        line_end: 295
        line_start: 256
        source_file: /src/h2o/deps/hiredis/hiredis.h
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: long long
    - item_type: typedef
      name: (redisPushFn)(void *, void *)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: void
    - item_type: typedef
      name: (redisAsyncPushFn)(struct redisAsyncContext *, void *)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: void
    - item_type: typedef
      name: redisFD
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: int
    - item_type: typedef
      name: redisFD
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: unsigned long long
    - item_type: typedef
      name: redisFD
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/h2o/deps/hiredis/hiredis.h
      type: unsigned long
    union: []
- function_names:
  - assert
  - callbackHash
  - callbackValDup
  - callbackKeyCompare
  - callbackKeyDestructor
  - callbackValDestructor
  - redisAsyncInitialize
  - __redisAsyncCopyError
  - redisAsyncConnectWithOptions
  - redisAsyncConnect
  - redisAsyncConnectBind
  - redisAsyncConnectBindWithReuse
  - redisAsyncConnectUnix
  - redisAsyncSetConnectCallbackImpl
  - redisAsyncSetConnectCallback
  - redisAsyncSetConnectCallbackNC
  - redisAsyncSetDisconnectCallback
  - __redisPushCallback
  - __redisShiftCallback
  - __redisRunCallback
  - __redisRunPushCallback
  - __redisRunConnectCallback
  - __redisRunDisconnectCallback
  - __redisAsyncFree
  - redisAsyncFree
  - __redisAsyncDisconnect
  - redisAsyncDisconnect
  - __redisGetSubscribeCallback
  - redisIsSpontaneousPushReply
  - redisIsSubscribeReply
  - redisProcessCallbacks
  - __redisAsyncHandleConnectFailure
  - __redisAsyncHandleConnect
  - redisAsyncRead
  - redisAsyncHandleRead
  - redisAsyncWrite
  - redisAsyncHandleWrite
  - redisAsyncHandleTimeout
  - nextArgument
  - __redisAsyncCommand
  - redisvAsyncCommand
  - redisAsyncCommand
  - redisAsyncCommandArgv
  - redisAsyncFormattedCommand
  - redisAsyncSetPushCallback
  - redisAsyncSetTimeout
  source_file: /src/h2o/deps/hiredis/async.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/hiredis/sdsalloc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: s_malloc
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/hiredis/sdsalloc.h
      type_or_value: hi_malloc
    - item_type: preproc_def
      name: s_realloc
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/hiredis/sdsalloc.h
      type_or_value: hi_realloc
    - item_type: preproc_def
      name: s_free
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/hiredis/sdsalloc.h
      type_or_value: hi_free
    structs: []
    typedefs: []
    union: []
- function_names:
  - SDS_HDR_VAR
  - SDS_HDR
  - SDS_TYPE_5_LEN
  - sdslen
  - sdsavail
  - sdssetlen
  - sdsinclen
  - sdsalloc
  - sdssetalloc
  source_file: /src/h2o/deps/hiredis/sds.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SDS_MAX_PREALLOC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: (1024*1024)
    - item_type: preproc_def
      name: SSIZE_MAX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: (LLONG_MAX >> 1)
    - item_type: preproc_def
      name: SDS_TYPE_5
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SDS_TYPE_8
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SDS_TYPE_16
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SDS_TYPE_32
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SDS_TYPE_64
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SDS_TYPE_MASK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SDS_TYPE_BITS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/h2o/deps/hiredis/sds.h
      type_or_value: '3'
    structs:
    - fields:
      - name: flags
        type: unsigned char
      - name: buf[]
        type: char
      item_type: struct
      name: sdshdr5
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/h2o/deps/hiredis/sds.h
    - fields:
      - name: len
        type: uint8_t
      - name: alloc
        type: uint8_t
      - name: flags
        type: unsigned char
      - name: buf[]
        type: char
      item_type: struct
      name: sdshdr8
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/h2o/deps/hiredis/sds.h
    - fields:
      - name: len
        type: uint16_t
      - name: alloc
        type: uint16_t
      - name: flags
        type: unsigned char
      - name: buf[]
        type: char
      item_type: struct
      name: sdshdr16
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/h2o/deps/hiredis/sds.h
    - fields:
      - name: len
        type: uint32_t
      - name: alloc
        type: uint32_t
      - name: flags
        type: unsigned char
      - name: buf[]
        type: char
      item_type: struct
      name: sdshdr32
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/h2o/deps/hiredis/sds.h
    - fields:
      - name: len
        type: uint64_t
      - name: alloc
        type: uint64_t
      - name: flags
        type: unsigned char
      - name: buf[]
        type: char
      item_type: struct
      name: sdshdr64
      pos:
        line_end: 79
        line_start: 74
        source_file: /src/h2o/deps/hiredis/sds.h
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/hiredis/sds.h
      type: long long
    - item_type: typedef
      name: '*sds'
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/h2o/deps/hiredis/sds.h
      type: char
    union: []
- function_names:
  - __redisReaderSetError
  - chrtos
  - __redisReaderSetErrorProtocolByte
  - __redisReaderSetErrorOOM
  - readBytes
  - seekNewline
  - string2ll
  - readLine
  - moveToNextTask
  - processLineItem
  - processBulkItem
  - redisReaderGrow
  - processAggregateItem
  - processItem
  - redisReaderCreateWithFunctions
  - redisReaderFree
  - redisReaderFeed
  - redisReaderGetReply
  source_file: /src/h2o/deps/hiredis/read.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_READER_STACK_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/hiredis/read.c
      type_or_value: '9'
    structs: []
    typedefs: []
    union: []
- function_names:
  - dictGenHashFunction
  - _dictReset
  - dictCreate
  - _dictInit
  - dictExpand
  - dictAdd
  - dictReplace
  - dictDelete
  - _dictClear
  - dictRelease
  - dictFind
  - dictInitIterator
  - dictNext
  - _dictExpandIfNeeded
  - _dictNextPower
  - _dictKeyIndex
  source_file: /src/h2o/deps/hiredis/dict.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_SSL_VERIFY_NONE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: REDIS_SSL_VERIFY_PEER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REDIS_SSL_VERIFY_FAIL_IF_NO_PEER_CERT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REDIS_SSL_VERIFY_CLIENT_ONCE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: REDIS_SSL_VERIFY_POST_HANDSHAKE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type_or_value: '0x08'
    structs:
    - fields:
      - name: '*cacert_filename'
        type: char
      - name: '*capath'
        type: char
      - name: '*cert_filename'
        type: char
      - name: '*private_key_filename'
        type: char
      - name: '*server_name'
        type: char
      - name: verify_mode
        type: int
      item_type: struct
      name: redisSSLOptions
      pos:
        line_end: 83
        line_start: 76
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
    typedefs:
    - item_type: typedef
      name: redisSSLContext
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/h2o/deps/hiredis/hiredis_ssl.h
      type: redisSSLContext
    union: []
- function_names:
  - _EL_ADD_READ
  - _EL_DEL_READ
  - _EL_ADD_WRITE
  - _EL_DEL_WRITE
  - _EL_CLEANUP
  - refreshTimeout
  - REDIS_TIMER_ISSET
  - REDIS_EL_TIMER
  source_file: /src/h2o/deps/hiredis/async_private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/hiredis/fmacros.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/h2o/deps/hiredis/fmacros.h
      type_or_value: '600'
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/hiredis/fmacros.h
      type_or_value: 200112L
    structs: []
    typedefs: []
    union: []
- function_names:
  - getaddrinfo
  - gai_strerror
  - freeaddrinfo
  - socket
  - ioctl
  - bind
  - connect
  - getsockopt
  - setsockopt
  - close
  - recv
  - send
  - poll
  source_file: /src/h2o/deps/hiredis/sockcompat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/hiredis/sockcompat.h
      type_or_value: '0x0600 '
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/h2o/deps/hiredis/sockcompat.h
      type: long long
    - item_type: typedef
      name: nfds_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/h2o/deps/hiredis/sockcompat.h
      type: ULONG
    union: []
- function_names: []
  source_file: /src/h2o/deps/hiredis/net.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - va_copy
  - c99_vsnprintf
  - c99_snprintf
  - strerror_r
  source_file: /src/h2o/deps/hiredis/win32.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/hiredis/win32.h
      type_or_value: __inline
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/hiredis/win32.h
      type_or_value: stricmp
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/hiredis/win32.h
      type_or_value: strnicmp
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/hiredis/win32.h
      type_or_value: c99_snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - sslLockInit
  - sslLockAcquire
  - sslLockRelease
  - sslLockInit
  - sslLockAcquire
  - sslLockRelease
  - opensslDoLock
  - initOpensslLocks
  - redisInitOpenSSL
  - redisSSLContextGetError
  - redisFreeSSLContext
  - redisCreateSSLContext
  - redisCreateSSLContextWithOptions
  - redisSSLConnect
  - redisInitiateSSL
  - redisInitiateSSLWithContext
  - maybeCheckWant
  - redisSSLFree
  - redisSSLRead
  - redisSSLWrite
  - redisSSLAsyncRead
  - redisSSLAsyncWrite
  source_file: /src/h2o/deps/hiredis/ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_1_1_0
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/h2o/deps/hiredis/ssl.c
      type_or_value: 0x10100000L
    structs:
    - fields:
      - name: '*ssl_ctx'
        type: SSL_CTX
      - name: '*server_name'
        type: char
      item_type: struct
      name: redisSSLContext
      pos:
        line_end: 71
        line_start: 65
        source_file: /src/h2o/deps/hiredis/ssl.c
    - fields:
      - name: '*ssl'
        type: SSL
      - name: lastLen
        type: size_t
      - name: wantRead
        type: int
      - name: pendingWrite
        type: int
      item_type: struct
      name: redisSSL
      pos:
        line_end: 94
        line_start: 74
        source_file: /src/h2o/deps/hiredis/ssl.c
    typedefs:
    - item_type: typedef
      name: sslLockType
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/h2o/deps/hiredis/ssl.c
      type: CRITICAL_SECTION
    - item_type: typedef
      name: sslLockType
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/h2o/deps/hiredis/ssl.c
      type: pthread_mutex_t
    union: []
- function_names:
  - redisNetClose
  - redisNetRead
  - redisNetWrite
  - __redisSetErrorFromErrno
  - redisSetReuseAddr
  - redisCreateSocket
  - redisSetBlocking
  - redisKeepAlive
  - redisSetTcpNoDelay
  - redisContextSetTcpUserTimeout
  - redisContextTimeoutMsec
  - redisContextWaitReady
  - redisCheckConnectDone
  - redisCheckSocketError
  - redisContextSetTimeout
  - redisContextUpdateConnectTimeout
  - redisContextUpdateCommandTimeout
  - _redisContextConnectTcp
  - redisContextConnectTcp
  - redisContextConnectBindTcp
  - redisContextConnectUnix
  source_file: /src/h2o/deps/hiredis/net.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __MAX_MSEC
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/h2o/deps/hiredis/net.c
      type_or_value: (((LONG_MAX) - 999) / 1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - hiredisSetAllocators
  - hiredisResetAllocators
  - hi_malloc
  - hi_calloc
  - hi_realloc
  - hi_strdup
  - hi_free
  source_file: /src/h2o/deps/hiredis/alloc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - createReplyObject
  - freeReplyObject
  - createStringObject
  - createArrayObject
  - createIntegerObject
  - createDoubleObject
  - createNilObject
  - createBoolObject
  - countDigits
  - bulklen
  - redisvFormatCommand
  - redisFormatCommand
  - redisFormatSdsCommandArgv
  - redisFreeSdsCommand
  - redisFormatCommandArgv
  - redisFreeCommand
  - __redisSetError
  - redisReaderCreate
  - redisPushAutoFree
  - redisContextInit
  - redisFree
  - redisFreeKeepFd
  - redisReconnect
  - redisConnectWithOptions
  - redisConnect
  - redisConnectWithTimeout
  - redisConnectNonBlock
  - redisConnectBindNonBlock
  - redisConnectBindNonBlockWithReuse
  - redisConnectUnix
  - redisConnectUnixWithTimeout
  - redisConnectUnixNonBlock
  - redisConnectFd
  - redisSetTimeout
  - redisEnableKeepAliveWithInterval
  - redisEnableKeepAlive
  - redisSetTcpUserTimeout
  - redisSetPushCallback
  - redisBufferRead
  - redisBufferWrite
  - redisHandledPushReply
  - redisGetReplyFromReader
  - redisNextInBandReplyFromReader
  - redisGetReply
  - __redisAppendCommand
  - redisAppendFormattedCommand
  - redisvAppendCommand
  - redisAppendCommand
  - redisAppendCommandArgv
  - __redisBlockForReply
  - redisvCommand
  - redisCommand
  - redisCommandArgv
  source_file: /src/h2o/deps/hiredis/hiredis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - freeRedisRunLoop
  - redisMacOSAddRead
  - redisMacOSDelRead
  - redisMacOSAddWrite
  - redisMacOSDelWrite
  - redisMacOSCleanup
  - redisMacOSAsyncCallback
  - redisMacOSAttach
  source_file: /src/h2o/deps/hiredis/adapters/macosx.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: socketRef
        type: CFSocketRef
      - name: sourceRef
        type: CFRunLoopSourceRef
      item_type: struct
      name: RedisRunLoop
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/h2o/deps/hiredis/adapters/macosx.h
    typedefs: []
    union: []
- function_names:
  - redis_source_add_read
  - redis_source_del_read
  - redis_source_add_write
  - redis_source_del_write
  - redis_source_cleanup
  - redis_source_prepare
  - redis_source_check
  - redis_source_dispatch
  - redis_source_finalize
  - redis_source_new
  source_file: /src/h2o/deps/hiredis/adapters/glib.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: source
        type: GSource
      - name: '*ac'
        type: redisAsyncContext
      - name: poll_fd
        type: GPollFD
      item_type: struct
      name: RedisSource
      pos:
        line_end: 13
        line_start: 8
        source_file: /src/h2o/deps/hiredis/adapters/glib.h
    typedefs: []
    union: []
- function_names:
  - redisModuleReadEvent
  - redisModuleWriteEvent
  - redisModuleAddRead
  - redisModuleDelRead
  - redisModuleAddWrite
  - redisModuleDelWrite
  - redisModuleStopTimer
  - redisModuleCleanup
  - redisModuleTimeout
  - redisModuleSetTimeout
  - redisModuleCompatibilityCheck
  - redisModuleAttach
  source_file: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*module_ctx'
        type: RedisModuleCtx
      - name: fd
        type: int
      - name: reading
        type: int
      - name: timer_active
        type: int
      - name: timer_id
        type: RedisModuleTimerID
      item_type: struct
      name: redisModuleEvents
      pos:
        line_end: 17
        line_start: 10
        source_file: /src/h2o/deps/hiredis/adapters/redismoduleapi.h
    typedefs: []
    union: []
- function_names:
  - redisLibsdeventDestroy
  - redisLibsdeventTimeoutHandler
  - redisLibsdeventHandler
  - CHECK_DELETED
  - redisLibsdeventAddRead
  - redisLibsdeventDelRead
  - redisLibsdeventAddWrite
  - redisLibsdeventDelWrite
  - redisLibsdeventCleanup
  - redisLibsdeventSetTimeout
  - redisLibsdeventAttach
  source_file: /src/h2o/deps/hiredis/adapters/libsdevent.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_LIBSDEVENT_DELETED
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/hiredis/adapters/libsdevent.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REDIS_LIBSDEVENT_ENTERED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/hiredis/adapters/libsdevent.h
      type_or_value: '0x02'
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*event'
        type: struct sd_event
      - name: '*fdSource'
        type: struct sd_event_source
      - name: '*timerSource'
        type: struct sd_event_source
      - name: fd
        type: int
      - name: flags
        type: short
      - name: state
        type: short
      item_type: struct
      name: redisLibsdeventEvents
      pos:
        line_end: 17
        line_start: 9
        source_file: /src/h2o/deps/hiredis/adapters/libsdevent.h
    typedefs: []
    union: []
- function_names:
  - redisIvykisReadEvent
  - redisIvykisWriteEvent
  - redisIvykisAddRead
  - redisIvykisDelRead
  - redisIvykisAddWrite
  - redisIvykisDelWrite
  - redisIvykisCleanup
  - redisIvykisAttach
  source_file: /src/h2o/deps/hiredis/adapters/ivykis.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: fd
        type: struct iv_fd
      item_type: struct
      name: redisIvykisEvents
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/h2o/deps/hiredis/adapters/ivykis.h
    typedefs: []
    union: []
- function_names:
  - redisLibevReadEvent
  - redisLibevWriteEvent
  - redisLibevAddRead
  - redisLibevDelRead
  - redisLibevAddWrite
  - redisLibevDelWrite
  - redisLibevStopTimer
  - redisLibevCleanup
  - redisLibevTimeout
  - redisLibevSetTimeout
  - redisLibevAttach
  source_file: /src/h2o/deps/hiredis/adapters/libev.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*loop'
        type: struct ev_loop
      - name: reading
        type: int
      - name: rev
        type: ev_io
      - name: timer
        type: ev_timer
      item_type: struct
      name: redisLibevEvents
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/h2o/deps/hiredis/adapters/libev.h
    typedefs: []
    union: []
- function_names:
  - redisAeReadEvent
  - redisAeWriteEvent
  - redisAeAddRead
  - redisAeDelRead
  - redisAeAddWrite
  - redisAeDelWrite
  - redisAeCleanup
  - redisAeAttach
  source_file: /src/h2o/deps/hiredis/adapters/ae.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*loop'
        type: aeEventLoop
      - name: fd
        type: int
      - name: reading
        type: int
      item_type: struct
      name: redisAeEvents
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/h2o/deps/hiredis/adapters/ae.h
    typedefs: []
    union: []
- function_names:
  - redisLibhvHandleEvents
  - redisLibhvAddRead
  - redisLibhvDelRead
  - redisLibhvAddWrite
  - redisLibhvDelWrite
  - redisLibhvCleanup
  - redisLibhvTimeout
  - redisLibhvSetTimeout
  - redisLibhvAttach
  source_file: /src/h2o/deps/hiredis/adapters/libhv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*io'
        type: hio_t
      - name: '*timer'
        type: htimer_t
      item_type: struct
      name: redisLibhvEvents
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/h2o/deps/hiredis/adapters/libhv.h
    typedefs: []
    union: []
- function_names:
  - redisLibuvPoll
  - redisLibuvAddRead
  - redisLibuvDelRead
  - redisLibuvAddWrite
  - redisLibuvDelWrite
  - on_timer_close
  - on_handle_close
  - redisLibuvTimeout
  - redisLibuvSetTimeout
  - redisLibuvCleanup
  - redisLibuvAttach
  source_file: /src/h2o/deps/hiredis/adapters/libuv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* context'
        type: redisAsyncContext
      - name: handle
        type: uv_poll_t
      - name: timer
        type: uv_timer_t
      - name: events
        type: int
      item_type: struct
      name: redisLibuvEvents
      pos:
        line_end: 13
        line_start: 8
        source_file: /src/h2o/deps/hiredis/adapters/libuv.h
    typedefs: []
    union: []
- function_names:
  - redisLibeventDestroy
  - redisLibeventHandler
  - CHECK_DELETED
  - redisLibeventUpdate
  - redisLibeventAddRead
  - redisLibeventDelRead
  - redisLibeventAddWrite
  - redisLibeventDelWrite
  - redisLibeventCleanup
  - redisLibeventSetTimeout
  - redisLibeventAttach
  source_file: /src/h2o/deps/hiredis/adapters/libevent.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_LIBEVENT_DELETED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/hiredis/adapters/libevent.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REDIS_LIBEVENT_ENTERED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/hiredis/adapters/libevent.h
      type_or_value: '0x02'
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*ev'
        type: struct event
      - name: '*base'
        type: struct event_base
      - name: tv
        type: struct timeval
      - name: flags
        type: short
      - name: state
        type: short
      item_type: struct
      name: redisLibeventEvents
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/h2o/deps/hiredis/adapters/libevent.h
    typedefs: []
    union: []
- function_names:
  - RedisQtAdapter::RedisQtAddRead
  - RedisQtAdapter::RedisQtDelRead
  - RedisQtAdapter::RedisQtAddWrite
  - RedisQtAdapter::RedisQtDelWrite
  - RedisQtAdapter::RedisQtCleanup
  - RedisQtAdapter::RedisQtAdapter
  - ~RedisQtAdapter()
  - RedisQtAdapter::setContext
  - RedisQtAdapter::addRead
  - RedisQtAdapter::delRead
  - RedisQtAdapter::addWrite
  - RedisQtAdapter::delWrite
  - RedisQtAdapter::cleanup
  - RedisQtAdapter::read
  - RedisQtAdapter::write
  source_file: /src/h2o/deps/hiredis/adapters/qt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - redisPollTimevalToDouble
  - redisPollGetNow
  - redisPollTick
  - redisPollAddRead
  - redisPollDelRead
  - redisPollAddWrite
  - redisPollDelWrite
  - redisPollCleanup
  - redisPollScheduleTimer
  - redisPollAttach
  source_file: /src/h2o/deps/hiredis/adapters/poll_.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_POLL_HANDLED_READ
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/h2o/deps/hiredis/adapters/poll_.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDIS_POLL_HANDLED_WRITE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/hiredis/adapters/poll_.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REDIS_POLL_HANDLED_TIMEOUT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/hiredis/adapters/poll_.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: fd
        type: redisFD
      - name: reading
        type: char
      - name: in_tick
        type: char
      - name: deleted
        type: char
      - name: deadline
        type: double
      item_type: struct
      name: redisPollEvents
      pos:
        line_end: 25
        line_start: 18
        source_file: /src/h2o/deps/hiredis/adapters/poll_.h
    typedefs: []
    union: []
- function_names:
  - panicAbort
  - assertReplyAndFree
  - enableClientTracking
  - pushReplyHandler
  - privdata_dtor
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-push.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEY_COUNT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/hiredis/examples/example-push.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - debugCallback
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libsdevent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - debugCallback
  - getCallback
  - connectCallback
  - disconnectCallback
  - RedisModule_OnLoad
  source_file: /src/h2o/deps/hiredis/examples/example-redismoduleapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-poll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libevent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libevent-ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - connect_cb
  - disconnect_cb
  - command_cb
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-glib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-macosx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-ivykis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - debugCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libhv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libev.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - debugCallback
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-libuv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - connectCallback
  - disconnectCallback
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-ae.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExampleQt::finish
  source_file: /src/h2o/deps/hiredis/examples/example-qt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - example_argv_command
  - main
  source_file: /src/h2o/deps/hiredis/examples/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getCallback
  - ExampleQt::run
  - main
  source_file: /src/h2o/deps/hiredis/examples/example-qt.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/deps/hiredis/fuzzing/format_command_fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - kr_srand0
  - kr_srand
  - kr_rand
  - main
  - __kmin_hj_aux
  - kmin_hj
  - kmin_brent
  - kf_lgamma
  - kf_erfc
  - _kf_gammap
  - _kf_gammaq
  - kf_gammap
  - kf_gammaq
  - kf_betai_aux
  - kf_betai
  - km_ks_dist
  - main
  source_file: /src/h2o/deps/klib/kmath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KR_NN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: '312'
    - item_type: preproc_def
      name: KR_MM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: '156'
    - item_type: preproc_def
      name: KR_UM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: '0xFFFFFFFF80000000ULL '
    - item_type: preproc_def
      name: KR_LM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: '0x7FFFFFFFULL '
    - item_type: preproc_def
      name: KF_GAMMA_EPS
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: 1e-14
    - item_type: preproc_def
      name: KF_TINY
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/h2o/deps/klib/kmath.c
      type_or_value: 1e-290
    structs:
    - fields:
      - name: mti
        type: int
      - name: mt[KR_NN]
        type: krint64_t
      item_type: struct
      name: _krand_t
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/h2o/deps/klib/kmath.c
    typedefs: []
    union: []
- function_names:
  - LIKELY
  - UNLIKELY
  - LIKELY
  - UNLIKELY
  - ksw_qinit
  - ksw_u8
  - __max_16
  - ksw_i16
  - __max_8
  - revseq
  - ksw_align
  - ksw_extend
  - push_cigar
  - ksw_global
  - main
  source_file: /src/h2o/deps/klib/ksw.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MINUS_INF
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/h2o/deps/klib/ksw.c
      type_or_value: '-0x40000000'
    structs:
    - fields:
      - name: qlen
        type: int
      - name: shift
        type: uint8_t
      - name: '*qp'
        type: __m128i
      item_type: struct
      name: _kswq_t
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/h2o/deps/klib/ksw.c
    - fields:
      - name: h
        type: int32_t
      item_type: struct
      name: eh_t
      pos:
        line_end: 359
        line_start: 357
        source_file: /src/h2o/deps/klib/ksw.c
    typedefs: []
    union: []
- function_names:
  - __ac_isempty
  - __ac_isdel
  - __ac_iseither
  - __ac_set_isdel_false
  - __ac_set_isempty_false
  - __ac_set_isboth_false
  - __ac_set_isdel_true
  - __ac_fsize
  - kroundup32
  - kcalloc
  - kmalloc
  - krealloc
  - kfree
  - __KHASH_TYPE
  - __KHASH_PROTOTYPES
  - __KHASH_IMPL
  - KHASH_DECLARE
  - KHASH_INIT2
  - KHASH_INIT
  - kh_int_hash_func
  - kh_int_hash_equal
  - kh_int64_hash_func
  - kh_int64_hash_equal
  - __ac_X31_hash_string
  - kh_str_hash_func
  - kh_str_hash_equal
  - __ac_Wang_hash
  - kh_int_hash_func2
  - khash_t
  - kh_init
  - kh_destroy
  - kh_clear
  - kh_resize
  - kh_put
  - kh_get
  - kh_del
  - kh_exist
  - kh_key
  - kh_val
  - kh_value
  - kh_begin
  - kh_end
  - kh_size
  - kh_n_buckets
  - kh_foreach
  - kh_foreach_value
  - KHASH_SET_INIT_INT
  - KHASH_MAP_INIT_INT
  - KHASH_SET_INIT_INT64
  - KHASH_MAP_INIT_INT64
  - KHASH_SET_INIT_STR
  - KHASH_MAP_INIT_STR
  source_file: /src/h2o/deps/klib/khash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AC_VERSION_KHASH_H
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/h2o/deps/klib/khash.h
      type_or_value: '"0.2.8"'
    - item_type: preproc_def
      name: kh_inline
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/h2o/deps/klib/khash.h
      type_or_value: __inline
    - item_type: preproc_def
      name: kh_inline
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/h2o/deps/klib/khash.h
      type_or_value: inline
    structs: []
    typedefs:
    - item_type: typedef
      name: khint32_t
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/h2o/deps/klib/khash.h
      type: unsigned int
    - item_type: typedef
      name: khint32_t
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/h2o/deps/klib/khash.h
      type: unsigned long
    - item_type: typedef
      name: khint64_t
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/h2o/deps/klib/khash.h
      type: unsigned long
    - item_type: typedef
      name: khint64_t
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/h2o/deps/klib/khash.h
      type: unsigned long long
    - item_type: typedef
      name: khint_t
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/h2o/deps/klib/khash.h
      type: khint32_t
    - item_type: typedef
      name: khiter_t
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/h2o/deps/klib/khash.h
      type: khint_t
    - item_type: typedef
      name: '*kh_cstr_t'
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/h2o/deps/klib/khash.h
      type: char
    union: []
- function_names:
  - kson_is_internal
  - kson_by_key
  - kson_by_index
  source_file: /src/h2o/deps/klib/kson.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KSON_TYPE_NO_QUOTE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '1'
    - item_type: preproc_def
      name: KSON_TYPE_SGL_QUOTE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KSON_TYPE_DBL_QUOTE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '3'
    - item_type: preproc_def
      name: KSON_TYPE_BRACKET
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '4'
    - item_type: preproc_def
      name: KSON_TYPE_BRACE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '5'
    - item_type: preproc_def
      name: KSON_OK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '0'
    - item_type: preproc_def
      name: KSON_ERR_EXTRA_LEFT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '1'
    - item_type: preproc_def
      name: KSON_ERR_EXTRA_RIGHT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KSON_ERR_NO_KEY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/klib/kson.h
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: unsigned long long
      - name: '*key'
        type: char
      - name: v
        type: "union {\n\t\tstruct kson_node_s **child;\n\t\tchar *str;\n\t}"
      item_type: struct
      name: kson_node_s
      pos:
        line_end: 23
        line_start: 16
        source_file: /src/h2o/deps/klib/kson.h
    - fields:
      - name: n_nodes
        type: long
      - name: '*root'
        type: kson_node_t
      item_type: struct
      name: kson_t
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/h2o/deps/klib/kson.h
    typedefs: []
    union: []
- function_names:
  - kurl_isfile
  - kroundup32
  - kurl_init
  - kurl_destroy
  - prepare
  - write_cb
  - fill_buffer
  - kurl_close
  - kurl_open
  - kurl_dopen
  - kurl_buflen
  - kurl_read
  - kurl_seek
  - kurl_tell
  - kurl_eof
  - kurl_fileno
  - kurl_error
  - sha1_init
  - rol32
  - sha1_hashBlock
  - sha1_add
  - sha1_write1
  - sha1_write
  - sha1_final
  - sha1_init_hmac
  - sha1_final_hmac
  - s3_sign
  - s3_read_awssecret
  - kputsn
  - s3_parse
  - main
  source_file: /src/h2o/deps/klib/kurl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KU_DEF_BUFLEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: KU_MAX_SKIP
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: (KU_DEF_BUFLEN<<1) // if seek step is smaller than this, skip
    - item_type: preproc_def
      name: HASH_LENGTH
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: '20'
    - item_type: preproc_def
      name: BLOCK_LENGTH
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: '64'
    - item_type: preproc_def
      name: HMAC_IPAD
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: '0x36'
    - item_type: preproc_def
      name: HMAC_OPAD
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/h2o/deps/klib/kurl.c
      type_or_value: '0x5c'
    structs:
    - fields:
      - name: '*multi'
        type: CURLM
      - name: '*curl'
        type: CURL
      - name: '*buf'
        type: uint8_t
      - name: off0
        type: off_t
      - name: fd
        type: int
      - name: m_buf
        type: int
      - name: l_buf
        type: int
      - name: p_buf
        type: int
      - name: done_reading
        type: int
      - name: err
        type: int
      - name: '*hdr'
        type: struct curl_slist
      item_type: struct
      name: kurl_t
      pos:
        line_end: 36
        line_start: 24
        source_file: /src/h2o/deps/klib/kurl.c
    - fields:
      - name: '*url'
        type: char
      item_type: struct
      name: s3aux_t
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/h2o/deps/klib/kurl.c
    - fields:
      - name: buf
        type: union { uint8_t b[BLOCK_LENGTH]; uint32_t w[BLOCK_LENGTH/4]; }
      - name: bufOffset
        type: uint8_t
      - name: state
        type: union { uint8_t b[HASH_LENGTH]; uint32_t w[HASH_LENGTH/4]; }
      - name: byteCount
        type: uint32_t
      - name: keyBuffer[BLOCK_LENGTH]
        type: uint8_t
      - name: innerHash[HASH_LENGTH]
        type: uint8_t
      item_type: struct
      name: sha1nfo
      pos:
        line_end: 314
        line_start: 307
        source_file: /src/h2o/deps/klib/kurl.c
    - fields:
      - name: l
        type: int
      - name: '*s'
        type: char
      item_type: struct
      name: kstring_t
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/h2o/deps/klib/kurl.c
    typedefs: []
    union: []
- function_names:
  - kv_roundup32
  - kvec_t
  - kv_init
  - kv_destroy
  - kv_A
  - kv_pop
  - kv_size
  - kv_max
  - kv_resize
  - kv_copy
  - kv_push
  - kv_pushp
  - kv_a
  source_file: /src/h2o/deps/klib/kvec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hmm_new_par
  - hmm_delete_par
  - hmm_new_data
  - hmm_delete_data
  - hmm_new_exp
  - hmm_delete_exp
  - hmm_Viterbi
  - hmm_forward
  - hmm_pre_backward
  - hmm_backward
  - hmm_lk
  - hmm_post_decode
  - hmm_post_state
  - hmm_expect
  - hmm_Q0
  - hmm_add_expect
  - hmm_Q
  - hmm_simulate
  source_file: /src/h2o/deps/klib/khmm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KMEMPOOL_INIT
  - kmempool_t
  - kmp_init
  - kmp_destroy
  - kmp_alloc
  - kmp_free
  - KLIST_INIT
  - kliter_t
  - klist_t
  - kl_val
  - kl_next
  - kl_begin
  - kl_end
  - kl_init
  - kl_destroy
  - kl_pushp
  - kl_shift
  source_file: /src/h2o/deps/klib/klist.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - kson_parse_core
  - __push_back
  - __new_node
  - kson_destroy
  - kson_parse
  - kson_by_path
  - kson_format_recur
  - kson_format
  - kroundup32
  - main
  source_file: /src/h2o/deps/klib/kson.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _bgzf_open
  - _bgzf_dopen
  - _bgzf_close
  - _bgzf_fileno
  - _bgzf_tell
  - _bgzf_seek
  - _bgzf_read
  - _bgzf_write
  - ftello
  - fseeko
  - _bgzf_open
  - _bgzf_dopen
  - _bgzf_close
  - _bgzf_fileno
  - _bgzf_tell
  - _bgzf_seek
  - _bgzf_read
  - _bgzf_write
  - packInt16
  - unpackInt16
  - packInt32
  - bgzf_read_init
  - bgzf_write_init
  - mode2level
  - bgzf_open
  - bgzf_dopen
  - deflate_block
  - inflate_block
  - check_header
  - free_cache
  - load_block_from_cache
  - cache_block
  - free_cache
  - load_block_from_cache
  - cache_block
  - bgzf_read_block
  - bgzf_read
  - bgzf_flush
  - bgzf_flush_try
  - bgzf_write
  - bgzf_close
  - bgzf_set_cache_size
  - bgzf_check_EOF
  - bgzf_seek
  - bgzf_is_bgzf
  - bgzf_getc
  - kroundup32
  - bgzf_getline
  source_file: /src/h2o/deps/klib/bgzf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_HEADER_LENGTH
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/h2o/deps/klib/bgzf.c
      type_or_value: '18'
    - item_type: preproc_def
      name: BLOCK_FOOTER_LENGTH
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/klib/bgzf.c
      type_or_value: '8'
    structs:
    - fields:
      - name: size
        type: int
      - name: '*block'
        type: uint8_t
      - name: end_offset
        type: int64_t
      item_type: struct
      name: cache_t
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/h2o/deps/klib/bgzf.c
    typedefs:
    - item_type: typedef
      name: '*_bgzf_file_t'
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/h2o/deps/klib/bgzf.c
      type: knetFile
    - item_type: typedef
      name: '*_bgzf_file_t'
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/h2o/deps/klib/bgzf.c
      type: FILE
    union: []
- function_names:
  - socket_wait
  - socket_connect
  - __err_connect
  - http_open
  - kftp_get_response
  - kftp_send_cmd
  - ftp_open
  - cmd2argv
  - kopen
  - kclose
  - main
  source_file: /src/h2o/deps/klib/kopen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KO_STDIN
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '1'
    - item_type: preproc_def
      name: KO_FILE
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '2'
    - item_type: preproc_def
      name: KO_PIPE
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '3'
    - item_type: preproc_def
      name: KO_HTTP
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '4'
    - item_type: preproc_def
      name: KO_FTP
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/h2o/deps/klib/kopen.c
      type_or_value: '0x10000'
    structs:
    - fields:
      - name: max_response
        type: int
      - name: '*response'
        type: char
      item_type: struct
      name: ftpaux_t
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/h2o/deps/klib/kopen.c
    - fields:
      - name: type
        type: int
      - name: pid
        type: pid_t
      item_type: struct
      name: koaux_t
      pos:
        line_end: 233
        line_start: 230
        source_file: /src/h2o/deps/klib/kopen.c
    typedefs: []
    union: []
- function_names:
  - __KS_TYPE
  - ks_eof
  - ks_rewind
  - __KS_BASIC
  - __KS_GETC
  - kroundup32
  - __KS_GETUNTIL
  - ks_getuntil
  - KSTREAM_INIT
  - kseq_rewind
  - __KSEQ_BASIC
  - __KSEQ_READ
  - __KSEQ_TYPE
  - KSEQ_INIT2
  - KSEQ_INIT
  - KSEQ_DECLARE
  source_file: /src/h2o/deps/klib/kseq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KS_SEP_SPACE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/klib/kseq.h
      type_or_value: '0 // isspace(): \t, \n, \v, \f, \r'
    - item_type: preproc_def
      name: KS_SEP_TAB
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/klib/kseq.h
      type_or_value: 1 // isspace() && !' '
    - item_type: preproc_def
      name: KS_SEP_LINE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/deps/klib/kseq.h
      type_or_value: '2 // line separator: "\n" (Unix) or "\r\n" (Windows)'
    - item_type: preproc_def
      name: KS_SEP_MAX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/klib/kseq.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KSTRING_T
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/h2o/deps/klib/kseq.h
      type_or_value: kstring_t
    structs:
    - fields:
      - name: l
        type: size_t
      - name: '*s'
        type: char
      item_type: struct
      name: __kstring_t
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/h2o/deps/klib/kseq.h
    typedefs: []
    union: []
- function_names:
  - kr_drand
  - kr_sample
  source_file: /src/h2o/deps/klib/kmath.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KMIN_RADIUS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/klib/kmath.h
      type_or_value: '0.5'
    - item_type: preproc_def
      name: KMIN_EPS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/deps/klib/kmath.h
      type_or_value: 1e-7
    - item_type: preproc_def
      name: KMIN_MAXCALL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/klib/kmath.h
      type_or_value: '50000'
    structs: []
    typedefs:
    - item_type: typedef
      name: krint64_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/h2o/deps/klib/kmath.h
      type: uint64_t
    - item_type: typedef
      name: krand_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/h2o/deps/klib/kmath.h
      type: _krand_t
    - item_type: typedef
      name: (*kmin_f)(int, double*, void*)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/h2o/deps/klib/kmath.h
      type: double
    - item_type: typedef
      name: (*kmin1_f)(double, void*)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/h2o/deps/klib/kmath.h
      type: double
    union: []
- function_names:
  - chr
  - getCounts
  - getBuckets
  - induceSA
  - SAIS_CORE
  - SAIS_MAIN
  - SAIS_BWT
  source_file: /src/h2o/deps/klib/ksa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SAINT_MAX
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: SAIS_CORE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_core64
    - item_type: preproc_def
      name: SAIS_BWT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_bwt64
    - item_type: preproc_def
      name: SAIS_MAIN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_sa64
    - item_type: preproc_def
      name: SAINT_MAX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: SAIS_CORE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_core
    - item_type: preproc_def
      name: SAIS_BWT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_bwt
    - item_type: preproc_def
      name: SAIS_MAIN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/klib/ksa.c
      type_or_value: ksa_sa
    structs: []
    typedefs:
    - item_type: typedef
      name: saint_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/h2o/deps/klib/ksa.c
      type: int64_t
    - item_type: typedef
      name: saint_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/h2o/deps/klib/ksa.c
      type: int
    union: []
- function_names:
  - kbi_popcount64
  - kbi_DNAcount64
  - kroundup32
  - kbi_swap
  source_file: /src/h2o/deps/klib/kbit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - kroundup32
  - KS_ATTR_PRINTF
  - ks_resize
  - ks_str
  - ks_len
  - kputsn
  - kputs
  - kputc
  - kputc_
  - kputsn_
  - kputw
  - kputuw
  - kputl
  - ksplit
  source_file: /src/h2o/deps/klib/kstring.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KSTRING_T
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/deps/klib/kstring.h
      type_or_value: kstring_t
    structs:
    - fields:
      - name: l
        type: size_t
      - name: '*s'
        type: char
      item_type: struct
      name: __kstring_t
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/h2o/deps/klib/kstring.h
    - fields:
      - name: tab[4]
        type: uint64_t
      - name: sep
        type: int
      - name: '*p'
        type: char
      item_type: struct
      name: ks_tokaux_t
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/h2o/deps/klib/kstring.h
    typedefs: []
    union: []
- function_names:
  - netread
  - netwrite
  - netclose
  - netread
  - netwrite
  - netclose
  - knet_tell
  - knet_fileno
  source_file: /src/h2o/deps/klib/knetfile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KNF_TYPE_LOCAL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/klib/knetfile.h
      type_or_value: '1'
    - item_type: preproc_def
      name: KNF_TYPE_FTP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/klib/knetfile.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KNF_TYPE_HTTP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/klib/knetfile.h
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: int
      - name: offset
        type: int64_t
      - name: '*host'
        type: char
      - name: ctrl_fd
        type: int
      - name: '*response'
        type: char
      - name: seek_offset
        type: int64_t
      - name: file_size
        type: int64_t
      - name: '*path'
        type: char
      item_type: struct
      name: knetFile_s
      pos:
        line_end: 36
        line_start: 23
        source_file: /src/h2o/deps/klib/knetfile.h
    typedefs: []
    union: []
- function_names:
  - knet_open
  - knet_dopen
  - knet_close
  - knet_read
  - knet_seek
  - knet_tell
  - knet_fileno
  - knet_win32_init
  - knet_win32_destroy
  source_file: /src/h2o/deps/klib/kurl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KURL_NULL
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/klib/kurl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: KURL_INV_WHENCE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/klib/kurl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KURL_SEEK_OUT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/klib/kurl.h
      type_or_value: '3'
    - item_type: preproc_def
      name: KURL_NO_AUTH
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/klib/kurl.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*s3keyid'
        type: char
      - name: '*s3secretkey'
        type: char
      - name: '*s3key_fn'
        type: char
      item_type: struct
      name: kurl_opt_t
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/h2o/deps/klib/kurl.h
    typedefs:
    - item_type: typedef
      name: kurl_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/h2o/deps/klib/kurl.h
      type: kurl_t
    - item_type: typedef
      name: knetFile
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/h2o/deps/klib/kurl.h
      type: kurl_t
    union: []
- function_names:
  - kvsprintf
  - ksprintf
  - kstrtok
  - ksplit_core
  - ksBM_prep
  - kmemmem
  - kstrstr
  - kstrnstr
  - main
  source_file: /src/h2o/deps/klib/kstring.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __ksplit_aux
      pos:
        line_end: 86
        line_start: 69
        source_file: /src/h2o/deps/klib/kstring.c
      type_or_value: "do {\t\t\t\t\t\t\\\n\t\tif (_offsets) {\t\t\t\t\t\t\\\n\t\t\ts[i]
        = 0;\t\t\t\t\t\\\n\t\t\tif (n == max) {\t\t\t\t\t\\\n\t\t\t\tint *tmp;\t\t\t\t\\\n\t\t\t\tmax
        = max? max<<1 : 2;\t\t\t\\\n\t\t\t\tif ((tmp = (int*)realloc(offsets, sizeof(int)
        * max))) {  \\\n\t\t\t\t\toffsets = tmp;\t\t\t\\\n\t\t\t\t} else\t{\t\t\t\t\\\n\t\t\t\t\tfree(offsets);\t\t\t\\\n\t\t\t\t\t*_offsets
        = NULL;\t\t\\\n\t\t\t\t\treturn 0;\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\\\n\t\t\toffsets[n++]
        = last_start;\t\t\t\\\n\t\t} else ++n;\t\t\t\t\t\t\\\n\t} while (0)"
    structs: []
    typedefs:
    - item_type: typedef
      name: ubyte_t
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/h2o/deps/klib/kstring.c
      type: unsigned char
    union: []
- function_names: []
  source_file: /src/h2o/deps/klib/ksw.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KSW_XBYTE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/klib/ksw.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: KSW_XSTOP
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/klib/ksw.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: KSW_XSUBO
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/klib/ksw.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: KSW_XSTART
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/h2o/deps/klib/ksw.h
      type_or_value: '0x80000'
    structs:
    - fields:
      - name: score
        type: int
      - name: te
        type: int
      - name: score2
        type: int
      - name: tb
        type: int
      item_type: struct
      name: kswr_t
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/h2o/deps/klib/ksw.h
    typedefs:
    - item_type: typedef
      name: kswq_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/h2o/deps/klib/ksw.h
      type: _kswq_t
    union: []
- function_names:
  - calloc2
  source_file: /src/h2o/deps/klib/khmm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HMM_VERSION
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: '"0.1.0-7"'
    - item_type: preproc_def
      name: HMM_FORWARD
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HMM_BACKWARD
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HMM_VITERBI
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: HMM_POSTDEC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FLOAT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: double
    - item_type: preproc_def
      name: HMM_TINY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: 1e-25
    - item_type: preproc_def
      name: HMM_INF
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/klib/khmm.h
      type_or_value: 1e300
    structs:
    - fields:
      - name: m
        type: int
      - name: '**a'
        type: FLOAT
      - name: '**ae'
        type: FLOAT
      - name: '*a0'
        type: FLOAT
      item_type: struct
      name: hmm_par_t
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/h2o/deps/klib/khmm.h
    - fields:
      - name: L
        type: int
      - name: status
        type: unsigned
      - name: '*seq'
        type: char
      - name: '**f'
        type: FLOAT
      - name: '*v'
        type: int
      - name: '*p'
        type: int
      item_type: struct
      name: hmm_data_t
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/h2o/deps/klib/khmm.h
    - fields:
      - name: m
        type: int
      - name: Q0
        type: FLOAT
      item_type: struct
      name: hmm_exp_t
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/h2o/deps/klib/khmm.h
    - fields:
      - name: l
        type: int
      - name: '*thr'
        type: FLOAT
      item_type: struct
      name: hmm_gof_t
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/h2o/deps/klib/khmm.h
    typedefs: []
    union: []
- function_names:
  - __KB_KEY
  - __KB_PTR
  - __KB_TREE_T
  - __KB_INIT
  - __kb_destroy
  - __kb_get_first
  - __KB_GET_AUX0
  - __KB_GET_AUX1
  - __KB_GET
  - __KB_INTERVAL
  - __KB_PUT
  - __KB_DEL
  - __kb_traverse
  - KBTREE_INIT
  - kbtree_t
  - kb_init
  - kb_destroy
  - kb_get
  - kb_put
  - kb_del
  - kb_interval
  - kb_getp
  - kb_putp
  - kb_delp
  - kb_intervalp
  - kb_size
  - kb_generic_cmp
  - kb_str_cmp
  source_file: /src/h2o/deps/klib/kbtree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB_DEFAULT_SIZE
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/h2o/deps/klib/kbtree.h
      type_or_value: '512'
    structs:
    - fields:
      - name: is_internal
        type: int32_t
      item_type: struct
      name: kbnode_t
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/h2o/deps/klib/kbtree.h
    - fields:
      - name: '*x'
        type: kbnode_t
      - name: i
        type: int
      item_type: struct
      name: __kbstack_t
      pos:
        line_end: 329
        line_start: 326
        source_file: /src/h2o/deps/klib/kbtree.h
    typedefs: []
    union: []
- function_names:
  - add_node
  - kn_parse
  - __push_back
  - kroundup32
  - kputsn
  - kputc
  - format_node_recur
  - kn_format
  - main
  source_file: /src/h2o/deps/klib/knhx.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: error
        type: int
      - name: '*node'
        type: knhx1_t
      item_type: struct
      name: knaux_t
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/h2o/deps/klib/knhx.c
    typedefs: []
    union: []
- function_names:
  - kgraph_t
  - __KG_BASIC
  - KGRAPH_PRINT
  - KGRAPH_INIT
  source_file: /src/h2o/deps/klib/kgraph.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: kgint_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/h2o/deps/klib/kgraph.h
      type: unsigned
    union: []
- function_names:
  - socket_wait
  - socket_connect
  - __err_connect
  - int64tostr
  - strtoint64
  - knet_win32_init
  - knet_win32_destroy
  - socket_connect
  - __err_connect
  - my_netread
  - kftp_get_response
  - kftp_send_cmd
  - kftp_pasv_prep
  - kftp_pasv_connect
  - kftp_connect
  - kftp_reconnect
  - kftp_parse_url
  - kftp_connect_file
  - khttp_parse_url
  - khttp_connect_file
  - knet_open
  - knet_dopen
  - knet_read
  - knet_seek
  - knet_close
  - main
  source_file: /src/h2o/deps/klib/knetfile.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bgzf_fdopen
  - bgzf_tell
  source_file: /src/h2o/deps/klib/bgzf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BGZF_BLOCK_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: BGZF_MAX_BLOCK_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: BGZF_ERR_ZLIB
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BGZF_ERR_HEADER
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '2'
    - item_type: preproc_def
      name: BGZF_ERR_IO
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '4'
    - item_type: preproc_def
      name: BGZF_ERR_MISUSE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: '8'
    - item_type: preproc_def
      name: KSTRING_T
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/klib/bgzf.h
      type_or_value: kstring_t
    structs:
    - fields:
      - name: open_mode
        type: int
      - name: cache_size
        type: int
      - name: block_length
        type: int
      - name: block_address
        type: int64_t
      - name: '*uncompressed_block'
        type: void
      - name: '*cache'
        type: void
      - name: '*fp'
        type: void
      item_type: struct
      name: BGZF
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/h2o/deps/klib/bgzf.h
    - fields:
      - name: l
        type: size_t
      - name: '*s'
        type: char
      item_type: struct
      name: __kstring_t
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/h2o/deps/klib/bgzf.h
    typedefs: []
    union: []
- function_names:
  - steal_work
  - ktf_worker
  - kt_for
  - ktp_worker
  - kt_pipeline
  source_file: /src/h2o/deps/klib/kthread.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*t'
        type: struct kt_for_t
      - name: i
        type: long
      item_type: struct
      name: ktf_worker_t
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/h2o/deps/klib/kthread.c
    - fields:
      - name: n_threads
        type: int
      - name: n
        type: long
      - name: '*w'
        type: ktf_worker_t
      - name: (*func)(void*,long,int)
        type: void
      - name: '*data'
        type: void
      item_type: struct
      name: kt_for_t
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/h2o/deps/klib/kthread.c
    - fields:
      - name: '*pl'
        type: struct ktp_t
      - name: step
        type: int
      - name: '*data'
        type: void
      item_type: struct
      name: ktp_worker_t
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/h2o/deps/klib/kthread.c
    - fields:
      - name: '*shared'
        type: void
      - name: '*(*func)(void*, int, void*)'
        type: void
      - name: n_workers
        type: int
      - name: '*workers'
        type: ktp_worker_t
      - name: mutex
        type: pthread_mutex_t
      - name: cv
        type: pthread_cond_t
      item_type: struct
      name: ktp_t
      pos:
        line_end: 80
        line_start: 73
        source_file: /src/h2o/deps/klib/kthread.c
    typedefs: []
    union: []
- function_names:
  - KSORT_SWAP
  - KSORT_INIT
  - ks_mergesort
  - ks_introsort
  - ks_combsort
  - ks_heapsort
  - ks_heapmake
  - ks_heapadjust
  - ks_ksmall
  - ks_shuffle
  - ks_lt_generic
  - ks_lt_str
  - KSORT_INIT_GENERIC
  source_file: /src/h2o/deps/klib/ksort.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KSORT_INIT_STR
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/h2o/deps/klib/ksort.h
      type_or_value: KSORT_INIT(str, ksstr_t, ks_lt_str)
    structs:
    - fields:
      - name: '*left'
        type: void
      - name: depth
        type: int
      item_type: struct
      name: ks_isort_stack_t
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/h2o/deps/klib/ksort.h
    typedefs:
    - item_type: typedef
      name: '*ksstr_t'
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/h2o/deps/klib/ksort.h
      type: char
    union: []
- function_names: []
  source_file: /src/h2o/deps/klib/knhx.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KNERR_MISSING_LEFT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/h2o/deps/klib/knhx.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: KNERR_MISSING_RGHT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/h2o/deps/klib/knhx.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: KNERR_BRACKET
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/klib/knhx.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: KNERR_COLON
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/h2o/deps/klib/knhx.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: KSTRING_T
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/h2o/deps/klib/knhx.h
      type_or_value: kstring_t
    structs:
    - fields:
      - name: parent
        type: int
      - name: '*child'
        type: int
      - name: '*name'
        type: char
      - name: d
        type: double
      item_type: struct
      name: knhx1_t
      pos:
        line_end: 13
        line_start: 8
        source_file: /src/h2o/deps/klib/knhx.h
    - fields:
      - name: l
        type: size_t
      - name: '*s'
        type: char
      item_type: struct
      name: __kstring_t
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/h2o/deps/klib/knhx.h
    typedefs: []
    union: []
- function_names:
  - compute
  - main
  source_file: /src/h2o/deps/klib/test/kthread_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: max_iter
        type: int
      - name: xmin
        type: double
      - name: '*k'
        type: int
      item_type: struct
      name: global_t
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/h2o/deps/klib/test/kthread_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/kseq_bench.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/h2o/deps/klib/test/kseq_bench.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_data
  - BoyerMoore
  - main
  source_file: /src/h2o/deps/klib/test/kstring_bench2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - int2str
  - main
  source_file: /src/h2o/deps/klib/test/khash_keith2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - f_Chebyquad
  - main
  source_file: /src/h2o/deps/klib/test/kmin_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KSTREAM_INIT
  source_file: /src/h2o/deps/klib/test/kseq_bench2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sort2
  - sort3
  - sort4
  - sortAlt2
  - sortAlt3
  - insertSort
  - siftDown
  - siftDown0
  - heapSort
  - medianOf3
  - quickSortRecurse
  - quickSort
  - mergesortExchange
  - mergesortInPlace
  - mergeSort
  - rskey
  - rs_sort
  - rs_insertsort
  - radix_sort
  - _RadixSort_Unsigned_PowerOf2Radix_1
  - RadixSortInPlace_HybridUnsigned_Radix256
  - operator() (int a, int b) const
  - compare_int
  - compare
  - main
  - ks_mergesort
  source_file: /src/h2o/deps/klib/test/ksort_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: rstype_t
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/h2o/deps/klib/test/ksort_test.cc
      type_or_value: unsigned
    - item_type: preproc_def
      name: RS_MIN_SIZE
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/h2o/deps/klib/test/ksort_test.cc
      type_or_value: '64'
    structs:
    - fields:
      - name: '*b'
        type: rstype_t
      item_type: struct
      name: rsbucket_t
      pos:
        line_end: 581
        line_start: 579
        source_file: /src/h2o/deps/klib/test/ksort_test.cc
    - fields: []
      item_type: struct
      name: intcmp_t
      pos:
        line_end: 784
        line_start: 780
        source_file: /src/h2o/deps/klib/test/ksort_test.cc
    typedefs: []
    union: []
- function_names:
  - hash_eq
  - hash_func
  - ht_init_data
  - ht_destroy_data
  - ht_khash_int
  - ht_khash_str
  - ht_khash_unpack
  - ht_khash_packed
  - ht_timing
  - main
  source_file: /src/h2o/deps/klib/test/khash_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: unsigned
      - name: val
        type: unsigned char
      item_type: struct
      name: int_unpack_t
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/h2o/deps/klib/test/khash_test.c
    - fields:
      - name: key
        type: unsigned
      - name: val
        type: unsigned char
      item_type: struct
      name: int_packed_t
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/h2o/deps/klib/test/khash_test.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/klist_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/kvec_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bt1_pop64
  - bt1_countInU64
  - sse2_bit_count32
  - main
  source_file: /src/h2o/deps/klib/test/kbit_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - ks_mergesort
  source_file: /src/h2o/deps/klib/test/ksort_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/kgraph_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: i
        type: int
      - name: '*_arc'
        type: khash_t
      item_type: struct
      name: vertex_t
      pos:
        line_end: 8
        line_start: 5
        source_file: /src/h2o/deps/klib/test/kgraph_test.c
    typedefs: []
    union: []
- function_names:
  - ht_init_data
  - ht_destroy_data
  - ht_khash_int
  - traverse_f
  - ht_khash_str
  - ht_timing
  - main
  source_file: /src/h2o/deps/klib/test/kbtree_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*str_t'
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/h2o/deps/klib/test/kbtree_test.c
      type: char
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/kstring_bench.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/h2o/deps/klib/test/kstring_bench.c
      type_or_value: '10000000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/klib/test/kseq_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - int2str
  - main
  - main
  source_file: /src/h2o/deps/klib/test/khash_keith.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/klib/test/khash_keith.c
      type_or_value: '0x100000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - check
  - test_kputw
  - test_kputl
  - main
  source_file: /src/h2o/deps/klib/test/kstring_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/mruby-json/src/parson.h
  types:
    enum:
    - enumerators:
      - name: JSONError
        value: '-1'
      - name: JSONNull
        value: '1'
      - name: JSONFixed
        value: '7'
      - name: JSONNumber
        value: '3'
      - name: JSONString
        value: '2'
      - name: JSONObject
        value: '4'
      - name: JSONArray
        value: '5'
      - name: JSONBoolean
        value: '6'
      item_type: enum
      name: json_value_type
      pos:
        line_end: 52
        line_start: 41
        source_file: /src/h2o/deps/mruby-json/src/parson.h
    - enumerators:
      - name: JSONSuccess
        value: '0'
      - name: JSONFailure
        value: '-1'
      item_type: enum
      name: json_result_t
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/h2o/deps/mruby-json/src/parson.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: JSON_Object
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: json_object_t
    - item_type: typedef
      name: JSON_Array
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: json_array_t
    - item_type: typedef
      name: JSON_Value
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: json_value_t
    - item_type: typedef
      name: JSON_Value_Type
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: int
    - item_type: typedef
      name: JSON_Status
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: int
    - item_type: typedef
      name: '* (*JSON_Malloc_Function)(size_t)'
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: void
    - item_type: typedef
      name: (*JSON_Free_Function)(void *)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/h2o/deps/mruby-json/src/parson.h
      type: void
    union: []
- function_names:
  - mrb_method_defined
  - pretty_cat
  - mrb_value_to_string
  - json_value_to_mrb_value
  - mrb_json_load
  - mrb_json_parse
  - mrb_json_dump
  - mrb_json_generate
  - mrb_json_pretty_generate
  - mrb_json_to_json
  - mrb_mruby_json_gem_init
  - mrb_mruby_json_gem_final
  source_file: /src/h2o/deps/mruby-json/src/mrb_json.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARENA_SAVE
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/h2o/deps/mruby-json/src/mrb_json.c
      type_or_value: "int ai = mrb_gc_arena_save(mrb); \\\n  if (ai == MRB_ARENA_SIZE)
        { \\\n    mrb_raise(mrb, E_RUNTIME_ERROR, \"arena overflow\"); \\\n  }"
    - item_type: preproc_def
      name: ARENA_RESTORE
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/h2o/deps/mruby-json/src/mrb_json.c
      type_or_value: mrb_gc_arena_restore(mrb, ai);
    - item_type: preproc_def
      name: E_PARSER_ERROR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby-json/src/mrb_json.c
      type_or_value: mrb_class_get_under(mrb, mrb_module_get(mrb, "JSON"), "ParserError")
    structs: []
    typedefs: []
    union: []
- function_names:
  - SIZEOF_TOKEN
  - SKIP_CHAR
  - SKIP_WHITESPACES
  - MAX
  - IS_CONT
  - parson_strndup
  - parson_strdup
  - hex_char_to_int
  - parse_utf16_hex
  - num_bytes_in_utf8_sequence
  - verify_utf8_sequence
  - is_valid_utf8
  - is_decimal
  - read_file
  - remove_comments
  - json_object_init
  - json_object_add
  - json_object_resize
  - json_object_nget_value
  - json_object_free
  - json_array_init
  - json_array_add
  - json_array_resize
  - json_array_free
  - json_value_init_string_no_copy
  - skip_quotes
  - parse_utf16
  - process_string
  - get_quoted_string
  - parse_value
  - parse_object_value
  - parse_array_value
  - parse_string_value
  - parse_boolean_value
  - parse_number_value
  - parse_null_value
  - APPEND_STRING
  - APPEND_INDENT
  - json_serialize_to_buffer_r
  - json_serialize_string
  - append_indent
  - append_string
  - json_parse_file
  - json_parse_file_with_comments
  - json_parse_string
  - json_parse_string_with_comments
  - json_object_get_value
  - json_object_get_string
  - json_object_get_number
  - json_object_get_fixed
  - json_object_get_object
  - json_object_get_array
  - json_object_get_boolean
  - json_object_dotget_value
  - json_object_dotget_string
  - json_object_dotget_number
  - json_object_dotget_fixed
  - json_object_dotget_object
  - json_object_dotget_array
  - json_object_dotget_boolean
  - json_object_get_count
  - json_object_get_name
  - json_object_get_value_at
  - json_object_get_wrapping_value
  - json_object_has_value
  - json_object_has_value_of_type
  - json_object_dothas_value
  - json_object_dothas_value_of_type
  - json_array_get_value
  - json_array_get_string
  - json_array_get_number
  - json_array_get_fixed
  - json_array_get_object
  - json_array_get_array
  - json_array_get_boolean
  - json_array_get_count
  - json_array_get_wrapping_value
  - json_value_get_type
  - json_value_get_object
  - json_value_get_array
  - json_value_get_string
  - json_value_get_number
  - json_value_get_fixed
  - json_value_get_boolean
  - json_value_get_parent
  - json_value_free
  - json_value_init_object
  - json_value_init_array
  - json_value_init_string
  - json_value_init_number
  - json_value_init_fixed
  - json_value_init_boolean
  - json_value_init_null
  - json_value_deep_copy
  - json_serialization_size
  - json_serialize_to_buffer
  - json_serialize_to_file
  - json_serialize_to_string
  - json_serialization_size_pretty
  - json_serialize_to_buffer_pretty
  - json_serialize_to_file_pretty
  - json_serialize_to_string_pretty
  - json_free_serialized_string
  - json_array_remove
  - json_array_replace_value
  - json_array_replace_string
  - json_array_replace_number
  - json_array_replace_fixed
  - json_array_replace_boolean
  - json_array_replace_null
  - json_array_clear
  - json_array_append_value
  - json_array_append_string
  - json_array_append_number
  - json_array_append_fixed
  - json_array_append_boolean
  - json_array_append_null
  - json_object_set_value
  - json_object_set_string
  - json_object_set_number
  - json_object_set_fixed
  - json_object_set_boolean
  - json_object_set_null
  - json_object_dotset_value
  - json_object_dotset_string
  - json_object_dotset_number
  - json_object_dotset_fixed
  - json_object_dotset_boolean
  - json_object_dotset_null
  - json_object_remove
  - json_object_dotremove
  - json_object_clear
  - json_validate
  - json_value_equals
  - json_type
  - json_object
  - json_array
  - json_string
  - json_number
  - json_fixed
  - json_boolean
  - json_set_allocation_functions
  source_file: /src/h2o/deps/mruby-json/src/parson.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: sscanf
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: THINK_TWICE_ABOUT_USING_SSCANF
    - item_type: preproc_def
      name: STARTING_CAPACITY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_NESTING
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: FLOAT_FORMAT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: '"%1.17g"'
    - item_type: preproc_def
      name: FIXED_FORMAT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: '"%" PRIdMAX'
    - item_type: preproc_def
      name: FIXED_FORMAT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/deps/mruby-json/src/parson.c
      type_or_value: '"%jd"'
    structs:
    - fields:
      - name: '*parent'
        type: JSON_Value
      - name: type
        type: JSON_Value_Type
      - name: value
        type: JSON_Value_Value
      item_type: struct
      name: json_value_t
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/h2o/deps/mruby-json/src/parson.c
    - fields:
      - name: '*wrapping_value'
        type: JSON_Value
      - name: '**names'
        type: char
      - name: '**values'
        type: JSON_Value
      - name: count
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: json_object_t
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/h2o/deps/mruby-json/src/parson.c
    - fields:
      - name: '*wrapping_value'
        type: JSON_Value
      - name: '**items'
        type: JSON_Value
      - name: count
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: json_array_t
      pos:
        line_end: 95
        line_start: 90
        source_file: /src/h2o/deps/mruby-json/src/parson.c
    typedefs: []
    union:
    - fields:
      - name: '*string'
        type: char
      - name: number
        type: double
      - name: '*object'
        type: JSON_Object
      - name: '*array'
        type: JSON_Array
      - name: boolean
        type: int
      - name: 'null'
        type: int
      item_type: union
      name: json_value_value
      pos:
        line_end: 74
        line_start: 64
        source_file: /src/h2o/deps/mruby-json/src/parson.c
- function_names:
  - MRB_PROC_SET_TARGET_CLASS
  - mkstemp
  - replace_stop_with_return
  - compile_rb2mrb
  - eval_load_irep
  - mrb_require_load_rb_str
  - mrb_require_load_mrb_file
  - mrb_mruby_require_gem_init
  - mrb_mruby_require_gem_final
  source_file: /src/h2o/deps/mruby-require/src/require.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E_LOAD_ERROR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/mruby-require/src/require.c
      type_or_value: (mrb_class_get(mrb, "LoadError"))
    - item_type: preproc_def
      name: mrb_yield_with_class
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/mruby-require/src/require.c
      type_or_value: mrb_yield_internal
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PICOHASH_MD5_F
  - _PICOHASH_MD5_G
  - _PICOHASH_MD5_H
  - _PICOHASH_MD5_I
  - _PICOHASH_MD5_STEP
  - _PICOHASH_MD5_SET
  - _PICOHASH_MD5_GET
  - _PICOHASH_MD5_SET
  - _PICOHASH_MD5_GET
  - _picohash_md5_body
  - _picohash_md5_init
  - _picohash_md5_update
  - _picohash_md5_final
  - _picohash_sha1_rol32
  - _picohash_sha1_hash_block
  - _picohash_sha1_add_uncounted
  - _picohash_sha1_init
  - _picohash_sha1_update
  - _picohash_sha1_final
  - _picohash_sha256_ch
  - _picohash_sha256_maj
  - _picohash_sha256_s
  - _picohash_sha256_r
  - _picohash_sha256_sigma0
  - _picohash_sha256_sigma1
  - _picohash_sha256_gamma0
  - _picohash_sha256_gamma1
  - _picohash_sha256_rnd
  - _picohash_sha256_compress
  - _picohash_sha256_do_final
  - _picohash_sha256_init
  - _picohash_sha256_update
  - _picohash_sha256_final
  - _picohash_sha224_init
  - _picohash_sha224_final
  - picohash_init_md5
  - picohash_init_sha1
  - picohash_init_sha224
  - picohash_init_sha256
  - picohash_update
  - picohash_final
  - picohash_reset
  - _picohash_hmac_apply_key
  - _picohash_hmac_final
  - _picohash_hmac_reset
  - picohash_init_hmac
  source_file: /src/h2o/deps/mruby-digest/src/picohash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PICOHASH_MD5_BLOCK_LENGTH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PICOHASH_MD5_DIGEST_LENGTH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PICOHASH_SHA1_BLOCK_LENGTH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PICOHASH_SHA1_DIGEST_LENGTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PICOHASH_SHA256_BLOCK_LENGTH
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PICOHASH_SHA256_DIGEST_LENGTH
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PICOHASH_SHA224_BLOCK_LENGTH
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: PICOHASH_SHA256_BLOCK_LENGTH
    - item_type: preproc_def
      name: PICOHASH_SHA224_DIGEST_LENGTH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '28'
    - item_type: preproc_def
      name: PICOHASH_MAX_BLOCK_LENGTH
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PICOHASH_MAX_DIGEST_LENGTH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: _PICOHASH_SHA1_K0
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '0x5a827999'
    - item_type: preproc_def
      name: _PICOHASH_SHA1_K20
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '0x6ed9eba1'
    - item_type: preproc_def
      name: _PICOHASH_SHA1_K40
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '0x8f1bbcdc'
    - item_type: preproc_def
      name: _PICOHASH_SHA1_K60
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
      type_or_value: '0xca62c1d6'
    structs:
    - fields:
      - name: lo
        type: uint_fast32_t
      - name: a
        type: uint_fast32_t
      - name: buffer[64]
        type: unsigned char
      - name: block[PICOHASH_MD5_DIGEST_LENGTH]
        type: uint_fast32_t
      - name: '*(*_body)(struct _picohash_md5_ctx_t *ctx, const void *data, size_t
          size)'
        type: void
      item_type: struct
      name: _picohash_md5_ctx_t
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
    - fields:
      - name: buffer[PICOHASH_SHA1_BLOCK_LENGTH / 4]
        type: uint32_t
      - name: state[PICOHASH_SHA1_DIGEST_LENGTH / 4]
        type: uint32_t
      - name: byteCount
        type: uint64_t
      - name: bufferOffset
        type: uint8_t
      item_type: struct
      name: _picohash_sha1_ctx_t
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
    - fields:
      - name: length
        type: uint64_t
      - name: state[PICOHASH_SHA256_DIGEST_LENGTH / 4]
        type: uint32_t
      - name: curlen
        type: uint32_t
      - name: buf[PICOHASH_SHA256_BLOCK_LENGTH]
        type: unsigned char
      item_type: struct
      name: _picohash_sha256_ctx_t
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
    - fields:
      - name: block_length
        type: size_t
      - name: digest_length
        type: size_t
      - name: (*_reset)(void *ctx)
        type: void
      - name: (*_update)(void *ctx, const void *input, size_t len)
        type: void
      - name: (*_final)(void *ctx, void *digest)
        type: void
      - name: _hmac
        type: "struct {\n        unsigned char key[PICOHASH_MAX_BLOCK_LENGTH];\n        void
          (*hash_reset)(void *ctx);\n        void (*hash_final)(void *ctx, void *digest);\n
          \   }"
      item_type: struct
      name: picohash_ctx_t
      pos:
        line_end: 100
        line_start: 84
        source_file: /src/h2o/deps/mruby-digest/src/picohash.h
    typedefs: []
    union: []
- function_names:
  - lib_md_free
  - lib_hmac_free
  - lib_init
  - lib_md_block_length
  - lib_md_digest
  - lib_md_digest_bang
  - lib_md_digest_length
  - (*md_type_md(int type))(picohash_ctx_t *)
  - lib_md_init
  - lib_md_init_copy
  - lib_md_reset
  - lib_md_update
  - lib_hmac_digest
  - lib_hmac_block_length
  - lib_hmac_digest_length
  - lib_hmac_init
  - lib_hmac_update
  - lib_md_free
  - lib_hmac_free
  - lib_init
  - lib_md_block_length
  - lib_md_digest
  - lib_md_digest_bang
  - lib_md_digest_length
  - md_type_md
  - lib_md_init
  - lib_md_init_copy
  - lib_md_reset
  - lib_md_update
  - lib_hmac_digest
  - lib_hmac_block_length
  - lib_hmac_digest_length
  - lib_hmac_init
  - lib_hmac_update
  - md_ctx_size
  - lib_md_free
  - lib_hmac_free
  - lib_init
  - md_block_length
  - lib_md_block_length
  - md_init
  - md_final
  - md_digest_length
  - lib_md_digest
  - lib_md_digest_bang
  - lib_md_digest_length
  - lib_md_init
  - lib_md_init_copy
  - lib_md_reset
  - lib_md_update
  - lib_hmac_block_length
  - lib_hmac_digest
  - lib_hmac_digest_length
  - lib_hmac_init
  - lib_hmac_update
  - basecheck
  - mrb_digest_block_length
  - mrb_digest_digest
  - mrb_digest_digest_bang
  - mrb_digest_digest_length
  - digest2hexdigest
  - mrb_digest_hexdigest
  - mrb_digest_init
  - mrb_digest_init_copy
  - mrb_digest_reset
  - mrb_digest_update
  - mrb_hmac_block_length
  - mrb_hmac_digest
  - mrb_hmac_digest_length
  - mrb_hmac_hexdigest
  - mrb_hmac_init
  - mrb_hmac_init_copy
  - mrb_hmac_update
  - mrb_mruby_digest_gem_init
  - DEFCLASS
  - mrb_mruby_digest_gem_final
  source_file: /src/h2o/deps/mruby-digest/src/digest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPESYM
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
      type_or_value: '"__type__"'
    - item_type: preproc_def
      name: MAX_DIGEST_LENGTH
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
      type_or_value: CC_SHA512_DIGEST_LENGTH
    structs:
    - fields:
      - name: ctx
        type: picohash_ctx_t
      item_type: struct
      name: mrb_md
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    - fields:
      - name: ctx
        type: picohash_ctx_t
      item_type: struct
      name: mrb_hmac
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    - fields:
      - name: '*ctx'
        type: EVP_MD_CTX
      item_type: struct
      name: mrb_md
      pos:
        line_end: 258
        line_start: 256
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    - fields:
      - name: ctx
        type: HMAC_CTX
      - name: '*md'
        type: EVP_MD
      item_type: struct
      name: mrb_hmac
      pos:
        line_end: 263
        line_start: 260
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    - fields:
      - name: type
        type: int
      - name: '*ctx'
        type: void
      - name: ctx_size
        type: int
      item_type: struct
      name: mrb_md
      pos:
        line_end: 456
        line_start: 452
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    - fields:
      - name: type
        type: int
      - name: ctx
        type: CCHmacContext
      item_type: struct
      name: mrb_hmac
      pos:
        line_end: 461
        line_start: 458
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
    typedefs: []
    union:
    - fields:
      - name: md5
        type: CC_MD5_CTX
      - name: sha1
        type: CC_SHA1_CTX
      - name: sha256
        type: CC_SHA256_CTX
      - name: sha512
        type: CC_SHA512_CTX
      item_type: union
      name: ctx_union
      pos:
        line_end: 506
        line_start: 500
        source_file: /src/h2o/deps/mruby-digest/src/digest.c
- function_names: []
  source_file: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*mrb_input_stream_free_callback)(mrb_state *mrb, const char *base, mrb_int
        len, void *cb_data)
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.h
      type: void
    union: []
- function_names:
  - assert_is_open
  - mrb_input_stream_init
  - default_free_cb
  - mrb_mruby_input_stream_free
  - setup_stream
  - mrb_input_stream_create
  - mrb_input_stream_value
  - mrb_input_stream_get_data
  - mrb_input_stream_set_data
  - mrb_input_stream_gets
  - seek_char
  - mrb_input_stream_read
  - mrb_input_stream_rewind
  - mrb_input_stream_byteindex
  - mrb_mruby_input_stream_gem_init
  - mrb_mruby_input_stream_gem_final
  source_file: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*base'
        type: char
      - name: len
        type: mrb_int
      - name: pos
        type: mrb_int
      - name: free_cb
        type: mrb_input_stream_free_callback
      - name: '*free_cb_data'
        type: void
      item_type: struct
      name: mrb_input_stream_t
      pos:
        line_end: 13
        line_start: 7
        source_file: /src/h2o/deps/mruby-input-stream/src/mruby_input_stream.c
    typedefs: []
    union: []
- function_names:
  - htobe16
  - htole16
  - be16toh
  - le16toh
  - htobe32
  - htole32
  - be32toh
  - le32toh
  - htobe64
  - htole64
  - be64toh
  - le64toh
  - htobe16
  - htole16
  - be16toh
  - le16toh
  - htobe32
  - htole32
  - be32toh
  - le32toh
  - htobe64
  - htole64
  - be64toh
  - le64toh
  source_file: /src/h2o/deps/libyrmcds/yrmcds_portability.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/libyrmcds/yrmcds_text.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - version
  - usage
  - print_response
  - write_data
  - read_data
  - CHECK_ERROR
  - CHECK_RESPONSE
  - cmd_noop
  - cmd_get
  - cmd_getk
  - cmd_gat
  - cmd_gatk
  - cmd_lag
  - cmd_lagk
  - cmd_touch
  - cmd_set
  - cmd_replace
  - cmd_add
  - cmd_rau
  - cmd_incr
  - cmd_decr
  - cmd_append
  - cmd_prepend
  - cmd_delete
  - cmd_lock
  - cmd_unlock
  - cmd_unlockall
  - cmd_flush
  - cmd_stat
  - cmd_keys
  - cmd_version
  - cmd_quit
  - main
  - do_cmd
  source_file: /src/h2o/deps/libyrmcds/yc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yrmcds_shutdown
  - yrmcds_fileno
  - yrmcds_set_timeout
  source_file: /src/h2o/deps/libyrmcds/socket.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hton64
  - hton32
  - hton16
  - send_command
  - send_data
  - yrmcds_noop
  - yrmcds_get
  - yrmcds_getk
  - yrmcds_get_touch
  - yrmcds_getk_touch
  - yrmcds_lock_get
  - yrmcds_lock_getk
  - yrmcds_touch
  - yrmcds_set
  - yrmcds_replace
  - yrmcds_add
  - yrmcds_replace_unlock
  - yrmcds_incr
  - yrmcds_incr2
  - yrmcds_decr
  - yrmcds_decr2
  - yrmcds_append
  - yrmcds_prepend
  - yrmcds_remove
  - yrmcds_lock
  - yrmcds_unlock
  - yrmcds_unlockall
  - yrmcds_flush
  - yrmcds_stat_general
  - yrmcds_stat_settings
  - yrmcds_stat_items
  - yrmcds_stat_sizes
  - yrmcds_keys
  - yrmcds_version
  - yrmcds_quit
  source_file: /src/h2o/deps/libyrmcds/send.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yrmcds_close
  source_file: /src/h2o/deps/libyrmcds/close.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yrmcds_strerror
  source_file: /src/h2o/deps/libyrmcds/strerror.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - recv_data
  - ntoh64
  - ntoh32
  - ntoh16
  - yrmcds_recv
  - PARSE_UINT
  - text_recv
  source_file: /src/h2o/deps/libyrmcds/recv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - recv_or_die
  - cmd_noop
  - cmd_get
  - cmd_acquire
  - cmd_release
  - cmd_stats
  - cmd_dump
  - usage
  - main
  source_file: /src/h2o/deps/libyrmcds/yc-cnt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yrmcds_set_compression
  source_file: /src/h2o/deps/libyrmcds/set_compression.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EXPAND_STR
  - hton32
  - check_key
  - textbuf_length
  - textbuf_init
  - textbuf_append_char
  - textbuf_append_string
  - textbuf_append_const_string
  - textbuf_append_uint64
  - send_command
  - send_data
  - yrmcds_text_get
  - yrmcds_text_touch
  - yrmcds_text_set
  - yrmcds_text_replace
  - yrmcds_text_add
  - yrmcds_text_append
  - yrmcds_text_prepend
  - yrmcds_text_incr
  - yrmcds_text_decr
  - yrmcds_text_remove
  - yrmcds_text_flush
  - yrmcds_text_version
  - yrmcds_text_quit
  source_file: /src/h2o/deps/libyrmcds/send_text.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_KEY_LENGTH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/h2o/deps/libyrmcds/send_text.c
      type_or_value: 250  // from memcached spec.
    - item_type: preproc_def
      name: TEXTBUF_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/h2o/deps/libyrmcds/send_text.c
      type_or_value: 1000  // enough for any command & parameters.
    structs:
    - fields:
      - name: '* pos'
        type: char
      - name: buffer[TEXTBUF_SIZE]
        type: char
      item_type: struct
      name: textbuf_t
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/h2o/deps/libyrmcds/send_text.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/libyrmcds/yrmcds.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBYRMCDS_VERSION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
      type_or_value: '"1.3.0"'
    - item_type: preproc_def
      name: LIBYRMCDS_VERSION_NUMBER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
      type_or_value: '10300'
    structs:
    - fields:
      - name: sock
        type: int
      - name: lock
        type: pthread_mutex_t
      - name: serial
        type: uint32_t
      - name: compress_size
        type: size_t
      - name: '*  recvbuf'
        type: char
      - name: capacity
        type: size_t
      - name: used
        type: size_t
      - name: last_size
        type: size_t
      - name: '*  decompressed'
        type: char
      - name: invalid
        type: int
      - name: text_mode
        type: int
      - name: rserial
        type: uint32_t
      item_type: struct
      name: yrmcds
      pos:
        line_end: 46
        line_start: 27
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    - fields:
      - name: serial
        type: uint32_t
      - name: length
        type: size_t
      - name: status
        type: yrmcds_status
      - name: command
        type: yrmcds_command
      - name: cas_unique
        type: uint64_t
      - name: flags
        type: uint32_t
      - name: '* key'
        type: char
      - name: key_len
        type: size_t
      - name: '* data'
        type: char
      - name: data_len
        type: size_t
      - name: value
        type: uint64_t
      item_type: struct
      name: yrmcds_response
      pos:
        line_end: 140
        line_start: 128
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    - fields:
      - name: '* name'
        type: char
      - name: name_length
        type: size_t
      - name: '* value'
        type: char
      - name: value_length
        type: size_t
      item_type: struct
      name: yrmcds_cnt_stat
      pos:
        line_end: 827
        line_start: 822
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    - fields:
      - name: '* records'
        type: yrmcds_cnt_stat
      - name: count
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: yrmcds_cnt_statistics
      pos:
        line_end: 836
        line_start: 832
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: stats
        type: yrmcds_cnt_statistics
      - name: '* recvbuf'
        type: char
      - name: capacity
        type: size_t
      - name: used
        type: size_t
      - name: last_size
        type: size_t
      - name: sock
        type: int
      - name: invalid
        type: int
      - name: serial
        type: uint32_t
      item_type: struct
      name: yrmcds_cnt
      pos:
        line_end: 851
        line_start: 841
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    - fields:
      - name: '* stats'
        type: yrmcds_cnt_statistics
      - name: '* body'
        type: char
      - name: body_length
        type: size_t
      - name: '* name'
        type: char
      - name: name_length
        type: size_t
      - name: serial
        type: uint32_t
      - name: resources
        type: uint32_t
      - name: current_consumption
        type: uint32_t
      - name: max_consumption
        type: uint32_t
      - name: status
        type: uint8_t
      - name: command
        type: uint8_t
      item_type: struct
      name: yrmcds_cnt_response
      pos:
        line_end: 893
        line_start: 881
        source_file: /src/h2o/deps/libyrmcds/yrmcds.h
    typedefs: []
    union: []
- function_names:
  - connect_to_server
  - yrmcds_connect
  - yrmcds_cnt_connect
  source_file: /src/h2o/deps/libyrmcds/connect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AI_V4MAPPED
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/h2o/deps/libyrmcds/connect.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - yrmcds_text_mode
  source_file: /src/h2o/deps/libyrmcds/text_mode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hton32
  - hton16
  - ntoh32
  - ntoh16
  - yrmcds_cnt_set_timeout
  - yrmcds_cnt_close
  - yrmcds_cnt_shutdown
  - yrmcds_cnt_fileno
  - recv_data
  - append_stat
  - parse_statistics
  - parse_dump_record
  - yrmcds_cnt_recv
  - send_command
  - yrmcds_cnt_noop
  - yrmcds_cnt_get
  - yrmcds_cnt_acquire
  - yrmcds_cnt_release
  - yrmcds_cnt_stats
  - yrmcds_cnt_dump
  source_file: /src/h2o/deps/libyrmcds/counter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_error
  - get_yrmcds
  - TEST_MAIN
  - main
  - DEF_TEST
  - CALL_TEST
  - ASSERT
  source_file: /src/h2o/deps/libyrmcds/t/t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - DEF_TEST
  - TEST_MAIN
  source_file: /src/h2o/deps/libyrmcds/t/text.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_error
  - check_response
  - main
  source_file: /src/h2o/deps/libyrmcds/example/memcache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_error
  - check_response
  - main
  source_file: /src/h2o/deps/libyrmcds/example/counter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - class_allocate
  - mrb_mruby_class_new_fiber_safe_gem_init
  - mrb_mruby_class_new_fiber_safe_gem_final
  source_file: /src/h2o/deps/mruby-class-new-fiber-safe/src/class-new-fiber-safe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mrb_dirtest_teardown
  - mrb_dirtest_sandbox
  - mrb_mruby_dir_gem_test
  source_file: /src/h2o/deps/mruby-dir/test/dirtest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S_ISDIR
  - mrb_dir_free
  - mrb_dir_close
  - mrb_dir_init
  - mrb_dir_delete
  - mrb_dir_existp
  - mrb_dir_getwd
  - mrb_dir_chdir
  - mrb_dir_chroot
  - mrb_dir_read
  - mrb_dir_rewind
  - mrb_dir_seek
  - mrb_dir_tell
  - mrb_mruby_dir_gem_init
  source_file: /src/h2o/deps/mruby-dir/src/dir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: MAX_PATH
    - item_type: preproc_def
      name: rmdir
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: _rmdir
    - item_type: preproc_def
      name: getcwd
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: _getcwd
    - item_type: preproc_def
      name: mkdir
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: _mkdir
    - item_type: preproc_def
      name: chdir
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: _chdir
    - item_type: preproc_def
      name: E_IO_ERROR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
      type_or_value: E_RUNTIME_ERROR
    structs:
    - fields:
      - name: '*dir'
        type: DIR
      item_type: struct
      name: mrb_dir
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/h2o/deps/mruby-dir/src/dir.c
    typedefs: []
    union: []
- function_names:
  - opendir
  - closedir
  - readdir
  - rewinddir
  source_file: /src/h2o/deps/mruby-dir/src/Win/dirent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*d_name'
        type: char
      item_type: struct
      name: dirent
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    - fields:
      - name: handle
        type: handle_type
      - name: info
        type: struct _finddata_t
      - name: result
        type: struct dirent
      - name: '*name'
        type: char
      item_type: struct
      name: DIR
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/h2o/deps/mruby-dir/src/Win/dirent.c
    typedefs:
    - item_type: typedef
      name: handle_type
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/h2o/deps/mruby-dir/src/Win/dirent.c
      type: ptrdiff_t
    - item_type: typedef
      name: DIR
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/h2o/deps/mruby-dir/src/Win/dirent.c
      type: DIR
    union: []
- function_names:
  - list_empty
  - list_init
  - list_del
  - list_add
  - list_add_tail
  - offsetof
  - offsetof
  - container_of
  - ullog2
  - list_to_tuple
  - gkc_summary_init
  - gkc_summary_alloc
  - gkc_sanity_check
  - gkc_alloc
  - gkc_free
  - gkc_summary_free
  - gkc_query
  - band
  - gkc_compress
  - gkc_insert_value
  - gkc_print_summary
  - gkc_combine
  source_file: /src/h2o/deps/libgkc/gkc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*prev'
        type: struct list
      item_type: struct
      name: list
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/h2o/deps/libgkc/gkc.c
    - fields:
      - name: nr_elems
        type: size_t
      - name: epsilon
        type: double
      - name: alloced
        type: uint64_t
      - name: max_alloced
        type: uint64_t
      - name: head
        type: struct list
      - name: '*fl'
        type: struct freelist
      item_type: struct
      name: gkc_summary
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/h2o/deps/libgkc/gkc.c
    - fields:
      - name: '*next'
        type: struct freelist
      item_type: struct
      name: freelist
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/h2o/deps/libgkc/gkc.c
    - fields:
      - name: value
        type: uint64_t
      - name: g
        type: double
      - name: delta
        type: uint64_t
      - name: node
        type: struct list
      item_type: struct
      name: gkc_tuple
      pos:
        line_end: 118
        line_start: 113
        source_file: /src/h2o/deps/libgkc/gkc.c
    typedefs: []
    union: []
- function_names:
  - print_query
  - main
  - ARRAY_SIZE
  source_file: /src/h2o/deps/libgkc/test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: tofile
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/libgkc/test.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/libgkc/gkc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLSessionDelegate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPPinnedNSURLConnectionDelegate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinning/ISPCertificatePinning.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/ssl-conservatory/ios/SSLCertificatePinning/SSLCertificatePinningTests/SSLPinsTestUtility.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - send_http_get_and_print
  - main
  source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TARGET_HOST
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
      type_or_value: '"www.isecpartners.com"'
    - item_type: preproc_def
      name: TARGET_PORT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
      type_or_value: '"443"'
    - item_type: preproc_def
      name: TRUSTED_CA_PATHNAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
      type_or_value: '"DigiCertHighAssuranceEVRootCA.pem"'
    - item_type: preproc_def
      name: TARGET_SERVER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
      type_or_value: TARGET_HOST":"TARGET_PORT
    - item_type: preproc_def
      name: SECURE_CIPHER_LIST
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/deps/ssl-conservatory/openssl/test_client.c
      type_or_value: '"RC4-SHA:HIGH:!ADH:!AECDH:!CAMELLIA"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_HOSTNAME_VALIDATION_LINKAGE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.h
      type_or_value: extern
    structs: []
    typedefs: []
    union: []
- function_names:
  - lowercase
  - memeq_ncase
  - has_nul
  - validate_name
  - matches_common_name
  - matches_subject_alternative_name
  - validate_hostname
  source_file: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTNAME_MAX_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/h2o/deps/ssl-conservatory/openssl/openssl_hostname_validation.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - print_escaped
  - usage
  source_file: /src/h2o/deps/yaml/tests/run-parser-test-suite.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/run-parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_document
  - compare_nodes
  - compare_documents
  - print_output
  - main
  source_file: /src/h2o/deps/yaml/tests/run-dumper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_DOCUMENTS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/yaml/tests/run-dumper.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/test-version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/run-scanner.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/example-reformatter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/example-reformatter-alt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_event
  - compare_events
  - print_output
  - main
  source_file: /src/h2o/deps/yaml/tests/run-emitter.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_EVENTS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/h2o/deps/yaml/tests/run-emitter.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/example-deconstructor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_utf8_sequences
  - check_boms
  - check_long_utf8
  - check_long_utf16
  - main
  source_file: /src/h2o/deps/yaml/tests/test-reader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LONG
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/h2o/deps/yaml/tests/test-reader.c
      type_or_value: '100000'
    structs:
    - fields:
      - name: '*title'
        type: char
      - name: '*test'
        type: char
      - name: result
        type: int
      item_type: struct
      name: test_case
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/h2o/deps/yaml/tests/test-reader.c
    typedefs: []
    union: []
- function_names:
  - main
  - get_line
  - get_anchor
  - get_tag
  - get_value
  - usage
  source_file: /src/h2o/deps/yaml/tests/run-emitter-test-suite.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/run-loader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/h2o/deps/yaml/tests/example-deconstructor-alt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PEEK_TOKEN
  - SKIP_TOKEN
  - yaml_parser_parse
  - yaml_parser_set_parser_error
  - yaml_parser_set_parser_error_context
  - yaml_parser_state_machine
  - yaml_parser_parse_stream_start
  - yaml_parser_parse_document_start
  - yaml_parser_parse_document_content
  - yaml_parser_parse_document_end
  - yaml_parser_parse_node
  - yaml_parser_parse_block_sequence_entry
  - yaml_parser_parse_indentless_sequence_entry
  - yaml_parser_parse_block_mapping_key
  - yaml_parser_parse_block_mapping_value
  - yaml_parser_parse_flow_sequence_entry
  - yaml_parser_parse_flow_sequence_entry_mapping_key
  - yaml_parser_parse_flow_sequence_entry_mapping_value
  - yaml_parser_parse_flow_sequence_entry_mapping_end
  - yaml_parser_parse_flow_mapping_key
  - yaml_parser_parse_flow_mapping_value
  - yaml_parser_process_empty_scalar
  - yaml_parser_process_directives
  - yaml_parser_append_tag_directive
  source_file: /src/h2o/deps/yaml/src/parser.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*start'
        type: yaml_tag_directive_t
      - name: '*end'
        type: yaml_tag_directive_t
      item_type: struct
      name: tag_directives = { NULL, NULL }
      pos:
        line_end: 349
        line_start: 346
        source_file: /src/h2o/deps/yaml/src/parser.c
    - fields:
      - name: '*start'
        type: yaml_tag_directive_t
      - name: '*end'
        type: yaml_tag_directive_t
      - name: '*top'
        type: yaml_tag_directive_t
      item_type: struct
      name: tag_directives = { NULL, NULL, NULL }
      pos:
        line_end: 1244
        line_start: 1240
        source_file: /src/h2o/deps/yaml/src/parser.c
    typedefs: []
    union: []
- function_names:
  - FLUSH
  - PUT
  - PUT_BREAK
  - WRITE
  - WRITE_BREAK
  - yaml_emitter_set_emitter_error
  - yaml_emitter_emit
  - yaml_emitter_need_more_events
  - yaml_emitter_append_tag_directive
  - yaml_emitter_increase_indent
  - yaml_emitter_state_machine
  - yaml_emitter_emit_stream_start
  - yaml_emitter_emit_document_start
  - yaml_emitter_emit_document_content
  - yaml_emitter_emit_document_end
  - yaml_emitter_emit_flow_sequence_item
  - yaml_emitter_emit_flow_mapping_key
  - yaml_emitter_emit_flow_mapping_value
  - yaml_emitter_emit_block_sequence_item
  - yaml_emitter_emit_block_mapping_key
  - yaml_emitter_emit_block_mapping_value
  - yaml_emitter_emit_node
  - yaml_emitter_emit_alias
  - yaml_emitter_emit_scalar
  - yaml_emitter_emit_sequence_start
  - yaml_emitter_emit_mapping_start
  - yaml_emitter_check_empty_document
  - yaml_emitter_check_empty_sequence
  - yaml_emitter_check_empty_mapping
  - yaml_emitter_check_simple_key
  - yaml_emitter_select_scalar_style
  - yaml_emitter_process_anchor
  - yaml_emitter_process_tag
  - yaml_emitter_process_scalar
  - yaml_emitter_analyze_version_directive
  - yaml_emitter_analyze_tag_directive
  - yaml_emitter_analyze_anchor
  - yaml_emitter_analyze_tag
  - yaml_emitter_analyze_scalar
  - yaml_emitter_analyze_event
  - yaml_emitter_write_bom
  - yaml_emitter_write_indent
  - yaml_emitter_write_indicator
  - yaml_emitter_write_anchor
  - yaml_emitter_write_tag_handle
  - yaml_emitter_write_tag_content
  - yaml_emitter_write_plain_scalar
  - yaml_emitter_write_single_quoted_scalar
  - yaml_emitter_write_double_quoted_scalar
  - yaml_emitter_write_block_scalar_hints
  - yaml_emitter_write_literal_scalar
  - yaml_emitter_write_folded_scalar
  source_file: /src/h2o/deps/yaml/src/emitter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yaml_emitter_set_writer_error
  - yaml_emitter_flush
  source_file: /src/h2o/deps/yaml/src/writer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CACHE
  - SKIP
  - SKIP_LINE
  - READ
  - READ_LINE
  - yaml_parser_set_scanner_error
  - yaml_parser_fetch_more_tokens
  - yaml_parser_fetch_next_token
  - yaml_parser_stale_simple_keys
  - yaml_parser_save_simple_key
  - yaml_parser_remove_simple_key
  - yaml_parser_increase_flow_level
  - yaml_parser_decrease_flow_level
  - yaml_parser_roll_indent
  - yaml_parser_unroll_indent
  - yaml_parser_fetch_stream_start
  - yaml_parser_fetch_stream_end
  - yaml_parser_fetch_directive
  - yaml_parser_fetch_document_indicator
  - yaml_parser_fetch_flow_collection_start
  - yaml_parser_fetch_flow_collection_end
  - yaml_parser_fetch_flow_entry
  - yaml_parser_fetch_block_entry
  - yaml_parser_fetch_key
  - yaml_parser_fetch_value
  - yaml_parser_fetch_anchor
  - yaml_parser_fetch_tag
  - yaml_parser_fetch_block_scalar
  - yaml_parser_fetch_flow_scalar
  - yaml_parser_fetch_plain_scalar
  - yaml_parser_scan_to_next_token
  - yaml_parser_scan_directive
  - yaml_parser_scan_directive_name
  - yaml_parser_scan_version_directive_value
  - yaml_parser_scan_version_directive_number
  - yaml_parser_scan_tag_directive_value
  - yaml_parser_scan_anchor
  - yaml_parser_scan_tag
  - yaml_parser_scan_tag_handle
  - yaml_parser_scan_tag_uri
  - yaml_parser_scan_uri_escapes
  - yaml_parser_scan_block_scalar
  - yaml_parser_scan_block_scalar_breaks
  - yaml_parser_scan_flow_scalar
  - yaml_parser_scan_plain_scalar
  source_file: /src/h2o/deps/yaml/src/scanner.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NUMBER_LENGTH
      pos:
        line_end: 2197
        line_start: 2196
        source_file: /src/h2o/deps/yaml/src/scanner.c
      type_or_value: '9'
    structs: []
    typedefs: []
    union: []
- function_names:
  - yaml_get_version_string
  - yaml_get_version
  - yaml_malloc
  - yaml_realloc
  - yaml_free
  - yaml_strdup
  - yaml_string_extend
  - yaml_string_join
  - yaml_stack_extend
  - yaml_queue_extend
  - yaml_parser_initialize
  - yaml_parser_delete
  - yaml_string_read_handler
  - yaml_file_read_handler
  - yaml_parser_set_input_string
  - yaml_parser_set_input_file
  - yaml_parser_set_input
  - yaml_parser_set_encoding
  - yaml_emitter_initialize
  - yaml_emitter_delete
  - yaml_string_write_handler
  - yaml_file_write_handler
  - yaml_emitter_set_output_string
  - yaml_emitter_set_output_file
  - yaml_emitter_set_output
  - yaml_emitter_set_encoding
  - yaml_emitter_set_canonical
  - yaml_emitter_set_indent
  - yaml_emitter_set_width
  - yaml_emitter_set_unicode
  - yaml_emitter_set_break
  - yaml_token_delete
  - yaml_check_utf8
  - yaml_stream_start_event_initialize
  - yaml_stream_end_event_initialize
  - yaml_document_start_event_initialize
  - yaml_document_end_event_initialize
  - yaml_alias_event_initialize
  - yaml_scalar_event_initialize
  - yaml_sequence_start_event_initialize
  - yaml_sequence_end_event_initialize
  - yaml_mapping_start_event_initialize
  - yaml_mapping_end_event_initialize
  - yaml_event_delete
  - yaml_document_initialize
  - yaml_document_delete
  - yaml_document_get_node
  - yaml_document_get_root_node
  - yaml_document_add_scalar
  - yaml_document_add_sequence
  - yaml_document_add_mapping
  - yaml_document_append_sequence_item
  - yaml_document_append_mapping_pair
  source_file: /src/h2o/deps/yaml/src/api.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 709
        line_start: 707
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: '*start'
        type: yaml_tag_directive_t
      - name: '*end'
        type: yaml_tag_directive_t
      - name: '*top'
        type: yaml_tag_directive_t
      item_type: struct
      name: tag_directives_copy = { NULL, NULL, NULL }
      pos:
        line_end: 716
        line_start: 712
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1043
        line_start: 1041
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: '*start'
        type: yaml_node_t
      - name: '*end'
        type: yaml_node_t
      - name: '*top'
        type: yaml_node_t
      item_type: struct
      name: nodes = { NULL, NULL, NULL }
      pos:
        line_end: 1048
        line_start: 1044
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: '*start'
        type: yaml_tag_directive_t
      - name: '*end'
        type: yaml_tag_directive_t
      - name: '*top'
        type: yaml_tag_directive_t
      item_type: struct
      name: tag_directives_copy = { NULL, NULL, NULL }
      pos:
        line_end: 1054
        line_start: 1050
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1200
        line_start: 1198
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1249
        line_start: 1247
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: '*start'
        type: yaml_node_item_t
      - name: '*end'
        type: yaml_node_item_t
      - name: '*top'
        type: yaml_node_item_t
      item_type: struct
      name: items = { NULL, NULL, NULL }
      pos:
        line_end: 1256
        line_start: 1252
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1294
        line_start: 1292
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: '*start'
        type: yaml_node_pair_t
      - name: '*end'
        type: yaml_node_pair_t
      - name: '*top'
        type: yaml_node_pair_t
      item_type: struct
      name: pairs = { NULL, NULL, NULL }
      pos:
        line_end: 1301
        line_start: 1297
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1339
        line_start: 1337
        source_file: /src/h2o/deps/yaml/src/api.c
    - fields:
      - name: error
        type: yaml_error_type_t
      item_type: struct
      name: context
      pos:
        line_end: 1367
        line_start: 1365
        source_file: /src/h2o/deps/yaml/src/api.c
    typedefs: []
    union: []
- function_names:
  - yaml_parser_set_reader_error
  - yaml_parser_determine_encoding
  - yaml_parser_update_raw_buffer
  - yaml_parser_update_buffer
  source_file: /src/h2o/deps/yaml/src/reader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOM_UTF8
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/deps/yaml/src/reader.c
      type_or_value: '"\xef\xbb\xbf"'
    - item_type: preproc_def
      name: BOM_UTF16LE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/deps/yaml/src/reader.c
      type_or_value: '"\xff\xfe"'
    - item_type: preproc_def
      name: BOM_UTF16BE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/yaml/src/reader.c
      type_or_value: '"\xfe\xff"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - yaml_emitter_open
  - yaml_emitter_close
  - yaml_emitter_dump
  - yaml_emitter_delete_document_and_anchors
  - yaml_emitter_anchor_node
  - yaml_emitter_generate_anchor
  - yaml_emitter_dump_node
  - yaml_emitter_dump_alias
  - yaml_emitter_dump_scalar
  - yaml_emitter_dump_sequence
  - yaml_emitter_dump_mapping
  source_file: /src/h2o/deps/yaml/src/dumper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ANCHOR_TEMPLATE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/h2o/deps/yaml/src/dumper.c
      type_or_value: '"id%03d"'
    - item_type: preproc_def
      name: ANCHOR_TEMPLATE_LENGTH
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/h2o/deps/yaml/src/dumper.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUFFER_INIT
  - BUFFER_DEL
  - STRING
  - STRING_ASSIGN
  - STRING_INIT
  - STRING_DEL
  - STRING_EXTEND
  - CLEAR
  - JOIN
  - CHECK_AT
  - CHECK
  - IS_ALPHA_AT
  - IS_ALPHA
  - IS_DIGIT_AT
  - IS_DIGIT
  - AS_DIGIT_AT
  - AS_DIGIT
  - IS_HEX_AT
  - IS_HEX
  - AS_HEX_AT
  - AS_HEX
  - IS_ASCII_AT
  - IS_ASCII
  - IS_PRINTABLE
  - IS_Z_AT
  - IS_Z
  - IS_BOM_AT
  - IS_BOM
  - IS_SPACE_AT
  - IS_SPACE
  - IS_TAB_AT
  - IS_TAB
  - IS_BLANK_AT
  - IS_BLANK
  - IS_BREAK_AT
  - IS_BREAK
  - IS_CRLF_AT
  - IS_CRLF
  - IS_BREAKZ_AT
  - IS_BREAKZ
  - IS_SPACEZ_AT
  - IS_SPACEZ
  - IS_BLANKZ_AT
  - IS_BLANKZ
  - WIDTH_AT
  - WIDTH
  - MOVE
  - COPY
  - STACK_INIT
  - STACK_DEL
  - STACK_EMPTY
  - STACK_LIMIT
  - PUSH
  - POP
  - QUEUE_INIT
  - QUEUE_DEL
  - QUEUE_EMPTY
  - ENQUEUE
  - DEQUEUE
  - QUEUE_INSERT
  - TOKEN_INIT
  - STREAM_START_TOKEN_INIT
  - STREAM_END_TOKEN_INIT
  - ALIAS_TOKEN_INIT
  - ANCHOR_TOKEN_INIT
  - TAG_TOKEN_INIT
  - SCALAR_TOKEN_INIT
  - VERSION_DIRECTIVE_TOKEN_INIT
  - TAG_DIRECTIVE_TOKEN_INIT
  - EVENT_INIT
  - STREAM_START_EVENT_INIT
  - STREAM_END_EVENT_INIT
  - DOCUMENT_START_EVENT_INIT
  - DOCUMENT_END_EVENT_INIT
  - ALIAS_EVENT_INIT
  - SCALAR_EVENT_INIT
  - SEQUENCE_START_EVENT_INIT
  - SEQUENCE_END_EVENT_INIT
  - MAPPING_START_EVENT_INIT
  - MAPPING_END_EVENT_INIT
  - DOCUMENT_INIT
  - NODE_INIT
  - SCALAR_NODE_INIT
  - SEQUENCE_NODE_INIT
  - MAPPING_NODE_INIT
  - SHIM
  - UNUSED_PARAM
  - UNUSED_PARAM
  - YAML_MALLOC_STATIC
  - YAML_MALLOC
  source_file: /src/h2o/deps/yaml/src/yaml_private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YAML_VERSION_MAJOR
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: YAML_VERSION_MINOR
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '2'
    - item_type: preproc_def
      name: YAML_VERSION_PATCH
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '5'
    - item_type: preproc_def
      name: YAML_VERSION_STRING
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '"0.2.5"'
    - item_type: preproc_def
      name: INPUT_RAW_BUFFER_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: INPUT_BUFFER_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: (INPUT_RAW_BUFFER_SIZE*3)
    - item_type: preproc_def
      name: OUTPUT_BUFFER_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: OUTPUT_RAW_BUFFER_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: (OUTPUT_BUFFER_SIZE*2+2)
    - item_type: preproc_def
      name: MAX_FILE_SIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: (~(size_t)0 / 2)
    - item_type: preproc_def
      name: INITIAL_STACK_SIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '16'
    - item_type: preproc_def
      name: INITIAL_QUEUE_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '16'
    - item_type: preproc_def
      name: INITIAL_STRING_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NULL_STRING
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: '{ NULL, NULL, NULL }'
    - item_type: preproc_def
      name: __attribute__unused__
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
      type_or_value: __attribute__((__unused__))
    structs:
    - fields:
      - name: '*start'
        type: yaml_char_t
      - name: '*end'
        type: yaml_char_t
      - name: '*pointer'
        type: yaml_char_t
      item_type: struct
      name: yaml_string_t
      pos:
        line_end: 112
        line_start: 108
        source_file: /src/h2o/deps/yaml/src/yaml_private.h
    typedefs: []
    union: []
- function_names:
  - yaml_parser_load
  - yaml_parser_set_composer_error
  - yaml_parser_set_composer_error_context
  - yaml_parser_delete_aliases
  - yaml_parser_load_document
  - yaml_parser_load_nodes
  - yaml_parser_register_anchor
  - yaml_parser_load_node_add
  - yaml_parser_load_alias
  - yaml_parser_load_scalar
  - yaml_parser_load_sequence
  - yaml_parser_load_sequence_end
  - yaml_parser_load_mapping
  - yaml_parser_load_mapping_end
  source_file: /src/h2o/deps/yaml/src/loader.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*start'
        type: int
      - name: '*end'
        type: int
      - name: '*top'
        type: int
      item_type: struct
      name: loader_ctx
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/h2o/deps/yaml/src/loader.c
    - fields:
      - name: '*start'
        type: yaml_node_item_t
      - name: '*end'
        type: yaml_node_item_t
      - name: '*top'
        type: yaml_node_item_t
      item_type: struct
      name: items = { NULL, NULL, NULL }
      pos:
        line_end: 422
        line_start: 418
        source_file: /src/h2o/deps/yaml/src/loader.c
    - fields:
      - name: '*start'
        type: yaml_node_pair_t
      - name: '*end'
        type: yaml_node_pair_t
      - name: '*top'
        type: yaml_node_pair_t
      item_type: struct
      name: pairs = { NULL, NULL, NULL }
      pos:
        line_end: 490
        line_start: 486
        source_file: /src/h2o/deps/yaml/src/loader.c
    typedefs: []
    union: []
- function_names:
  - YAML_DECLARE
  source_file: /src/h2o/deps/yaml/include/yaml.h
  types:
    enum:
    - enumerators:
      - name: YAML_ANY_ENCODING
      - name: YAML_UTF16LE_ENCODING
      - name: YAML_UTF8_ENCODING
      - name: YAML_UTF16BE_ENCODING
      item_type: enum
      name: yaml_encoding_e
      pos:
        line_end: 95
        line_start: 86
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_ANY_BREAK
      - name: YAML_CRLN_BREAK
      - name: YAML_LN_BREAK
      - name: YAML_CR_BREAK
      item_type: enum
      name: yaml_break_e
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_NO_ERROR
      - name: YAML_READER_ERROR
      - name: YAML_MEMORY_ERROR
      - name: YAML_PARSER_ERROR
      - name: YAML_SCANNER_ERROR
      - name: YAML_COMPOSER_ERROR
      - name: YAML_WRITER_ERROR
      - name: YAML_EMITTER_ERROR
      item_type: enum
      name: yaml_error_type_e
      pos:
        line_end: 131
        line_start: 111
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_ANY_SCALAR_STYLE
      - name: YAML_LITERAL_SCALAR_STYLE
      - name: YAML_DOUBLE_QUOTED_SCALAR_STYLE
      - name: YAML_SINGLE_QUOTED_SCALAR_STYLE
      - name: YAML_PLAIN_SCALAR_STYLE
      - name: YAML_FOLDED_SCALAR_STYLE
      item_type: enum
      name: yaml_scalar_style_e
      pos:
        line_end: 169
        line_start: 153
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_ANY_SEQUENCE_STYLE
      - name: YAML_FLOW_SEQUENCE_STYLE
      - name: YAML_BLOCK_SEQUENCE_STYLE
      item_type: enum
      name: yaml_sequence_style_e
      pos:
        line_end: 180
        line_start: 172
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_ANY_MAPPING_STYLE
      - name: YAML_FLOW_MAPPING_STYLE
      - name: YAML_BLOCK_MAPPING_STYLE
      item_type: enum
      name: yaml_mapping_style_e
      pos:
        line_end: 192
        line_start: 183
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_SCALAR_TOKEN
      - name: YAML_STREAM_START_TOKEN
      - name: YAML_VERSION_DIRECTIVE_TOKEN
      - name: YAML_DOCUMENT_START_TOKEN
      - name: YAML_BLOCK_SEQUENCE_START_TOKEN
      - name: YAML_BLOCK_END_TOKEN
      - name: YAML_FLOW_SEQUENCE_END_TOKEN
      - name: YAML_FLOW_ENTRY_TOKEN
      - name: YAML_FLOW_MAPPING_END_TOKEN
      - name: YAML_VALUE_TOKEN
      - name: YAML_ANCHOR_TOKEN
      - name: YAML_TAG_TOKEN
      - name: YAML_NO_TOKEN
      - name: YAML_TAG_DIRECTIVE_TOKEN
      - name: YAML_STREAM_END_TOKEN
      - name: YAML_DOCUMENT_END_TOKEN
      - name: YAML_BLOCK_MAPPING_START_TOKEN
      - name: YAML_KEY_TOKEN
      - name: YAML_ALIAS_TOKEN
      - name: YAML_FLOW_SEQUENCE_START_TOKEN
      - name: YAML_BLOCK_ENTRY_TOKEN
      - name: YAML_FLOW_MAPPING_START_TOKEN
      item_type: enum
      name: yaml_token_type_e
      pos:
        line_end: 253
        line_start: 202
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_NO_EVENT
      - name: YAML_DOCUMENT_END_EVENT
      - name: YAML_STREAM_END_EVENT
      - name: YAML_STREAM_START_EVENT
      - name: YAML_DOCUMENT_START_EVENT
      - name: YAML_ALIAS_EVENT
      - name: YAML_SCALAR_EVENT
      - name: YAML_SEQUENCE_START_EVENT
      - name: YAML_SEQUENCE_END_EVENT
      - name: YAML_MAPPING_START_EVENT
      - name: YAML_MAPPING_END_EVENT
      item_type: enum
      name: yaml_event_type_e
      pos:
        line_end: 370
        line_start: 342
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_NO_NODE
      - name: YAML_SEQUENCE_NODE
      - name: YAML_MAPPING_NODE
      - name: YAML_SCALAR_NODE
      item_type: enum
      name: yaml_node_type_e
      pos:
        line_end: 689
        line_start: 679
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE
      - name: YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE
      - name: YAML_PARSE_DOCUMENT_CONTENT_STATE
      - name: YAML_PARSE_BLOCK_NODE_STATE
      - name: YAML_PARSE_FLOW_NODE_STATE
      - name: YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE
      - name: YAML_PARSE_BLOCK_MAPPING_VALUE_STATE
      - name: YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE
      - name: YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE
      - name: YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE
      - name: YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE
      - name: YAML_PARSE_END_STATE
      - name: YAML_PARSE_FLOW_MAPPING_VALUE_STATE
      - name: YAML_PARSE_STREAM_START_STATE
      - name: YAML_PARSE_DOCUMENT_START_STATE
      - name: YAML_PARSE_DOCUMENT_END_STATE
      - name: YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE
      - name: YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE
      - name: YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE
      - name: YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE
      - name: YAML_PARSE_BLOCK_MAPPING_KEY_STATE
      - name: YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE
      - name: YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE
      - name: YAML_PARSE_FLOW_MAPPING_KEY_STATE
      item_type: enum
      name: yaml_parser_state_e
      pos:
        line_end: 1052
        line_start: 999
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - enumerators:
      - name: YAML_EMIT_STREAM_START_STATE
      - name: YAML_EMIT_FIRST_DOCUMENT_START_STATE
      - name: YAML_EMIT_DOCUMENT_END_STATE
      - name: YAML_EMIT_DOCUMENT_START_STATE
      - name: YAML_EMIT_DOCUMENT_CONTENT_STATE
      - name: YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE
      - name: YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE
      - name: YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE
      - name: YAML_EMIT_FLOW_MAPPING_KEY_STATE
      - name: YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE
      - name: YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE
      - name: YAML_EMIT_BLOCK_MAPPING_KEY_STATE
      - name: YAML_EMIT_BLOCK_MAPPING_VALUE_STATE
      - name: YAML_EMIT_END_STATE
      - name: YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE
      - name: YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE
      - name: YAML_EMIT_FLOW_MAPPING_VALUE_STATE
      - name: YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE
      item_type: enum
      name: yaml_emitter_state_e
      pos:
        line_end: 1512
        line_start: 1472
        source_file: /src/h2o/deps/yaml/include/yaml.h
    preproc_defs:
    - item_type: preproc_def
      name: YAML_NULL_TAG
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:null"'
    - item_type: preproc_def
      name: YAML_BOOL_TAG
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:bool"'
    - item_type: preproc_def
      name: YAML_STR_TAG
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:str"'
    - item_type: preproc_def
      name: YAML_INT_TAG
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:int"'
    - item_type: preproc_def
      name: YAML_FLOAT_TAG
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:float"'
    - item_type: preproc_def
      name: YAML_TIMESTAMP_TAG
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:timestamp"'
    - item_type: preproc_def
      name: YAML_SEQ_TAG
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:seq"'
    - item_type: preproc_def
      name: YAML_MAP_TAG
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: '"tag:yaml.org,2002:map"'
    - item_type: preproc_def
      name: YAML_DEFAULT_SCALAR_TAG
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: YAML_STR_TAG
    - item_type: preproc_def
      name: YAML_DEFAULT_SEQUENCE_TAG
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: YAML_SEQ_TAG
    - item_type: preproc_def
      name: YAML_DEFAULT_MAPPING_TAG
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type_or_value: YAML_MAP_TAG
    structs:
    - fields:
      - name: major
        type: int
      - name: minor
        type: int
      item_type: struct
      name: yaml_version_directive_s
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: '*handle'
        type: yaml_char_t
      - name: '*prefix'
        type: yaml_char_t
      item_type: struct
      name: yaml_tag_directive_s
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: index
        type: size_t
      - name: line
        type: size_t
      - name: column
        type: size_t
      item_type: struct
      name: yaml_mark_s
      pos:
        line_end: 143
        line_start: 134
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: type
        type: yaml_token_type_t
      - name: data
        type: "union {\n\n        /** The stream start (for @c YAML_STREAM_START_TOKEN).
          */\n        struct {\n            /** The stream encoding. */\n            yaml_encoding_t
          encoding;\n        } stream_start;\n\n        /** The alias (for @c YAML_ALIAS_TOKEN).
          */\n        struct {\n            /** The alias value. */\n            yaml_char_t
          *value;\n        } alias;\n\n        /** The anchor (for @c YAML_ANCHOR_TOKEN).
          */\n        struct {\n            /** The anchor value. */\n            yaml_char_t
          *value;\n        } anchor;\n\n        /** The tag (for @c YAML_TAG_TOKEN).
          */\n        struct {\n            /** The tag handle. */\n            yaml_char_t
          *handle;\n            /** The tag suffix. */\n            yaml_char_t *suffix;\n
          \       } tag;\n\n        /** The scalar value (for @c YAML_SCALAR_TOKEN).
          */\n        struct {\n            /** The scalar value. */\n            yaml_char_t
          *value;\n            /** The length of the scalar value. */\n            size_t
          length;\n            /** The scalar style. */\n            yaml_scalar_style_t
          style;\n        } scalar;\n\n        /** The version directive (for @c YAML_VERSION_DIRECTIVE_TOKEN).
          */\n        struct {\n            /** The major version number. */\n            int
          major;\n            /** The minor version number. */\n            int minor;\n
          \       } version_directive;\n\n        /** The tag directive (for @c YAML_TAG_DIRECTIVE_TOKEN).
          */\n        struct {\n            /** The tag handle. */\n            yaml_char_t
          *handle;\n            /** The tag prefix. */\n            yaml_char_t *prefix;\n
          \       } tag_directive;\n\n    }"
      - name: start_mark
        type: yaml_mark_t
      - name: end_mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_token_s
      pos:
        line_end: 323
        line_start: 256
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: type
        type: yaml_event_type_t
      - name: data
        type: "union {\n        \n        /** The stream parameters (for @c YAML_STREAM_START_EVENT).
          */\n        struct {\n            /** The document encoding. */\n            yaml_encoding_t
          encoding;\n        } stream_start;\n\n        /** The document parameters
          (for @c YAML_DOCUMENT_START_EVENT). */\n        struct {\n            /**
          The version directive. */\n            yaml_version_directive_t *version_directive;\n\n
          \           /** The list of tag directives. */\n            struct {\n                /**
          The beginning of the tag directives list. */\n                yaml_tag_directive_t
          *start;\n                /** The end of the tag directives list. */\n                yaml_tag_directive_t
          *end;\n            } tag_directives;\n\n            /** Is the document
          indicator implicit? */\n            int implicit;\n        } document_start;\n\n
          \       /** The document end parameters (for @c YAML_DOCUMENT_END_EVENT).
          */\n        struct {\n            /** Is the document end indicator implicit?
          */\n            int implicit;\n        } document_end;\n\n        /** The
          alias parameters (for @c YAML_ALIAS_EVENT). */\n        struct {\n            /**
          The anchor. */\n            yaml_char_t *anchor;\n        } alias;\n\n        /**
          The scalar parameters (for @c YAML_SCALAR_EVENT). */\n        struct {\n
          \           /** The anchor. */\n            yaml_char_t *anchor;\n            /**
          The tag. */\n            yaml_char_t *tag;\n            /** The scalar value.
          */\n            yaml_char_t *value;\n            /** The length of the scalar
          value. */\n            size_t length;\n            /** Is the tag optional
          for the plain style? */\n            int plain_implicit;\n            /**
          Is the tag optional for any non-plain style? */\n            int quoted_implicit;\n
          \           /** The scalar style. */\n            yaml_scalar_style_t style;\n
          \       } scalar;\n\n        /** The sequence parameters (for @c YAML_SEQUENCE_START_EVENT).
          */\n        struct {\n            /** The anchor. */\n            yaml_char_t
          *anchor;\n            /** The tag. */\n            yaml_char_t *tag;\n            /**
          Is the tag optional? */\n            int implicit;\n            /** The
          sequence style. */\n            yaml_sequence_style_t style;\n        }
          sequence_start;\n\n        /** The mapping parameters (for @c YAML_MAPPING_START_EVENT).
          */\n        struct {\n            /** The anchor. */\n            yaml_char_t
          *anchor;\n            /** The tag. */\n            yaml_char_t *tag;\n            /**
          Is the tag optional? */\n            int implicit;\n            /** The
          mapping style. */\n            yaml_mapping_style_t style;\n        } mapping_start;\n\n
          \   }"
      - name: start_mark
        type: yaml_mark_t
      - name: end_mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_event_s
      pos:
        line_end: 465
        line_start: 373
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: key
        type: int
      - name: value
        type: int
      item_type: struct
      name: yaml_node_pair_s
      pos:
        line_end: 703
        line_start: 698
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: type
        type: yaml_node_type_t
      - name: '*tag'
        type: yaml_char_t
      - name: data
        type: "union {\n        \n        /** The scalar parameters (for @c YAML_SCALAR_NODE).
          */\n        struct {\n            /** The scalar value. */\n            yaml_char_t
          *value;\n            /** The length of the scalar value. */\n            size_t
          length;\n            /** The scalar style. */\n            yaml_scalar_style_t
          style;\n        } scalar;\n\n        /** The sequence parameters (for @c
          YAML_SEQUENCE_NODE). */\n        struct {\n            /** The stack of
          sequence items. */\n            struct {\n                /** The beginning
          of the stack. */\n                yaml_node_item_t *start;\n                /**
          The end of the stack. */\n                yaml_node_item_t *end;\n                /**
          The top of the stack. */\n                yaml_node_item_t *top;\n            }
          items;\n            /** The sequence style. */\n            yaml_sequence_style_t
          style;\n        } sequence;\n\n        /** The mapping parameters (for @c
          YAML_MAPPING_NODE). */\n        struct {\n            /** The stack of mapping
          pairs (key, value). */\n            struct {\n                /** The beginning
          of the stack. */\n                yaml_node_pair_t *start;\n                /**
          The end of the stack. */\n                yaml_node_pair_t *end;\n                /**
          The top of the stack. */\n                yaml_node_pair_t *top;\n            }
          pairs;\n            /** The mapping style. */\n            yaml_mapping_style_t
          style;\n        } mapping;\n\n    }"
      - name: start_mark
        type: yaml_mark_t
      - name: end_mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_node_s
      pos:
        line_end: 764
        line_start: 706
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: nodes
        type: "struct {\n        /** The beginning of the stack. */\n        yaml_node_t
          *start;\n        /** The end of the stack. */\n        yaml_node_t *end;\n
          \       /** The top of the stack. */\n        yaml_node_t *top;\n    }"
      - name: '*version_directive'
        type: yaml_version_directive_t
      - name: tag_directives
        type: "struct {\n        /** The beginning of the tag directives list. */\n
          \       yaml_tag_directive_t *start;\n        /** The end of the tag directives
          list. */\n        yaml_tag_directive_t *end;\n    }"
      - name: start_implicit
        type: int
      - name: end_implicit
        type: int
      - name: start_mark
        type: yaml_mark_t
      - name: end_mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_document_s
      pos:
        line_end: 800
        line_start: 767
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: possible
        type: int
      - name: required
        type: int
      - name: token_number
        type: size_t
      - name: mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_simple_key_s
      pos:
        line_end: 994
        line_start: 982
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: '*anchor'
        type: yaml_char_t
      - name: index
        type: int
      - name: mark
        type: yaml_mark_t
      item_type: struct
      name: yaml_alias_data_s
      pos:
        line_end: 1065
        line_start: 1058
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: error
        type: yaml_error_type_t
      - name: '*problem'
        type: char
      - name: problem_offset
        type: size_t
      - name: problem_value
        type: int
      - name: problem_mark
        type: yaml_mark_t
      - name: '*context'
        type: char
      - name: context_mark
        type: yaml_mark_t
      - name: '*read_handler'
        type: yaml_read_handler_t
      - name: '*read_handler_data'
        type: void
      - name: input
        type: "union {\n        /** String input data. */\n        struct {\n            /**
          The string start pointer. */\n            const unsigned char *start;\n
          \           /** The string end pointer. */\n            const unsigned char
          *end;\n            /** The string current position. */\n            const
          unsigned char *current;\n        } string;\n\n        /** File input data.
          */\n        FILE *file;\n    }"
      - name: eof
        type: int
      - name: buffer
        type: "struct {\n        /** The beginning of the buffer. */\n        yaml_char_t
          *start;\n        /** The end of the buffer. */\n        yaml_char_t *end;\n
          \       /** The current position of the buffer. */\n        yaml_char_t
          *pointer;\n        /** The last filled position of the buffer. */\n        yaml_char_t
          *last;\n    }"
      - name: unread
        type: size_t
      - name: raw_buffer
        type: "struct {\n        /** The beginning of the buffer. */\n        unsigned
          char *start;\n        /** The end of the buffer. */\n        unsigned char
          *end;\n        /** The current position of the buffer. */\n        unsigned
          char *pointer;\n        /** The last filled position of the buffer. */\n
          \       unsigned char *last;\n    }"
      - name: encoding
        type: yaml_encoding_t
      - name: offset
        type: size_t
      - name: mark
        type: yaml_mark_t
      - name: stream_start_produced
        type: int
      - name: stream_end_produced
        type: int
      - name: flow_level
        type: int
      - name: tokens
        type: "struct {\n        /** The beginning of the tokens queue. */\n        yaml_token_t
          *start;\n        /** The end of the tokens queue. */\n        yaml_token_t
          *end;\n        /** The head of the tokens queue. */\n        yaml_token_t
          *head;\n        /** The tail of the tokens queue. */\n        yaml_token_t
          *tail;\n    }"
      - name: tokens_parsed
        type: size_t
      - name: token_available
        type: int
      - name: indents
        type: "struct {\n        /** The beginning of the stack. */\n        int *start;\n
          \       /** The end of the stack. */\n        int *end;\n        /** The
          top of the stack. */\n        int *top;\n    }"
      - name: indent
        type: int
      - name: simple_key_allowed
        type: int
      - name: simple_keys
        type: "struct {\n        /** The beginning of the stack. */\n        yaml_simple_key_t
          *start;\n        /** The end of the stack. */\n        yaml_simple_key_t
          *end;\n        /** The top of the stack. */\n        yaml_simple_key_t *top;\n
          \   }"
      - name: states
        type: "struct {\n        /** The beginning of the stack. */\n        yaml_parser_state_t
          *start;\n        /** The end of the stack. */\n        yaml_parser_state_t
          *end;\n        /** The top of the stack. */\n        yaml_parser_state_t
          *top;\n    }"
      - name: state
        type: yaml_parser_state_t
      - name: marks
        type: "struct {\n        /** The beginning of the stack. */\n        yaml_mark_t
          *start;\n        /** The end of the stack. */\n        yaml_mark_t *end;\n
          \       /** The top of the stack. */\n        yaml_mark_t *top;\n    }"
      - name: tag_directives
        type: "struct {\n        /** The beginning of the list. */\n        yaml_tag_directive_t
          *start;\n        /** The end of the list. */\n        yaml_tag_directive_t
          *end;\n        /** The top of the list. */\n        yaml_tag_directive_t
          *top;\n    }"
      - name: aliases
        type: "struct {\n        /** The beginning of the list. */\n        yaml_alias_data_t
          *start;\n        /** The end of the list. */\n        yaml_alias_data_t
          *end;\n        /** The top of the list. */\n        yaml_alias_data_t *top;\n
          \   }"
      - name: '*document'
        type: yaml_document_t
      item_type: struct
      name: yaml_parser_s
      pos:
        line_end: 1296
        line_start: 1074
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: references
        type: int
      - name: anchor
        type: int
      - name: serialized
        type: int
      item_type: struct
      name: yaml_anchors_s
      pos:
        line_end: 1524
        line_start: 1517
        source_file: /src/h2o/deps/yaml/include/yaml.h
    - fields:
      - name: error
        type: yaml_error_type_t
      - name: '*problem'
        type: char
      - name: '*write_handler'
        type: yaml_write_handler_t
      - name: '*write_handler_data'
        type: void
      - name: output
        type: "union {\n        /** String output data. */\n        struct {\n            /**
          The buffer pointer. */\n            unsigned char *buffer;\n            /**
          The buffer size. */\n            size_t size;\n            /** The number
          of written bytes. */\n            size_t *size_written;\n        } string;\n\n
          \       /** File output data. */\n        FILE *file;\n    }"
      - name: buffer
        type: "struct {\n        /** The beginning of the buffer. */\n        yaml_char_t
          *start;\n        /** The end of the buffer. */\n        yaml_char_t *end;\n
          \       /** The current position of the buffer. */\n        yaml_char_t
          *pointer;\n        /** The last filled position of the buffer. */\n        yaml_char_t
          *last;\n    }"
      - name: raw_buffer
        type: "struct {\n        /** The beginning of the buffer. */\n        unsigned
          char *start;\n        /** The end of the buffer. */\n        unsigned char
          *end;\n        /** The current position of the buffer. */\n        unsigned
          char *pointer;\n        /** The last filled position of the buffer. */\n
          \       unsigned char *last;\n    }"
      - name: encoding
        type: yaml_encoding_t
      - name: canonical
        type: int
      - name: best_indent
        type: int
      - name: best_width
        type: int
      - name: unicode
        type: int
      - name: line_break
        type: yaml_break_t
      - name: states
        type: "struct {\n        /** The beginning of the stack. */\n        yaml_emitter_state_t
          *start;\n        /** The end of the stack. */\n        yaml_emitter_state_t
          *end;\n        /** The top of the stack. */\n        yaml_emitter_state_t
          *top;\n    }"
      - name: state
        type: yaml_emitter_state_t
      - name: events
        type: "struct {\n        /** The beginning of the event queue. */\n        yaml_event_t
          *start;\n        /** The end of the event queue. */\n        yaml_event_t
          *end;\n        /** The head of the event queue. */\n        yaml_event_t
          *head;\n        /** The tail of the event queue. */\n        yaml_event_t
          *tail;\n    }"
      - name: indents
        type: "struct {\n        /** The beginning of the stack. */\n        int *start;\n
          \       /** The end of the stack. */\n        int *end;\n        /** The
          top of the stack. */\n        int *top;\n    }"
      - name: tag_directives
        type: "struct {\n        /** The beginning of the list. */\n        yaml_tag_directive_t
          *start;\n        /** The end of the list. */\n        yaml_tag_directive_t
          *end;\n        /** The top of the list. */\n        yaml_tag_directive_t
          *top;\n    }"
      - name: indent
        type: int
      - name: flow_level
        type: int
      - name: root_context
        type: int
      - name: sequence_context
        type: int
      - name: mapping_context
        type: int
      - name: simple_key_context
        type: int
      - name: line
        type: int
      - name: column
        type: int
      - name: whitespace
        type: int
      - name: indention
        type: int
      - name: open_ended
        type: int
      - name: anchor_data
        type: "struct {\n        /** The anchor value. */\n        yaml_char_t *anchor;\n
          \       /** The anchor length. */\n        size_t anchor_length;\n        /**
          Is it an alias? */\n        int alias;\n    }"
      - name: tag_data
        type: "struct {\n        /** The tag handle. */\n        yaml_char_t *handle;\n
          \       /** The tag handle length. */\n        size_t handle_length;\n        /**
          The tag suffix. */\n        yaml_char_t *suffix;\n        /** The tag suffix
          length. */\n        size_t suffix_length;\n    }"
      - name: scalar_data
        type: "struct {\n        /** The scalar value. */\n        yaml_char_t *value;\n
          \       /** The scalar length. */\n        size_t length;\n        /** Does
          the scalar contain line breaks? */\n        int multiline;\n        /**
          Can the scalar be expessed in the flow plain style? */\n        int flow_plain_allowed;\n
          \       /** Can the scalar be expressed in the block plain style? */\n        int
          block_plain_allowed;\n        /** Can the scalar be expressed in the single
          quoted style? */\n        int single_quoted_allowed;\n        /** Can the
          scalar be expressed in the literal or folded styles? */\n        int block_allowed;\n
          \       /** The output style. */\n        yaml_scalar_style_t style;\n    }"
      - name: opened
        type: int
      - name: closed
        type: int
      - name: '*anchors'
        type: yaml_anchors_t
      - name: last_anchor_id
        type: int
      - name: '*document'
        type: yaml_document_t
      item_type: struct
      name: yaml_emitter_s
      pos:
        line_end: 1763
        line_start: 1533
        source_file: /src/h2o/deps/yaml/include/yaml.h
    typedefs:
    - item_type: typedef
      name: yaml_char_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type: unsigned char
    - item_type: typedef
      name: yaml_node_t
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type: yaml_node_s
    - item_type: typedef
      name: yaml_node_item_t
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type: int
    - item_type: typedef
      name: "yaml_read_handler_t(void *data, unsigned char *buffer, size_t size,\n
        \       size_t *size_read)"
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type: int
    - item_type: typedef
      name: yaml_write_handler_t(void *data, unsigned char *buffer, size_t size)
      pos:
        line_end: 1469
        line_start: 1469
        source_file: /src/h2o/deps/yaml/include/yaml.h
      type: int
    union: []
- function_names:
  - test_system
  - test_win_p
  - mrb_mruby_file_stat_gem_test
  source_file: /src/h2o/deps/mruby-file-stat/test/file-stat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - S_ISLNK
  - S_ISLNK
  - S_ISLNK
  - S_ISFIFO
  - S_ISSOCK
  - S_ISSOCK
  - S_ISSOCK
  - S_ISBLK
  - S_ISBLK
  - S_ISCHR
  - S_ISREG
  - S_ISDIR
  - STAT
  - LSTAT
  - LSTAT
  - getuid
  - geteuid
  - getgid
  - getegid
  - mrb_stat_alloc
  - file_s_lstat
  - stat_initialize
  - stat_initialize_copy
  - DATA_PTR
  - get_stat
  - mrb_ll2num
  - io_stat
  - stat_dev
  - stat_dev_major
  - stat_dev_minor
  - stat_ino
  - stat_mode
  - stat_nlink
  - stat_uid
  - stat_gid
  - stat_rdev
  - stat_rdev_major
  - stat_rdev_minor
  - time_at_with_sec_nsec
  - stat_atimespec
  - stat_atime
  - stat_mtimespec
  - stat_mtime
  - stat_ctimespec
  - stat_ctime
  - stat_birthtime
  - stat_size
  - stat_blksize
  - stat_blocks
  - mrb_group_member
  - stat_grpowned_p
  - stat_readable_p
  - stat_readable_real_p
  - stat_world_readable_p
  - stat_writable_p
  - stat_writable_real_p
  - stat_world_writable_p
  - stat_executable_p
  - stat_executable_real_p
  - stat_symlink_p
  - stat_file_p
  - stat_directory_p
  - stat_chardev_p
  - stat_blockdev_p
  - stat_pipe_p
  - stat_socket_p
  - stat_setuid_p
  - stat_setgid_p
  - stat_sticky_p
  - stat_ftype
  - stat_owned_p
  - stat_owned_real_p
  - mrb_mruby_file_stat_gem_init
  - mrb_mruby_file_stat_gem_final
  source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_IXUSR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: '0100'
    - item_type: preproc_def
      name: S_IXGRP
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: '0010'
    - item_type: preproc_def
      name: S_IXOTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: '0001'
    - item_type: preproc_def
      name: S_IRUGO
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: (S_IRUSR | S_IRGRP | S_IROTH)
    - item_type: preproc_def
      name: S_IWUGO
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: (S_IWUSR | S_IWGRP | S_IWOTH)
    - item_type: preproc_def
      name: S_IXUGO
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: (S_IXUSR | S_IXGRP | S_IXOTH)
    - item_type: preproc_def
      name: MRB_MAX_GROUPS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: (65536)
    - item_type: preproc_def
      name: GETGROUPS_T
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: gid_t
    - item_type: preproc_def
      name: USE_GETEUID
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: '1'
    - item_type: preproc_def
      name: stat_birthtime
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: stat_ctime
    - item_type: preproc_def
      name: stat_birthtime
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type_or_value: mrb_notimplement_m
    structs: []
    typedefs:
    - item_type: typedef
      name: uid_t
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type: unsigned int
    - item_type: typedef
      name: gid_t
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/h2o/deps/mruby-file-stat/src/file-stat.c
      type: unsigned int
    union: []
- function_names:
  - init_request
  - close_connection
  - cleanup_connection
  - set_req_timeout
  - set_req_io_timeout
  - clear_timeouts
  - entity_read_do_send_error
  - DECL_ENTITY_READ_SEND_ERROR_XXX
  - handle_one_body_fragment
  - handle_chunked_entity_read
  - create_chunked_entity_reader
  - handle_content_length_entity_read
  - create_content_length_entity_reader
  - create_entity_reader
  - init_headers
  - upgrade_is_h2
  - fixup_request
  - on_continue_sent
  - contains_crlf_only
  - send_bad_request
  - resume_request_read
  - proceed_request
  - write_req_non_streaming
  - write_req_first
  - write_req_connect_first
  - handle_incoming_request
  - reqread_on_read
  - close_idle_connection
  - on_timeout
  - req_io_on_timeout
  - reqread_on_timeout
  - reqread_start
  - on_send_next
  - on_send_complete_post_trailers
  - on_send_complete
  - on_upgrade_complete
  - flatten_headers_estimate_size
  - flatten_res_headers
  - flatten_headers
  - should_use_chunked_encoding
  - setup_chunked
  - encode_chunked
  - finalostream_send
  - do_send_informational
  - on_send_informational_complete
  - finalostream_send_informational
  - get_sockname
  - get_peername
  - get_ptls
  - get_ssl_server_name
  - log_state
  - can_zerocopy
  - get_req_id
  - steal_socket
  - DEFINE_LOGGER
  - log_request_index
  - foreach_request
  - initiate_graceful_shutdown
  - conn_is_h1
  - h2o_http1_accept
  - h2o_http1_upgrade
  source_file: /src/h2o/lib/http1.c
  types:
    enum:
    - enumerators:
      - name: OSTREAM_STATE_HEAD
      - name: OSTREAM_STATE_BODY
      - name: OSTREAM_STATE_DONE
      item_type: enum
      name: enum_h2o_http1_ostream_state
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/h2o/lib/http1.c
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_ostream_t
      - name: state
        type: enum enum_h2o_http1_ostream_state
      - name: '*chunked_buf'
        type: char
      - name: informational
        type: "struct {\n        /**\n         * if `h2o_socket_write` is currently
          writing an informational response\n         */\n        unsigned write_inflight
          : 1;\n        /**\n         * buffer used to store informational responses
          to be sent, when write of an informational response is inflight\n         */\n
          \       h2o_iovec_vector_t pending;\n        /**\n         * buffer used
          to delay the execution of `finalostream_send`, when write of an informational
          respnose is inflight;\n         * availability is indicated by `inbufs !=
          NULL`\n         */\n        struct {\n            h2o_sendvec_t *inbufs;\n
          \           size_t inbufcnt;\n            h2o_send_state_t send_state;\n
          \       } pending_final;\n    }"
      item_type: struct
      name: st_h2o_http1_finalostream_t
      pos:
        line_end: 61
        line_start: 38
        source_file: /src/h2o/lib/http1.c
    - fields:
      - name: super
        type: h2o_conn_t
      - name: '*sock'
        type: h2o_socket_t
      - name: _timeout_entry
        type: h2o_timer_t
      - name: _io_timeout_entry
        type: h2o_timer_t
      - name: _req_index
        type: uint64_t
      - name: _prevreqlen
        type: size_t
      - name: _unconsumed_request_size
        type: size_t
      - name: '*_req_entity_reader'
        type: struct st_h2o_http1_req_entity_reader
      - name: _ostr_final
        type: struct st_h2o_http1_finalostream_t
      - name: upgrade
        type: "struct {\n        void *data;\n        h2o_http1_upgrade_cb cb;\n    }"
      - name: '*req_body'
        type: h2o_buffer_t
      - name: req
        type: h2o_req_t
      item_type: struct
      name: st_h2o_http1_conn_t
      pos:
        line_end: 85
        line_start: 63
        source_file: /src/h2o/lib/http1.c
    - fields:
      - name: (*handle_incoming_entity)(struct st_h2o_http1_conn_t *conn)
        type: void
      item_type: struct
      name: st_h2o_http1_req_entity_reader
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/h2o/lib/http1.c
    - fields:
      - name: super
        type: struct st_h2o_http1_req_entity_reader
      - name: content_length
        type: size_t
      item_type: struct
      name: st_h2o_http1_content_length_entity_reader
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/h2o/lib/http1.c
    - fields:
      - name: super
        type: struct st_h2o_http1_req_entity_reader
      - name: decoder
        type: struct phr_chunked_decoder
      item_type: struct
      name: st_h2o_http1_chunked_entity_reader
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/h2o/lib/http1.c
    typedefs: []
    union: []
- function_names:
  - H2O_LOG_SOCK
  - H2O_LOG_CONN
  - H2O_PROBE_IS_ENABLED
  - H2O_PROBE_CONN0
  - H2O_PROBE_CONN
  - H2O_PROBE_REQUEST0
  - H2O_PROBE_REQUEST
  - H2O_PROBE
  - H2O_PROBE_HEXDUMP
  - H2O_PROBE_IS_ENABLED
  - h2o_probe_request_header
  - h2o_probe_response_header
  - h2o_probe_log_request
  - h2o_probe_log_response
  source_file: /src/h2o/lib/probes_.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_accept_key
  - on_close
  - on_recv
  - free_write_buf
  - on_write_complete
  - recv_callback
  - send_callback
  - on_msg_callback
  - on_complete
  - h2o_upgrade_to_websocket
  - h2o_is_websocket_handshake
  - h2o_websocket_close
  - h2o_websocket_proceed
  source_file: /src/h2o/lib/websocket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS_GUID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/lib/websocket.c
      type_or_value: '"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - strdup_lowercased
  - determine_magicquote_nodes
  - h2o_logconf_compile
  - LAST_ELEMENT
  - NEW_ELEMENT
  - MAP_EXT_TO_TYPE
  - MAP_EXT_TO_PROTO
  - TYPE_MAP
  - h2o_logconf_dispose
  - append_safe_string
  - append_unsafe_string_apache
  - append_unsafe_string_json
  - append_addr
  - append_port
  - APPEND_SAFE_STRING_WITH_LEN
  - APPEND_SAFE_STRING
  - APPEND_DURATION
  - expand_line_buf
  - h2o_log_request
  - RESERVE
  - EMIT_HEADER
  source_file: /src/h2o/lib/core/logconf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: unsigned
      - name: suffix
        type: h2o_iovec_t
      - name: data
        type: "union {\n        const h2o_token_t *header_token;\n        h2o_iovec_t
          name;\n        size_t protocol_specific_callback_index;\n    }"
      - name: magically_quoted_json
        type: unsigned
      - name: original_response
        type: unsigned
      item_type: struct
      name: log_element_t
      pos:
        line_end: 101
        line_start: 91
        source_file: /src/h2o/lib/core/logconf.c
    - fields:
      - name: escape
        type: int
      item_type: struct
      name: st_h2o_logconf_t
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/h2o/lib/core/logconf.c
    typedefs: []
    union: []
- function_names:
  - h2o_destroy_proxy_http3_context
  - h2o_context_init_pathconf_context
  - DOIT
  - h2o_context_dispose_pathconf_context
  - DOIT
  - h2o_context_init
  - h2o_context_dispose
  - h2o_context_request_shutdown
  - h2o_context_update_timestamp_string_cache
  - h2o_context_close_idle_connections
  - get_connection_state_counter
  - unlink_conn
  - link_conn
  - h2o_create_connection
  - h2o_destroy_connection
  - h2o_conn_set_state
  source_file: /src/h2o/lib/core/context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_accept_data
  - create_default_accept_data
  - create_redis_accept_data
  - create_memcached_accept_data
  - destroy_accept_data
  - destroy_default_accept_data
  - destroy_redis_accept_data
  - destroy_memcached_accept_data
  - memcached_resumption_on_get
  - memcached_resumption_get
  - memcached_resumption_new
  - h2o_accept_setup_memcached_ssl_resumption
  - on_redis_connect
  - on_redis_close
  - dispose_redis_connection
  - get_redis_client
  - BASE64_LENGTH
  - build_redis_key
  - build_redis_value
  - redis_resumption_on_get
  - on_redis_resumption_get_failed
  - redis_resumption_get
  - redis_resumption_new
  - h2o_accept_setup_redis_ssl_resumption
  - accept_timeout
  - on_accept_timeout
  - on_redis_accept_timeout
  - on_memcached_accept_timeout
  - on_ssl_handshake_complete
  - parse_proxy_line
  - CHECK_EOF
  - EXPECT_CHAR
  - SKIP_TO_WS
  - on_read_proxy_line
  - h2o_accept
  - h2o_stringify_protocol_version
  - h2o_stringify_proxy_header
  - to_push_path
  - h2o_extract_push_path_from_link_header
  - PUSH_FILTERED_VALUE
  - h2o_get_compressible_types
  - h2o_build_destination
  - stringify_duration
  - ELEMENT_LONGEST_STR
  - emit_server_timing_element
  - h2o_add_server_timing_header
  - h2o_build_server_timing_trailer
  - ALPN_ENTRY
  - h2o_cleanup_thread
  source_file: /src/h2o/lib/core/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/h2o/lib/core/util.c
      type_or_value: '"HTTP/1."'
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/h2o/lib/core/util.c
      type_or_value: '"HTTP/"'
    - item_type: preproc_def
      name: SERVER_TIMING_DURATION_LONGEST_STR
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/h2o/lib/core/util.c
      type_or_value: '"dur=" H2O_INT32_LONGEST_STR ".000"'
    - item_type: preproc_def
      name: DELIMITER
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/h2o/lib/core/util.c
      type_or_value: '", "'
    - item_type: preproc_def
      name: LONGEST_STR
      pos:
        line_end: 850
        line_start: 844
        source_file: /src/h2o/lib/core/util.c
      type_or_value: "ELEMENT_LONGEST_STR(\"connect\")                                                                                                 \\\n
        \   DELIMITER ELEMENT_LONGEST_STR(\"request-header\") DELIMITER ELEMENT_LONGEST_STR(\"request-body\")
        \                                 \\\n        DELIMITER ELEMENT_LONGEST_STR(\"request-total\")
        DELIMITER ELEMENT_LONGEST_STR(\"process\")                                    \\\n
        \           DELIMITER ELEMENT_LONGEST_STR(\"proxy.idle\") DELIMITER ELEMENT_LONGEST_STR(\"proxy.connect\")
        \                            \\\n                DELIMITER ELEMENT_LONGEST_STR(\"proxy.request\")
        DELIMITER ELEMENT_LONGEST_STR(\"proxy.process\")"
    - item_type: preproc_def
      name: LONGEST_STR
      pos:
        line_end: 883
        line_start: 879
        source_file: /src/h2o/lib/core/util.c
      type_or_value: "ELEMENT_LONGEST_STR(\"response\")                                                                                                \\\n
        \   DELIMITER ELEMENT_LONGEST_STR(\"total\") DELIMITER ELEMENT_LONGEST_STR(\"proxy.response\")
        \                                        \\\n        DELIMITER ELEMENT_LONGEST_STR(\"proxy.total\")"
    - item_type: preproc_def
      name: ALPN_PROTOCOLS_CORE
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/h2o/lib/core/util.c
      type_or_value: ALPN_ENTRY("h2"), ALPN_ENTRY("h2-16"), ALPN_ENTRY("h2-14")
    - item_type: preproc_def
      name: NPN_PROTOCOLS_CORE
      pos:
        line_end: 930
        line_start: 923
        source_file: /src/h2o/lib/core/util.c
      type_or_value: "\"\\x02\"                                                                                                                         \\\n
        \   \"h2\"                                                                                                                           \\\n
        \   \"\\x05\"                                                                                                                         \\\n
        \   \"h2-16\"                                                                                                                        \\\n
        \   \"\\x05\"                                                                                                                         \\\n
        \   \"h2-14\""
    structs:
    - fields:
      - name: '*ctx'
        type: h2o_accept_ctx_t
      - name: '*sock'
        type: h2o_socket_t
      - name: timeout
        type: h2o_timer_t
      - name: connected_at
        type: struct timeval
      item_type: struct
      name: st_h2o_accept_data_t
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/h2o/lib/core/util.c
    - fields:
      - name: super
        type: struct st_h2o_accept_data_t
      - name: '*get_req'
        type: h2o_memcached_req_t
      item_type: struct
      name: st_h2o_memcached_resumption_accept_data_t
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/h2o/lib/core/util.c
    - fields:
      - name: super
        type: struct st_h2o_accept_data_t
      - name: '*get_command'
        type: h2o_redis_command_t
      item_type: struct
      name: st_h2o_redis_resumption_accept_data_t
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/h2o/lib/core/util.c
    - fields:
      - name: memcached
        type: "struct {\n        h2o_memcached_context_t *ctx;\n    }"
      - name: redis
        type: "struct {\n        h2o_iovec_t host;\n        uint16_t port;\n        h2o_iovec_t
          prefix;\n    }"
      - name: expiration
        type: unsigned
      item_type: struct
      name: async_resumption_context
      pos:
        line_end: 64
        line_start: 54
        source_file: /src/h2o/lib/core/util.c
    - fields:
      - name: '*(*create)(h2o_accept_ctx_t *ctx, h2o_socket_t *sock, struct timeval
          connected_at)'
        type: struct st_h2o_accept_data_t
      - name: (*destroy)(struct st_h2o_accept_data_t *accept_data)
        type: void
      item_type: struct
      name: "accept_data_callbacks = {\n    create_default_accept_data,\n    destroy_default_accept_data,\n}"
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/h2o/lib/core/util.c
    typedefs: []
    union: []
- function_names:
  - create_context
  - destroy_context
  - on_core_enter
  - on_core_exit
  - destroy_configurator
  - setup_configurators
  - config_timeout
  - h2o_configurator_apply_commands
  - convert_path_config_node
  - config_path
  - on_config_paths
  - on_config_hosts
  - on_config_strict_match
  - on_config_limit_request_body
  - on_config_max_delegations
  - on_config_max_reprocesses
  - on_config_handshake_timeout
  - on_config_max_spare_pipes
  - on_config_http1_request_timeout
  - on_config_http1_request_io_timeout
  - on_config_http1_upgrade_to_http2
  - on_config_http2_idle_timeout
  - on_config_http2_graceful_shutdown_timeout
  - on_config_http2_max_streams
  - on_config_http2_max_concurrent_requests_per_connection
  - on_config_http2_max_concurrent_streaming_requests_per_connection
  - on_config_http2_input_window_size
  - on_config_http2_latency_optimization_min_rtt
  - on_config_http2_latency_optimization_max_additional_delay
  - on_config_http2_latency_optimization_max_cwnd
  - on_config_http2_reprioritize_blocking_assets
  - on_config_http2_push_preload
  - on_config_http2_allow_cross_origin_push
  - on_config_http2_casper
  - on_config_http2_dos_delay
  - on_config_http3_idle_timeout
  - on_config_http3_graceful_shutdown_timeout
  - on_config_http3_input_window_size
  - on_config_http3_ack_frequency
  - on_config_http3_allow_delayed_ack
  - on_config_http3_gso
  - on_config_http3_max_concurrent_streaming_requests_per_connection
  - assert_is_mimetype
  - assert_is_extension
  - set_mimetypes
  - on_config_mime_settypes
  - clone_mimemap_if_clean
  - on_config_mime_addtypes
  - on_config_mime_removetypes
  - on_config_mime_setdefaulttype
  - normalize_ext
  - on_config_custom_handler
  - inherit_env_if_necessary
  - on_config_setenv
  - on_config_unsetenv
  - on_config_server_name
  - on_config_send_server_name
  - on_config_error_log_emit_request_errors
  - on_config_send_informational
  - on_config_stash
  - h2o_configurator__init_core
  - h2o_configurator__dispose_configurators
  - h2o_configurator_create
  - h2o_configurator_define_command
  - h2o_configurator_get_command
  - h2o_configurator_apply
  - h2o_configurator_errprintf
  - h2o_configurator_scanf
  - h2o_configurator_get_one_of
  - get_next_key
  - h2o_configurator__do_parse_mapping
  - h2o_configurator_get_cmd_path
  source_file: /src/h2o/lib/core/configurator.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: http2
        type: "struct {\n        unsigned reprioritize_blocking_assets : 1;\n        unsigned
          push_preload : 1;\n        unsigned allow_cross_origin_push : 1;\n        h2o_casper_conf_t
          casper;\n    }"
      - name: error_log
        type: "struct {\n        unsigned emit_request_errors : 1;\n    }"
      item_type: struct
      name: st_core_config_vars_t
      pos:
        line_end: 40
        line_start: 30
        source_file: /src/h2o/lib/core/configurator.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: struct st_core_config_vars_t
      item_type: struct
      name: st_core_configurator_t
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/h2o/lib/core/configurator.c
    - fields:
      - name: '*cmd'
        type: h2o_configurator_command_t
      - name: '*value'
        type: yoml_t
      item_type: struct
      name: st_cmd_value_t
      pos:
        line_end: 142
        line_start: 139
        source_file: /src/h2o/lib/core/configurator.c
    - fields:
      - name: key
        type: h2o_iovec_t
      - name: is_required
        type: int
      - name: type_mask
        type: unsigned
      item_type: struct
      name: '*keys = alloca(sizeof(keys[0]) * num_values)'
      pos:
        line_end: 1357
        line_start: 1353
        source_file: /src/h2o/lib/core/configurator.c
    typedefs: []
    union: []
- function_names:
  - create_hostconf
  - destroy_hostconf
  - on_dispose_envconf
  - h2o_config_create_envconf
  - h2o_config_setenv
  - h2o_config_unsetenv
  - h2o_config_init_pathconf
  - h2o_config_dispose_pathconf
  - DESTROY_LIST
  - h2o_config_init
  - h2o_config_register_path
  - h2o_config_register_status_handler
  - h2o_config_register_host
  - h2o_config_dispose
  - h2o_create_handler
  - h2o_create_filter
  - h2o_create_logger
  source_file: /src/h2o/lib/core/config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_header
  - alloc_and_init_iovec
  - h2o_find_header
  - h2o_find_header_by_str
  - h2o_add_header
  - h2o_add_header_by_str
  - h2o_set_header
  - h2o_set_header_by_str
  - h2o_set_header_token
  - h2o_delete_header
  source_file: /src/h2o/lib/core/headers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - empty_pipe
  - h2o_pipe_sender_dispose
  - h2o_pipe_sender_start
  - from_pipe_read
  - from_pipe_send
  - h2o_pipe_sender_send
  source_file: /src/h2o/lib/core/pipe_sender.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_client_ctx
  - rewrite_location
  - build_request_merge_headers
  - req_requires_content_length
  - build_content_length
  - build_request
  - detach_client
  - do_close
  - do_stop
  - do_send
  - do_send_from_pipe
  - do_proceed
  - copy_stats
  - on_body_on_close
  - on_body
  - on_body_piped
  - compress_hint_to_enum
  - on_send_headers_timeout
  - on_head
  - on_informational
  - proceed_request
  - write_req
  - on_connect
  - on_generator_dispose
  - proxy_send_prepare
  - h2o__proxy_process_request
  source_file: /src/h2o/lib/core/proxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_generator_t
      - name: '*src_req'
        type: h2o_req_t
      - name: '*client'
        type: h2o_httpclient_t
      - name: up_req
        type: "struct {\n        h2o_iovec_t bufs[2]; /* first buf is the request
          line and headers, the second is the POST content */\n        int is_head;\n
          \   }"
      - name: '*last_content_before_send'
        type: h2o_buffer_t
      - name: sending
        type: h2o_doublebuffer_t
      - name: send_headers_timeout
        type: h2o_timer_t
      - name: pipe_sender
        type: h2o_pipe_sender_t
      - name: body_bytes_read
        type: size_t
      - name: had_body_error
        type: unsigned
      - name: req_done
        type: unsigned
      - name: res_done
        type: unsigned
      - name: '*generator_disposed'
        type: int
      item_type: struct
      name: rp_generator_t
      pos:
        line_end: 52
        line_start: 32
        source_file: /src/h2o/lib/core/proxy.c
    typedefs: []
    union: []
- function_names:
  - on_deferred_action_dispose
  - create_deferred_action
  - find_hostconf
  - find_default_hostconf
  - h2o_req_setup
  - call_handlers
  - setup_pathconf
  - deferred_proceed_cb
  - close_generator_and_filters
  - reset_response
  - retain_original_response
  - h2o_write_error_log
  - on_default_error_callback
  - h2o_init_request
  - COPY
  - h2o_dispose_request
  - h2o_req_validate_pseudo_headers
  - h2o_get_first_handler
  - h2o_process_request
  - h2o_delegate_request
  - on_delegate_request_cb
  - h2o_delegate_request_deferred
  - process_resolved_request
  - h2o_reprocess_request
  - on_reprocess_request_cb
  - h2o_reprocess_request_deferred
  - h2o_replay_request
  - on_replay_request_cb
  - h2o_replay_request_deferred
  - h2o_start_response
  - do_sendvec
  - h2o_send
  - h2o_sendvec
  - h2o_add_prefilter
  - h2o_add_ostream
  - h2o_req_apply_env
  - h2o_req_bind_conf
  - h2o_proceed_response_deferred
  - h2o_ostream_send_next
  - h2o_req_fill_mime_attributes
  - h2o_send_inline
  - h2o_send_error_generic
  - DECL_SEND_ERROR_DEFERRED
  - append_with_limit
  - h2o_req_log_error
  - h2o_send_redirect
  - h2o_send_redirect_internal
  - h2o_get_redirect_method
  - do_push_path
  - h2o_push_path_in_link_header
  - h2o_resp_add_date_header
  - h2o_send_informational
  - h2o_req_resolve_internal_redirect_url
  source_file: /src/h2o/lib/core/request.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOV_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/lib/core/request.c
      type_or_value: UIO_MAXIOV
    - item_type: preproc_def
      name: INITIAL_INBUFSZ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/lib/core/request.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: INITIAL_BUF_SIZE
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/h2o/lib/core/request.c
      type_or_value: '256'
    structs:
    - fields:
      - name: timeout
        type: h2o_timer_t
      - name: '*req'
        type: h2o_req_t
      item_type: struct
      name: st_deferred_request_action_t
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/h2o/lib/core/request.c
    - fields:
      - name: super
        type: struct st_deferred_request_action_t
      - name: method
        type: h2o_iovec_t
      - name: '*scheme'
        type: h2o_url_scheme_t
      - name: authority
        type: h2o_iovec_t
      - name: path
        type: h2o_iovec_t
      - name: '*overrides'
        type: h2o_req_overrides_t
      - name: is_delegated
        type: int
      item_type: struct
      name: st_reprocess_request_deferred_t
      pos:
        line_end: 48
        line_start: 40
        source_file: /src/h2o/lib/core/request.c
    - fields:
      - name: '*req'
        type: h2o_req_t
      - name: status
        type: int
      - name: '*reason'
        type: char
      - name: '*body'
        type: char
      - name: flags
        type: int
      - name: _timeout
        type: h2o_timer_t
      item_type: struct
      name: st_send_error_deferred_t
      pos:
        line_end: 57
        line_start: 50
        source_file: /src/h2o/lib/core/request.c
    typedefs: []
    union: []
- function_names:
  - h2o_http3_priority_update_frame_capacity
  - h2o_http3_encode_priority_update_frame
  - h2o_http3_decode_priority_update_frame
  - h2o_http3_goaway_frame_capacity
  - h2o_http3_encode_goaway_frame
  - h2o_http3_decode_goaway_frame
  source_file: /src/h2o/lib/http3/frame.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - report_sendmsg_errors
  - h2o_quic_create_client_socket
  - h2o_quic_send_datagrams
  - PUSH_CMSG
  - get_callbacks
  - ingress_unistream_on_destroy
  - ingress_unistream_on_receive
  - ingress_unistream_on_receive_reset
  - qpack_encoder_stream_handle_input
  - qpack_decoder_stream_handle_input
  - control_stream_handle_input
  - discard_handle_input
  - unknown_type_handle_input
  - egress_unistream_on_destroy
  - egress_unistream_on_send_shift
  - egress_unistream_on_send_emit
  - egress_unistream_on_send_stop
  - h2o_http3_on_create_unidirectional_stream
  - open_egress_unistream
  - accept_hashkey_flatten_address
  - calc_accept_hashkey
  - drop_from_acceptmap
  - send_version_negotiation
  - process_packets
  - h2o_quic_read_socket
  - INIT_DGRAMS
  - on_read
  - setup_quic_socket
  - on_timeout
  - h2o_http3_read_frame
  - FRAME
  - h2o_quic_init_context
  - h2o_quic_dispose_context
  - h2o_quic_set_forwarding_context
  - h2o_quic_close_connection
  - h2o_quic_close_all_connections
  - h2o_quic_num_connections
  - h2o_quic_init_conn
  - h2o_quic_dispose_conn
  - h2o_quic_setup
  - h2o_http3_init_conn
  - h2o_http3_dispose_conn
  - calc_max_blocked_streams
  - build_firstflight
  - h2o_http3_setup
  - h2o_quic_send
  - h2o_http3_update_recvbuf
  - h2o_quic_schedule_timer
  - h2o_http3_handle_settings_frame
  - h2o_http3_qpack_cancel_stream
  - h2o_http3_send_qpack_header_ack
  - h2o_http3_send_shutdown_goaway_frame
  - h2o_http3_send_goaway_frame
  - h2o_http3_send_h3_datagrams
  - h2o_http3_decode_h3_datagram
  source_file: /src/h2o/lib/http3/common.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*quic'
        type: quicly_stream_t
      - name: '*recvbuf'
        type: h2o_buffer_t
      - name: '*bytes_received'
        type: uint64_t
      - name: "(*handle_input)(h2o_http3_conn_t *conn, struct st_h2o_http3_ingress_unistream_t
          *stream, const uint8_t **src,\n                         const uint8_t *src_end,
          int is_eos)"
        type: void
      item_type: struct
      name: st_h2o_http3_ingress_unistream_t
      pos:
        line_end: 63
        line_start: 44
        source_file: /src/h2o/lib/http3/common.c
    - fields:
      - name: destaddr
        type: quicly_address_t
      - name: vec
        type: struct iovec
      - name: ttl
        type: uint8_t
      - name: ecn
        type: uint8_t
      - name: buf[1600]
        type: uint8_t
      item_type: struct
      name: dgrams[10]
      pos:
        line_end: 802
        line_start: 779
        source_file: /src/h2o/lib/http3/common.c
    - fields:
      - name: msg_hdr
        type: struct msghdr
      item_type: struct
      name: mess[PTLS_ELEMENTSOF(dgrams)]
      pos:
        line_end: 808
        line_start: 806
        source_file: /src/h2o/lib/http3/common.c
    typedefs: []
    union:
    - fields:
      - name: hdr
        type: struct cmsghdr
      item_type: union
      name: cmsgbuf = {.buf = {} /* zero-cleared so that CMSG_NXTHDR can be used for
        locating the *next* cmsghdr */}
      pos:
        line_end: 146
        line_start: 128
        source_file: /src/h2o/lib/http3/common.c
- function_names:
  - header_table_init
  - header_table_dispose
  - header_table_evict
  - header_table_insert
  - resolve_static_abs
  - resolve_dynamic_abs
  - decode_int
  - decode_value
  - h2o_qpack_create_decoder
  - h2o_qpack_destroy_decoder
  - assert_literal_length
  - decoder_insert
  - decode_value_and_insert
  - insert_token_header
  - insert_literal_header
  - qpack_table_total_inserts
  - insert_with_name_reference
  - insert_without_name_reference
  - duplicate
  - dynamic_table_size_update
  - h2o_qpack_decoder_handle_input
  - h2o_qpack_decoder_send_state_sync
  - h2o_qpack_decoder_send_stream_cancel
  - resolve_static
  - resolve_dynamic
  - resolve_dynamic_postbase
  - decode_header_name_literal
  - decode_header_value_literal
  - send_header_ack
  - decode_header
  - parse_decode_context
  - check_decode_context_blocked
  - normalize_error_code
  - h2o_qpack_parse_request
  - h2o_qpack_parse_response
  - h2o_qpack_create_encoder
  - h2o_qpack_destroy_encoder
  - handle_table_state_synchronize
  - evict_inflight_by_index
  - handle_header_ack
  - handle_stream_cancellation
  - h2o_qpack_encoder_handle_input
  - lookup_dynamic
  - flatten_int
  - flatten_string
  - emit_insert_with_nameref
  - emit_insert_without_nameref
  - flatten_static_indexed
  - flatten_dynamic_indexed
  - flatten_static_nameref
  - flatten_dynamic_nameref
  - flatten_without_nameref
  - do_flatten_header
  - flatten_header
  - flatten_known_header_with_static_lookup
  - prepare_flatten
  - finalize_flatten
  - h2o_qpack_flatten_request
  - h2o_qpack_flatten_response
  - INDEXED_STATUS
  source_file: /src/h2o/lib/http3/qpack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEADER_ENTRY_SIZE_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/lib/http3/qpack.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*name'
        type: h2o_iovec_t
      - name: value_len
        type: size_t
      - name: _name_buf
        type: h2o_iovec_t
      - name: soft_errors
        type: unsigned
      - name: value[1]
        type: char
      item_type: struct
      name: st_h2o_qpack_header_t
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: '**buf_start'
        type: struct st_h2o_qpack_header_t
      - name: base_offset
        type: int64_t
      - name: num_bytes
        type: size_t
      item_type: struct
      name: st_h2o_qpack_header_table_t
      pos:
        line_end: 57
        line_start: 44
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: stream_id
        type: int64_t
      - name: largest_ref
        type: int64_t
      item_type: struct
      name: st_h2o_qpack_blocked_streams_t
      pos:
        line_end: 67
        line_start: 59
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: table
        type: struct st_h2o_qpack_header_table_t
      - name: header_table_size
        type: uint32_t
      - name: max_entries
        type: uint32_t
      - name: insert_count
        type: uint32_t
      - name: total_inserts
        type: uint64_t
      - name: max_blocked
        type: uint64_t
      item_type: struct
      name: st_h2o_qpack_decoder_t
      pos:
        line_end: 94
        line_start: 69
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: table
        type: struct st_h2o_qpack_header_table_t
      - name: largest_known_received
        type: int64_t
      - name: max_blocked
        type: uint64_t
      - name: num_blocked
        type: size_t
      item_type: struct
      name: st_h2o_qpack_encoder_t
      pos:
        line_end: 118
        line_start: 96
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: '*qpack'
        type: h2o_qpack_encoder_t
      - name: '*pool'
        type: h2o_mem_pool_t
      - name: stream_id
        type: int64_t
      - name: '*encoder_buf'
        type: h2o_byte_vector_t
      - name: headers_buf
        type: h2o_byte_vector_t
      - name: base_index
        type: int64_t
      - name: largest_ref
        type: int64_t
      - name: '*stats'
        type: h2o_qpack_section_stats_t
      item_type: struct
      name: st_h2o_qpack_flatten_context_t
      pos:
        line_end: 129
        line_start: 120
        source_file: /src/h2o/lib/http3/qpack.c
    - fields:
      - name: '*qpack'
        type: h2o_qpack_decoder_t
      - name: req_insert_count
        type: int64_t
      - name: '*stats'
        type: h2o_qpack_section_stats_t
      item_type: struct
      name: st_h2o_qpack_decode_header_ctx_t
      pos:
        line_end: 640
        line_start: 630
        source_file: /src/h2o/lib/http3/qpack.c
    typedefs: []
    union: []
- function_names:
  - sendvec_size_is_for_recycle
  - dispose_sendvec
  - req_scheduler_init
  - req_scheduler_activate
  - req_scheduler_update_smallest_urgency_post_removal
  - req_scheduler_deactivate
  - req_scheduler_setup_for_next
  - req_scheduler_conn_blocked
  - req_scheduler_unblock_conn_blocked
  - req_scheduler_compare_stream_id
  - get_conn
  - get_state_counter
  - handle_priority_change
  - tunnel_on_udp_read
  - request_run_delayed
  - check_run_blocked
  - pre_dispose_request
  - set_state
  - cancel_qpack_decoder
  - shutdown_stream
  - get_sockname
  - get_peername
  - get_ptls
  - get_ssl_server_name
  - log_state
  - get_req_id
  - num_reqs_inflight
  - get_tracer
  - log_extensible_priorities
  - DEFINE_NUMERIC_LOGGER
  - log_cc_name
  - log_delivery_rate
  - log_tls_protocol_version
  - log_session_reused
  - log_cipher
  - log_cipher_bits
  - log_session_id
  - log_negotiated_protocol
  - log_ech_config_id
  - log_ech_kem
  - log_ech_cipher
  - log_ech_cipher_bits
  - log_qpack_blocked
  - log_quic_stats
  - PUSH_FIELD
  - get_request_stream_size
  - record_stream_stats
  - on_stream_destroy
  - retain_sendvecs
  - collect_quic_performance_metrics
  - EMIT_STATS_FIELD
  - on_send_shift
  - on_send_emit
  - on_send_stop
  - handle_buffered_input
  - on_receive
  - on_receive_reset
  - close_request_streaming
  - proceed_request_streaming
  - run_delayed
  - handle_input_post_trailers
  - handle_input_expect_data_payload
  - handle_input_expect_data
  - handle_input_expect_headers_send_http_error
  - handle_input_expect_headers_process_request_immediately
  - handle_input_expect_headers_process_connect
  - handle_input_expect_headers
  - write_response
  - flatten_data_frame_header
  - shutdown_by_generator
  - finalize_do_send_setup_udp_tunnel
  - finalize_do_send
  - do_send
  - do_send_informational
  - handle_priority_update_frame
  - handle_control_stream_frame
  - qpack_unblock_streams
  - stream_open_cb
  - unblock_conn_blocked_streams
  - scheduler_can_send
  - scheduler_do_send
  - HAS_DATA_TO_SEND
  - scheduler_update_state
  - datagram_frame_receive_cb
  - on_h3_destroy
  - ACC
  - h2o_http3_server_init_context
  - h2o_http3_server_accept
  - h2o_http3_server_amend_quicly_context
  - h2o_http3_get_connection
  - graceful_shutdown_close_straggler
  - graceful_shutdown_resend_goaway
  - close_idle_connection
  - initiate_graceful_shutdown
  - foreach_request_per_conn
  - foreach_request
  source_file: /src/h2o/lib/http3/server.c
  types:
    enum:
    - enumerators:
      - name: H2O_HTTP3_SERVER_STREAM_STATE_RECV_HEADERS
      - name: H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BEFORE_BLOCK
      - name: H2O_HTTP3_SERVER_STREAM_STATE_REQ_PENDING
      - name: H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_BLOCKED
      - name: H2O_HTTP3_SERVER_STREAM_STATE_RECV_BODY_UNBLOCKED
      - name: H2O_HTTP3_SERVER_STREAM_STATE_SEND_HEADERS
      - name: H2O_HTTP3_SERVER_STREAM_STATE_SEND_BODY
      - name: H2O_HTTP3_SERVER_STREAM_STATE_CLOSE_WAIT
      item_type: enum
      name: h2o_http3_server_stream_state
      pos:
        line_end: 99
        line_start: 66
        source_file: /src/h2o/lib/http3/server.c
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HTTP3_REQUEST_BODY_MIN_BYTES_TO_BLOCK
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/lib/http3/server.c
      type_or_value: '1'
    structs:
    - fields:
      - name: active
        type: "struct {\n        struct {\n            h2o_linklist_t high;\n            h2o_linklist_t
          low;\n        } urgencies[H2O_ABSPRIO_NUM_URGENCY_LEVELS];\n        size_t
          smallest_urgency;\n    }"
      - name: conn_blocked
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_http3_req_scheduler_t
      pos:
        line_end: 41
        line_start: 32
        source_file: /src/h2o/lib/http3/server.c
    - fields:
      - name: link
        type: h2o_linklist_t
      - name: priority
        type: h2o_absprio_t
      - name: call_cnt
        type: uint64_t
      item_type: struct
      name: st_h2o_http3_req_scheduler_node_t
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/h2o/lib/http3/server.c
    - fields:
      - name: super
        type: h2o_conn_t
      - name: h3
        type: h2o_http3_conn_t
      - name: handshake_properties
        type: ptls_handshake_properties_t
      - name: delayed_streams
        type: "struct {\n        /**\n         * holds streams in RECV_BODY_BLOCKED
          state. They are promoted one by one to the POST_BLOCK State.\n         */\n
          \       h2o_linklist_t recv_body_blocked;\n        /**\n         * holds
          streams that are in request streaming mode.\n         */\n        h2o_linklist_t
          req_streaming;\n        /**\n         * holds streams in REQ_PENDING state
          or RECV_BODY_POST_BLOCK state (that is using streaming; i.e., write_req.cb
          != NULL).\n         */\n        h2o_linklist_t pending;\n        /**\n         *
          holds streams in RECV_HEADERS state whose header blocks are blocked by QPACK
          dynamic table references.\n         */\n        h2o_linklist_t qpack_blocked;\n
          \   }"
      - name: num_qpack_blocked
        type: uint64_t
      - name: streams_resp_settings_blocked
        type: h2o_linklist_t
      - name: timeout
        type: h2o_timer_t
      - name: num_streams
        type: "union {\n        struct {\n            uint32_t recv_headers;\n            uint32_t
          recv_body_before_block;\n            uint32_t recv_body_blocked;\n            uint32_t
          recv_body_unblocked;\n            uint32_t req_pending;\n            uint32_t
          send_headers;\n            uint32_t send_body;\n            uint32_t close_wait;\n
          \       };\n        uint32_t counters[1];\n    }"
      - name: num_streams_req_streaming
        type: uint32_t
      - name: num_streams_tunnelling
        type: uint32_t
      - name: stats
        type: "struct {\n        /**\n         * number of request streams handled
          on this connection\n         */\n        uint64_t num_requests;\n        struct
          {\n            uint64_t stream_bytes;\n            uint64_t headers_frame_bytes;\n
          \           uint64_t body_bytes;\n            h2o_qpack_section_stats_t
          qpack;\n        } req, resp;\n    }"
      - name: scheduler
        type: "struct {\n        /**\n         * States for request streams.\n         */\n
          \       struct st_h2o_http3_req_scheduler_t reqs;\n        /**\n         *
          States for unidirectional streams. Each element is a bit vector where slot
          for each stream is defined as: 1 << stream_id.\n         */\n        struct
          {\n            uint16_t active;\n            uint16_t conn_blocked;\n        }
          uni;\n    }"
      - name: '* datagram_flows'
        type: khash_t
      - name: skip_jumpstart_token_until
        type: uint64_t
      - name: _graceful_shutdown_timeout
        type: h2o_timer_t
      item_type: struct
      name: st_h2o_http3_server_conn_t
      pos:
        line_end: 212
        line_start: 104
        source_file: /src/h2o/lib/http3/server.c
    - fields:
      - name: vec
        type: h2o_sendvec_t
      - name: entity_offset
        type: uint64_t
      item_type: struct
      name: st_h2o_http3_server_sendvec_t
      pos:
        line_end: 223
        line_start: 217
        source_file: /src/h2o/lib/http3/server.c
    - fields:
      - name: '*quic'
        type: quicly_stream_t
      - name: recvbuf
        type: "struct {\n        h2o_buffer_t *buf;\n        quicly_error_t (*handle_input)(struct
          st_h2o_http3_server_stream_t *stream, const uint8_t **src, const uint8_t
          *src_end,\n                                       int in_generator, const
          char **err_desc);\n        uint64_t bytes_left_in_data_frame;\n    }"
      - name: sendbuf
        type: "struct {\n        H2O_VECTOR(struct st_h2o_http3_server_sendvec_t)
          vecs;\n        size_t off_within_first_vec;\n        size_t min_index_to_addref;\n
          \       uint64_t final_size, final_body_size;\n        uint8_t data_frame_header_buf[9];\n
          \   }"
      - name: state
        type: enum h2o_http3_server_stream_state
      - name: qpack_blocked_ref
        type: uint64_t
      - name: link
        type: h2o_linklist_t
      - name: link_resp_settings_blocked
        type: h2o_linklist_t
      - name: ostr_final
        type: h2o_ostream_t
      - name: scheduler
        type: struct st_h2o_http3_req_scheduler_node_t
      - name: read_blocked
        type: uint8_t
      - name: proceed_requested
        type: uint8_t
      - name: proceed_while_sending
        type: uint8_t
      - name: received_priority_update
        type: uint8_t
      - name: req_disposed
        type: uint8_t
      - name: req_streaming
        type: uint8_t
      - name: qpack_blocked_ever
        type: uint8_t
      - name: req_streaming_eos_delivered
        type: uint8_t
      - name: '*req_body'
        type: h2o_buffer_t
      - name: datagram_flow_id
        type: uint64_t
      - name: stats
        type: "struct {\n        struct {\n            uint64_t headers_frame_bytes;\n
          \           h2o_qpack_section_stats_t qpack;\n        } req, resp;\n    }"
      - name: req
        type: h2o_req_t
      item_type: struct
      name: st_h2o_http3_server_stream_t
      pos:
        line_end: 303
        line_start: 225
        source_file: /src/h2o/lib/http3/server.c
    - fields:
      - name: (*cb)(h2o_req_t *req, void *cbdata)
        type: int
      - name: '*cbdata'
        type: void
      item_type: struct
      name: foreach_request_ctx
      pos:
        line_end: 2538
        line_start: 2535
        source_file: /src/h2o/lib/http3/server.c
    typedefs:
    - item_type: typedef
      name: "(*h2o_http3_req_scheduler_compare_cb)(struct st_h2o_http3_req_scheduler_t
        *sched,\n                                                  const struct st_h2o_http3_req_scheduler_node_t
        *x,\n                                                  const struct st_h2o_http3_req_scheduler_node_t
        *y)"
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/h2o/lib/http3/server.c
      type: int
    union: []
- function_names:
  - h2o_file_read
  - h2o_file_mktemp
  source_file: /src/h2o/lib/common/file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - queue_cb
  - on_read
  - init_async
  - h2o_multithread_create_queue
  - libuv_destroy_delayed
  - h2o_multithread_destroy_queue
  - h2o_multithread_register_receiver
  - h2o_multithread_unregister_receiver
  - h2o_multithread_send_message
  - h2o_multithread_create_thread
  - h2o_multithread_get_loop
  - h2o_sem_init
  - h2o_sem_destroy
  - h2o_sem_wait
  - h2o_sem_post
  - h2o_sem_set_capacity
  - h2o_barrier_init
  - h2o_barrier_wait
  - h2o_barrier_done
  - h2o_barrier_add
  - h2o_barrier_dispose
  - h2o_error_reporter__on_timeout
  - h2o_error_reporter_record_error
  source_file: /src/h2o/lib/common/multithread.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: receivers
        type: "struct {\n        h2o_linklist_t active;\n        h2o_linklist_t inactive;\n
          \   }"
      item_type: struct
      name: st_h2o_multithread_queue_t
      pos:
        line_end: 44
        line_start: 30
        source_file: /src/h2o/lib/common/multithread.c
    typedefs: []
    union: []
- function_names:
  - release_from_cache
  - h2o_filecache_create
  - h2o_filecache_destroy
  - h2o_filecache_clear
  - h2o_filecache_open_file
  - h2o_filecache_close_file
  - h2o_filecache_get_last_modified
  - h2o_filecache_get_etag
  - h2o_filecache_compare_etag_strong
  source_file: /src/h2o/lib/common/filecache.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* hash'
        type: khash_t
      - name: lru
        type: h2o_linklist_t
      - name: capacity
        type: size_t
      item_type: struct
      name: st_h2o_filecache_t
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/h2o/lib/common/filecache.c
    typedefs: []
    union: []
- function_names:
  - h2o_iovec_is_token
  source_file: /src/h2o/lib/common/token.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - close_client
  - close_response
  - call_on_head
  - call_on_body
  - call_proceed_req
  - on_error
  - on_body_timeout
  - on_body_until_close
  - on_body_content_length
  - on_body_to_pipe
  - on_body_chunked
  - on_head_timeout
  - on_head
  - on_head_first_byte_timeout
  - on_whole_request_sent
  - on_header_sent_wait_100
  - req_body_send_complete
  - req_body_send_prepare
  - req_body_send
  - do_write_req
  - on_send_timeout
  - build_request
  - RESERVE
  - APPEND
  - APPEND_STRLIT
  - APPEND_HEADER
  - start_request
  - on_connection_ready
  - do_cancel
  - update_read_state
  - do_update_window
  - do_get_conn_properties
  - setup_client
  - h2o_httpclient__h1_on_connect
  source_file: /src/h2o/lib/common/http1client.c
  types:
    enum:
    - enumerators:
      - name: STREAM_STATE_HEAD
      - name: STREAM_STATE_BODY
      - name: STREAM_STATE_CLOSED
      item_type: enum
      name: enum_h2o_http1client_stream_state
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/h2o/lib/common/http1client.c
    preproc_defs:
    - item_type: preproc_def
      name: USE_PIPE_READER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/lib/common/http1client.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_PIPE_READER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/lib/common/http1client.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_HEADERS
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/h2o/lib/common/http1client.c
      type_or_value: '100'
    structs:
    - fields:
      - name: super
        type: h2o_httpclient_t
      - name: '*sock'
        type: h2o_socket_t
      - name: state
        type: "struct {\n        enum enum_h2o_http1client_stream_state req;\n        enum
          enum_h2o_http1client_stream_state res;\n    }"
      - name: '*_origin'
        type: h2o_url_t
      - name: _method_is_head
        type: int
      - name: _do_keepalive
        type: int
      - name: _body_decoder
        type: "union {\n        struct {\n            size_t bytesleft;\n        }
          content_length;\n        struct {\n            struct phr_chunked_decoder
          decoder;\n            size_t bytes_decoded_in_buf;\n        } chunked;\n
          \   }"
      - name: reader
        type: h2o_socket_cb
      - name: proceed_req
        type: h2o_httpclient_proceed_req_cb
      - name: _chunk_len_str[(sizeof(H2O_UINT64_LONGEST_HEX_STR) - 1) + 2 + 1]
        type: char
      - name: body_buf
        type: "struct {\n        h2o_buffer_t *buf;\n        int is_end_stream;\n
          \   }"
      - name: pipe_reader
        type: h2o_httpclient_pipe_reader_t
      - name: _socket_bytes_processed
        type: uint64_t
      - name: _is_chunked
        type: unsigned
      - name: _seen_at_least_one_chunk
        type: unsigned
      - name: _delay_free
        type: unsigned
      - name: _app_prefers_pipe_reader
        type: unsigned
      - name: _send_own_expect
        type: unsigned
      item_type: struct
      name: st_h2o_http1client_t
      pos:
        line_end: 89
        line_start: 44
        source_file: /src/h2o/lib/common/http1client.c
    typedefs: []
    union: []
- function_names:
  - h2o_lookup_token
  - h2o_qpack_lookup_authority
  - h2o_qpack_lookup_method
  - h2o_qpack_lookup_path
  - h2o_qpack_lookup_protocol
  - h2o_qpack_lookup_scheme
  - h2o_qpack_lookup_status
  - h2o_qpack_lookup_accept
  - h2o_qpack_lookup_accept_charset
  - h2o_qpack_lookup_accept_encoding
  - h2o_qpack_lookup_accept_language
  - h2o_qpack_lookup_accept_ranges
  - h2o_qpack_lookup_access_control_allow_credentials
  - h2o_qpack_lookup_access_control_allow_headers
  - h2o_qpack_lookup_access_control_allow_methods
  - h2o_qpack_lookup_access_control_allow_origin
  - h2o_qpack_lookup_access_control_expose_headers
  - h2o_qpack_lookup_access_control_request_headers
  - h2o_qpack_lookup_access_control_request_method
  - h2o_qpack_lookup_age
  - h2o_qpack_lookup_allow
  - h2o_qpack_lookup_alt_svc
  - h2o_qpack_lookup_authorization
  - h2o_qpack_lookup_cache_control
  - h2o_qpack_lookup_cache_digest
  - h2o_qpack_lookup_connection
  - h2o_qpack_lookup_content_disposition
  - h2o_qpack_lookup_content_encoding
  - h2o_qpack_lookup_content_language
  - h2o_qpack_lookup_content_length
  - h2o_qpack_lookup_content_location
  - h2o_qpack_lookup_content_range
  - h2o_qpack_lookup_content_security_policy
  - h2o_qpack_lookup_content_type
  - h2o_qpack_lookup_cookie
  - h2o_qpack_lookup_datagram_flow_id
  - h2o_qpack_lookup_date
  - h2o_qpack_lookup_early_data
  - h2o_qpack_lookup_etag
  - h2o_qpack_lookup_expect
  - h2o_qpack_lookup_expect_ct
  - h2o_qpack_lookup_expires
  - h2o_qpack_lookup_forwarded
  - h2o_qpack_lookup_from
  - h2o_qpack_lookup_host
  - h2o_qpack_lookup_http2_settings
  - h2o_qpack_lookup_if_match
  - h2o_qpack_lookup_if_modified_since
  - h2o_qpack_lookup_if_none_match
  - h2o_qpack_lookup_if_range
  - h2o_qpack_lookup_if_unmodified_since
  - h2o_qpack_lookup_keep_alive
  - h2o_qpack_lookup_last_modified
  - h2o_qpack_lookup_link
  - h2o_qpack_lookup_location
  - h2o_qpack_lookup_max_forwards
  - h2o_qpack_lookup_no_early_hints
  - h2o_qpack_lookup_origin
  - h2o_qpack_lookup_priority
  - h2o_qpack_lookup_proxy_authenticate
  - h2o_qpack_lookup_proxy_authorization
  - h2o_qpack_lookup_proxy_connection
  - h2o_qpack_lookup_purpose
  - h2o_qpack_lookup_range
  - h2o_qpack_lookup_referer
  - h2o_qpack_lookup_refresh
  - h2o_qpack_lookup_retry_after
  - h2o_qpack_lookup_server
  - h2o_qpack_lookup_set_cookie
  - h2o_qpack_lookup_strict_transport_security
  - h2o_qpack_lookup_te
  - h2o_qpack_lookup_timing_allow_origin
  - h2o_qpack_lookup_transfer_encoding
  - h2o_qpack_lookup_upgrade
  - h2o_qpack_lookup_upgrade_insecure_requests
  - h2o_qpack_lookup_user_agent
  - h2o_qpack_lookup_vary
  - h2o_qpack_lookup_via
  - h2o_qpack_lookup_www_authenticate
  - h2o_qpack_lookup_x_compress_hint
  - h2o_qpack_lookup_x_content_type_options
  - h2o_qpack_lookup_x_forwarded_for
  - h2o_qpack_lookup_x_frame_options
  - h2o_qpack_lookup_x_reproxy_url
  - h2o_qpack_lookup_x_traffic
  - h2o_qpack_lookup_x_xss_protection
  source_file: /src/h2o/lib/common/token_table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decode_hex
  - handle_special_paths
  - rebuild_path
  - h2o_url_normalize_path
  - parse_scheme
  - h2o_url_parse_hostport
  - parse_authority_and_path
  - h2o_url_parse
  - h2o_url_parse_relative
  - h2o_url_resolve
  - h2o_url_resolve_path
  - h2o_url_copy
  - h2o_url_host_to_sun
  - h2o_url_init_with_hostport
  - h2o_url_init_with_sun_path
  source_file: /src/h2o/lib/common/url.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/h2o/lib/common/url.c
      type_or_value: '"unix:"'
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/h2o/lib/common/url.c
      type_or_value: '"[unix:"'
    - item_type: preproc_def
      name: SUFFIX
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/h2o/lib/common/url.c
      type_or_value: '"]"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_httpclient_connection_pool_init
  - close_client
  - on_connect_error
  - on_connect_timeout
  - do_cancel
  - create_client
  - SZ_MAX
  - on_pool_connect
  - select_protocol
  - find_h2conn
  - connect_using_socket_pool
  - connect_using_h2conn
  - h2o_httpclient_connect
  - h2o_httpclient_set_conn_properties_of_socket
  source_file: /src/h2o/lib/common/httpclient.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SOCKET_PROBE
  - read_bio
  - init_write_buf
  - dispose_write_buf
  - init_ssl_output_buffer
  - dispose_ssl_output_buffer
  - has_pending_ssl_bytes
  - write_ssl_bytes
  - write_bio
  - puts_bio
  - ctrl_bio
  - setup_bio
  - decode_ssl_input
  - flush_pending_ssl
  - destroy_ssl
  - dispose_socket
  - shutdown_ssl
  - h2o_socket_dispose_export
  - h2o_socket_export
  - h2o_socket_import
  - h2o_socket_close
  - calc_suggested_tls_payload_size
  - disable_latency_optimized_write
  - prepare_for_latency_optimized_write
  - obtain_tcp_info
  - CALC_CWND_PAIR_FROM_BYTE_UNITS
  - adjust_notsent_lowat
  - h2o_socket_do_prepare_for_latency_optimized_write
  - calc_tls_write_size
  - generate_tls_records_from_one_vec
  - generate_tls_records
  - flatten_sendvec
  - h2o_socket_write
  - h2o_socket_sendvec
  - on_write_complete
  - h2o_socket_read_start
  - h2o_socket_read_stop
  - h2o_socket_setpeername
  - h2o_socket_getpeername
  - h2o_socket_getsockname
  - h2o_socket_get_ptls
  - h2o_socket_get_ssl_protocol_version
  - h2o_socket_get_ssl_session_reused
  - h2o_socket_get_ssl_cipher
  - h2o_socket_get_ssl_cipher_bits
  - h2o_socket_get_ssl_session_id
  - h2o_socket_get_ssl_server_name
  - h2o_socket_can_tls_offload
  - h2o_socket_log_tcp_congestion_controller
  - h2o_socket_log_tcp_delivery_rate
  - h2o_socket_log_ssl_session_id
  - h2o_socket_log_ssl_cipher_bits
  - h2o_socket_log_ssl_ech_config_id
  - h2o_socket_log_ssl_ech_kem
  - h2o_socket_log_ssl_ech_cipher
  - h2o_socket_log_ssl_ech_cipher_bits
  - h2o_socket_log_ssl_backend
  - h2o_socket_compare_address
  - CMP
  - h2o_socket_getnumerichost
  - h2o_socket_getport
  - h2o_socket_get_error_string
  - create_ossl
  - on_async_resumption_client_hello
  - h2o_socket_ssl_new_session_cb
  - on_async_resumption_new
  - switch_to_picotls
  - on_handshake_complete
  - get_handshake_error
  - on_handshake_fail_complete
  - h2o_socket_start_async_handshake
  - h2o_socket_async_handshake_on_notify
  - on_async_proceed_handshake
  - on_async_job_complete
  - do_proceed_handshake_async
  - proceed_handshake_picotls
  - proceed_handshake_openssl
  - proceed_handshake_undetermined
  - proceed_handshake
  - h2o_socket_ssl_handshake
  - h2o_socket_ssl_resume_server_handshake
  - h2o_socket_ssl_async_resumption_init
  - h2o_socket_ssl_async_resumption_setup_ctx
  - get_ptls_index
  - h2o_socket_ssl_get_picotls_context
  - h2o_socket_ssl_set_picotls_context
  - on_dispose_ssl_ctx_session_cache
  - get_ssl_session_cache_index
  - h2o_socket_ssl_get_session_cache
  - h2o_socket_ssl_set_session_cache
  - h2o_socket_ssl_destroy_session_cache_entry
  - h2o_socket_ssl_get_selected_protocol
  - h2o_socket_ssl_is_early_data
  - on_alpn_select
  - h2o_ssl_register_alpn_protocols
  - on_npn_advertise
  - h2o_ssl_register_npn_protocols
  - h2o_socket_set_df_bit
  - SETSOCKOPT
  - h2o_sliding_counter_stop
  - h2o_sendvec_init_raw
  - h2o_sendvec_read_raw
  - zerocopy_buffers_is_empty
  - zerocopy_buffers_dispose
  - zerocopy_buffers_push
  - zerocopy_buffers_release
  - h2o_socket_clear_recycle
  - h2o_socket_recycle_is_empty
  - h2o_socket_boringssl_get_async_job_index
  - h2o_socket_boringssl_async_resumption_in_flight
  source_file: /src/h2o/lib/common/socket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOV_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/h2o/lib/common/socket.c
      type_or_value: UIO_MAXIOV
    - item_type: preproc_def
      name: TCP_NOTSENT_LOWAT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/h2o/lib/common/socket.c
      type_or_value: '25'
    - item_type: preproc_def
      name: OPENSSL_HOSTNAME_VALIDATION_LINKAGE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/h2o/lib/common/socket.c
      type_or_value: static
    - item_type: preproc_def
      name: adjust_notsent_lowat
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/h2o/lib/common/socket.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: CC_BUFSIZE
      pos:
        line_end: 1158
        line_start: 1157
        source_file: /src/h2o/lib/common/socket.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*ssl_ctx'
        type: SSL_CTX
      - name: '*ossl'
        type: SSL
      - name: '*ptls'
        type: ptls_t
      - name: offload
        type: "enum {\n        H2O_SOCKET_SSL_OFFLOAD_NONE,\n        H2O_SOCKET_SSL_OFFLOAD_ON,\n
          \       H2O_SOCKET_SSL_OFFLOAD_TBD,\n    }"
      - name: '*did_write_in_read'
        type: int
      - name: record_overhead
        type: size_t
      - name: tls12_record_layer
        type: "struct {\n        uint64_t send_finished_iv; /* UINT64_MAX if not available
          */\n        struct {\n            uint8_t type;\n            uint16_t length;\n
          \       } last_received[2];\n    }"
      - name: handshake
        type: "struct {\n        h2o_socket_cb cb;\n        union {\n            struct
          {\n                struct {\n                    enum {\n                        ASYNC_RESUMPTION_STATE_COMPLETE
          = 0, /* just pass thru */\n                        ASYNC_RESUMPTION_STATE_RECORD,
          \      /* record first input, restore SSL state if it changes to REQUEST_SENT\n
          \                                                             */\n                        ASYNC_RESUMPTION_STATE_REQUEST_SENT
          \ /* async request has been sent, and is waiting for response */\n                    }
          state;\n                    SSL_SESSION *session_data;\n                }
          async_resumption;\n            } server;\n            struct {\n                char
          *server_name;\n                h2o_cache_t *session_cache;\n                h2o_iovec_t
          session_cache_key;\n                h2o_cache_hashcode_t session_cache_key_hash;\n
          \           } client;\n        };\n    }"
      - name: input
        type: "struct {\n        h2o_buffer_t *encrypted;\n    }"
      - name: output
        type: "struct {\n        /**\n         * This buffer is initialized when and
          only when pending data is stored. Otherwise, all the members are zero-cleared;
          see\n         * `has_pending_ssl_data`.\n         * To reduce the cost of
          repeated memory allocation, expansion, and release, this buffer points to
          a chunk of memory being\n         * allocated from `h2o_socket_ssl_buffer_allocator`
          when initialized. Upon disposal, the memory chunk being used by this\n         *
          buffer is returned to that memory pool, unless the chunk has been expanded.
          It is designed as such because sometimes it\n         * is hard to limit
          the amount of TLS records being generated at once (who knows how large the
          server's handshake messages\n         * will be, or when it has to send
          a KeyUpdate message?). But for most of the case, handshake messages will
          be smaller than\n         * the default size (H2O_SOCKET_DEFAULT_SSL_BUFFER_SIZE),
          and application traffic will not cause expansion (see\n         * * `generate_tls_records`).
          Therefore, the memory chunk will be recycled.\n         */\n        ptls_buffer_t
          buf;\n        size_t pending_off;\n        unsigned zerocopy_owned : 1;\n
          \       unsigned allocated_for_zerocopy : 1;\n    }"
      - name: async
        type: "struct {\n        unsigned inflight : 1;\n        unsigned sock_is_closed
          : 1;\n        ptls_buffer_t ptls_wbuf;\n    }"
      item_type: struct
      name: st_h2o_socket_ssl_t
      pos:
        line_end: 135
        line_start: 67
        source_file: /src/h2o/lib/common/socket.c
    - fields:
      - name: '*ctx'
        type: SSL_CTX
      - name: '*protocols'
        type: h2o_iovec_t
      - name: _npn_list_of_protocols
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_ssl_context_t
      pos:
        line_end: 141
        line_start: 137
        source_file: /src/h2o/lib/common/socket.c
    - fields:
      - name: '**bufs'
        type: void
      - name: first
        type: size_t
      - name: first_counter
        type: uint64_t
      item_type: struct
      name: st_h2o_socket_zerocopy_buffers_t
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/h2o/lib/common/socket.c
    - fields:
      - name: tcpi_state
        type: uint8_t
      - name: tcpi_ca_state
        type: uint8_t
      - name: tcpi_retransmits
        type: uint8_t
      - name: tcpi_probes
        type: uint8_t
      - name: tcpi_backoff
        type: uint8_t
      - name: tcpi_options
        type: uint8_t
      - name: tcpi_snd_wscale
        type: uint8_t
      - name: tcpi_delivery_rate_app_limited
        type: uint8_t
      - name: tcpi_rto
        type: uint32_t
      - name: tcpi_ato
        type: uint32_t
      - name: tcpi_snd_mss
        type: uint32_t
      - name: tcpi_rcv_mss
        type: uint32_t
      - name: tcpi_unacked
        type: uint32_t
      - name: tcpi_sacked
        type: uint32_t
      - name: tcpi_lost
        type: uint32_t
      - name: tcpi_retrans
        type: uint32_t
      - name: tcpi_fackets
        type: uint32_t
      - name: tcpi_last_data_sent
        type: uint32_t
      - name: tcpi_last_ack_sent
        type: uint32_t
      - name: tcpi_last_data_recv
        type: uint32_t
      - name: tcpi_last_ack_recv
        type: uint32_t
      - name: tcpi_pmtu
        type: uint32_t
      - name: tcpi_rcv_ssthresh
        type: uint32_t
      - name: tcpi_rtt
        type: uint32_t
      - name: tcpi_rttvar
        type: uint32_t
      - name: tcpi_snd_ssthresh
        type: uint32_t
      - name: tcpi_snd_cwnd
        type: uint32_t
      - name: tcpi_advmss
        type: uint32_t
      - name: tcpi_reordering
        type: uint32_t
      - name: tcpi_rcv_rtt
        type: uint32_t
      - name: tcpi_rcv_space
        type: uint32_t
      - name: tcpi_total_retrans
        type: uint32_t
      - name: tcpi_pacing_rate
        type: uint64_t
      - name: tcpi_max_pacing_rate
        type: uint64_t
      - name: tcpi_bytes_acked
        type: uint64_t
      - name: tcpi_bytes_received
        type: uint64_t
      - name: tcpi_segs_out
        type: uint32_t
      - name: tcpi_segs_in
        type: uint32_t
      - name: tcpi_notsent_bytes
        type: uint32_t
      - name: tcpi_min_rtt
        type: uint32_t
      - name: tcpi_data_segs_in
        type: uint32_t
      - name: tcpi_data_segs_out
        type: uint32_t
      - name: tcpi_delivery_rate
        type: uint64_t
      item_type: struct
      name: tcpi
      pos:
        line_end: 1236
        line_start: 1181
        source_file: /src/h2o/lib/common/socket.c
    typedefs: []
    union: []
- function_names:
  - create_req
  - free_req
  - retain_req
  - discard_req
  - pop_inflight
  - writer_main
  - connect_to_server
  - reader_main
  - thread_main
  - dispatch
  - h2o_memcached_receiver
  - h2o_memcached_get
  - h2o_memcached_cancel_get
  - h2o_memcached_set
  - h2o_memcached_delete
  - h2o_memcached_create_context
  source_file: /src/h2o/lib/common/memcached.c
  types:
    enum:
    - enumerators:
      - name: REQ_TYPE_GET
      - name: REQ_TYPE_DELETE
      - name: REQ_TYPE_SET
      item_type: enum
      name: en_h2o_memcached_req_type_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/h2o/lib/common/memcached.c
    preproc_defs: []
    structs:
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: pending
        type: h2o_linklist_t
      - name: num_threads_connected
        type: size_t
      - name: '*host'
        type: char
      - name: port
        type: uint16_t
      - name: text_protocol
        type: int
      - name: prefix
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_memcached_context_t
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/h2o/lib/common/memcached.c
    - fields:
      - name: '*ctx'
        type: h2o_memcached_context_t
      - name: yrmcds
        type: yrmcds
      - name: mutex
        type: pthread_mutex_t
      - name: inflight
        type: h2o_linklist_t
      - name: writer_exit_requested
        type: int
      item_type: struct
      name: st_h2o_memcached_conn_t
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/h2o/lib/common/memcached.c
    - fields:
      - name: type
        type: enum en_h2o_memcached_req_type_t
      - name: refcnt
        type: int
      - name: pending
        type: h2o_linklist_t
      - name: inflight
        type: h2o_linklist_t
      - name: data
        type: "union {\n        struct {\n            h2o_multithread_receiver_t *receiver;\n
          \           h2o_multithread_message_t message;\n            h2o_memcached_get_cb
          cb;\n            void *cb_data;\n            int value_is_encoded;\n            h2o_iovec_t
          value;\n            uint32_t serial;\n        } get;\n        struct {\n
          \           h2o_iovec_t value;\n            uint32_t expiration;\n        }
          set;\n    }"
      - name: key
        type: "struct {\n        size_t len;\n        char base[1];\n    }"
      item_type: struct
      name: st_h2o_memcached_req_t
      pos:
        line_end: 75
        line_start: 51
        source_file: /src/h2o/lib/common/memcached.c
    typedefs: []
    union: []
- function_names:
  - h2o_strdup
  - h2o_strdup_shared
  - h2o_strdup_slashed
  - h2o__lcstris_core
  - h2o_strtosize
  - h2o_strtosizefwd
  - decode_base64url_quad
  - h2o_decode_base64url
  - h2o_base64_encode
  - decode_hex
  - h2o_hex_decode
  - h2o_hex_encode
  - h2o_uri_escape
  - h2o_uri_unescape
  - h2o_get_filext
  - is_ws
  - h2o_str_stripws
  - h2o_strstr
  - h2o_next_token
  - h2o_contains_token
  - h2o_htmlescape
  - ENTITY_MAP
  - ENTITY
  - ENTITY
  - h2o_concat_list
  - h2o_join_list
  - h2o_split
  - h2o_str_at_position
  - h2o_encode_sf_string
  source_file: /src/h2o/lib/common/string.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - emit_data
  - destroy_request
  - detach_stream
  - close_stream
  - write_datagrams
  - find_connection
  - start_pending_requests
  - call_proceed_req
  - get_connection_close_error
  - report_pending_requests_error
  - destroy_connection
  - destroy_connection_on_transport_close
  - on_connect_timeout
  - start_connect
  - on_getaddr
  - handle_control_stream_frame
  - create_connection
  - notify_response_error
  - call_on_body
  - handle_input_data_payload
  - handle_input_expect_data_frame
  - handle_input_expect_headers
  - on_stream_destroy
  - on_send_shift
  - on_send_emit
  - on_send_stop
  - on_receive_process_bytes
  - on_receive
  - on_receive_reset
  - start_request
  - cancel_request
  - do_get_conn_properties
  - do_update_window
  - do_write_req
  - h2o_httpclient__connect_h3
  - h2o_httpclient_http3_notify_connection_update
  - stream_open_cb
  - on_receive_datagram_frame
  source_file: /src/h2o/lib/common/http3client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERROR_EOS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/lib/common/http3client.c
      type_or_value: H2O_HTTP3_ERROR_USER1
    - item_type: preproc_def
      name: TUNNEL_MAX_UNSENT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/lib/common/http3client.c
      type_or_value: '16384'
    structs:
    - fields:
      - name: super
        type: h2o_httpclient_t
      - name: '*conn'
        type: struct st_h2o_httpclient__h3_conn_t
      - name: '*quic'
        type: quicly_stream_t
      - name: link
        type: h2o_linklist_t
      - name: bytes_left_in_data_frame
        type: uint64_t
      - name: '*sendbuf'
        type: h2o_buffer_t
      - name: recvbuf
        type: "struct {\n        /**\n         * HTTP-level buffer that contains (part
          of) response body received. Is the variable registered as `h2o_httpclient::buf`.\n
          \        */\n        h2o_buffer_t *body;\n        /**\n         * QUIC stream-level
          buffer that contains bytes that have not yet been processed at the HTTP/3
          framing decoding level. This\n         * buffer may have gaps. The beginning
          offset of `partial_frame` is equal to `recvstate.data_off`.\n         */\n
          \       h2o_buffer_t *stream;\n        /**\n         * Retains the amount
          of stream-level data that was available in the previous call. This value
          is used to see if processing\n         * of new stream data is necessary.\n
          \        */\n        size_t prev_bytes_available;\n    }"
      - name: "(*handle_input)(struct st_h2o_http3client_req_t *req, const uint8_t
          **src, const uint8_t *src_end,\n                                   quicly_error_t
          err, const char **err_desc)"
        type: quicly_error_t
      - name: proceed_req
        type: "struct {\n        h2o_httpclient_proceed_req_cb cb;\n        size_t
          bytes_inflight;\n    }"
      - name: response_state
        type: "enum {\n        H2O_HTTP3CLIENT_RESPONSE_STATE_HEAD,\n        H2O_HTTP3CLIENT_RESPONSE_STATE_BODY,\n
          \       H2O_HTTP3CLIENT_RESPONSE_STATE_CLOSED\n    }"
      - name: on_read_datagrams
        type: h2o_httpclient_forward_datagram_cb
      - name: offered_datagram_flow_id
        type: unsigned
      item_type: struct
      name: st_h2o_http3client_req_t
      pos:
        line_end: 116
        line_start: 43
        source_file: /src/h2o/lib/common/http3client.c
    typedefs: []
    union: []
- function_names:
  - REPORT_CORRUPT_TIMER
  - ABORT_CORRUPT_TIMER
  - h2o_timerwheel_dump
  - timer_wheel
  - timer_slot
  - calc_expire_for_slot
  - SPAN
  - validate_slot
  - h2o_timerwheel_validate
  - h2o_timerwheel_get_wake_at
  - link_timer
  - h2o_timerwheel_create
  - h2o_timerwheel_destroy
  - cascade_one
  - cascade_all
  - h2o_timerwheel_get_expired
  - h2o_timerwheel_run
  - h2o_timerwheel_link_abs
  source_file: /src/h2o/lib/common/timerwheel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_TIMERWHEEL_SLOTS_MASK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/lib/common/timerwheel.c
      type_or_value: (H2O_TIMERWHEEL_SLOTS_PER_WHEEL - 1)
    - item_type: preproc_def
      name: H2O_TIMER_VALIDATE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/lib/common/timerwheel.c
      type_or_value: '0'
    structs:
    - fields:
      - name: last_run
        type: uint64_t
      - name: max_ticks
        type: uint64_t
      - name: num_wheels
        type: size_t
      - name: wheels[][H2O_TIMERWHEEL_SLOTS_PER_WHEEL]
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_timerwheel_t
      pos:
        line_end: 61
        line_start: 46
        source_file: /src/h2o/lib/common/timerwheel.c
    typedefs: []
    union: []
- function_names:
  - destroy_detached
  - destroy_attached
  - destroy_expired_locked
  - check_pool_expired_locked
  - on_timeout
  - common_init
  - detect_target_type
  - h2o_socketpool_create_target
  - h2o_socketpool_init_specific
  - h2o_socketpool_is_global
  - h2o_socketpool_init_global
  - h2o_socketpool_destroy_target
  - h2o_socketpool_dispose
  - h2o_socketpool_set_ssl_ctx
  - h2o_socketpool_register_loop
  - h2o_socketpool_unregister_loop
  - call_connect_cb
  - try_connect
  - on_handshake_complete
  - on_connect
  - on_close
  - start_connect
  - on_getaddr
  - lookup_target
  - h2o_socketpool_connect
  - h2o_socketpool_cancel_connect
  - h2o_socketpool_return
  - h2o_socketpool_detach
  - h2o_socketpool_can_keepalive
  source_file: /src/h2o/lib/common/socketpool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECK_EXPIRATION_MIN_INTERVAL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/lib/common/socketpool.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: sockinfo
        type: h2o_socket_export_t
      - name: target
        type: size_t
      - name: all_link
        type: h2o_linklist_t
      - name: target_link
        type: h2o_linklist_t
      - name: added_at
        type: uint64_t
      item_type: struct
      name: pool_entry_t
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/h2o/lib/common/socketpool.c
    - fields:
      - name: '*data'
        type: void
      - name: cb
        type: h2o_socketpool_connect_cb
      - name: '*pool'
        type: h2o_socketpool_t
      - name: '*loop'
        type: h2o_loop_t
      - name: '*getaddr_req'
        type: h2o_hostinfo_getaddr_req_t
      - name: '*sock'
        type: h2o_socket_t
      - name: '*getaddr_receiver'
        type: h2o_multithread_receiver_t
      - name: selected_target
        type: size_t
      - name: remaining_try_count
        type: size_t
      - name: lb
        type: "struct {\n        char *tried;\n    }"
      - name: alpn_protos
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_socketpool_connect_request_t
      pos:
        line_end: 63
        line_start: 49
        source_file: /src/h2o/lib/common/socketpool.c
    - fields:
      - name: '*pool'
        type: h2o_socketpool_t
      - name: target
        type: size_t
      item_type: struct
      name: on_close_data_t
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/h2o/lib/common/socketpool.c
    typedefs: []
    union: []
- function_names:
  - h2o_rand
  - format_uuid_rfc4122
  - UUID_ENC_PART
  - h2o_generate_uuidv4
  source_file: /src/h2o/lib/common/rand.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: seed
        type: unsigned
      - name: initialized
        type: unsigned
      item_type: struct
      name: state
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/h2o/lib/common/rand.c
    typedefs: []
    union: []
- function_names:
  - request_write
  - enqueue_window_update
  - stream_send_error
  - get_stream
  - get_max_buffer_size
  - h2o_httpclient__h2_get_max_concurrent_streams
  - adjust_conn_linkedlist
  - register_stream
  - unregister_stream
  - close_stream
  - close_response
  - call_callback_with_error
  - call_stream_callbacks_with_error
  - extract_content_length
  - on_head
  - on_trailers
  - expect_continuation_of_headers
  - expect_continuation_of_headers_eos
  - expect_continuation_of_headers_no_eos
  - handle_data_frame
  - handle_headers_frame
  - handle_priority_frame
  - handle_rst_stream_frame
  - update_stream_output_window
  - conn_get_buffer_window
  - handle_settings_frame
  - handle_push_promise_frame
  - handle_ping_frame
  - handle_goaway_frame
  - handle_window_update_frame
  - handle_invalid_continuation_frame
  - expect_default
  - expect_settings
  - close_connection_now
  - close_connection_if_necessary
  - close_connection
  - enqueue_goaway
  - on_connect_error
  - do_stream_timeout
  - on_stream_timeout
  - on_io_timeout
  - on_keepalive_timeout
  - parse_input
  - on_read
  - on_connection_ready
  - on_notify_write
  - on_write_complete
  - sz_min
  - calc_max_payload_size
  - stream_emit_pending_data
  - do_emit_writereq
  - emit_writereq
  - create_connection
  - send_client_preface
  - do_cancel
  - do_get_conn_properties
  - do_update_window
  - do_write_req
  - setup_stream
  - h2o_httpclient__h2_on_connect
  source_file: /src/h2o/lib/common/http2client.c
  types:
    enum:
    - enumerators:
      - name: STREAM_STATE_HEAD
      - name: STREAM_STATE_BODY
      - name: STREAM_STATE_CLOSED
      item_type: enum
      name: enum_h2o_http2client_stream_state
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/h2o/lib/common/http2client.c
    - enumerators:
      - name: H2O_HTTP2CLIENT_CONN_STATE_OPEN
      - name: H2O_HTTP2CLIENT_CONN_STATE_HALF_CLOSED
      - name: H2O_HTTP2CLIENT_CONN_STATE_IS_CLOSING
      item_type: enum
      name: enum_h2o_http2client_conn_state
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/h2o/lib/common/http2client.c
    preproc_defs:
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_CLIENT_CONNECTION_WINDOW_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/lib/common/http2client.c
      type_or_value: '16777216'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_CLIENT_HEADER_TABLE_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/lib/common/http2client.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: H2O_HTTP2_SETTINGS_CLIENT_MAX_FRAME_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/lib/common/http2client.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 1355
        line_start: 1353
        source_file: /src/h2o/lib/common/http2client.c
      type_or_value: "\"PRI * HTTP/2.0\\r\\n\\r\\nSM\\r\\n\\r\\n\"                                                                                             \\\n
        \   \"\\x00\\x00\\x12\"     "
    structs:
    - fields:
      - name: super
        type: h2o_httpclient__h2_conn_t
      - name: state
        type: enum enum_h2o_http2client_conn_state
      - name: '* streams'
        type: khash_t
      - name: peer_settings
        type: h2o_http2_settings_t
      - name: max_open_stream_id
        type: uint32_t
      - name: io_timeout
        type: h2o_timer_t
      - name: keepalive_timeout
        type: h2o_timer_t
      - name: output
        type: "struct {\n        h2o_hpack_header_table_t header_table;\n        h2o_http2_window_t
          window;\n        h2o_buffer_t *buf;\n        h2o_buffer_t *buf_in_flight;\n
          \       h2o_timer_t defer_timeout;\n        h2o_linklist_t sending_streams;\n
          \       h2o_linklist_t sent_streams;\n    }"
      - name: input
        type: "struct {\n        h2o_hpack_header_table_t header_table;\n        h2o_http2_window_t
          window;\n        ssize_t (*read_frame)(struct st_h2o_http2client_conn_t
          *conn, const uint8_t *src, size_t len, const char **err_desc);\n        h2o_buffer_t
          *headers_unparsed;\n    }"
      - name: rst_streams_pool
        type: h2o_mem_pool_t
      item_type: struct
      name: st_h2o_http2client_conn_t
      pos:
        line_end: 77
        line_start: 51
        source_file: /src/h2o/lib/common/http2client.c
    - fields:
      - name: super
        type: h2o_httpclient_t
      - name: '*conn'
        type: struct st_h2o_http2client_conn_t
      - name: stream_id
        type: uint32_t
      - name: state
        type: "struct {\n        enum enum_h2o_http2client_stream_state req;\n        enum
          enum_h2o_http2client_stream_state res;\n    }"
      - name: output
        type: "struct {\n        h2o_http2_window_t window;\n        h2o_buffer_t
          *buf;\n        h2o_linklist_t sending_link;\n        h2o_httpclient_proceed_req_cb
          proceed_req; /* set to NULL once entire request body is provided to http2client
          */\n    }"
      - name: input
        type: "struct {\n        h2o_http2_window_t window;\n        int status;\n
          \       h2o_headers_t headers;\n        h2o_buffer_t *body;\n        h2o_headers_t
          trailers;\n        size_t remaining_content_length;\n        unsigned message_body_forbidden
          : 1;\n    }"
      - name: '*notify_destroyed'
        type: int
      - name: send_own_expect
        type: int
      item_type: struct
      name: st_h2o_http2client_stream_t
      pos:
        line_end: 107
        line_start: 79
        source_file: /src/h2o/lib/common/http2client.c
    typedefs: []
    union: []
- function_names:
  - init_queue
  - insert_queue
  - pop_queue
  - submit_commands
  - check_completion
  - dispatch_completed
  - start_command
  - h2o_io_uring_splice
  - run_uring
  - on_notify
  - on_delayed
  - h2o_io_uring_init
  source_file: /src/h2o/lib/common/io_uring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hostinfo_error_from_gai_error
  - lookup_and_respond
  - lookup_thread_main
  - create_lookup_thread_if_necessary
  - dispatch_hostinfo_getaddr
  - h2o_hostinfo_getaddr
  - h2o_hostinfo_getaddr_cancel
  - h2o_hostinfo_getaddr_receiver
  - fetch_aton_digit
  - h2o_hostinfo_aton
  source_file: /src/h2o/lib/common/hostinfo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*_receiver'
        type: h2o_multithread_receiver_t
      - name: _cb
        type: h2o_hostinfo_getaddr_cb
      - name: '*cbdata'
        type: void
      - name: _pending
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_hostinfo_getaddr_req_t
      pos:
        line_end: 40
        line_start: 23
        source_file: /src/h2o/lib/common/hostinfo.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: pending
        type: h2o_linklist_t
      - name: num_threads
        type: size_t
      - name: num_threads_idle
        type: size_t
      item_type: struct
      name: queue = {PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, {&queue.pending,
        &queue.pending}, 0, 0}
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/h2o/lib/common/hostinfo.c
    typedefs: []
    union:
    - fields:
      - name: n
        type: int32_t
      - name: c[4]
        type: unsigned char
      item_type: union
      name: value
      pos:
        line_end: 266
        line_start: 263
        source_file: /src/h2o/lib/common/hostinfo.c
- function_names:
  - h2o_set_signal_handler
  - h2o_setuidgid
  - h2o_server_starter_get_fds
  - build_spawn_env
  - h2o_spawnp
  - h2o_read_command
  - CLOSE_FD
  - h2o_numproc
  source_file: /src/h2o/lib/common/serverutil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_h2o_fatal
  - h2o_mem_alloc_recycle
  - h2o_mem_free_recycle
  - h2o_mem_clear_recycle
  - h2o_mem_init_pool
  - h2o_mem_clear_pool
  - h2o_mem__do_alloc_pool_aligned
  - ALIGN_TO
  - link_shared
  - h2o_mem_alloc_shared
  - h2o_mem_link_shared
  - topagesize
  - buffer_size_to_power
  - h2o_buffer_clear_recycle
  - h2o_buffer_recycle_is_empty
  - buffer_get_recycle
  - buffer_init
  - h2o_buffer__do_free
  - h2o_buffer_reserve
  - buffer_allocate
  - h2o_buffer_try_reserve
  - h2o_buffer_consume
  - h2o_buffer_consume_all
  - h2o_buffer__dispose_linked
  - h2o_vector__expand
  - h2o_mem_swap
  - h2o_dump_memory
  - h2o_append_to_null_terminated_list
  - h2o_strerror_r
  - h2o_perror
  source_file: /src/h2o/lib/common/memory.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_POSIX_FALLOCATE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USE_POSIX_FALLOCATE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_POSIX_FALLOCATE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_POSIX_FALLOCATE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_POSIX_FALLOCATE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ASAN_IN_USE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ASAN_IN_USE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ASAN_IN_USE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_BUFFER_MIN_ALLOC_POWER
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/h2o/lib/common/memory.c
      type_or_value: '12'
    structs:
    - fields:
      - name: '*next'
        type: struct st_h2o_mem_recycle_chunk_t
      item_type: struct
      name: st_h2o_mem_recycle_chunk_t
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/h2o/lib/common/memory.c
    - fields:
      - name: '*next'
        type: struct st_h2o_mem_pool_direct_t
      - name: _dummy
        type: size_t
      - name: bytes[1]
        type: char
      item_type: struct
      name: st_h2o_mem_pool_direct_t
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/h2o/lib/common/memory.c
    - fields:
      - name: '*next'
        type: struct st_h2o_mem_pool_shared_ref_t
      - name: '*entry'
        type: struct st_h2o_mem_pool_shared_entry_t
      item_type: struct
      name: st_h2o_mem_pool_shared_ref_t
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/h2o/lib/common/memory.c
    - fields:
      - name: '*bins'
        type: "struct buffer_recycle_bin_t {\n        h2o_mem_recycle_conf_t conf;\n
          \       h2o_mem_recycle_t recycle;\n    }"
      - name: largest_power
        type: size_t
      - name: zero_sized
        type: h2o_mem_recycle_t
      item_type: struct
      name: buffer_recycle_bins = {NULL, H2O_BUFFER_MIN_ALLOC_POWER - 1, {&buffer_recycle_bins_zero_sized_conf}}
      pos:
        line_end: 276
        line_start: 260
        source_file: /src/h2o/lib/common/memory.c
    - fields:
      - name: conf
        type: h2o_mem_recycle_conf_t
      - name: recycle
        type: h2o_mem_recycle_t
      item_type: struct
      name: buffer_recycle_bin_t
      pos:
        line_end: 267
        line_start: 264
        source_file: /src/h2o/lib/common/memory.c
    typedefs: []
    union:
    - fields:
      - name: '*next'
        type: union un_h2o_mem_pool_chunk_t
      - name: bytes[4096]
        type: char
      item_type: union
      name: un_h2o_mem_pool_chunk_t
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/h2o/lib/common/memory.c
- function_names:
  - invoke_deferred
  - close_and_detach_connection
  - disconnect
  - get_error
  - on_connect
  - on_disconnect
  - on_connect_timeout
  - h2o_redis_create_client
  - h2o_redis_connect
  - h2o_redis_disconnect
  - dispose_command
  - handle_reply
  - on_command
  - on_command_timeout
  - create_command
  - send_command
  - detect_command_type
  - CHECK
  - MATCH
  - h2o_redis_command
  - h2o_redis_command_argv
  - h2o_redis_free
  - on_read
  - on_write
  - socket_add_read
  - socket_del_read
  - socket_add_write
  - socket_cleanup
  - attach_loop
  source_file: /src/h2o/lib/common/redis.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: redisAsyncContext
      - name: '*errstr'
        type: char
      - name: '*socket'
        type: h2o_socket_t
      item_type: struct
      name: st_redis_socket_data_t
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/h2o/lib/common/redis.c
    typedefs: []
    union: []
- function_names:
  - h2o_absprio_parse_priority
  source_file: /src/h2o/lib/common/absprio.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - emit_wday
  - emit_mon
  - emit_digits
  - h2o_time2str_rfc1123
  - fetch_digits
  - h2o_time_parse_rfc1123
  - FETCH
  - PACK3
  - MAP
  - calc_gmt_offset
  - h2o_time2str_log
  source_file: /src/h2o/lib/common/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_keyhash
  - is_equal
  - lock_cache
  - unlock_cache
  - erase_ref
  - get_timeleft
  - purge
  - h2o_cache_calchash
  - h2o_cache_create
  - h2o_cache_destroy
  - h2o_cache_clear
  - h2o_cache_fetch
  - h2o_cache_release
  - h2o_cache_set
  - h2o_cache_delete
  - h2o_cache_get_capacity
  - h2o_cache_get_duration
  source_file: /src/h2o/lib/common/cache.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flags
        type: int
      - name: '* table'
        type: khash_t
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      - name: lru
        type: h2o_linklist_t
      - name: age
        type: h2o_linklist_t
      - name: duration
        type: uint64_t
      - name: (*destroy_cb)(h2o_iovec_t value)
        type: void
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: st_h2o_cache_t
      pos:
        line_end: 44
        line_start: 34
        source_file: /src/h2o/lib/common/cache.c
    typedefs: []
    union: []
- function_names:
  - selector
  - destroy
  - h2o_balancer_create_lc
  source_file: /src/h2o/lib/common/balancer/least_conn.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_balancer_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: least_conn_t
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/h2o/lib/common/balancer/least_conn.c
    typedefs: []
    union: []
- function_names:
  - select_next
  - selector
  - destroy
  - h2o_balancer_create_rr
  source_file: /src/h2o/lib/common/balancer/roundrobin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_balancer_t
      - name: pos
        type: size_t
      - name: consumed_weight
        type: size_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: round_robin_t
      pos:
        line_end: 28
        line_start: 23
        source_file: /src/h2o/lib/common/balancer/roundrobin.c
    typedefs: []
    union: []
- function_names:
  - notify_write_progress
  - link_to_pending
  - link_to_statechanged
  - on_read_core
  - write_vecs
  - write_core
  - sendvec_core
  - write_pending
  - read_on_ready
  - do_dispose_socket
  - report_early_write_error
  - do_write
  - can_tls_offload
  - switch_to_ktls
  - SETUP_TX_PARAMS
  - do_write_with_sendvec
  - h2o_socket_get_fd
  - do_read_start
  - do_read_stop
  - h2o_socket_dont_read
  - do_export
  - do_import
  - h2o_socket_get_loop
  - get_sockname_uncached
  - get_peername_uncached
  - create_socket
  - set_nodelay_if_likely_tcp
  - h2o_evloop_socket_create
  - h2o_evloop_socket_accept
  - h2o_socket_connect
  - h2o_evloop_socket_set_max_read_size
  - create_evloop
  - update_now
  - adjust_max_wait
  - h2o_socket_notify_write
  - run_socket
  - run_pending
  - h2o_evloop_destroy
  - h2o_evloop_run
  source_file: /src/h2o/lib/common/socket/evloop.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_ACCEPT4
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_ACCEPT4
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_ACCEPT4
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_ACCEPT4
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H2O_USE_KQUEUE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_EPOLL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_MSG_ZEROCOPY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_POLL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2O_USE_MSG_ZEROCOPY
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/h2o/lib/common/socket/evloop.c.h
      type_or_value: '0'
    structs:
    - fields:
      - name: super
        type: h2o_socket_t
      - name: fd
        type: int
      - name: _flags
        type: int
      - name: '*loop'
        type: h2o_evloop_t
      - name: max_read_size
        type: size_t
      - name: '*_next_pending'
        type: struct st_h2o_evloop_socket_t
      - name: '*_next_statechanged'
        type: struct st_h2o_evloop_socket_t
      - name: bytes_written
        type: "struct {\n        uint64_t prev_loop;\n        uint64_t cur_loop;\n
          \       uint64_t cur_run_count;\n    }"
      - name: sendvec
        type: h2o_sendvec_t
      item_type: struct
      name: st_h2o_evloop_socket_t
      pos:
        line_end: 64
        line_start: 47
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    - fields:
      - name: key[PTLS_MAX_SECRET_SIZE]
        type: uint8_t
      - name: iv[PTLS_MAX_DIGEST_SIZE]
        type: uint8_t
      - name: seq
        type: uint64_t
      - name: tx_params
        type: "union {\n            struct tls12_crypto_info_aes_gcm_128 aesgcm128;\n
          \           struct tls12_crypto_info_aes_gcm_256 aesgcm256;\n        }"
      - name: tx_params_size
        type: size_t
      item_type: struct
      name: keys
      pos:
        line_end: 499
        line_start: 490
        source_file: /src/h2o/lib/common/socket/evloop.c.h
    typedefs: []
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sin4
        type: struct sockaddr_in
      - name: sin6
        type: struct sockaddr_in6
      item_type: union
      name: peeraddr
      pos:
        line_end: 717
        line_start: 713
        source_file: /src/h2o/lib/common/socket/evloop.c.h
- function_names:
  - alloc_inbuf
  - alloc_inbuf_tcp
  - alloc_inbuf_ssl
  - on_read_tcp
  - on_read_ssl
  - update_poll
  - on_poll
  - on_do_write_complete
  - free_sock
  - do_dispose_socket
  - h2o_socket_get_fd
  - do_read_start
  - do_read_stop
  - on_call_write_success
  - on_call_write_error
  - call_write_complete_delayed
  - report_early_write_error
  - on_ssl_write_complete
  - do_ssl_write
  - do_write
  - h2o_socket_notify_write
  - create_socket
  - do_export
  - do_import
  - h2o_uv__poll_create
  - h2o_uv_socket_create
  - on_connect
  - h2o_socket_get_loop
  - h2o_socket_connect
  - get_sockname_uncached
  - get_peername_uncached
  - on_timeout
  - h2o_timer_link
  - h2o_timer_unlink
  source_file: /src/h2o/lib/common/socket/uv-binding.c.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_socket_t
      - name: '*handle'
        type: uv_handle_t
      - name: close_cb
        type: uv_close_cb
      - name: write_cb_timer
        type: h2o_timer_t
      item_type: struct
      name: st_h2o_uv_socket_t
      pos:
        line_end: 38
        line_start: 22
        source_file: /src/h2o/lib/common/socket/uv-binding.c.h
    typedefs: []
    union: []
- function_names:
  - DEBUG_LOG
  - change_epoll_mode
  - delete_from_epoll_on_close
  - handle_zerocopy_notification
  - update_status
  - evloop_do_proceed
  - evloop_do_on_socket_create
  - evloop_do_on_socket_close
  - evloop_do_on_socket_export
  - evloop_do_dispose
  - h2o_evloop_create
  - h2o_evloop__io_uring
  source_file: /src/h2o/lib/common/socket/evloop/epoll.c.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_evloop_t
      - name: ep
        type: int
      item_type: struct
      name: st_h2o_evloop_epoll_t
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/h2o/lib/common/socket/evloop/epoll.c.h
    typedefs: []
    union: []
- function_names:
  - DEBUG_LOG
  - update_socks
  - evloop_do_proceed
  - evloop_do_on_socket_create
  - evloop_do_on_socket_close
  - evloop_do_on_socket_export
  - evloop_do_dispose
  - h2o_evloop_create
  source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_evloop_t
      item_type: struct
      name: st_h2o_evloop_poll_t
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/h2o/lib/common/socket/evloop/poll.c.h
    typedefs: []
    union: []
- function_names:
  - DEBUG_LOG
  - ev_set
  - collect_status
  - SET_AND_UPDATE
  - evloop_do_proceed
  - evloop_do_on_socket_create
  - evloop_do_on_socket_close
  - evloop_do_on_socket_export
  - evloop_do_dispose
  - h2o_evloop_create
  source_file: /src/h2o/lib/common/socket/evloop/kqueue.c.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_evloop_t
      - name: kq
        type: int
      item_type: struct
      name: st_h2o_socket_loop_kqueue_t
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/h2o/lib/common/socket/evloop/kqueue.c.h
    typedefs: []
    union: []
- function_names:
  - is_idle_stream_id
  - enqueue_goaway
  - enqueue_server_preface
  - graceful_shutdown_close_straggler
  - graceful_shutdown_resend_goaway
  - close_idle_connection
  - initiate_graceful_shutdown
  - on_idle_timeout
  - update_idle_timeout
  - can_run_requests
  - process_request
  - run_pending_requests
  - reset_stream_if_disregarded
  - execute_or_enqueue_request_core
  - execute_or_enqueue_request
  - h2o_http2_conn_register_stream
  - h2o_http2_conn_preserve_stream_scheduler
  - set_req_body_state
  - h2o_http2_conn_unregister_stream
  - close_connection_now
  - close_connection
  - stream_send_error
  - request_gathered_write
  - update_stream_output_window
  - write_streaming_body
  - handle_request_body_chunk
  - send_invalid_request_error
  - handle_incoming_request
  - handle_trailing_headers
  - expect_continuation_of_headers
  - send_window_update
  - update_stream_input_window
  - set_priority
  - proceed_request
  - handle_data_frame
  - handle_headers_frame
  - handle_priority_frame
  - resume_send
  - handle_settings_frame
  - handle_window_update_frame
  - handle_goaway_frame
  - handle_ping_frame
  - handle_rst_stream_frame
  - handle_push_promise_frame
  - handle_invalid_continuation_frame
  - expect_default
  - expect_preface
  - parse_input
  - on_read
  - on_upgrade_complete
  - bytes_in_buf
  - h2o_http2_conn_request_write
  - h2o_http2_conn_register_for_proceed_callback
  - h2o_http2_conn_register_for_replay
  - on_notify_write
  - on_write_complete
  - emit_writereq_of_openref
  - do_emit_writereq
  - emit_writereq
  - get_sockname
  - get_peername
  - get_ptls
  - get_ssl_server_name
  - log_state
  - get_req_id
  - get_rtt
  - DEFINE_LOGGER
  - log_stream_id
  - log_priority_received
  - log_priority_received_exclusive
  - log_priority_received_parent
  - log_priority_received_weight
  - get_parent_stream_id
  - log_priority_actual
  - log_priority_actual_parent
  - log_priority_actual_weight
  - on_dos_process_delay
  - create_conn
  - update_push_memo
  - push_path
  - foreach_request
  - h2o_http2_accept
  - h2o_http2_handle_upgrade
  source_file: /src/h2o/lib/http2/connection.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_http2_update_peer_settings
  - SET
  - h2o_http2_encode_frame_header
  - allocate_frame
  - h2o_http2__encode_rst_stream_frame
  - h2o_http2_encode_ping_frame
  - h2o_http2_encode_goaway_frame
  - h2o_http2_encode_settings_frame
  - h2o_http2_encode_window_update_frame
  - h2o_http2_encode_origin_frame
  - h2o_http2_decode_frame
  - h2o_http2_decode_data_payload
  - decode_priority
  - h2o_http2_decode_headers_payload
  - h2o_http2_decode_priority_payload
  - h2o_http2_decode_rst_stream_payload
  - h2o_http2_decode_ping_payload
  - h2o_http2_decode_goaway_payload
  - h2o_http2_decode_window_update_payload
  source_file: /src/h2o/lib/http2/frame.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - value_is_part_of_static_table
  - alloc_buf
  - h2o_hpack_decode_int
  - huffdecode4
  - header_value_valid_as_whole
  - h2o_hpack_decode_huffman
  - h2o_hpack_validate_header_name
  - h2o_hpack_validate_header_value
  - decode_string
  - header_table_evict_one
  - header_table_add
  - h2o_hpack_decode_header
  - encode_status
  - COMMON_CODE
  - encode_content_length
  - h2o_hpack_dispose_header_table
  - h2o_hpack_parse_request
  - h2o_hpack_parse_response
  - PARSE_DIGIT
  - encode_int_is_onebyte
  - h2o_hpack_encode_int
  - h2o_hpack_encode_huffman
  - encode_as_is
  - h2o_hpack_encode_string
  - header_table_adjust_size
  - do_encode_header
  - encode_header
  - encode_header_token
  - encode_method
  - encode_scheme
  - encode_path
  - encode_literal_header_without_indexing
  - calc_capacity
  - calc_headers_capacity
  - fixup_frame_headers
  - h2o_hpack_flatten_request
  - h2o_hpack_flatten_push_promise
  - h2o_hpack_flatten_response
  - h2o_hpack_flatten_trailers
  source_file: /src/h2o/lib/http2/hpack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEADER_TABLE_OFFSET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/lib/http2/hpack.c
      type_or_value: '62'
    - item_type: preproc_def
      name: HEADER_TABLE_ENTRY_SIZE_OFFSET
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/lib/http2/hpack.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DYNAMIC_TABLE_SIZE_UPDATE_MAX_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/lib/http2/hpack.c
      type_or_value: '5'
    - item_type: preproc_def
      name: STATUS_HEADER_MAX_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/lib/http2/hpack.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CONTENT_LENGTH_HEADER_MAX_SIZE
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/h2o/lib/http2/hpack.c
      type_or_value: '(3 + sizeof(H2O_SIZE_T_LONGEST_STR) - 1) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - dispose_frame_vector
  - dispose_digests
  - h2o_cache_digests_destroy
  - load_digest
  - h2o_cache_digests_load_header
  - calc_hash
  - cmp_key
  - lookup
  - h2o_cache_digests_lookup_by_url
  - h2o_cache_digests_lookup_by_url_and_etag
  source_file: /src/h2o/lib/http2/cache_digests.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (uint64_t)
        type: H2O_VECTOR
      - name: capacity_bits
        type: unsigned
      item_type: struct
      name: st_h2o_cache_digests_frame_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/h2o/lib/http2/cache_digests.c
    typedefs: []
    union:
    - fields:
      - name: bytes[SHA256_DIGEST_LENGTH]
        type: unsigned char
      - name: u64
        type: uint64_t
      item_type: union
      name: md
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/h2o/lib/http2/cache_digests.c
- function_names:
  - calc_key
  - h2o_http2_casper_create
  - h2o_http2_casper_destroy
  - h2o_http2_casper_num_entries
  - h2o_http2_casper_lookup
  - h2o_http2_casper_consume_cookie
  - append_str
  - h2o_http2_casper_get_cookie
  source_file: /src/h2o/lib/http2/casper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COOKIE_NAME
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/lib/http2/casper.c
      type_or_value: '"h2o_casper"'
    - item_type: preproc_def
      name: COOKIE_ATTRIBUTES
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/h2o/lib/http2/casper.c
      type_or_value: '"; Path=/; Expires=Tue, 01 Jan 2030 00:00:00 GMT; Secure"'
    structs:
    - fields:
      - name: (uint64_t)
        type: H2O_VECTOR
      - name: capacity_bits
        type: unsigned
      - name: remainder_bits
        type: unsigned
      - name: cookie_cache
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_http2_casper_t
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/h2o/lib/http2/casper.c
    typedefs: []
    union:
    - fields:
      - name: key
        type: unsigned
      - name: bytes[SHA_DIGEST_LENGTH]
        type: unsigned char
      item_type: union
      name: md
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/h2o/lib/http2/casper.c
- function_names: []
  source_file: /src/h2o/lib/http2/hpack_huffman_table.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nbits
        type: uint32_t
      - name: code
        type: uint32_t
      item_type: struct
      name: nghttp2_huff_sym
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/lib/http2/hpack_huffman_table.h
    - fields:
      - name: state
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: sym
        type: uint8_t
      item_type: struct
      name: nghttp2_huff_decode
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/h2o/lib/http2/hpack_huffman_table.h
    typedefs: []
    union: []
- function_names:
  - sz_min
  - h2o_http2_stream_open
  - h2o_http2_stream_close
  - h2o_http2_stream_reset
  - calc_max_payload_size
  - commit_data_header
  - send_data
  - is_blocking_asset
  - request_write_and_close
  - send_refused_stream
  - send_headers
  - finalostream_send
  - finalostream_send_informational
  - h2o_http2_stream_send_pending_data
  - h2o_http2_stream_proceed
  source_file: /src/h2o/lib/http2/stream.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - queue_init
  - queue_is_empty
  - queue_set
  - queue_unset
  - queue_pop
  - init_node
  - get_queue
  - incr_active_cnt
  - decr_active_cnt
  - convert_to_exclusive
  - h2o_http2_scheduler_open
  - h2o_http2_scheduler_close
  - h2o_http2_scheduler_relocate
  - do_rebind
  - h2o_http2_scheduler_rebind
  - h2o_http2_scheduler_init
  - h2o_http2_scheduler_dispose
  - h2o_http2_scheduler_deactivate
  - h2o_http2_scheduler_activate
  - proceed
  - h2o_http2_scheduler_run
  - h2o_http2_scheduler_is_active
  - h2o_http2_scheduler_find_parent_by_weight
  source_file: /src/h2o/lib/http2/scheduler.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bits
        type: uint64_t
      - name: offset
        type: size_t
      - name: anchors[64]
        type: h2o_linklist_t
      - name: anchor257
        type: h2o_linklist_t
      item_type: struct
      name: st_h2o_http2_scheduler_queue_t
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/h2o/lib/http2/scheduler.c
    typedefs: []
    union: []
- function_names:
  - get_debug_state_string
  - append_chunk
  - append_header_table_chunks
  - h2o_http2_get_debug_state
  source_file: /src/h2o/lib/http2/http2_debug_state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FREEZE_STRING
  - h2o_mruby__abort_exc
  - h2o_mruby__new_str
  - on_gc_dispose_generator
  - on_gc_dispose_error_stream
  - h2o_mruby_get_generator
  - h2o_mruby_get_error_stream
  - h2o_mruby_setup_globals
  - h2o_mruby_to_str
  - convert_to_integer
  - h2o_mruby_to_int
  - h2o_mruby_eval_expr
  - h2o_mruby_eval_expr_location
  - h2o_mruby_define_callback
  - h2o_mruby_create_data_instance
  - h2o_mruby_compile_code
  - convert_header_name_to_env
  - handle_early_hints_header
  - send_early_hints_proc
  - get_rtt_proc
  - is_ech_proc
  - build_constants
  - SET_STRING
  - SET_LITERAL
  - handle_exception
  - send_error_callback
  - block_request_callback
  - run_blocking_requests_callback
  - run_child_fiber_callback
  - finish_child_fiber_callback
  - error_stream_write
  - create_shared_context
  - dispose_shared_context
  - get_shared_context
  - prepare_fibers
  - on_context_init
  - on_context_dispose
  - on_handler_dispose
  - stringify_address
  - on_rack_input_free
  - build_env_sort_header_cb
  - build_path_info
  - h2o_mruby_iterate_native_headers
  - iterate_headers_callback
  - h2o_mruby_token_string
  - h2o_mruby_token_env_key
  - build_env
  - h2o_mruby_set_response_header
  - clear_rack_input
  - on_generator_dispose
  - on_req
  - send_response
  - h2o_mruby_run_fiber
  - h2o_mruby_register
  - h2o_mruby_each_to_array
  - iterate_header_values_handle_str
  - h2o_mruby_iterate_header_values
  - h2o_mruby_iterate_rack_headers
  source_file: /src/h2o/lib/handler/mruby.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_FALLTHRU
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/lib/handler/mruby.c
      type_or_value: '399'
    - item_type: preproc_def
      name: FALLTHRU_SET_PREFIX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/lib/handler/mruby.c
      type_or_value: '"x-fallthru-set-"'
    - item_type: preproc_def
      name: KEY_PREFIX
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/h2o/lib/handler/mruby.c
      type_or_value: '"HTTP_"'
    - item_type: preproc_def
      name: KEY_PREFIX_LEN
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/h2o/lib/handler/mruby.c
      type_or_value: (sizeof(KEY_PREFIX) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - tm_is_lessthan
  - CMP
  - close_file
  - on_generator_dispose
  - do_stop_async_splice
  - do_proceed_on_splice_complete
  - do_pread
  - do_sendfile
  - do_sendfile
  - do_sendfile
  - sendvec_sendfile
  - do_proceed
  - do_multirange_proceed
  - create_generator
  - TRY_VARIANT
  - add_headers_unconditional
  - send_decompressed
  - do_send_file
  - h2o_file_send
  - send_dir_listing
  - process_range
  - CHECK_EOF
  - CHECK_OVERFLOW
  - gen_rand_string
  - delegate_dynamic_request
  - try_dynamic_request
  - send_method_not_allowed
  - serve_with_generator
  - on_req
  - on_context_init
  - on_context_dispose
  - on_handler_dispose
  - h2o_file_register
  - h2o_file_get_mimemap
  - specific_handler_on_context_init
  - specific_handler_on_context_dispose
  - specific_handler_on_dispose
  - specific_handler_on_req
  - h2o_file_register_file
  source_file: /src/h2o/lib/handler/file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BUF_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/lib/handler/file.c
      type_or_value: '65000'
    - item_type: preproc_def
      name: BOUNDARY_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/h2o/lib/handler/file.c
      type_or_value: '20'
    - item_type: preproc_def
      name: FIXED_PART_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/lib/handler/file.c
      type_or_value: '(sizeof("\r\n--") - 1 + BOUNDARY_SIZE + sizeof("\r\nContent-Range:
        bytes=-/\r\nContent-Type: \r\n\r\n") - 1)'
    - item_type: preproc_def
      name: sendvec_sendfile
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/h2o/lib/handler/file.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: super
        type: h2o_generator_t
      - name: file
        type: "struct {\n        h2o_filecache_ref_t *ref;\n        off_t off;\n    }"
      - name: bytesleft
        type: size_t
      - name: content_encoding
        type: h2o_iovec_t
      - name: send_vary
        type: unsigned
      - name: send_etag
        type: unsigned
      - name: gunzip
        type: unsigned
      - name: ranged
        type: "struct {\n        char *multirange_buf; /* multi-range mode uses push
          */\n        size_t filesize;\n        size_t range_count;\n        size_t
          *range_infos;  /* size_t shows in pair. first is start offset, then length
          */\n        h2o_iovec_t boundary; /* boundary used for multipart/byteranges
          */\n        h2o_iovec_t mimetype; /* original mimetype for multipart */\n
          \       size_t current_range; /* range that processing now */\n    }"
      - name: header_bufs
        type: "struct {\n        char last_modified[H2O_TIMESTR_RFC1123_LEN + 1];\n
          \       char etag[H2O_FILECACHE_ETAG_MAXLEN + 1];\n    }"
      item_type: struct
      name: st_h2o_sendfile_generator_t
      pos:
        line_end: 77
        line_start: 46
        source_file: /src/h2o/lib/handler/file.c
    - fields:
      - name: super
        type: h2o_handler_t
      - name: conf_path
        type: h2o_iovec_t
      - name: real_path
        type: h2o_iovec_t
      - name: '*mimemap'
        type: h2o_mimemap_t
      - name: flags
        type: int
      - name: max_index_file_len
        type: size_t
      - name: index_files[1]
        type: h2o_iovec_t
      item_type: struct
      name: st_h2o_file_handler_t
      pos:
        line_end: 87
        line_start: 79
        source_file: /src/h2o/lib/handler/file.c
    - fields:
      - name: super
        type: h2o_handler_t
      - name: real_path
        type: h2o_iovec_t
      - name: '*mime_type'
        type: h2o_mimemap_type_t
      - name: flags
        type: int
      item_type: struct
      name: st_h2o_specific_file_handler_t
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/h2o/lib/handler/file.c
    - fields:
      - name: super
        type: h2o_ostream_t
      - name: '*decompressor'
        type: h2o_compress_context_t
      item_type: struct
      name: st_gzip_decompress_t
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/h2o/lib/handler/file.c
    typedefs: []
    union: []
- function_names:
  - do_send
  - on_setup_ostream
  - h2o_compress_register
  - h2o_compress_transform
  source_file: /src/h2o/lib/handler/compress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/lib/handler/compress.c
      type_or_value: '8192'
    structs:
    - fields:
      - name: super
        type: h2o_filter_t
      - name: args
        type: h2o_compress_args_t
      item_type: struct
      name: st_compress_filter_t
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/h2o/lib/handler/compress.c
    - fields:
      - name: super
        type: h2o_ostream_t
      - name: '*compressor'
        type: h2o_compress_context_t
      item_type: struct
      name: st_compress_encoder_t
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/h2o/lib/handler/compress.c
    typedefs: []
    union: []
- function_names:
  - on_req
  - h2o_log_register
  source_file: /src/h2o/lib/handler/h2olog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_setup_ostream
  - h2o_expires_register
  source_file: /src/h2o/lib/handler/expires.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_filter_t
      - name: mode
        type: int
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: st_expires_t
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/h2o/lib/handler/expires.c
    typedefs: []
    union: []
- function_names:
  - find_header
  - is_in_list
  - filter_cookie
  - cookie_cmd
  - remove_header_unless
  - remove_header
  - dispose_h2o_headers_command
  - h2o_headers_append_command
  - h2o_rewrite_headers
  source_file: /src/h2o/lib/handler/headers_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_setup_ostream
  - h2o_server_timing_register
  source_file: /src/h2o/lib/handler/server_timing.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_filter_t
      - name: enforce
        type: unsigned
      item_type: struct
      name: st_server_timing_filter_t
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/h2o/lib/handler/server_timing.c
    typedefs: []
    union: []
- function_names:
  - on_dispose
  - redirect_internally
  - on_req
  - h2o_redirect_register
  source_file: /src/h2o/lib/handler/redirect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MODULE_NAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/lib/handler/redirect.c
      type_or_value: '"lib/handler/redirect.c"'
    structs:
    - fields:
      - name: super
        type: h2o_handler_t
      - name: internal
        type: int
      - name: status
        type: int
      - name: prefix_list
        type: h2o_iovec_vector_t
      item_type: struct
      name: st_h2o_redirect_handler_t
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/h2o/lib/handler/redirect.c
    typedefs:
    - item_type: typedef
      name: (char *)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/h2o/lib/handler/redirect.c
      type: H2O_VECTOR
    union: []
- function_names:
  - on_send
  - on_setup_ostream
  - h2o_reproxy_register
  source_file: /src/h2o/lib/handler/reproxy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - collect_reqs_of_context
  - send_response
  - on_collect_notify
  - on_collector_dispose
  - on_req_close
  - on_req_json
  - on_req
  - on_context_init
  - on_context_dispose
  - h2o_status_register
  source_file: /src/h2o/lib/handler/status.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_logger_t
      item_type: struct
      name: st_h2o_status_logger_t
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/h2o/lib/handler/status.c
    - fields:
      - name: super
        type: h2o_handler_t
      item_type: struct
      name: st_h2o_root_status_handler_t
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/h2o/lib/handler/status.c
    - fields:
      - name: '*ctx'
        type: h2o_context_t
      - name: receiver
        type: h2o_multithread_receiver_t
      item_type: struct
      name: st_h2o_status_context_t
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/h2o/lib/handler/status.c
    - fields:
      - name: active
        type: int
      - name: '*ctx'
        type: void
      item_type: struct
      name: st_status_ctx_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/h2o/lib/handler/status.c
    - fields:
      - name: src
        type: "struct {\n        h2o_req_t *req;\n        h2o_multithread_receiver_t
          *receiver;\n    }"
      - name: num_remaining_threads_atomic
        type: size_t
      item_type: struct
      name: st_h2o_status_collector_t
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/h2o/lib/handler/status.c
    - fields:
      - name: super
        type: h2o_multithread_message_t
      - name: '*collector'
        type: struct st_h2o_status_collector_t
      item_type: struct
      name: st_h2o_status_message_t
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/h2o/lib/handler/status.c
    typedefs: []
    union: []
- function_names:
  - encode_uint16
  - encode_record_header
  - encode_begin_request
  - create_begin_request
  - create_header
  - decode_header
  - append
  - encode_length_of_pair
  - append_pair
  - append_address_info
  - envname_is_headername
  - append_params
  - annotate_params
  - build_request
  - set_timeout
  - close_generator
  - do_send
  - send_eos_and_close
  - errorclose
  - _isdigit
  - fill_headers
  - append_content
  - handle_stdin_record
  - on_rw_timeout
  - on_read
  - on_send_complete
  - on_connect
  - do_proceed
  - do_stop
  - on_connect_timeout
  - on_req
  - on_context_init
  - on_context_dispose
  - on_handler_dispose
  - h2o_fastcgi_register
  source_file: /src/h2o/lib/handler/fastcgi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FCGI_VERSION_1
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FCGI_RESPONDER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FCGI_KEEP_CONN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FCGI_BEGIN_REQUEST
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FCGI_END_REQUEST
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FCGI_PARAMS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FCGI_STDIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FCGI_STDOUT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '6'
    - item_type: preproc_def
      name: FCGI_STDERR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '7'
    - item_type: preproc_def
      name: FCGI_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '8'
    - item_type: preproc_def
      name: FCGI_RECORD_HEADER_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: (sizeof(struct st_fcgi_record_header_t))
    - item_type: preproc_def
      name: FCGI_BEGIN_REQUEST_BODY_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MODULE_NAME
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '"lib/handler/fastcgi.c"'
    - item_type: preproc_def
      name: APPEND_BLOCKSIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/h2o/lib/handler/fastcgi.c
      type_or_value: '512 '
    structs:
    - fields:
      - name: version
        type: uint8_t
      - name: type
        type: uint8_t
      - name: requestId
        type: uint16_t
      - name: contentLength
        type: uint16_t
      - name: paddingLength
        type: uint8_t
      - name: reserved
        type: uint8_t
      item_type: struct
      name: st_fcgi_record_header_t
      pos:
        line_end: 53
        line_start: 46
        source_file: /src/h2o/lib/handler/fastcgi.c
    - fields:
      - name: role
        type: uint16_t
      - name: flags
        type: uint8_t
      - name: reserved[5]
        type: uint8_t
      item_type: struct
      name: st_fcgi_begin_request_body_t
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/h2o/lib/handler/fastcgi.c
    - fields:
      - name: super
        type: h2o_generator_t
      - name: '*handler'
        type: h2o_fastcgi_handler_t
      - name: '*req'
        type: h2o_req_t
      - name: '*connect_req'
        type: h2o_socketpool_connect_request_t
      - name: '*sock'
        type: h2o_socket_t
      - name: sent_headers
        type: int
      - name: leftsize
        type: size_t
      - name: resp
        type: "struct {\n        h2o_doublebuffer_t sending;\n        h2o_buffer_t
          *receiving;\n    }"
      - name: timeout
        type: h2o_timer_t
      item_type: struct
      name: st_fcgi_generator_t
      pos:
        line_end: 76
        line_start: 63
        source_file: /src/h2o/lib/handler/fastcgi.c
    - fields:
      - name: super
        type: h2o_handler_t
      - name: sockpool
        type: h2o_socketpool_t
      - name: config
        type: h2o_fastcgi_config_vars_t
      item_type: struct
      name: st_h2o_fastcgi_handler_t
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/h2o/lib/handler/fastcgi.c
    typedefs:
    - item_type: typedef
      name: (h2o_iovec_t)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/h2o/lib/handler/fastcgi.c
      type: H2O_VECTOR
    union: []
- function_names:
  - log_access
  - on_dispose_handle
  - h2o_access_log_open_log
  - h2o_access_log_open_handle
  - dispose
  - h2o_access_log_register
  source_file: /src/h2o/lib/handler/access_log.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*logconf'
        type: h2o_logconf_t
      - name: fd
        type: int
      item_type: struct
      name: st_h2o_access_log_filehandle_t
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/h2o/lib/handler/access_log.c
    - fields:
      - name: super
        type: h2o_logger_t
      - name: '*fh'
        type: h2o_access_log_filehandle_t
      item_type: struct
      name: st_h2o_access_logger_t
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/h2o/lib/handler/access_log.c
    typedefs: []
    union: []
- function_names:
  - get_proxy_status_identity
  - get_dest_addr
  - add_proxy_status_header
  - TO_BITMASK
  - record_error
  - record_connect_success
  - record_socket_error
  - get_loop
  - stop_eyeballs
  - dispose_generator
  - close_socket
  - close_readwrite
  - on_io_timeout
  - reset_io_timeout
  - send_connect_error
  - on_connect_error
  - on_connect_timeout
  - set_last_error
  - on_resolution_delay_timeout
  - on_connection_attempt_delay_timeout
  - store_server_addresses
  - on_getaddr
  - pick_and_swap
  - get_next_server_address_for_connect
  - try_connect
  - tcp_on_write_complete
  - tcp_do_write
  - tcp_write
  - tcp_on_read
  - tcp_on_proceed
  - tcp_on_connect
  - tcp_start_connect
  - udp_get_next_chunk
  - udp_write_core
  - udp_write_stream_complete_delayed
  - udp_do_write_stream
  - udp_write_stream
  - udp_write_datagrams
  - udp_on_read
  - udp_on_proceed
  - udp_connect
  - on_stop
  - on_generator_dispose
  - masque_decode_hostport
  - on_req_core
  - on_req_classic_connect
  - on_req_connect_udp
  - do_register
  - h2o_connect_register
  - h2o_connect_udp_register
  - parse_decimal
  - parse_acl_hostport
  - h2o_connect_parse_acl
  - h2o_connect_lookup_acl
  source_file: /src/h2o/lib/handler/connect.c
  types:
    enum:
    - enumerators:
      - name: ERROR_CLASS_NAME_RESOLUTION
      - name: ERROR_CLASS_CONNECT
      - name: ERROR_CLASS_ACCESS_PROHIBITED
      item_type: enum
      name: error_class
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/h2o/lib/handler/connect.c
    preproc_defs:
    - item_type: preproc_def
      name: MODULE_NAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/lib/handler/connect.c
      type_or_value: '"lib/handler/connect.c"'
    - item_type: preproc_def
      name: MAX_ADDRESSES_PER_FAMILY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/h2o/lib/handler/connect.c
      type_or_value: '4'
    - item_type: preproc_def
      name: UDP_CHUNK_OVERHEAD
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/h2o/lib/handler/connect.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: super
        type: h2o_handler_t
      - name: config
        type: h2o_proxy_config_vars_t
      - name: acl
        type: "struct {\n        size_t count;\n        h2o_connect_acl_entry_t entries[0];\n
          \   }"
      item_type: struct
      name: st_connect_handler_t
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/h2o/lib/handler/connect.c
    - fields:
      - name: '*sa'
        type: struct sockaddr
      - name: salen
        type: socklen_t
      item_type: struct
      name: st_server_address_t
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/h2o/lib/handler/connect.c
    - fields:
      - name: super
        type: h2o_generator_t
      - name: '*handler'
        type: struct st_connect_handler_t
      - name: '*src_req'
        type: h2o_req_t
      - name: getaddr_req
        type: "struct {\n        h2o_hostinfo_getaddr_req_t *v4, *v6;\n    }"
      - name: server_addresses
        type: "struct {\n        struct st_server_address_t list[MAX_ADDRESSES_PER_FAMILY
          * 2];\n        size_t size;\n        size_t used;\n    }"
      - name: '*sock'
        type: h2o_socket_t
      - name: last_error
        type: "struct {\n        enum error_class { ERROR_CLASS_NAME_RESOLUTION, ERROR_CLASS_ACCESS_PROHIBITED,
          ERROR_CLASS_CONNECT } class;\n        const char *str;\n    }"
      - name: timeout
        type: h2o_timer_t
      - name: eyeball_delay
        type: h2o_timer_t
      - name: pick_v4
        type: unsigned
      - name: no_req_streaming
        type: unsigned
      - name: write_closed
        type: unsigned
      - name: read_closed
        type: unsigned
      - name: socket_closed
        type: unsigned
      - name: is_tcp
        type: unsigned
      item_type: struct
      name: st_connect_generator_t
      pos:
        line_end: 125
        line_start: 47
        source_file: /src/h2o/lib/handler/connect.c
    typedefs: []
    union: []
- function_names:
  - on_setup_ostream
  - on_informational
  - on_sender_deferred_timeout
  - on_sender_dispose
  - on_req
  - requires_early_hints_handler
  - h2o_headers_register
  - h2o_headers_is_prohibited_name
  source_file: /src/h2o/lib/handler/headers.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_filter_t
      - name: '*cmds'
        type: h2o_headers_command_t
      item_type: struct
      name: st_headers_filter_t
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/h2o/lib/handler/headers.c
    - fields:
      - name: super
        type: h2o_handler_t
      - name: '*cmds'
        type: h2o_headers_command_t
      item_type: struct
      name: st_headers_early_hints_handler_t
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/lib/handler/headers.c
    - fields:
      - name: '*req'
        type: h2o_req_t
      - name: '*cmds'
        type: h2o_headers_command_t
      - name: deferred_timeout_entry
        type: h2o_timer_t
      item_type: struct
      name: st_headers_early_hints_sender_t
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/h2o/lib/handler/headers.c
    typedefs: []
    union: []
- function_names:
  - add_header
  - on_prefilter_setup_stream
  - on_ostream_send
  - prefilter_is_registered
  - on_filter_setup_ostream
  - h2o_errordoc_register
  source_file: /src/h2o/lib/handler/errordoc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_req_prefilter_t
      - name: req_headers
        type: h2o_headers_t
      - name: status
        type: int
      - name: '*reason'
        type: char
      - name: res_headers
        type: h2o_headers_t
      item_type: struct
      name: st_errordoc_prefilter_t
      pos:
        line_end: 30
        line_start: 24
        source_file: /src/h2o/lib/handler/errordoc.c
    - fields:
      - name: super
        type: h2o_filter_t
      - name: (h2o_errordoc_t)
        type: H2O_VECTOR
      item_type: struct
      name: st_errordoc_filter_t
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/h2o/lib/handler/errordoc.c
    typedefs: []
    union: []
- function_names:
  - calc_delay
  - real_send
  - on_timer
  - on_send
  - on_stop
  - on_setup_ostream
  - h2o_throttle_resp_register
  source_file: /src/h2o/lib/handler/throttle_resp.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_ostream_t
      - name: timeout_entry
        type: h2o_timer_t
      - name: window
        type: "struct {\n        uint64_t at;\n        ssize_t bytes_left;\n    }"
      - name: '*req'
        type: h2o_req_t
      - name: bytes_per_sec
        type: size_t
      - name: state
        type: "struct {\n        H2O_VECTOR(h2o_sendvec_t) bufs;\n        h2o_send_state_t
          stream_state;\n    }"
      item_type: struct
      name: st_throttle_resp_t
      pos:
        line_end: 37
        line_start: 24
        source_file: /src/h2o/lib/handler/throttle_resp.c
    typedefs: []
    union: []
- function_names:
  - on_req
  - h2o_http2_debug_state_register
  source_file: /src/h2o/lib/handler/http2_debug_state.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_handler_t
      - name: hpack_enabled
        type: int
      item_type: struct
      name: st_h2o_http2_debug_state_handler_t
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/h2o/lib/handler/http2_debug_state.c
    typedefs: []
    union: []
- function_names:
  - hash_mimemap_type
  - mimemap_type_equals
  - dupref
  - on_dispose
  - on_unlink
  - on_link
  - rebuild_typeset
  - create_extension_type
  - dispose_dynamic_type
  - create_dynamic_type
  - h2o_mimemap_create
  - h2o_mimemap_clone
  - FOREACH_TYPE
  - h2o_mimemap_on_context_init
  - h2o_mimemap_on_context_dispose
  - h2o_mimemap_has_dynamic_type
  - set_default_type
  - h2o_mimemap_set_default_type
  - set_type
  - h2o_mimemap_define_mimetype
  - h2o_mimemap_define_dynamic
  - h2o_mimemap_remove_type
  - h2o_mimemap_clear_types
  - h2o_mimemap_get_default_type
  - h2o_mimemap_get_type_by_extension
  - h2o_mimemap_get_type_by_mimetype
  - h2o_mimemap_get_default_attributes
  - MIME_IS
  - MIME_STARTS_WITH
  - MIME_ENDS_WITH
  source_file: /src/h2o/lib/handler/mimemap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* extmap'
        type: khash_t
      - name: '* typeset'
        type: khash_t
      - name: '*default_type'
        type: h2o_mimemap_type_t
      - name: num_dynamic
        type: size_t
      item_type: struct
      name: st_h2o_mimemap_t
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/h2o/lib/handler/mimemap.c
    typedefs: []
    union: []
- function_names:
  - on_generator_dispose
  - do_send
  - on_send_timeout
  - adjust_send_timer
  - log_trace
  - do_proceed
  - on_req
  - h2o_self_trace_register
  source_file: /src/h2o/lib/handler/self_trace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEND_WAIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/lib/handler/self_trace.c
      type_or_value: '500        '
    - item_type: preproc_def
      name: BUFFER_LIMIT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/lib/handler/self_trace.c
      type_or_value: '8388608 '
    structs:
    - fields:
      - name: super
        type: h2o_generator_t
      - name: '*req'
        type: h2o_req_t
      - name: '*buf'
        type: h2o_buffer_t
      - name: inflight
        type: h2o_doublebuffer_t
      - name: send_timer
        type: h2o_timer_t
      - name: should_send_buffered
        type: unsigned
      item_type: struct
      name: h2o_self_trace_generator
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/h2o/lib/handler/self_trace.c
    typedefs: []
    union: []
- function_names:
  - on_req
  - on_context_init
  - on_context_dispose
  - on_handler_dispose
  - h2o_proxy_register_reverse_proxy
  source_file: /src/h2o/lib/handler/proxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_handler_t
      - name: '*sockpool'
        type: h2o_socketpool_t
      - name: config
        type: h2o_proxy_config_vars_t
      item_type: struct
      name: rp_handler_t
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/h2o/lib/handler/proxy.c
    - fields:
      - name: connpool
        type: h2o_httpclient_connection_pool_t
      - name: '*client_ctx'
        type: h2o_httpclient_ctx_t
      item_type: struct
      name: rp_handler_context_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/h2o/lib/handler/proxy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/lib/handler/mimemap/defaults.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/lib/handler/mruby/embedded.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_CORE
      pos:
        line_end: 142
        line_start: 6
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"# Copyright (c) 2014-2016 DeNA Co., Ltd., Kazuho Oku, Ryosuke
        Matsumoto,\\n\"                                                   \\\n    \"#
        \                        Masayoshi Takahashi\\n\"                                                                              \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# Permission is hereby granted, free of charge, to any person obtaining
        a copy\\n\"                                             \\\n    \"# of this
        software and associated documentation files (the \\\"Software\\\"), to\\n\"
        \                                              \\\n    \"# deal in the Software
        without restriction, including without limitation the\\n\"                                               \\\n
        \   \"# rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or\\n\"                                              \\\n    \"# sell
        copies of the Software, and to permit persons to whom the Software is\\n\"
        \                                              \\\n    \"# furnished to do
        so, subject to the following conditions:\\n\"                                                                 \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# The above copyright notice and this permission notice shall be included
        in\\n\"                                               \\\n    \"# all copies
        or substantial portions of the Software.\\n\"                                                                      \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR\\n\"                                             \\\n    \"# IMPLIED,
        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n\"                                                 \\\n
        \   \"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
        SHALL THE\\n\"                                              \\\n    \"# AUTHORS
        OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n\"                                                   \\\n
        \   \"# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\n\"
        \                                                 \\\n    \"# FROM, OUT OF
        OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\\n\"                                             \\\n
        \   \"# IN THE SOFTWARE.\\n\"                                                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"$__TOP_SELF__ = self\\n\"                                                                                                       \\\n
        \   \"def _h2o_eval_conf(__h2o_conf)\\n\"                                                                                             \\\n
        \   \"  $__TOP_SELF__.eval(__h2o_conf[:code], nil, __h2o_conf[:file], __h2o_conf[:line])\\n\"
        \                                        \\\n    \"end\\n\"                                                                                                                        \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module Kernel\\n\"                                                                                                              \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def _h2o_define_callback(name, callback_id)\\n\"                                                                              \\\n
        \   \"    Kernel.define_method(name) do |*args|\\n\"                                                                                  \\\n
        \   \"      ret = Fiber.yield([ callback_id, _h2o_create_resumer(), args ],
        nil)\\n\"                                                 \\\n    \"      if
        ret.kind_of? Exception\\n\"                                                                                            \\\n
        \   \"        raise ret\\n\"                                                                                                          \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      ret\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def _h2o_create_resumer()\\n\"                                                                                                \\\n
        \   \"    me = Fiber.current\\n\"                                                                                                     \\\n
        \   \"    Proc.new do |v|\\n\"                                                                                                        \\\n
        \   \"      me.resume(v)\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def _h2o_proc_each_to_array()\\n\"                                                                                            \\\n
        \   \"    Proc.new do |o|\\n\"                                                                                                        \\\n
        \   \"      a = []\\n\"                                                                                                               \\\n
        \   \"      o.each do |x|\\n\"                                                                                                        \\\n
        \   \"        a << x\\n\"                                                                                                             \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      a\\n\"                                                                                                                    \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def _h2o_prepare_app(conf)\\n\"                                                                                               \\\n
        \   \"    app = Proc.new do |req|\\n\"                                                                                                \\\n
        \   \"      _h2o__block_request(req)\\n\"                                                                                             \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    cached = nil\\n\"                                                                                                           \\\n
        \   \"    runner = Proc.new do |args|\\n\"                                                                                            \\\n
        \   \"      fiber = cached || Fiber.new do |req, generator|\\n\"                                                                      \\\n
        \   \"        self_fiber = Fiber.current\\n\"                                                                                         \\\n
        \   \"        while 1\\n\"                                                                                                            \\\n
        \   \"          begin\\n\"                                                                                                            \\\n
        \   \"            while 1\\n\"                                                                                                        \\\n
        \   \"              resp = app.call(req)\\n\"                                                                                         \\\n
        \   \"              cached = self_fiber\\n\"                                                                                          \\\n
        \   \"              (req, generator) = Fiber.yield(resp, generator)\\n\"                                                              \\\n
        \   \"            end\\n\"                                                                                                            \\\n
        \   \"          rescue => e\\n\"                                                                                                      \\\n
        \   \"            cached = self_fiber\\n\"                                                                                            \\\n
        \   \"            (req, generator) = _h2o__send_error(e, generator)\\n\"                                                              \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      cached = nil\\n\"                                                                                                         \\\n
        \   \"      fiber.resume(*args)\\n\"                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    configurator = Proc.new do\\n\"                                                                                             \\\n
        \   \"      fiber = Fiber.new do\\n\"                                                                                                 \\\n
        \   \"        begin\\n\"                                                                                                              \\\n
        \   \"          H2O::ConfigurationContext.reset\\n\"                                                                                  \\\n
        \   \"          app = _h2o_eval_conf(conf)\\n\"                                                                                       \\\n
        \   \"          H2O::ConfigurationContext.instance.call_post_handler_generation_hooks(app)\\n\"
        \                                      \\\n    \"          _h2o__run_blocking_requests()\\n\"
        \                                                                                   \\\n
        \   \"        rescue => e\\n\"                                                                                                        \\\n
        \   \"          app = Proc.new do |req|\\n\"                                                                                          \\\n
        \   \"            [500, {}, ['Internal Server Error']]\\n\"                                                                           \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          _h2o__run_blocking_requests(e)\\n\"                                                                                   \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      fiber.resume\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    [runner, configurator]\\n\"                                                                                                 \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def sleep(*sec)\\n\"                                                                                                          \\\n
        \   \"    _h2o__sleep(*sec)\\n\"                                                                                                      \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def task(&block)\\n\"                                                                                                         \\\n
        \   \"    fiber = Fiber.new do\\n\"                                                                                                   \\\n
        \   \"      begin\\n\"                                                                                                                \\\n
        \   \"        block.call\\n\"                                                                                                         \\\n
        \   \"      rescue => e\\n\"                                                                                                          \\\n
        \   \"        _h2o__send_error(e)\\n\"                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      _h2o__finish_child_fiber()\\n\"                                                                                           \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    _h2o__run_child_fiber(proc { fiber.resume })\\n\"                                                                           \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\"                                                                                                                        \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module H2O\\n\"                                                                                                                 \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class ErrorStream\\n\"                                                                                                        \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def puts(*msgs)\\n\"                                                                                                        \\\n
        \   \"      msgs.each {|msg| write msg }\\n\"                                                                                         \\\n
        \   \"      nil\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def flush\\n\"                                                                                                              \\\n
        \   \"      self\\n\"                                                                                                                 \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\""
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_SENDER
      pos:
        line_end: 185
        line_start: 144
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"# Copyright (c) 2014 DeNA Co., Ltd.\\n\"                                                                                        \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# Permission is hereby granted, free of charge, to any person obtaining
        a copy\\n\"                                             \\\n    \"# of this
        software and associated documentation files (the \\\"Software\\\"), to\\n\"
        \                                              \\\n    \"# deal in the Software
        without restriction, including without limitation the\\n\"                                               \\\n
        \   \"# rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or\\n\"                                              \\\n    \"# sell
        copies of the Software, and to permit persons to whom the Software is\\n\"
        \                                              \\\n    \"# furnished to do
        so, subject to the following conditions:\\n\"                                                                 \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# The above copyright notice and this permission notice shall be included
        in\\n\"                                               \\\n    \"# all copies
        or substantial portions of the Software.\\n\"                                                                      \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR\\n\"                                             \\\n    \"# IMPLIED,
        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n\"                                                 \\\n
        \   \"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
        SHALL THE\\n\"                                              \\\n    \"# AUTHORS
        OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n\"                                                   \\\n
        \   \"# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\n\"
        \                                                 \\\n    \"# FROM, OUT OF
        OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\\n\"                                             \\\n
        \   \"# IN THE SOFTWARE.\\n\"                                                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module Kernel\\n\"                                                                                                              \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def _h2o_sender_proc_each_to_fiber()\\n\"                                                                                     \\\n
        \   \"    Proc.new do |args|\\n\"                                                                                                     \\\n
        \   \"      src, generator = *args\\n\"                                                                                               \\\n
        \   \"      fiber = Fiber.new do\\n\"                                                                                                 \\\n
        \   \"        begin\\n\"                                                                                                              \\\n
        \   \"          src.each do |chunk|\\n\"                                                                                              \\\n
        \   \"            _h2o_sender_send_chunk(chunk, generator)\\n\"                                                                       \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          _h2o_sender_send_chunk_eos(generator)\\n\"                                                                            \\\n
        \   \"        rescue => e\\n\"                                                                                                        \\\n
        \   \"          _h2o_sender_handle_error(e, generator)\\n\"                                                                           \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      fiber.resume\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\""
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_MIDDLEWARE
      pos:
        line_end: 252
        line_start: 187
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"# Copyright (c) 2017 Ichito Nagata, Fastly, Inc.\\n\"                                                                           \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# Permission is hereby granted, free of charge, to any person obtaining
        a copy\\n\"                                             \\\n    \"# of this
        software and associated documentation files (the \\\"Software\\\"), to\\n\"
        \                                              \\\n    \"# deal in the Software
        without restriction, including without limitation the\\n\"                                               \\\n
        \   \"# rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or\\n\"                                              \\\n    \"# sell
        copies of the Software, and to permit persons to whom the Software is\\n\"
        \                                              \\\n    \"# furnished to do
        so, subject to the following conditions:\\n\"                                                                 \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# The above copyright notice and this permission notice shall be included
        in\\n\"                                               \\\n    \"# all copies
        or substantial portions of the Software.\\n\"                                                                      \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR\\n\"                                             \\\n    \"# IMPLIED,
        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n\"                                                 \\\n
        \   \"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
        SHALL THE\\n\"                                              \\\n    \"# AUTHORS
        OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n\"                                                   \\\n
        \   \"# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\n\"
        \                                                 \\\n    \"# FROM, OUT OF
        OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\\n\"                                             \\\n
        \   \"# IN THE SOFTWARE.\\n\"                                                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module H2O\\n\"                                                                                                                 \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class App\\n\"                                                                                                                \\\n
        \   \"    def initialize(reprocess)\\n\"                                                                                              \\\n
        \   \"      @reprocess = reprocess\\n\"                                                                                               \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    def call(env)\\n\"                                                                                                          \\\n
        \   \"      request(env).join\\n\"                                                                                                    \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  def self.next\\n\"                                                                                                            \\\n
        \   \"    @@next ||= App.new(false)\\n\"                                                                                              \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"  def self.reprocess\\n\"                                                                                                       \\\n
        \   \"    @@reprocess ||= App.new(true)\\n\"                                                                                          \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class AppRequest\\n\"                                                                                                         \\\n
        \   \"    def join\\n\"                                                                                                               \\\n
        \   \"      if !@resp\\n\"                                                                                                            \\\n
        \   \"        _h2o_middleware_wait_response(self) unless _can_build_response?\\n\"
        \                                                   \\\n    \"        @resp
        = _build_response\\n\"                                                                                            \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      @resp\\n\"                                                                                                                \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class AppInputStream\\n\"                                                                                                     \\\n
        \   \"    def each(&block)\\n\"                                                                                                       \\\n
        \   \"      while chunk = _h2o_middleware_wait_chunk(self)\\n\"                                                                       \\\n
        \   \"        yield chunk\\n\"                                                                                                        \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    def join\\n\"                                                                                                               \\\n
        \   \"      s = \\\"\\\"\\n\"                                                                                                             \\\n
        \   \"      each do |c|\\n\"                                                                                                          \\\n
        \   \"        s << c\\n\"                                                                                                             \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      s\\n\"                                                                                                                    \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\""
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_HTTP_REQUEST
      pos:
        line_end: 311
        line_start: 254
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"# Copyright (c) 2015-2016 DeNA Co., Ltd., Kazuho Oku\\n\"
        \                                                                      \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# Permission is hereby granted, free of charge, to any person obtaining
        a copy\\n\"                                             \\\n    \"# of this
        software and associated documentation files (the \\\"Software\\\"), to\\n\"
        \                                              \\\n    \"# deal in the Software
        without restriction, including without limitation the\\n\"                                               \\\n
        \   \"# rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or\\n\"                                              \\\n    \"# sell
        copies of the Software, and to permit persons to whom the Software is\\n\"
        \                                              \\\n    \"# furnished to do
        so, subject to the following conditions:\\n\"                                                                 \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# The above copyright notice and this permission notice shall be included
        in\\n\"                                               \\\n    \"# all copies
        or substantial portions of the Software.\\n\"                                                                      \\\n
        \   \"# \\n\"                                                                                                                         \\\n
        \   \"# THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR\\n\"                                             \\\n    \"# IMPLIED,
        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n\"                                                 \\\n
        \   \"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
        SHALL THE\\n\"                                              \\\n    \"# AUTHORS
        OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n\"                                                   \\\n
        \   \"# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\n\"
        \                                                 \\\n    \"# FROM, OUT OF
        OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\\n\"                                             \\\n
        \   \"# IN THE SOFTWARE.\\n\"                                                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module H2O\\n\"                                                                                                                 \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class HttpRequest\\n\"                                                                                                        \\\n
        \   \"    def join\\n\"                                                                                                               \\\n
        \   \"      if !@resp\\n\"                                                                                                            \\\n
        \   \"        @resp = _h2o__http_join_response(self)\\n\"                                                                             \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      @resp\\n\"                                                                                                                \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    def _set_response(resp)\\n\"                                                                                                \\\n
        \   \"      @resp = resp\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class HttpInputStream\\n\"                                                                                                    \\\n
        \   \"    def each\\n\"                                                                                                               \\\n
        \   \"      first = true\\n\"                                                                                                         \\\n
        \   \"      while c = _h2o__http_fetch_chunk(self, first)\\n\"                                                                        \\\n
        \   \"        yield c\\n\"                                                                                                            \\\n
        \   \"        first = false\\n\"                                                                                                      \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    def join\\n\"                                                                                                               \\\n
        \   \"      s = \\\"\\\"\\n\"                                                                                                             \\\n
        \   \"      each do |c|\\n\"                                                                                                          \\\n
        \   \"        s << c\\n\"                                                                                                             \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      s\\n\"                                                                                                                    \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    class Empty < HttpInputStream\\n\"                                                                                          \\\n
        \   \"      def each; end\\n\"                                                                                                        \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\""
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_REDIS
      pos:
        line_end: 673
        line_start: 313
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"module H2O\\n\"                                                                                                                 \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  class Redis\\n\"                                                                                                              \\\n
        \   \"    attr_reader :host\\n\"                                                                                                      \\\n
        \   \"    attr_reader :port\\n\"                                                                                                      \\\n
        \   \"    attr_reader :db\\n\"                                                                                                        \\\n
        \   \"    attr_reader :password\\n\"                                                                                                  \\\n
        \   \"    attr_reader :connect_timeout\\n\"                                                                                           \\\n
        \   \"    attr_reader :command_timeout\\n\"                                                                                           \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def initialize(config)\\n\"                                                                                                 \\\n
        \   \"      @host            = config[:host]\\n\"                                                                                     \\\n
        \   \"      @port            = config[:port].to_i\\n\"                                                                                \\\n
        \   \"      @db              = config[:db].to_i\\n\"                                                                                  \\\n
        \   \"      @password        = config[:password]\\n\"                                                                                 \\\n
        \   \"      @connect_timeout = (config[:connect_timeout] || config[:timeout]
        || 5).to_f\\n\"                                          \\\n    \"      @command_timeout
        = (config[:command_timeout] || config[:timeout] || 5).to_f\\n\"                                          \\\n
        \   \"      __setup\\n\"                                                                                                              \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    # will be overriden by h2o (define here for passing compile check)\\n\"
        \                                                    \\\n    \"    def __setup;
        end\\n\"                                                                                                       \\\n
        \   \"    def __connect; end\\n\"                                                                                                     \\\n
        \   \"    def disconnect; end\\n\"                                                                                                    \\\n
        \   \"    def disconnected?; end\\n\"                                                                                                 \\\n
        \   \"    def __call; end\\n\"                                                                                                        \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def db=(_db)\\n\"                                                                                                           \\\n
        \   \"      old = @db\\n\"                                                                                                            \\\n
        \   \"      @db = _db.to_i\\n\"                                                                                                       \\\n
        \   \"      if ! disconnected? && @db != old\\n\"                                                                                     \\\n
        \   \"        self.select(@db)\\n\"                                                                                                   \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def connect\\n\"                                                                                                            \\\n
        \   \"      __connect\\n\"                                                                                                            \\\n
        \   \"      self.auth(@password) if @password\\n\"                                                                                    \\\n
        \   \"      self.select(@db) if @db != 0\\n\"                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def ensure_connected\\n\"                                                                                                   \\\n
        \   \"      connect if disconnected?\\n\"                                                                                             \\\n
        \   \"      yield\\n\"                                                                                                                \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    STREAMING_COMMANDS = %w(subscribe psubscribe).map {|c| [c, true]
        }.to_h\\n\"                                                \\\n    \"    NO_REPLY_COMMANDS
        \ = %w(unsubscribe punsubscribe).map {|c| [c, true] }.to_h\\n\"                                            \\\n
        \   \"    def _command_class(c)\\n\"                                                                                                  \\\n
        \   \"      c = c.to_s.downcase\\n\"                                                                                                  \\\n
        \   \"      if STREAMING_COMMANDS.include?(c)\\n\"                                                                                    \\\n
        \   \"        Command::Streaming\\n\"                                                                                                 \\\n
        \   \"      elsif NO_REPLY_COMMANDS.include?(c)\\n\"                                                                                  \\\n
        \   \"        Command::NoReply\\n\"                                                                                                   \\\n
        \   \"      elsif c.to_sym == :exec\\n\"                                                                                              \\\n
        \   \"        Command::OneShot::Exec\\n\"                                                                                             \\\n
        \   \"      else\\n\"                                                                                                                 \\\n
        \   \"        Command::OneShot\\n\"                                                                                                   \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def call(*command_args, &block)\\n\"                                                                                        \\\n
        \   \"      command_class = _command_class(command_args[0])\\n\"                                                                      \\\n
        \   \"      ensure_connected do\\n\"                                                                                                  \\\n
        \   \"        __call(command_args, command_class, &block)\\n\"                                                                        \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    # errors\\n\"                                                                                                               \\\n
        \   \"    class BaseError < RuntimeError; end\\n\"                                                                                    \\\n
        \   \"    class CommandError < BaseError\\n\"                                                                                         \\\n
        \   \"      attr_reader :command\\n\"                                                                                                 \\\n
        \   \"      def initialize(message, command)\\n\"                                                                                     \\\n
        \   \"        super(\\\"%s (command: %s)\\\" % [message, command.args.join('
        ')])\\n\"                                                    \\\n    \"        @command
        = command\\n\"                                                                                                 \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    class ConnectionError < BaseError; end\\n\"                                                                                 \\\n
        \   \"    class ProtocolError < BaseError; end\\n\"                                                                                   \\\n
        \   \"    class TimeoutError < ConnectionError; end\\n\"                                                                              \\\n
        \   \"    class ConnectTimeoutError < TimeoutError; end\\n\"                                                                          \\\n
        \   \"    class CommandTimeoutError < TimeoutError; end\\n\"                                                                          \\\n
        \   \"    class UnknownError < BaseError; end\\n\"                                                                                    \\\n
        \   \"    class UnavailableCommandError < BaseError; end\\n\"                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    class Command\\n\"                                                                                                          \\\n
        \   \"      attr_reader :args\\n\"                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      module ReplyReceiver\\n\"                                                                                                 \\\n
        \   \"        def _validate_reply(reply)\\n\"                                                                                         \\\n
        \   \"          raise reply if reply.kind_of?(RuntimeError)\\n\"                                                                      \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      include ReplyReceiver\\n\"                                                                                                \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      def initialize(args)\\n\"                                                                                                 \\\n
        \   \"        @args = args\\n\"                                                                                                       \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      class OneShot < Command\\n\"                                                                                              \\\n
        \   \"        def _on_reply(reply)\\n\"                                                                                               \\\n
        \   \"          @reply = reply\\n\"                                                                                                   \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"        def join\\n\"                                                                                                           \\\n
        \   \"          if !@reply\\n\"                                                                                                       \\\n
        \   \"            @reply = _h2o__redis_join_reply(self)\\n\"                                                                          \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          _validate_reply(@reply)\\n\"                                                                                          \\\n
        \   \"          @reply\\n\"                                                                                                           \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"        # exec may contain error reply in array reply, or nil reply
        when watch failed, so have to check it\\n\"                 \\\n    \"        class
        Exec < OneShot\\n\"                                                                                               \\\n
        \   \"          def _validate_reply(reply)\\n\"                                                                                       \\\n
        \   \"            if reply.nil?\\n\"                                                                                                  \\\n
        \   \"              raise CommandError.new('transaction was aborted', self)\\n\"
        \                                                     \\\n    \"            end\\n\"
        \                                                                                                           \\\n
        \   \"            super(reply)\\n\"                                                                                                   \\\n
        \   \"            if reply.kind_of?(Array)\\n\"                                                                                       \\\n
        \   \"              reply.each {|child| super(child) }\\n\"                                                                           \\\n
        \   \"            end\\n\"                                                                                                            \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      class NoReply < Command\\n\"                                                                                              \\\n
        \   \"        def _on_reply(reply)\\n\"                                                                                               \\\n
        \   \"          raise RuntimeError.new('no-reply command got reply: something
        went wrong?')\\n\"                                      \\\n    \"        end\\n\"
        \                                                                                                               \\\n
        \   \"        def join\\n\"                                                                                                           \\\n
        \   \"          'OK'\\n\"                                                                                                             \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      class Streaming < Command\\n\"                                                                                            \\\n
        \   \"        class Channel\\n\"                                                                                                      \\\n
        \   \"          include ReplyReceiver\\n\"                                                                                            \\\n
        \   \"          def initialize(command)\\n\"                                                                                          \\\n
        \   \"            @command = command\\n\"                                                                                             \\\n
        \   \"            @replies = []\\n\"                                                                                                  \\\n
        \   \"            @unsubscribed = false\\n\"                                                                                          \\\n
        \   \"            @error = nil\\n\"                                                                                                   \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          def _on_reply(reply)\\n\"                                                                                             \\\n
        \   \"            @replies << reply\\n\"                                                                                              \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          def shift\\n\"                                                                                                        \\\n
        \   \"            raise @error if @error\\n\"                                                                                         \\\n
        \   \"            return nil if @replies.empty? && @unsubscribed\\n\"                                                                 \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"            begin\\n\"                                                                                                          \\\n
        \   \"              if @replies.empty?\\n\"                                                                                           \\\n
        \   \"                reply = _h2o__redis_join_reply(@command)\\n\"                                                                   \\\n
        \   \"              else\\n\"                                                                                                         \\\n
        \   \"                reply = @replies.shift\\n\"                                                                                     \\\n
        \   \"              end\\n\"                                                                                                          \\\n
        \   \"              _validate_reply(reply)\\n\"                                                                                       \\\n
        \   \"            rescue => e\\n\"                                                                                                    \\\n
        \   \"              @error = e # rethrow this error when called again\\n\"
        \                                                           \\\n    \"              raise
        e\\n\"                                                                                                      \\\n
        \   \"            end\\n\"                                                                                                            \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"            kind, channel, message = reply\\n\"                                                                                 \\\n
        \   \"            if kind == 'unsubscribe'\\n\"                                                                                       \\\n
        \   \"              return nil\\n\"                                                                                                   \\\n
        \   \"            elsif kind != 'message'\\n\"                                                                                        \\\n
        \   \"              raise \\\"unexpected kind of message: #{reply[0]}\\\"\\n\"
        \                                                           \\\n    \"            end\\n\"
        \                                                                                                           \\\n
        \   \"            if block_given?\\n\"                                                                                                \\\n
        \   \"              yield channel, message\\n\"                                                                                       \\\n
        \   \"            else\\n\"                                                                                                           \\\n
        \   \"              return channel, message\\n\"                                                                                      \\\n
        \   \"            end\\n\"                                                                                                            \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"        def initialize(args)\\n\"                                                                                               \\\n
        \   \"          super(args)\\n\"                                                                                                      \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"        def _on_reply(reply)\\n\"                                                                                               \\\n
        \   \"          if @channel\\n\"                                                                                                      \\\n
        \   \"            @channel._on_reply(reply)\\n\"                                                                                      \\\n
        \   \"          else\\n\"                                                                                                             \\\n
        \   \"            @reply = reply\\n\"                                                                                                 \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"        def join\\n\"                                                                                                           \\\n
        \   \"          if !@reply\\n\"                                                                                                       \\\n
        \   \"            @reply = _h2o__redis_join_reply(self)\\n\"                                                                          \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"          _validate_reply(@reply)\\n\"                                                                                          \\\n
        \   \"          unless @reply[0] == 'subscribe'\\n\"                                                                                  \\\n
        \   \"            raise \\\"unexpected kind of message: #{@reply[0]}\\\"\\n\"
        \                                                            \\\n    \"          end\\n\"
        \                                                                                                             \\\n
        \   \"          @channel = Channel.new(self)\\n\"                                                                                     \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def _do_block_ensuring(block, &ensuring)\\n\"                                                                               \\\n
        \   \"      success = false\\n\"                                                                                                      \\\n
        \   \"      begin\\n\"                                                                                                                \\\n
        \   \"        block.call(self)\\n\"                                                                                                   \\\n
        \   \"        success = true\\n\"                                                                                                     \\\n
        \   \"      rescue ConnectionError => e\\n\"                                                                                          \\\n
        \   \"        # if connection error happens, discard / unwatch are not needed
        anymore\\n\"                                            \\\n    \"        raise
        e\\n\"                                                                                                            \\\n
        \   \"      ensure\\n\"                                                                                                               \\\n
        \   \"        # to provide original exception information, pass through using
        ensure, not re-raise.\\n\"                              \\\n    \"        #
        are there more smart ways?\\n\"                                                                                       \\\n
        \   \"        unless success\\n\"                                                                                                     \\\n
        \   \"          begin\\n\"                                                                                                            \\\n
        \   \"            ensuring.call\\n\"                                                                                                  \\\n
        \   \"          end\\n\"                                                                                                              \\\n
        \   \"        end\\n\"                                                                                                                \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def multi(&block)\\n\"                                                                                                      \\\n
        \   \"      command = call(:MULTI)\\n\"                                                                                               \\\n
        \   \"      return command unless block\\n\"                                                                                          \\\n
        \   \"      _do_block_ensuring(block) { discard }\\n\"                                                                                \\\n
        \   \"      exec\\n\"                                                                                                                 \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def watch(*keys, &block)\\n\"                                                                                               \\\n
        \   \"      command = call(:WATCH, *keys)\\n\"                                                                                        \\\n
        \   \"      return command unless block\\n\"                                                                                          \\\n
        \   \"      _do_block_ensuring(block) { unwatch }\\n\"                                                                                \\\n
        \   \"      command\\n\"                                                                                                              \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def quit\\n\"                                                                                                               \\\n
        \   \"      begin\\n\"                                                                                                                \\\n
        \   \"        command = call(:QUIT)\\n\"                                                                                              \\\n
        \   \"      rescue ConnectionError\\n\"                                                                                               \\\n
        \   \"        command = Command::NoReply.new\\n\"                                                                                     \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      if block_given?\\n\"                                                                                                      \\\n
        \   \"        yield command\\n\"                                                                                                      \\\n
        \   \"      else\\n\"                                                                                                                 \\\n
        \   \"        command\\n\"                                                                                                            \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    def monitor\\n\"                                                                                                            \\\n
        \   \"      # monitor command implementation in hiredis asynchronous API is
        absolutely dangerous, so don't use it!\\n\"               \\\n    \"      raise
        UnavailableCommandError.new('monitor command is unavailable')\\n\"                                                  \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"    [\\n\"                                                                                                                      \\\n
        \   \"      # Cluster\\n\"                                                                                                            \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        cluster_addslots cluster_count_failure_reports cluster_countkeysinslot
        cluster_delslots cluster_failover \"            \\\n    \"cluster_forget\\n\"
        \                                                                                                            \\\n
        \   \"        cluster_getkeysinslot cluster_info cluster_keyslot cluster_meet
        cluster_nodes cluster_replicate\\n\"                    \\\n    \"        cluster_reset
        cluster_saveconfig cluster_set_config_epoch cluster_setslot cluster_slaves
        cluster_slots\\n\"             \\\n    \"        readonly readwrite\\n\"                                                                                                 \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Connection\\n\"                                                                                                         \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        auth echo ping select swapdb\\n\"                                                                                       \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Generic\\n\"                                                                                                            \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        del dump exists expire expireat keys\\n\"                                                                               \\\n
        \   \"        migrate move object persist pexpire pexpireat\\n\"                                                                      \\\n
        \   \"        pttl randomkey rename renamenx restore sort\\n\"                                                                        \\\n
        \   \"        touch ttl type unlink wait scan\\n\"                                                                                    \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Geo\\n\"                                                                                                                \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        geoadd geohash geopos geodist georadius georadiusbymember\\n\"
        \                                                         \\\n    \"      ),\\n\"
        \                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Hash\\n\"                                                                                                               \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        hdel hexists hget hgetall hincrby hincrbyfloat\\n\"                                                                     \\\n
        \   \"        hkeys hlen hmget hmset hset hsetnx\\n\"                                                                                 \\\n
        \   \"        hstrlen hvals hscan\\n\"                                                                                                \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Hyperloglog\\n\"                                                                                                        \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        pfadd pfcount pfmerge\\n\"                                                                                              \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # List\\n\"                                                                                                               \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        blpop brpop brpoplpush lindex linsert llen\\n\"                                                                         \\\n
        \   \"        lpop lpush lpushx lrange lrem lset\\n\"                                                                                 \\\n
        \   \"        ltrim rpop rpoplpush rpush rpushx\\n\"                                                                                  \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Pubsub\\n\"                                                                                                             \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        pubsub publish\\n\"                                                                                                     \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        psubscribe punsubscribe subscribe unsubscribe\\n\"                                                                      \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Scripting\\n\"                                                                                                          \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        eval evalsha script_debug script_exists script_flush script_kill
        script_load\\n\"                                       \\\n    \"      ),\\n\"
        \                                                                                                                  \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Server\\n\"                                                                                                             \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        bgrewriteaof bgsave client_kill client_list client_getname client_pause\\n\"
        \                                           \\\n    \"        client_reply
        client_setname command command_count command_getkeys command_info\\n\"                                     \\\n
        \   \"        config_get config_rewrite config_set config_resetstat dbsize
        debug_object\\n\"                                          \\\n    \"        debug_segfault
        flushall flushdb info lastsave\\n\"                                                                      \\\n
        \   \"        role save shutdown slaveof slowlog sync time\\n\"                                                                       \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Set\\n\"                                                                                                                \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        sadd scard sdiff sdiffstore sinter sinterstore\\n\"                                                                     \\\n
        \   \"        sismember smembers smove spop srandmember srem\\n\"                                                                     \\\n
        \   \"        sunion sunionstore sscan\\n\"                                                                                           \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # SortedSet\\n\"                                                                                                          \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        zadd zcard zcount zincrby zinterstore zlexcount\\n\"                                                                    \\\n
        \   \"        zrange zrangebylex zrevrangebylex zrangebyscore zrank zrem\\n\"
        \                                                        \\\n    \"        zremrangebylex
        zremrangebyrank zremrangebyscore zrevrange zrevrangebyscore zrevrank\\n\"
        \                               \\\n    \"        zscore zunionstore zscan\\n\"
        \                                                                                          \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # String\\n\"                                                                                                             \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        append bitcount bitfield bitop bitpos decr\\n\"                                                                         \\\n
        \   \"        decrby get getbit getrange getset incr\\n\"                                                                             \\\n
        \   \"        incrby incrbyfloat mget mset msetnx psetex\\n\"                                                                         \\\n
        \   \"        set setbit setex setnx setrange strlen\\n\"                                                                             \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"      # Transactions\\n\"                                                                                                       \\\n
        \   \"      %w(\\n\"                                                                                                                  \\\n
        \   \"        discard exec unwatch\\n\"                                                                                               \\\n
        \   \"      ),\\n\"                                                                                                                   \\\n
        \   \"    ].flatten.each {|method|\\n\"                                                                                               \\\n
        \   \"      method_args = method.upcase.split(/_/, 2)\\n\"                                                                            \\\n
        \   \"      method_args[1].gsub!('_', '-') if method_args[1]\\n\"                                                                     \\\n
        \   \"      self.define_method(method) {|*args, &block|\\n\"                                                                          \\\n
        \   \"        call(*method_args, *args, &block)\\n\"                                                                                  \\\n
        \   \"      }\\n\"                                                                                                                    \\\n
        \   \"    }\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"end\\n\""
    - item_type: preproc_def
      name: H2O_MRUBY_CODE_CHANNEL
      pos:
        line_end: 710
        line_start: 675
        source_file: /src/h2o/lib/handler/mruby/embedded.c.h
      type_or_value: "\"# Copyright (c) 2017 Ritta Narita\\n\"                                                                                          \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# Permission is hereby granted, free of charge, to any person obtaining
        a copy\\n\"                                             \\\n    \"# of this
        software and associated documentation files (the \\\"Software\\\"), to\\n\"
        \                                              \\\n    \"# deal in the Software
        without restriction, including without limitation the\\n\"                                               \\\n
        \   \"# rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or\\n\"                                              \\\n    \"# sell
        copies of the Software, and to permit persons to whom the Software is\\n\"
        \                                              \\\n    \"# furnished to do
        so, subject to the following conditions:\\n\"                                                                 \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# The above copyright notice and this permission notice shall be included
        in\\n\"                                               \\\n    \"# all copies
        or substantial portions of the Software.\\n\"                                                                      \\\n
        \   \"#\\n\"                                                                                                                          \\\n
        \   \"# THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR\\n\"                                             \\\n    \"# IMPLIED,
        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n\"                                                 \\\n
        \   \"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
        SHALL THE\\n\"                                              \\\n    \"# AUTHORS
        OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n\"                                                   \\\n
        \   \"# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\n\"
        \                                                 \\\n    \"# FROM, OUT OF
        OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\\n\"                                             \\\n
        \   \"# IN THE SOFTWARE.\\n\"                                                                                                         \\\n
        \   \"\\n\"                                                                                                                           \\\n
        \   \"module H2O\\n\"                                                                                                                 \\\n
        \   \"  class Channel\\n\"                                                                                                            \\\n
        \   \"    def push(o)\\n\"                                                                                                            \\\n
        \   \"      @queue << o\\n\"                                                                                                          \\\n
        \   \"      self._notify\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"    def shift\\n\"                                                                                                              \\\n
        \   \"      if @queue.empty?\\n\"                                                                                                     \\\n
        \   \"        _h2o__channel_wait(self)\\n\"                                                                                           \\\n
        \   \"      end\\n\"                                                                                                                  \\\n
        \   \"      @queue.shift\\n\"                                                                                                         \\\n
        \   \"    end\\n\"                                                                                                                    \\\n
        \   \"  end\\n\"                                                                                                                      \\\n
        \   \"end\\n\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2o_mruby_sender_do_send
  - h2o_mruby_sender_do_send_buffer
  - h2o_mruby_sender_close_body
  - h2o_mruby_sender_create
  - do_callback_sender_start
  - do_callback_proceed
  - do_callback_sender_dispose
  - callback_sender_create
  - h2o_mruby_init_sender
  - TRY
  - check_precond
  - send_chunk_method
  - send_chunk_eos_callback
  - handle_error_callback
  - h2o_mruby_sender_init_context
  source_file: /src/h2o/lib/handler/mruby/sender.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_mruby_sender_t
      - name: sending
        type: h2o_doublebuffer_t
      - name: '*receiving'
        type: h2o_buffer_t
      - name: has_error
        type: unsigned
      item_type: struct
      name: st_h2o_mruby_callback_sender_t
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/h2o/lib/handler/mruby/sender.c
    typedefs: []
    union: []
- function_names:
  - on_gc_dispose_channel
  - channel_initialize_method
  - channel_notify_method
  - wait_callback
  - h2o_mruby_channel_init_context
  source_file: /src/h2o/lib/handler/mruby/channel.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: receivers
        type: mrb_value
      item_type: struct
      name: st_h2o_mruby_channel_context_t
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/h2o/lib/handler/mruby/channel.c
    typedefs: []
    union: []
- function_names:
  - attach_receiver
  - detach_receiver
  - dispose_context
  - try_dispose_context
  - IS_NIL_OR_DEAD
  - on_gc_dispose_request
  - on_gc_dispose_input_stream
  - create_already_consumed_error
  - peek_content
  - on_shortcut_notify
  - do_sender_start
  - do_sender_proceed
  - do_sender_dispose
  - h2o_mruby_http_sender_create
  - post_response
  - post_error
  - build_chunk
  - do_on_body
  - on_body
  - headers_sort_cb
  - do_on_head
  - on_head
  - do_on_connect
  - on_connect
  - flatten_request_header
  - http_request_method
  - http_join_response_callback
  - http_fetch_chunk_callback
  - h2o_mruby_http_request_init_context
  source_file: /src/h2o/lib/handler/mruby/http_request.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: '*client'
        type: h2o_httpclient_t
      - name: receiver
        type: mrb_value
      - name: consumed
        type: unsigned
      - name: req
        type: "struct {\n        h2o_iovec_t method;\n        h2o_url_t url;\n        h2o_headers_t
          headers;\n        h2o_iovec_t body; /* body.base != NULL indicates that
          post content exists (and the length MAY be zero) */\n        unsigned method_is_head
          : 1;\n        unsigned has_transfer_encoding : 1;\n        unsigned can_keepalive
          : 1;\n    }"
      - name: resp
        type: "struct {\n        h2o_buffer_t *after_closed; /* when client becomes
          NULL, rest of the data will be stored to this pointer */\n        int has_content;\n
          \   }"
      - name: refs
        type: "struct {\n        mrb_value request;\n        mrb_value input_stream;\n
          \   }"
      - name: '*shortcut'
        type: h2o_mruby_generator_t
      - name: pool
        type: h2o_mem_pool_t
      item_type: struct
      name: st_h2o_mruby_http_request_context_t
      pos:
        line_end: 54
        line_start: 30
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    - fields:
      - name: super
        type: h2o_mruby_sender_t
      - name: '*client'
        type: h2o_mruby_http_request_context_t
      - name: sending
        type: h2o_doublebuffer_t
      - name: '*remaining'
        type: h2o_buffer_t
      item_type: struct
      name: st_h2o_mruby_http_sender_t
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/h2o/lib/handler/mruby/http_request.c
    typedefs: []
    union: []
- function_names:
  - on_sleep_timeout
  - sleep_callback
  - h2o_mruby_sleep_init_context
  source_file: /src/h2o/lib/handler/mruby/sleep.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: receiver
        type: mrb_value
      - name: timeout_entry
        type: h2o_timer_t
      - name: started_at
        type: uint64_t
      item_type: struct
      name: st_h2o_mruby_sleep_context_t
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/h2o/lib/handler/mruby/sleep.c
    typedefs: []
    union: []
- function_names:
  - attach_receiver
  - detach_receiver
  - on_gc_dispose_redis
  - on_gc_dispose_command
  - get_error_class
  - pass_reply
  - setup_method
  - connect_method
  - disconnected_method
  - disconnect_method
  - decode_redis_reply
  - on_redis_command
  - call_method
  - redis_join_reply_callback
  - h2o_mruby_redis_init_context
  source_file: /src/h2o/lib/handler/mruby/redis.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_redis_client_t
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: refs
        type: "struct {\n        mrb_value redis;\n    }"
      item_type: struct
      name: st_h2o_mruby_redis_client_t
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/h2o/lib/handler/mruby/redis.c
    - fields:
      - name: '*client'
        type: struct st_h2o_mruby_redis_client_t
      - name: receiver
        type: mrb_value
      - name: refs
        type: "struct {\n        mrb_value command;\n    }"
      item_type: struct
      name: st_h2o_mruby_redis_command_context_t
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/h2o/lib/handler/mruby/redis.c
    typedefs: []
    union: []
- function_names:
  - dispose_subreq
  - on_gc_dispose_app_request
  - on_gc_dispose_app_input_stream
  - convert_env_key_to_header_name
  - iterate_headers_callback
  - build_app_response
  - append_bufs
  - detach_receiver
  - subreq_ostream_send
  - prepare_subreq_entity
  - parse_hostport
  - get_sockname
  - get_peername
  - log_state
  - get_req_id
  - handle_header_raw_key
  - handle_header_env_key
  - on_subreq_error_callback
  - parse_protocol_version
  - retrieve_env
  - RETRIEVE_ENV
  - RETRIEVE_ENV_OBJ
  - RETRIEVE_ENV_STR
  - RETRIEVE_ENV_NUM
  - COND0
  - COND1
  - COND2
  - COND
  - CHECK_KEY
  - create_subreq
  - CHECK_REQUIRED
  - STR_TO_IOVEC
  - middleware_wait_response_callback
  - can_build_response_method
  - build_response_method
  - middleware_request_method
  - middleware_wait_chunk_callback
  - h2o_mruby_middleware_init_context
  - do_sender_start
  - do_sender_proceed
  - do_sender_dispose
  - create_sender
  - h2o_mruby_middleware_sender_create
  - send_response_shortcutted
  - send_response_callback
  - h2o_mruby_middleware_get_send_response_callback
  source_file: /src/h2o/lib/handler/mruby/middleware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEY_PREFIX
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/lib/handler/mruby/middleware.c
      type_or_value: '"HTTP_"'
    - item_type: preproc_def
      name: KEY_PREFIX_LEN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/h2o/lib/handler/mruby/middleware.c
      type_or_value: (sizeof(KEY_PREFIX) - 1)
    structs:
    - fields:
      - name: super
        type: h2o_conn_t
      - name: server
        type: "struct {\n        h2o_iovec_t host;\n        h2o_iovec_t port;\n        struct
          sockaddr_storage addr;\n        socklen_t len;\n    }"
      - name: remote
        type: "struct {\n        h2o_iovec_t host;\n        h2o_iovec_t port;\n        struct
          sockaddr_storage addr;\n        socklen_t len;\n    }"
      item_type: struct
      name: st_mruby_subreq_conn_t
      pos:
        line_end: 44
        line_start: 30
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - fields:
      - name: super
        type: h2o_req_t
      - name: conn
        type: struct st_mruby_subreq_conn_t
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: '*buf'
        type: h2o_buffer_t
      - name: receiver
        type: mrb_value
      - name: refs
        type: "struct {\n        mrb_value request;\n        mrb_value input_stream;\n
          \   }"
      - name: error_stream
        type: mrb_value
      - name: shortcut
        type: "struct {\n        h2o_mruby_generator_t *response;\n        h2o_mruby_generator_t
          *body;\n    }"
      - name: state
        type: enum { INITIAL, RECEIVED, FINAL_RECEIVED }
      - name: chain_proceed
        type: unsigned char
      item_type: struct
      name: st_mruby_subreq_t
      pos:
        line_end: 63
        line_start: 46
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - fields:
      - name: super
        type: h2o_mruby_sender_t
      - name: sending
        type: h2o_doublebuffer_t
      - name: '*subreq'
        type: struct st_mruby_subreq_t
      - name: blocking
        type: "struct {\n        h2o_iovec_t *bufs;\n        size_t bufcnt;\n    }"
      item_type: struct
      name: st_h2o_mruby_middleware_sender_t
      pos:
        line_end: 73
        line_start: 65
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    - fields:
      - name: '*ctx'
        type: h2o_mruby_context_t
      - name: '*subreq'
        type: struct st_mruby_subreq_t
      - name: env
        type: "struct {\n        mrb_value scheme;\n        mrb_value method;\n        mrb_value
          script_name;\n        mrb_value path_info;\n        mrb_value query_string;\n
          \       mrb_value rack_input;\n        mrb_value http_host;\n        mrb_value
          server_name;\n        mrb_value server_port;\n        mrb_value server_addr;\n
          \       mrb_value remote_addr;\n        mrb_value remote_port;\n        mrb_value
          server_protocol;\n        mrb_value remaining_delegations;\n        mrb_value
          remaining_reprocesses;\n        mrb_value rack_errors;\n    }"
      item_type: struct
      name: st_mruby_env_foreach_data_t
      pos:
        line_end: 522
        line_start: 501
        source_file: /src/h2o/lib/handler/mruby/middleware.c
    typedefs: []
    union: []
- function_names:
  - alloc_cb
  - free_cb
  - expand_buf
  - process_chunk
  - do_process
  - do_compress
  - do_decompress
  - do_free
  - gzip_open
  - h2o_compress_gzip_open
  - h2o_compress_gunzip_open
  source_file: /src/h2o/lib/handler/compress/gzip.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_BITS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/lib/handler/compress/gzip.c
      type_or_value: '31'
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/h2o/lib/handler/compress/gzip.c
      type_or_value: '8192'
    structs:
    - fields:
      - name: super
        type: h2o_compress_context_t
      - name: zs
        type: z_stream
      - name: zs_is_open
        type: int
      - name: (h2o_sendvec_t)
        type: H2O_VECTOR
      item_type: struct
      name: st_gzip_context_t
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/h2o/lib/handler/compress/gzip.c
    typedefs:
    - item_type: typedef
      name: (*processor)(z_streamp strm, int flush)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/h2o/lib/handler/compress/gzip.c
      type: int
    union: []
- function_names:
  - expand_buf
  - shrink_buf
  - compress_core
  - compress_
  - on_dispose
  - h2o_compress_brotli_open
  source_file: /src/h2o/lib/handler/compress/brotli.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_compress_context_t
      - name: '*state'
        type: BrotliEncoderState
      - name: (h2o_sendvec_t)
        type: H2O_VECTOR
      - name: buf_capacity
        type: size_t
      item_type: struct
      name: st_brotli_context_t
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/h2o/lib/handler/compress/brotli.c
    typedefs: []
    union: []
- function_names:
  - acquire_buf
  - shrink_buf
  - compress_chunk
  - do_compress
  - on_dispose
  - h2o_compress_zstd_open
  source_file: /src/h2o/lib/handler/compress/zstd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_compress_context_t
      - name: '*cstream'
        type: ZSTD_CStream
      - name: (h2o_sendvec_t)
        type: H2O_VECTOR
      - name: buf_capacity
        type: size_t
      item_type: struct
      name: st_zstd_context_t
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/h2o/lib/handler/compress/zstd.c
    typedefs: []
    union: []
- function_names:
  - cmpstrptr
  - FOREACH_DIRENT
  - FOREACH_DIRENT
  - build_dir_listing_html
  - FOREACH_DIRENT
  source_file: /src/h2o/lib/handler/file/templates.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmpstrptr
  - FOREACH_DIRENT
  - FOREACH_DIRENT
  - build_dir_listing_html
  - FOREACH_DIRENT
  source_file: /src/h2o/lib/handler/file/_templates.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compile_test
  - get_mrb
  - on_config_mruby_handler
  - on_config_mruby_handler_file
  - on_config_mruby_handler_path
  - on_config_enter
  - on_config_exit
  - h2o_mruby_register_configurator
  source_file: /src/h2o/lib/handler/configurator/mruby.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: h2o_mruby_config_vars_t
      - name: _vars_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]
        type: h2o_mruby_config_vars_t
      - name: '*mrb'
        type: mrb_state
      item_type: struct
      name: mruby_configurator_t
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/h2o/lib/handler/configurator/mruby.c
    typedefs: []
    union: []
- function_names:
  - on_config_dir
  - on_config_file
  - on_config_index
  - on_config_etag
  - on_config_send_compressed
  - on_config_dir_listing
  - on_config_io_uring
  - dup_strlist
  - on_config_enter
  - on_config_exit
  - h2o_file_register_configurator
  source_file: /src/h2o/lib/handler/configurator/file.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**index_files'
        type: char
      - name: flags
        type: int
      item_type: struct
      name: st_h2o_file_config_vars_t
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/h2o/lib/handler/configurator/file.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: struct st_h2o_file_config_vars_t
      - name: _vars_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]
        type: struct st_h2o_file_config_vars_t
      item_type: struct
      name: st_h2o_file_configurator_t
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/h2o/lib/handler/configurator/file.c
    typedefs: []
    union: []
- function_names:
  - on_config_gzip
  - obtain_quality
  - on_config_compress_min_size
  - on_config_compress
  - on_config_enter
  - on_config_exit
  - h2o_compress_register_configurator
  source_file: /src/h2o/lib/handler/configurator/compress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_GZIP_QUALITY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/h2o/lib/handler/configurator/compress.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_BROTLI_QUALITY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/h2o/lib/handler/configurator/compress.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_ZSTD_QUALITY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/lib/handler/configurator/compress.c
      type_or_value: '3'
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: h2o_compress_args_t
      item_type: struct
      name: compress_configurator_t
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/lib/handler/configurator/compress.c
    typedefs: []
    union: []
- function_names:
  - on_config_h2olog
  - h2o_log_register_configurator
  source_file: /src/h2o/lib/handler/configurator/h2olog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_config_expires
  - on_config_enter
  - on_config_exit
  - h2o_expires_register_configurator
  source_file: /src/h2o/lib/handler/configurator/expires.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '**args'
        type: h2o_expires_args_t
      - name: '*_args_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]'
        type: h2o_expires_args_t
      item_type: struct
      name: expires_configurator_t
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/h2o/lib/handler/configurator/expires.c
    typedefs: []
    union: []
- function_names:
  - extract_name
  - extract_name_value
  - is_list_cmd
  - add_cmd
  - parse_header_node
  - on_config_header_2arg
  - on_config_unset_core
  - on_config_header_unset
  - on_config_header_unsetunless
  - on_config_cookie_unset
  - on_config_cookie_unsetunless
  - DEFINE_2ARG
  - h2o_configurator_define_headers_commands
  - DEFINE_CMD_NAME
  - DEFINE_CMD
  source_file: /src/h2o/lib/handler/configurator/headers_util.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*node'
        type: yoml_t
      - name: '*name'
        type: h2o_iovec_t
      - name: value
        type: h2o_iovec_t
      item_type: struct
      name: headers_util_add_arg_t
      pos:
        line_end: 7
        line_start: 3
        source_file: /src/h2o/lib/handler/configurator/headers_util.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*child'
        type: h2o_configurator_t
      - name: get_commands
        type: h2o_configurator_get_headers_commands_cb
      item_type: struct
      name: headers_util_configurator_t
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/h2o/lib/handler/configurator/headers_util.c
    typedefs: []
    union: []
- function_names:
  - on_config_server_timing
  - on_config_enter
  - on_config_exit
  - h2o_server_timing_register_configurator
  source_file: /src/h2o/lib/handler/configurator/server_timing.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mode
        type: int
      item_type: struct
      name: st_server_timing_config_t
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/h2o/lib/handler/configurator/server_timing.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: struct st_server_timing_config_t
      item_type: struct
      name: server_timing_configurator_t
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/h2o/lib/handler/configurator/server_timing.c
    typedefs: []
    union: []
- function_names:
  - on_config
  - h2o_redirect_register_configurator
  source_file: /src/h2o/lib/handler/configurator/redirect.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_config_reproxy
  - on_config_enter
  - on_config_exit
  - h2o_reproxy_register_configurator
  source_file: /src/h2o/lib/handler/configurator/reproxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: enabled
        type: int
      item_type: struct
      name: config_t
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/h2o/lib/handler/configurator/reproxy.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: struct config_t
      item_type: struct
      name: reproxy_configurator_t
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/h2o/lib/handler/configurator/reproxy.c
    typedefs: []
    union: []
- function_names:
  - on_config_status
  - on_config_duration_stats
  - on_enter_status
  - on_exit_status
  - h2o_status_register_configurator
  source_file: /src/h2o/lib/handler/configurator/status.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: stack
        type: int
      - name: duration_stats
        type: int
      item_type: struct
      name: st_status_configurator
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/h2o/lib/handler/configurator/status.c
    typedefs: []
    union: []
- function_names:
  - on_config_timeout_io
  - on_config_timeout_keepalive
  - on_config_document_root
  - on_config_send_delegated_uri
  - on_config_connect
  - create_spawnproc
  - spawnproc_on_dispose
  - on_config_spawn
  - on_config_enter
  - on_config_exit
  - h2o_fastcgi_register_configurator
  source_file: /src/h2o/lib/handler/configurator/fastcgi.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: h2o_fastcgi_config_vars_t
      - name: _vars_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]
        type: h2o_fastcgi_config_vars_t
      item_type: struct
      name: fastcgi_configurator_t
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/h2o/lib/handler/configurator/fastcgi.c
    typedefs: []
    union: []
- function_names:
  - on_config
  - on_config_enter
  - on_config_exit
  - h2o_access_log_register_configurator
  source_file: /src/h2o/lib/handler/configurator/access_log.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*handles'
        type: st_h2o_access_log_filehandle_vector_t
      - name: _handles_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]
        type: st_h2o_access_log_filehandle_vector_t
      item_type: struct
      name: st_h2o_access_log_configurator_t
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/h2o/lib/handler/configurator/access_log.c
    typedefs:
    - item_type: typedef
      name: (h2o_access_log_filehandle_t *)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/h2o/lib/handler/configurator/access_log.c
      type: H2O_VECTOR
    union: []
- function_names:
  - on_config_enter
  - on_config_exit
  - get_headers_commands
  - h2o_headers_register_configurator
  source_file: /src/h2o/lib/handler/configurator/headers.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '**cmds'
        type: h2o_headers_command_t
      item_type: struct
      name: headers_configurator_t
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/h2o/lib/handler/configurator/headers.c
    typedefs: []
    union: []
- function_names:
  - register_errordoc
  - on_config_errordoc
  - on_config_enter
  - on_config_exit
  - h2o_errordoc_register_configurator
  source_file: /src/h2o/lib/handler/configurator/errordoc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: pool
        type: h2o_mem_pool_t
      - name: '* vars'
        type: H2O_VECTOR
      item_type: struct
      name: errordoc_configurator_t
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/h2o/lib/handler/configurator/errordoc.c
    typedefs: []
    union: []
- function_names:
  - on_config_throttle_resp
  - on_config_enter
  - on_config_exit
  - h2o_throttle_resp_register_configurator
  source_file: /src/h2o/lib/handler/configurator/throttle_resp.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: 'on'
        type: int
      item_type: struct
      name: throttle_resp_config_vars_t
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/h2o/lib/handler/configurator/throttle_resp.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: '*vars'
        type: struct throttle_resp_config_vars_t
      item_type: struct
      name: throttle_resp_configurator_t
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/h2o/lib/handler/configurator/throttle_resp.c
    typedefs: []
    union: []
- function_names:
  - on_config_debug_state
  - h2o_http2_debug_state_register_configurator
  source_file: /src/h2o/lib/handler/configurator/http2_debug_state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_config_self_trace
  - h2o_self_trace_register_configurator
  source_file: /src/h2o/lib/handler/configurator/self_trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - warn_deprecation
  - on_config_timeout_io
  - on_config_timeout_connect
  - on_config_timeout_first_byte
  - on_config_timeout_keepalive
  - on_config_happy_eyeballs_name_resolution_delay
  - on_config_happy_eyeballs_connection_attempt_delay
  - on_config_preserve_host
  - on_config_proxy_protocol
  - on_config_connect_proxy_status
  - on_config_connect_proxy_masque_draft_03
  - on_config_proxy_status_identity
  - on_config_tunnel
  - create_ssl_ctx
  - create_ssl_session_cache
  - update_ssl_ctx
  - on_config_ssl_verify_peer
  - on_config_ssl_cafile
  - on_config_ssl_session_cache
  - parse_backend
  - on_config_reverse_url
  - config_connect_core
  - on_config_classic_connect
  - on_config_connect_udp
  - on_config_emit_x_forwarded_headers
  - on_config_emit_via_header
  - on_config_emit_missing_date_header
  - on_config_zerocopy
  - on_config_preserve_x_forwarded_proto
  - on_config_max_buffer_size
  - on_config_http2_max_concurrent_streams
  - on_config_http2_force_cleartext
  - on_config_http2_ratio
  - on_config_http3_ecn
  - on_config_http3_ratio
  - on_config_expect
  - on_config_forward_close_connection
  - on_config_enter
  - on_config_exit
  - get_headers_commands
  - h2o_proxy_register_configurator
  source_file: /src/h2o/lib/handler/configurator/proxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: conf
        type: h2o_proxy_config_vars_t
      - name: '*ssl_ctx'
        type: SSL_CTX
      item_type: struct
      name: proxy_config_vars_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/h2o/lib/handler/configurator/proxy.c
    - fields:
      - name: super
        type: h2o_configurator_t
      - name: connect_timeout_set
        type: unsigned
      - name: first_byte_timeout_set
        type: unsigned
      - name: '*vars'
        type: struct proxy_config_vars_t
      - name: _vars_stack[H2O_CONFIGURATOR_NUM_LEVELS + 1]
        type: struct proxy_config_vars_t
      item_type: struct
      name: proxy_configurator_t
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/h2o/lib/handler/configurator/proxy.c
    typedefs: []
    union: []
- function_names:
  - durations_status_per_thread
  - ADD_DURATION
  - duration_stats_init
  - durations_status_init
  - duration_stats_free
  - durations_status_final
  - DURATION_FMT
  - DURATION_VALS
  - stat_access
  - ADD_OBSERVATION
  - on_context_init
  - on_context_dispose
  - h2o_duration_stats_register
  source_file: /src/h2o/lib/handler/status/durations.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GK_EPSILON
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/lib/handler/status/durations.c
      type_or_value: '0.01'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/h2o/lib/handler/status/durations.c
      type_or_value: '16384'
    structs:
    - fields:
      - name: '*connect_time'
        type: struct gkc_summary
      - name: '*header_time'
        type: struct gkc_summary
      - name: '*body_time'
        type: struct gkc_summary
      - name: '*request_total_time'
        type: struct gkc_summary
      - name: '*process_time'
        type: struct gkc_summary
      - name: '*response_time'
        type: struct gkc_summary
      - name: '*total_time'
        type: struct gkc_summary
      - name: (uint64_t)
        type: H2O_VECTOR
      item_type: struct
      name: st_duration_stats_t
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/h2o/lib/handler/status/durations.c
    - fields:
      - name: stats
        type: struct st_duration_stats_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: st_duration_agg_stats_t
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/h2o/lib/handler/status/durations.c
    typedefs: []
    union: []
- function_names:
  - events_status_per_thread
  - ACC
  - events_status_init
  - events_status_final
  - H1_AGG_ERR
  - H2_AGG_ERR
  - QUIC_FMT
  - QUIC_VAL
  source_file: /src/h2o/lib/handler/status/events.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/h2o/lib/handler/status/events.c
      type_or_value: (8 * 1024)
    structs:
    - fields:
      - name: emitted_status_errors[H2O_STATUS_ERROR_MAX]
        type: uint64_t
      - name: h2_protocol_level_errors[H2O_HTTP2_ERROR_MAX]
        type: uint64_t
      - name: h2_read_closed
        type: uint64_t
      - name: h2_write_closed
        type: uint64_t
      - name: h2_idle_timeout
        type: uint64_t
      - name: h2_streaming_requests
        type: uint64_t
      - name: h1_request_timeout
        type: uint64_t
      - name: h1_request_io_timeout
        type: uint64_t
      - name: ssl_errors
        type: uint64_t
      - name: http3
        type: "struct {\n        uint64_t packet_forwarded;\n        uint64_t forwarded_packet_received;\n
          \   }"
      - name: connection_stats
        type: "struct {\n        uint64_t idle_closed;\n        uint64_t num_idle;\n
          \       uint64_t num_active;\n        uint64_t num_shutdown;\n    }"
      - name: quic_stats
        type: h2o_quic_stats_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: st_events_status_ctx_t
      pos:
        line_end: 47
        line_start: 25
        source_file: /src/h2o/lib/handler/status/events.c
    typedefs: []
    union: []
- function_names:
  - recycle_status_per_thread
  - memory_status_per_thread
  - memory_status_init
  - memory_status_json
  - FMT
  - ARGS
  source_file: /src/h2o/lib/handler/status/memory.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/h2o/lib/handler/status/memory.c
      type_or_value: '512'
    structs:
    - fields:
      - name: chunks
        type: uint64_t
      - name: low_watermark
        type: uint64_t
      item_type: struct
      name: st_recycle_status_t
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/h2o/lib/handler/status/memory.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: mem_pool
        type: struct st_recycle_status_t
      - name: socket_zerocopy_inflight
        type: size_t
      item_type: struct
      name: st_memory_status_ctx_t
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/h2o/lib/handler/status/memory.c
    typedefs: []
    union: []
- function_names:
  - collect_req_status
  - requests_status_per_thread
  - requests_status_init
  - ELEMENT
  - X_ELEMENT
  - requests_status_final
  source_file: /src/h2o/lib/handler/status/requests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPARATOR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/h2o/lib/handler/status/requests.c
      type_or_value: '", "'
    structs:
    - fields:
      - name: '*logconf'
        type: h2o_logconf_t
      - name: req_data
        type: h2o_iovec_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: st_requests_status_ctx_t
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/h2o/lib/handler/status/requests.c
    - fields:
      - name: '*logconf'
        type: h2o_logconf_t
      - name: '*buffer'
        type: h2o_buffer_t
      item_type: struct
      name: st_collect_req_status_cbdata_t
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/h2o/lib/handler/status/requests.c
    typedefs: []
    union: []
- function_names:
  - ssl_status_per_thread
  - ssl_status_init
  - ssl_status_final
  source_file: /src/h2o/lib/handler/status/ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/lib/handler/status/ssl.c
      type_or_value: (1024)
    structs:
    - fields:
      - name: alpn_h1
        type: uint64_t
      - name: alpn_h2
        type: uint64_t
      - name: handshake_full
        type: uint64_t
      - name: handshake_resume
        type: uint64_t
      - name: handshake_accum_time_full
        type: uint64_t
      - name: handshake_accum_time_resume
        type: uint64_t
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: st_ssl_status_ctx_t
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/h2o/lib/handler/status/ssl.c
    typedefs: []
    union: []
- function_names:
  - MQUICLY_CALLBACK_TYPE
  source_file: /src/h2o/fuzz/quicly_mock.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*on_stream_send'
        type: mquicly_on_stream_send_t
      item_type: struct
      name: st_mquicly_context_t
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/h2o/fuzz/quicly_mock.h
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/h2o/fuzz/h3_header_generator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/h2o/fuzz/driver_common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_init_context
  - on_destroy_connection
  - on_stream_send_cb
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/fuzz/driver_h3.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_EPOLL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/fuzz/driver_h3.cc
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_handler
  - write_fully
  - upstream_thread
  - register_proxy
  source_file: /src/h2o/fuzz/driver_common.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_EPOLL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/h2o/fuzz/driver_common.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: OK_RESP
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/h2o/fuzz/driver_common.cc
      type_or_value: "\"HTTP/1.0 200 OK\\r\\n\"                                                                                                          \\\n
        \   \"Connection: Close\\r\\n\\r\\nOk\""
    - item_type: preproc_def
      name: OK_RESP_LEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/h2o/fuzz/driver_common.cc
      type_or_value: (sizeof(OK_RESP) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_connection
  - quicly_accept
  - quicly_stream_sync_sendbuf
  - quicly_stream_sync_recvbuf
  - quicly_stream_can_send
  - quicly_get_tls
  - quicly_is_blocked
  - quicly_get_sockname
  - quicly_get_peername
  - quicly_request_stop
  - quicly_reset_stream
  - quicly_get_socklen
  - quicly_decode_packet
  - quicly_send_stream
  - quicly_get_close_reason
  - open_stream
  - get_streamgroup_state
  - mquicly_open_stream
  - destroy_stream
  - destroy_all_streams
  - mquicly_closed
  - quicly_open_stream
  - quicly_get_or_open_stream
  - quicly_is_destination
  - quicly_num_streams_by_group
  - quicly_get_delivery_rate
  - quicly_get_stats
  - quicly_stream_noop_on_destroy
  - quicly_stream_noop_on_send_shift
  - quicly_stream_noop_on_send_emit
  - quicly_stream_noop_on_send_stop
  - quicly_stream_noop_on_receive
  - quicly_stream_noop_on_receive_reset
  - quicly_send_version_negotiation
  - quicly_send_stateless_reset
  - quicly_can_send_data
  - quicly_connect
  - quicly_connection_is_ready
  - quicly_amend_ptls_context
  - quicly_receive
  - quicly_close
  - quicly_get_first_timeout
  - quicly_free
  - quicly_send
  - quicly_send_get_ecn_bits
  - quicly_foreach_stream
  - quicly_get_stream
  - quicly_send_datagram_frames
  - quicly_get_max_data
  - quicly_send_resumption_token
  source_file: /src/h2o/fuzz/quicly_mock.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: struct _st_quicly_conn_public_t
      - name: '* streams'
        type: khash_t
      - name: address
        type: "struct {\n        quicly_address_t local, remote;\n    }"
      - name: connection_close
        type: "struct {\n        quicly_error_t err;\n        uint64_t frame_type;\n
          \       char *reason_phrase;\n        int is_remote;\n    }"
      item_type: struct
      name: st_quicly_conn_t
      pos:
        line_end: 45
        line_start: 33
        source_file: /src/h2o/fuzz/quicly_mock.c
    - fields: []
      item_type: struct
      name: st_quicly_send_context_t
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/h2o/fuzz/quicly_mock.c
    typedefs: []
    union: []
- function_names:
  - chunked_test
  - drain
  - read_fully
  - writer_thread
  - feeder
  - create_accepted
  - is_valid_fd
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/fuzz/driver.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_EPOLL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/h2o/fuzz/driver.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: MARKER
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/h2o/fuzz/driver.cc
      type_or_value: '"\n--MARK--\n"'
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      - name: fd
        type: int
      - name: barrier
        type: h2o_barrier_t
      item_type: struct
      name: writer_thread_arg
      pos:
        line_end: 104
        line_start: 99
        source_file: /src/h2o/fuzz/driver.cc
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/h2o/fuzz/driver_url.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H2O_USE_EPOLL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/h2o/fuzz/driver_url.cc
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_handler
  - chunked_test
  - reproxy_test
  - post_test
  - on_accept
  - create_listener
  - on_accept
  - create_listener
  - setup_ssl
  - main
  source_file: /src/h2o/examples/libh2o/simple.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_HTTPS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/h2o/examples/libh2o/simple.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_MEMCACHED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/h2o/examples/libh2o/simple.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - dump_reply
  - on_redis_command
  - on_redis_connect
  - on_redis_close
  - main
  source_file: /src/h2o/examples/libh2o/redis-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prepare_write_buf
  - server_on_write_ready
  - server_on_write_complete
  - server_write
  - server_on_read_second
  - server_on_read_first
  - client_on_write_complete
  - client_on_read_second
  - client_on_read_first
  - on_handshake_complete
  - on_connect
  - on_accept
  - usage
  - main
  source_file: /src/h2o/examples/libh2o/latency-optimization.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: resp_start_at
        type: uint64_t
      - name: sig_received_at
        type: uint64_t
      - name: bytes_received
        type: uint64_t
      - name: bytes_before_sig
        type: uint64_t
      item_type: struct
      name: client_stats
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/h2o/examples/libh2o/latency-optimization.c
    typedefs: []
    union: []
- function_names:
  - on_read
  - on_write
  - on_handshake_complete
  - on_connect
  - main
  source_file: /src/h2o/examples/libh2o/socket-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - on_ws_message
  - on_req
  - setup_ssl
  - on_accept
  - create_listener
  - on_accept
  - create_listener
  - main
  source_file: /src/h2o/examples/libh2o/websocket.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
